Steenamaroo
Spawns Rust AI NPCs around monuments, biomes, supply crates, and custom locations

Supported Games
works with

Bot Spawn spawns a set number of Rust AI bots at chosen monument. Also supports bots at server airdrops, supply drops, biomes, custom locations, external plugin calls, and 'toplayer' by chat command.

Offers Facepunch default scientist, murderers, with additional customisation options, including kits.

Default location settings are held in config/BotSpawn.json.
Custom location settings are held in data/BotSpawn.json.

Permissions

  • botspawn.allowed -- Required for non-admin use

Airdrop bots and toplayer bots do not respawn once killed.

Without Kits Default Scientists/Murders will have nothing in their corpse inventory
except default Rust random loot - No weapons or clothes.

All BotSpawn options will govern BotSpawn bots, only!
The only exception is "NPCs_Attack_BotSpawn" option.

Configuration

Global

    "NPCs_Attack_BotSpawn": false,
    "BotSpawn_Attacks_NPCs": false,
    "BotSpawn_Attacks_BotSpawn": false,
    "APC_Safe": true,
    "Turret_Safe": true,
    "Animal_Safe": true,
    "Supply_Enabled": false, (spawn 'airdrop' bots for user-called supplys)
    "Remove_BackPacks": true, (backpacks will not appear after corpse despawn)
    "Remove_KeyCard": true, (any keycards in bot default loot will be destroyed)
    "Ignore_HumanNPC": true, (ignore 'bots' from HumanNPCCore plugin)
    "Pve_Safe": true, (bots will not be injured by fire/barbs, etc.)
    "Corpse_Duration": 60
    
    *'BotSpawn' are bots spawned by this plugin
    *'NPCs' are bots spawned by any other means.

Note - The first three global options are preventative.
False = disable : True = default behaviour.

Per-Profile

The following options will be listed once in your data/config json for each location.
The only essential setting is AutoSpawn : True. Everything else is preference.

  • AutoSpawn- true/false
  • Allow_Rust_Loot - true/false
  • Bot_Accuracy - 0-10 - 10 is server default. < 10 is less-accurate.
  • Bot_Damage (dealt)- 1.0 is default - User setting can be higher, or lower.
  • Bot Health - 100 is default. Value can exceed 100.
  • Bot Names - [], See below
  • Bot Name Prefix - eg "NPC".
  • Bots - 10.
  • Chute - true/false
  • Disable_Radio - true/false.
  • Keep_Default_Loadout - true/false.
    Keeps Scientist/Murderer attire and weapons, in addition to your custom kits.
  • Kit - [],
  • Location - Data only - Do not change manually.
  • Murderer - True/False
    Spawns the 'running zombie' murderer prefab instead of Scientist.
  • Parent_Monument - eg "Dome"
    Custom profiles only - Maintains position relative to parent after map seed change.
  • Peace_Keeper- true/false
    Bots ignore you if you have no projectile/fire weapon drawn.
    Melee will do no damage to bots.
  • Peace_Keeper_CoolDown: 5 (seconds)
    Once aggravated, bots will remain hostile towards you for this period, even if you put away your weapon.
  • Radius - 200 - Size of the area in which bots will spawn.
  • Respawn_Timer- 60 seconds
  • Roam_Range - 40.
  • Sci_Aggro_Range - 30.
  • Sci_DeAggro_Range - 40.
  • Suicide_Timer - 300 seconds.
    Prevents long term build up of airdrop toplayer bots.
    Does not apply to re-spawning regular bots.
  • Wipe_Belt - true/false.
  • Wipe_Clothing - true/false.
  • Weapon_Drop_Chance - 0 = never. 100 = always.

Kits and Names should be formatted as follows:

["kit1"], for single or ["kit1","kit2", "kit3"], for many.
["name1"], for single or ["name1","name2", "name3"], for many.

BotSpawn will randomly pick one from your list.
If the number of kits is equal to the number of bots, BotSpawn will always pair them together.
Kit1 Name1, Kit2 Name2, etc.
Random names are generated for any blank entires.

Custom Locations. (data file)

Chat Commands

  • /botspawn add <customname> -- Add a custom profile at your location
  • /botspawn remove <customname> -- Remove a custom profile at your location
  • /botspawn move <existingname> -- Relocate a custom profile to your location
  • /botspawn list -- Show all custom location names
  • /botspawn toplayer <playername> <profile> -- You need to have a custom profile first

Note: You will need to edit data/BotSpawn.json and set AutoSpawn: "true", as well as any other customisations.

Default Locations

Monuments

  • Airfield
  • Dome
  • Power Plant
  • SewerBranch
  • Satellite
  • Trainyard
  • Water Treatment
  • Launch Site
  • Military Tunnel
  • Junk Yard
  • Harbor (2)
  • SuperMarket (2)
  • GasStation (2)
  • MiningOutpost (3)
  • Lighthouse (3)
  • QuarryStone
  • QuarrySulphur
  • QuarryHQM
  • Swamp (2)
  • Abandoned Cabins
  • AirDrop

Biomes

  • Arid
  • Temperate
  • Tundra
  • Arctic

Notes: Radius is irrelevant for biomes Each bot spawns at a random position within the relevant biome.

External Hooks

Single instance hooks
These will not respawn (like "toplayer" bots)

location is your intended target,
profileName is taken from BotSpawn (config or data),
and group should be made up and assigned by the user.

  • string[] AddGroupSpawn(Vector3 location, string profileName, string group)
  • string[] RemoveGroupSpawn(string group)

Long term hooks.
These hooks manage permanent, respawnable, botspawn profiles.
profile should be a JsonSerialised BotSpawn DataProfile class.

  • string[] CreateNewProfile(string name, string profile)
  • string[] ProfileExists(string name)
  • string[] RemoveProfile(string name)

All returns are string array [“true/false/error”, “details message”]

Also, botspawn can return the Monument Name and a list of live bots, for each AutoSpawn = true monument.

  • var result = (Dictionary<string, List<ulong>>)BotSpawn?.Call("botSpawnbots");

Example hook usage:

[PluginReference]
private Plugin BotSpawn;

Vector3 location = new Vector3(0,0,0);
string[] Spawn = BotSpawn?.Call("AddGroupSpawn", location, "Dome", "YourNameHere") as string[];

Puts($"{Spawn[0]}");
Puts($"{Spawn[1]}");

FAQ

Q: There's a million options. Where do I start?
A: For basic use, you just need to set AutoSpawn to true for at least one monument in config/BotSpawn.json, then reload the plugin. Everything else is preference/user customisation.

Q: My bots disappear or don't move.
A: Ensure that Rust, uMod/Oxide and BotSpawn are up to date.Type the following into console as separate commands, and note the returned values: nav_grid, nav_disable, ai_dormant.
The defaults should be False, False, False. (Apr 5th, '18).
If any of them is incorrect you'll need to declare the correct value in your startup script, observing the correct syntax. ai_dormant can be set to your preference.
See performance below. Once done restart the server and repeat the first steps for confirmation.
If they still return incorrect values, double check that you don't have multiple declarations, then contact your host to see if they are overriding.
It's possible that some belt items and some weapon skins may caused the bots to stop responding.
Try plain weapons-only in the belt to troubleshoot.
Failing all of that, try a different location.
Certain terrain still causes issues for bot spawning.

Q: Performance sucks.
A: On Apr 5th default for ai_dormant became false.
This means that bots are always navigating and seeking targets, even if there's no one there to see them (putting to rest the age-old philosophical debate).
Try setting 'ai_dormant True' then reload BotSpawn to see if this helps your FPS.
If it does but you would like to modify the dormancy range, you can specify 'ai_to_player_distance_wakeup_range X'. The default is 160m.
Failing that, please reduce the number of bots.
If you are having performance issues with sensible numbers and have observed the above, please let me know.

Q: My bots won't die?!
A: Make sure Godmode permissions allow you to do damage.
A: Same for vanish ^.
A: If you're running a PVE server, use a PVE plugin which allows you to alter its settings for NPCPlayers. Example TruePVE config, with thanks.

Q: I take damage when attacking my bots.
A: This can also be cause by server, or plugin, PVE settings.

Q: Will X kill my bots?
A: Radiation, drowning, falling, and helicopters will not kill your bots. Turret targeting bots can be toggled. Bradley targeting bots can be toggled. Fire (campfires etc) will kill your bots. Damage from barbs, cacti etc will kill your bots, but can be prevented with the 'Pve_Safe' config option set to true.

Q: What weapons can my bots use?
A: I recommend sticking to basic bullet-weapons, hand tools and melee weapons. Some weapons may work better than others. Some weapon skins have been known to cause issues and errors. Please try plain weapons if you're having problems. Scientists are not optimised to use melee, only. At least one projectile weapon should be given.

Q: Can I have custom profile locations?
A: Yes. Your custom locations are stored in data/BotSpawn.json. Use chat command /botspawn add NewNameHere to create a profile at your present location.

Q: Can I have specific custom spawn points? (underground, etc)
A: Not right now. Sorry.

Q: What about a map-wide or biome-wide population?
A: There are four default profiles, covering the four map biomes.

Q: Can I spawn bots at airdrops.
A: Yes. Airdrop option spawns bots at server drops. Spawn at user-supply call is an additional option.

Q: My bot kits aren't working.
A: Console will report if your kit does not exist, or if there is no active weapon there. Please redeem the kit yourself to an empty inventory, to ensure that you remember to put items in it! If it's empty, kit yourself out the way you want the kit to be then type: /kit edit NameOfKit and /kit items.

Q: The firing rate is off. Bots fire slow/fast/too much/too little.
A: Fire rate is controlled by the Facepunch AI. It is whatever it is.

Q: How can I prove that bots have spawned? I can't find them.
A: Type bot.count into console to see the number of presently active bots. Respawn timer is taken into account so if you spawn one and kill him, bot.count will show 0 until respawn.

Q: bot.count console command shows that there are 0 bots.
A: Double check that at least one monument is set active:true in your config, and reload the plugin. Also, don't forget their respawn timer. Make sure they aren't all dead when you bot.count.

Q: I think you should add X new feature.
A: Thank you for the suggestion. If it hasn't already been mentioned on the main thread, please feel free to add it.I will keep a running to-do list on the overview.

Note: This AI is being actively developed and constantly updated by Facepunch.
Expect changes, improvements, or broken stuff with each Rust update.

    Download
    Donate
    9.9K downloads
    265 watchers

    botsainpcsimported