TakeOver Event
1 / 7






Turn any monument into a battlefield.
A Monument Event that drops a platoon of hostile NPCs onto a random monument for a set amount of time.
Every NPC is created from its own Data File - clothing, weapon, health, AI ranges, loot table, and XP value.
Each file lists the monuments it is Allowed to spawn at by short prefab name, so you build a monument's defense by writing the files that allow it, easily add more monument shortnames as Rust continues to change and add new monuments over time.
Every kill drops that NPC's own loot table into a bag named after the profile.
The takeover ends when the timer expires, or the moment the last hostile is Cleared.
Participants and players in range get updated remaining count on every kill, and a kill summary broadcasts naming who did the most eliminations when it ends.
Skill Tree XP is awarded per kill, set per NPC in its data file.
Safe zones are never taken over, and monuments under the Minimum Radius are skipped.
NPC profiles in default data SCOUT, GRUNT, SUPPORT, MARKSMAN, HEAVY, and DEMOLITION.
Commands
/takeover start - Requires Admin Permission - Starts a takeover. Pass a short prefab name to force a monument.
/takeover stop - Requires Admin Permission - Ends the active takeover.
/takeover list - Requires Admin Permission - Lists every profile and the monuments it resolved to on this map.
/takeover reload - Requires Admin Permission - Re-reads the profile folder without reloading the plugin.
Every command is also available on console for RCON - takeover.start, takeover.stop, takeover.list, takeover.reload.
Permissions
TakeOverEvent.Admin - Required for admin commands.
Dependencies
NpcSpawn - Required.
Skill Tree - Optional, used for XP on kills.
Config
| 1 | { |
| 2 | "Chat Icon": 0, |
| 3 | "Seconds Between Takeovers": 3600.0, |
| 4 | "Takeover Duration In Seconds": 1800.0, |
| 5 | "Start a Takeover on Plugin Load": false, |
| 6 | "Max NPCs Per Takeover": 25, |
| 7 | "Monument Radius Multiplier for Spawn Scatter": 1.0, |
| 8 | "Leash NPCs to the Monument": true, |
| 9 | "Killers to Show in the Summary": 5, |
| 10 | "Recently Used Monuments to Skip": 3, |
| 11 | "Spawn Attempts Per NPC": 25, |
| 12 | "Monument Attempts Per Takeover": 5, |
| 13 | "Minimum Monument Radius": 30.0, |
| 14 | "Announce Takeover Start": true, |
| 15 | "Announce Takeover End": true, |
| 16 | "Announce Remaining NPCs on Each Kill to Participants / Radius": true, |
| 17 | "Enable Spawn SFX": true, |
| 18 | "Enable Despawn SFX": true |
| 19 | } |
Data
One file per NPC in oxide/data/TakeOver/Npcs. Place a new npc file in the folder and run takeover.reload
| 1 | { |
| 2 | "Profile Name": "Takeover Grunt", |
| 3 | "Allowed Monuments - Short Prefab Name": [ |
| 4 | "airfield_1", |
| 5 | "trainyard_1", |
| 6 | "powerplant_1", |
| 7 | "launch_site_1" |
| 8 | ], |
| 9 | "Amount To Spawn Min": 4, |
| 10 | "Amount To Spawn Max": 7, |
| 11 | "Kit Enabled?": false, |
| 12 | "Kit Name": "", |
| 13 | "Clothing Options": [ |
| 14 | { |
| 15 | "Shortname": "hoodie", |
| 16 | "Skin": 0 |
| 17 | }, |
| 18 | { |
| 19 | "Shortname": "pants", |
| 20 | "Skin": 0 |
| 21 | }, |
| 22 | { |
| 23 | "Shortname": "metal.facemask", |
| 24 | "Skin": 0 |
| 25 | } |
| 26 | ], |
| 27 | "Total Health": 200, |
| 28 | "Damage Scaling": 1.0, |
| 29 | "Roam Range": 0.0, |
| 30 | "Chase Range": 70.0, |
| 31 | "Sense Range": 80.0, |
| 32 | "Listen Range": 40.0, |
| 33 | "Memory Duration": 30.0, |
| 34 | "Speed": 6.0, |
| 35 | "Aim Cone Scale": 1.5, |
| 36 | "Attack Range Multiplier": 1.5, |
| 37 | "Vision Cone Scale": 0.8, |
| 38 | "Turret Damage Scale": 0.25, |
| 39 | "Weapon to Equip": "rifle.ak", |
| 40 | "Weapon Skin ID": 0, |
| 41 | "Skill Tree Xp Value": 75.0, |
| 42 | "Min Item Drop": 1, |
| 43 | "Max Item Drop": 3, |
| 44 | "Loot Table": [ |
| 45 | { |
| 46 | "Shortname": "scrap", |
| 47 | "Skin": 0, |
| 48 | "Custom Name": "", |
| 49 | "Amount Min": 40, |
| 50 | "Amount Max": 120, |
| 51 | "Chance to Drop": 100.0 |
| 52 | }, |
| 53 | { |
| 54 | "Shortname": "ammo.rifle", |
| 55 | "Skin": 0, |
| 56 | "Custom Name": "", |
| 57 | "Amount Min": 20, |
| 58 | "Amount Max": 60, |
| 59 | "Chance to Drop": 70.0 |
| 60 | }, |
| 61 | { |
| 62 | "Shortname": "metal.fragments", |
| 63 | "Skin": 0, |
| 64 | "Custom Name": "", |
| 65 | "Amount Min": 100, |
| 66 | "Amount Max": 400, |
| 67 | "Chance to Drop": 60.0 |
| 68 | }, |
| 69 | { |
| 70 | "Shortname": "syringe.medical", |
| 71 | "Skin": 0, |
| 72 | "Custom Name": "", |
| 73 | "Amount Min": 1, |
| 74 | "Amount Max": 3, |
| 75 | "Chance to Drop": 45.0 |
| 76 | } |
| 77 | ] |
| 78 | } |
Lang
| 1 | { |
| 2 | "TakeOverStart": "[<color=#b5a642>TakeOver Event</color>]\n\n<color=#42b5a6>{0}</color> has been <color=#b54251>Taken Over</color> at <color=#b56d42>{1}</color>.\n<color=#42b5a6>{2}</color> hostiles are holding the site. Move in and clear it out.", |
| 3 | "TakeOverEnd": "[<color=#b5a642>TakeOver Event</color>] The <color=#b54251>Takeover</color> at <color=#42b5a6>{0}</color> (<color=#b56d42>{1}</color>) is over. <color=#42b5a6>{2}</color> hostile(s) pulled out.\n<color=#42b5a6>{4}</color> killed by: {3}", |
| 4 | "TakeOverCleared": "[<color=#b5a642>TakeOver Event</color>]\n\n<color=#42b5a6>{0}</color> (<color=#b56d42>{1}</color>) has been <color=#8bb542>Retaken</color>! All <color=#42b5a6>{4}</color> hostiles are down.\nKills: {3}", |
| 5 | "Killer": "<color=#8bb542>{0}</color> <color=#b5a642>({1})</color>", |
| 6 | "MoreKillers": " and <color=#b5a642>{0}</color> other(s)", |
| 7 | "NoKillers": "<color=#b54251>nobody</color>", |
| 8 | "Remaining": "[<color=#b5a642>TakeOver Event</color>] <color=#42b5a6>{0}</color> - <color=#b54251>{1}</color> of <color=#b5a642>{2}</color> hostiles still holding.", |
| 9 | "XpGain": "[<color=#b5a642>TakeOver Event</color>] You gained <color=#b5a642>{0}</color> <color=#42b5a6>XP</color> for the takedown.", |
| 10 | "NoPerms": "[<color=#b5a642>TakeOver Event</color>] You do not have permission to run this <color=#b54251>Command</color>!" |
| 11 | } |