S&box Wiki



What are bots?

Bots are fake clients that can be added to a game, and take a normal player slot. Their input and behaviour can be coded like most other things in C#.

Default Bot

By default, the console command bot_add will add a bot that mimics another player's input. This command has some additional parameters you can use:

bot_add <clientIndex> <yawOffset> <forceCrouch>

clientIndex (def: 1) Which client to mimic.
yawOffset (def: 180) The bots yaw rotation relative to the target client.
forceCrouch (def: 0) Whether or not the bot is forced to crouch.

Custom Bots

To create a custom bot you need to first extend the Bot class, which has two important methods: Tick and BuildInput.


It's worth noting that the methods used below are only called server-side, unlike ordinary clients whose input is built client-side and sent to the server.

public class MyCustomBot : Bot { [AdminCmd( "bot_custom", Help = "Spawn my custom bot." )] internal static void SpawnCustomBot() { Host.AssertServer(); // Create an instance of your custom bot. _ = new MyCustomBot(); } public override void BuildInput( InputBuilder builder ) { // Here we can choose / modify the bot's input each tick. // We'll make them constantly attack by holding down the Attack1 button. builder.SetButton( InputButton.Attack1, true ); } public override void Tick() { // Here we can do something with the bot each tick. // Here we'll print our bot's name every tick. Log.Info( Client.Name ); } }


Each bot has a Client property referring to its underlying fake client. Every bot can have its own Pawn and otherwise do anything any other ordinary client could do.

Special Pages



Render Time: 53ms

DB GetPage 40
Generate Html 1
SaveChanges (1) 8
Render Body 0
Render Sidebar 1