foxBot! v1.8 (Changelog)
Turn spare SRB2 clients into cooperative AI bots.
- Revised AI based on clairebun's ExAI mod, with additional features and fixes
- Support for any combination of players and bots in multiplayer
- Predictive movement logic for more efficient following and enemy bopping
- Improved understanding of (vanilla) character abilities, shield abilities, and super forms
- Independent behavior for grabbing rings, monitors, etc. as appropriate
- Support for attacking objects or destructible walls their leader pushes against
- Spectator support for non-respawning game modes (can guide bots to next starpost when dead, etc.)
- Integration with rejointimeout to remain in the game as a bot after client disconnect
- Automatic control handoff between player and AI based on input (like Tails w/ Player 2 input)
- Option to disable AI entirely for an experience similar to FuriousFox's ClassicCoop mod
- ... and more! Give them a shot, they may surprise you :)
Use addbot <skin> <color> to add bots into the game, and removebot to remove them.
Alternatively, use setbot to turn yourself into a bot, which will allow an AI to take over while AFK.
Most commands are available in splitscreen by appending "2" - addbot2, setbot2, etc.
It's also possible to use extra SRB2 client instances as bots. For example:
srb2win.exe -config config-bot.cfg -connect localhost
This method provides some advantages, such as the ability to take direct control of the bot if needed, use the in-game menus to configure its name / skin / etc., or send chat messages from it to feign sentience.
To configure multiple bots in this way, simply specify a unique .cfg file for each bot.
foxBot should be compatible with most coop mods, but currently only understands vanilla characters and shields.
It's recommended to set ai_statmode 3 when using any mod that also syncs rings and lives.
For example, the following settings are recommended for Combi: ai_statmode 3; ai_telemode 64
It's also recommended to load foxBot first, in case other mods are also using the PreThinkFrame hook to read or modify player input.
This will allow them to accurately read or modify AI input as well.
Use bothelp to display this section in-game at any time.
SP / MP Server Admin:
ai_sys- Enable/Disable AIai_ignore- Ignore targets? (1 = enemies, 2 = rings / monitors, 3 = all)ai_seekdist- Distance to seek enemies, rings, etc.ai_catchup- Allow AI catchup boost?
MP Server Admin:
ai_keepdisconnected- Allow AI to remain after client disconnect?- Note:
rejointimeoutmust also be > 0 for this to work!
- Note:
ai_defaultleader- Default leader for new clients (-1 = off, 32 = random)ai_maxbots- Maximum number of added bots per playerai_reserveslot- Reserve a player slot for joining players?ai_hurtmode- Allow AI to get hurt? (1 = shield loss, 2 = ring loss)ai_statmode- Allow AI individual stats? (1 = rings, 2 = lives, 3 = both)ai_telemode- Override AI teleport behavior w/ button press? (64 = fire, 1024 = toss flag, 4096 = alt fire, etc.)ai_lifehack- Work around 2P/MP bot bugs with lives / spheres?
SP / MP Client:
ai_debug- Draw detailed debug info to HUD? (-1 = off)ai_showhud- Draw basic bot info to HUD?ai_controls- Use weapon keys to swap / cycle bots?listbots- List active bots and playerssetbot <leader>- Followleaderas bot (-1 = stop)<bot>- Optionally specifybotto set
addbot <skin> <color> <name>- Add bot byskinetc.<type>- Optionally specify bottype(0 = player, 1 = sp, 3 = mp)
alterbot <bot> <skin> <color>- Alterbot'sskinetc.removebot <bot>- Removebotautobot- Setup player / bot from P1 / P2 options (defaultskin etc.)<type>- Optionally specify bottype(0 = player, 1 = sp, 3 = mp)
overrideaiability <jump> <spin>- Override ability AI (-1 = reset / print ability list)<bot>- Optionally specifybotto override
