Jump to content

Botman server manager official support thread


Recommended Posts

  • 2 months later...

A20 arrives in a few days.  I am expecting that the bot will be compatible with A20.  The Pimps don't release new alphas to server managers for advance testing so I will only be able to test when it lands.  If there are any breaking changes (and it doesn't look like there are), it will only take me an hour or so to test and fix them.  For my timezone, I am usually awake just a few hours after release, but regardless any updates from me will be released the same day as A20 and not long after it.  I will also release the Botman mod for A20 as it will need to be built using the updated server dlls.  Initially I probably won't include Alloc's mod in the Botman mod as he typically updates when new alphas go stable.


A20 will be experimental on Monday and from their release notes you will need to do the following or have a ton of issues..  Alpha 20 is not compatible with previous Alpha worlds or save game data. New Pregen-Maps have been created and can be used. We also advise that you delete the 7 Days save Game data folder before playing.


So if you try to keep maps etc and stuff breaks constantly, the bot isn't responsible for those issues


Link to comment
Share on other sites

I mostly post in my Botmanhosting Discord group 



For anyone who doesn't look there, the Botman mod is not yet compatible with A20.  The bot isn't either but I am well through the work converting the code.  Already the bot is working on my dev server and I am mainly tracking down and converting anything missed in the main sweeps.


I think I am more than 80% finished and hope to have an A20 bot available for live testing today.




Link to comment
Share on other sites


I have released the a20 bot to the a20testing code branch.  I have a few more bugs at the moment and you will need my help to update your bot.  After I have fixed the remaining bugs, the update process will run a lot smoother.  The main issue is the reset bot command isn't working properly so information from the previous world is sticking around.  I will fix that bug today along with a few other important bugs.  The bot is working on A20 but the Botman mod is not compatible yet.  I will work on updating that once these bot bugs are sorted as the bot will work perfectly fine with Alloc's mod and no Botman mod, but you will not be able to hide commands from the chat.

Link to comment
Share on other sites

The conversion of the bot for compatibility with A20 is now complete.  If there are any bugs or bits missed in the conversion, they are most likely minor.  Currently all commands and features in the bot are working except for any that require the Botman mod as that has yet to be made compatible.  I will be starting that work in a day or two after I have mostly finished assisting people with updating their bot, and some new bots.


To update your bot to a20 you need to tell the bot to use the a20 code branch.  You can do that 3 ways. 

In game you can tell it /set update branch a20 then tell the bot /update code.


From the panel you can click on the dashboard, click on your server, then from the Server Setup dropdown, click on Bot Connection.  Edit the update branch to a20 and click Submit.


From The Lounge type cmd /set update branch a20, then type update code.

If you are unable to get your bot to update for some reason, or you encounter other issues such as not being able to reset the bot you can message me directly on Discord and I am happy to take a look at it for you.  I am smegzor#9806  If you join my Botmanhosting Discord group, you will not need to send me a friend request.



Link to comment
Share on other sites

I have released another bugfix update to the A20 bot which fixes several annoyances.  Here is a changelog from the last several bot updates..

Fixed bug in function that tells the bot who is an admin.

Changed command permissions on the various bot reset commands to allow them to be used from The Lounge.  Also improved the command feedback and changed the permissions of the /yes command to allow its use from The Lounge.


Resetting the bot is working again.


Fixed 'bug' that was preventing the bot's reboot countdowns and some other in game messages from being seen from The Lounge.


Extended the effects of the command '/set bot quiet' so that it also stops the bot giving pvp commentaries.


Added a new Easter Egg somewhere.


Fixed issue where the bot would fail to recognise that you are an admin when commanding the bot from The Lounge.


Removed an annoying automatic bot restart that would trigger after map corruption which caused the bot to restart itself endlessly.  On the plus side that fault confirmed that the bot can detect when Alloc's API is non-functional and the bot will automatically switch to telnet if available.


If the server reports a corrupt region file, the bot sends that information to the alerts channel in The Lounge.


Fixed an issue in the bot's core that would cause some broken in game commands due to wrongly cast numeric.


The bot is much better at processing the admin list regardless of Steam ID or EOS ID.  If an admin is recorded in the XML with only an EOS ID and the admin has never joined the server, they won't yet have a Steam ID.  In this case the bot records them but when asked who the admins are, it will only list admins that have a Steam ID recorded.

Link to comment
Share on other sites

  • 2 weeks later...
  • 3 weeks later...

I have released a bugfix update to the A20 bot.  Here is the changelog..


Minor code changes to ensure the crossplatform id (which I call userID) is always present even if it is an empty string as it causes problems if it is completely missing since it is used everywhere.

Alloc's API currently does not include the crossplatform id so the bot sends the lp console command every minute as well as when the bot starts up to ensure that the bot has the id for all players currently on the server.

Fixed some potential faults in some of the lounge commands when data is missing that the bot tries to report on.

Fixed the claims command in The Lounge.

Fixed the lounge command list bases and also added a new variant, list bases {x} {z} range {distance} eg list bases -100 50 range 20.  It will list only the bases within the defined area.

Added a new lounge command 'whos' which is a much more compact version of the who command.  It just lists the steam id, name and crossplatform id of the players currently on the server.

Also added the new lounge command 'whom' which is a customisable version of the who command.  Here is it's command help.

Custom who command help:
List players online right now and specify what you want included.
eg. whom level score zeds.
Game id, steam, name, and EOS id are always included.
To use, type whom followed by any of the following list..
group, rank, level, score, zombies, playerkills, deaths, region, ping, hacker, location, coords

Fixed an issue that caused the bot to fail to properly install the new scripts from bot updates.  

Fixed the code that records and reports when a player leaves the server.  It is properly reporting them to The Lounge again.

Fixed an issue in the chat command /claims.  It wasn't able to report any that had no known owner.

Fixed the /setbase command so that specifying a base number is honoured by the bot.  Now you can totally have a base number 7 even if you are only allowed 1 base.  This is mainly useful for filling holes in your list of bases if you delete one in the middle.

Link to comment
Share on other sites

  • 4 weeks later...

I have released a bot update to the A20 code branch.  Here is what's new..


If a bot command is missing from the command help table when someone tries to use it, the bot will automatically rebuild the command help and instruct the player to repeat their command by just typing /

Fixed some rogue pm's that were somehow STILL using steam id instead of the new cross-platform id.

Added lounge (irc) command..

Command: list help command {keyword}
List all matching help commands from the bot's help commands table for use in changing the minimum access level required to use the command.

Added lounge command..

Command: set help command {keyword} number {number from list} access {new minimum access level. valid range (0-99) }
Set the minimum access level of a help command after using the command list help command {keyword}.
The list command gives you a numbered list. Using that number and THE SAME keyword you can change the access level of a previously listed command.
If you don't use the exact same keyword as before, you risk changing the access level of some other command which will have unintended consequences.

Fixed bug in lounge command 'list bases'

Made some adjustments to the telnet parser to try to cope better if the server is spamming certain errors.

Added call to verify command access for almost all of the info commands so that they will honour changes to their command access level.

Fixed bug in location random teleport selector that prevented location teleports working that had any random spawns defined.

The /pack command will no longer send players to the top of structures or to the highest ground level above the player. Instead it will attempt to send the player to their exact death coordinate.

Link to comment
Share on other sites

  • 2 months later...

I am looking for a program that will allow players to /setbase  and tele back to it at will I really don't need much more than that.  Is this what i am looking for or is there some other smaller mod/install that I can get? 

Link to comment
Share on other sites

On 4/19/2022 at 4:16 PM, Snowdog said:

I am looking for a program that will allow players to /setbase  and tele back to it at will I really don't need much more than that.  Is this what i am looking for or is there some other smaller mod/install that I can get? 

If that's all you want, you would probably do good with ServerTools. It's free and has the basics.


(Not to knock on Botman, it's a good tool too!)

Link to comment
Share on other sites

  • 4 weeks later...

Botman does not honor the UserDataFolder setting properly.

When using a UserDataFolder outside of the game installation folder botman creates an erroneous Mods folder inside the game installation folder.

This causes issues with double loading of mods which I've reported as a bug to TFP.

Basically, when a UserDataFolder is set mods should honor it and create their config files etc in the UserDataFolder location rather than the game installation folder.


And here of course I'm talking about the botman mod rather than the mudlet based bot.  Also I'm running the server on Linux, so I'm not sure if it's only a problem on Linux.


I've had a quick look at the source and the problem may stem from here, https://github.com/MatthewDwyer/Botman_Mod_A20/blob/main/ModBase/Source/API.cs#L11, which is where the mod tries to get the correct location of the mods folder.

Edited by pharrisee (see edit history)
Link to comment
Share on other sites

  • 2 weeks later...

I have released Botman mod A20_7 with support for the new Mod folder location.  The Botman mod will automatically detect and save to it and will only save to the Mods folder in the game folder if there is no Mods folder found outside of that.  Thanks to O C (Server Tools dev) for sharing the code snippet needed to grab the new folder location. :D


Also the Botman mod now lives on my new file server and can be downloaded here   https://files.botman.nz/releases/botman/a20/Botman_Mod_A20.zip


You can also grab older versions etc   https://files.botman.nz/

Edited by Smegzor (see edit history)
Link to comment
Share on other sites

  • 1 month later...

A20 changelog  25 July 2022


IT IS FINALLY HERE! :D The a20testing code has now replaced the a20 code branch. :D:D:D😮

There are many bug fixes big and small and many aren't worth writing about (also they are hard to track down in amongst all the other code changes.  Here are the main ones.)

Replaced steam id with user id throughout the bot code.  Many bot messages (pm's) that were not working before are now fixed.

Changed steam id from a number to a string so it can store a steam id or gamepass id and any future platform id's

I had to alter the internal index of player groups to get around a quirk of Lua when handling tables that are indexed with a number.  It would mess up constantly until I changed the index by adding a G to the number so that it is no longer numeric.  That was a fun bug.

Another player group bug that I fixed was caused by the fact that Lua passes tables to variables by reference, not by value so I was having trouble with unintended changes to values in the parent table.  This was fixed by adding a function that walks the table copying the value pairs to a temporary table.

Removed hard coded references to the "Steam" platform so that functions for stuff like setting player chat colour etc will work for XBox players as well.

Fixed bug in code responsible for live table and field alterations to the database.  It was running the same updates every bot startup instead of once only. There were also some changes and a few fields missing during today's live update test so those had to be added as well.

Donors are (or should be) automatically expiring when their donor period ends and they should be losing their extra bases and waypoints, donor colours etc.  This may need additional testing and fixes on live servers as I have had reports that it still is not working properly. Of course it works perfectly in testing.

Fixed bug in the gimme arena that prevented it spawning zombies - Boo!

The bot was not always able to automatically rejoin the main irc channel if it fell off.

If the bot detects a nullref it will scan the live entities list (once) and will automatically despawn a few that are known to cause nullrefs such as template entities and a few others. If the nullrefs continue, it won't scan again for several minutes to avoid generating a ton of command spam. It does nothing for other causes of nullrefs.
In testing this fixed the nullref when an entity was the cause within 2 seconds of the nullref appearing.

Added support for XBox (Gamepass) players.

Rolling announcements now support daily server time specific announcements.  These trigger separately from the rolling announcements and are not included in the normal (untimed) rolling announcements, but both are managed with the same commands.

The bot's automatic switching from API mode to telnet mode should not switch to telnet mode unnecessarily (at least not nearly as often).  The code that checks the status of the API has been changed so it takes a full hour of having API not working while telnet still works before the bot will switch to telnet mode. If the bot has been told to never use telnet, it will instead message an alert to The Lounge that it is not able to communicate with the server and will suggest fixes.

The code for removing a donor has been moved to a dedicated function which is used by several commands and other parts of the bot.  This should ensure a consistent result no matter where or how a donor is removed. Also the application of donor colours, name prefixes etc should be working properly.

Improved the function that determines if a player is an admin or not and replaced other code with calls to that function so that the admin test is consistent across the bot.

Mostly cosmetic improvements to the lounge command, info.

Also tidied up the output of the lounge command, staff.

Cosmetic improvement to the output of the lounge command, who.

Cosmetic improvement to the output of the lounge command, whos.

Many and various minor code improvements were done to the bot's chat parser.  There is always room for more improvement there.

Added gimme cooldown to the player groups as it was accidentally left out.

New commands:
/empty group {group number or name}
This command allows you to remove all members of a player group in a single command.

/move group members {group number or name} to {group number or name}
This command allows you to move all members of a player group to another group in a single command.

/set max admin level {number from 2 to 89}
This command was added so that servers with custom player levels and/or players given levels in the admins xml file won't clash with the levels used for actual admins (which are also customisable).

/allow xbox (or /disallow xbox)
This command was added so you can prevent XBox players joining your server. If you do not allow XBox players on your server, the bot will kick them as soon as they connect.

New lounge command, reload admins.

Many of the changes for XBox support required changes to thousands of lines of code and changes to lookup and other functions that handle id's.  This was literally months of work.  Thank you Pimps, thank you very very much. 😠

Please report bugs or other issues as soon as you can either by PM'ing me in Discord (preferred) or by posting in the Botmanhosting Discord group.  I can be emailed at [email protected]

Link to comment
Share on other sites

  • 4 weeks later...

An updated version of the Botman mod was released recently for compatibility with A20.6  Older releases will still work but you may see a console error mentioning the brender command.  In A20.6 there was a change to one of the server functions that the Botman mod calls.  The only botman mod console command that uses it is bm-pexport.


The console error should not cause any problems other than showing up in the logs.


The latest Botman mod is version A20_v9_for_A20.6+

You can always download the latest Botman mod here..  https://files.botman.nz/

Edited by Smegzor (see edit history)
Link to comment
Share on other sites

  • 2 weeks later...

I have re-released the Botman mod (same version as above).  The only change is that for several months the zip did not contain a Mods folder and I have fixed that in this release.  This was done to make it easier for game hosts to automatically have the latest version of my mod as they all expect the zip to include a Mods folder.  If you already have version A20_v9_for_A20.6+ you don't need to do anything.


Also if you want to keep up to date with news and other posts about my bot you should join the Botmanhosting Discord group as that is where I am most active with posts.


Here is an invite..  https://discord.gg/MUaHTjJ

Link to comment
Share on other sites

  • 2 weeks later...

I have released an update to the a20 code branch.  Here is the changelog..


New command /play as player


Works like /test as player but lasts for 1 year or until the command '/restore admin' is used. While the new command is in effect, the admin player still has access to all the admin commands that their admin level allowed. As far as the server is concerned they are not admin but the bot remembers. Due to this change, if you want to remove an admin you must use the /admin remove command. The bot will automatically add admins via the console command admin list but it will not automatically remove them from its own internal admin list if they are removed from the server's admin list.


There currently is an issue with the /play as player command.  When used in game it is not able to remove the admin from the admin list if they are on the server at the time.  If it is used via The Lounge while the admin is not on the server, it works properly.


The bot will not arrest or otherwise punish an admin while using the /play as player feature since it knows they are still an admin so you can have admin items on you etc.


New command /reset chunk


/reset chunk
/reset chunk wide {number}
/reset chunk wide {number} player {player}
/reset chunk {player}
Reset chunks at your position or where another player is standing.
When used with a player name, the player must be on the server.
When used on yourself, you must be in-game.
ACL: 0 restricted to server owners, in-game and IRC


You can finally reset chunks using a chat command rather than needing to resort to the console command. The width setting means you don't need to mark a start and end point. It can be used via The Lounge but only when a player is specified and the player must be on the server at the time.


Player lookups are now aware of the Steam_ and XBL_ prefix so you no longer need to strip those out when doing lookups on steam id or xbox id.


Fixed bug in /bases command that prevented it listing the nearby bases.


The command /save {name}, used for saving a custom prefab now uses the Botman mod's bm-pexport console command instead of the Pimps own console command. This fixes the issue where freshly saved prefabs are unknown to the server until after the next reboot. Now those prefabs are available to spawn immediately.

Link to comment
Share on other sites

  • 1 month later...
  • 7 months later...

Hi guys!


I have released an updated Botman mod for A21 and also a new bot code branch called a21.


You can find the new Botman mod here  https://files.botman.nz/releases/botman/a21/Botman_Mod_A21.zip

Apologies for the out of date ssl certificate on that url.  Hoping to get that fixed asap.


Several game hosts also have the Botman mod available in their mod manager page.  I have reached out to the 4 I am aware of and it should be available there soon if not now.


To command your bot to switch to the a21 code branch use the commands  /set update branch a21, then tell it /update code


As A21 is new and this is just the first A21 release of my Botman mod and bot code you should expect to encounter issues.  If possible please go to my Botmanhosting Discord group if you want to report any bugs you find.  These days Discord is my main platform for keeping you guys informed about bot stuff.


Here is an invite if you need it   https://discord.gg/MUaHTjJ


Note that at the moment it appears that with the A21 changes to Alloc's web API, the API appears to be broken.  Until I am able to use it again I have temporarily blocked the ability to set the bot into API mode.  If you do manage to get the bot into API mode it will not be able to respond in in-game chat as the API is used for that.  You can fix it by restarting your bot or you can tell it /use telnet


Once the A21 changes have settled down I will resume working on new stuff.  I have a half finished Windows port of the bot to finish which will make self hosting the bot a breeze.



Link to comment
Share on other sites

  • 1 month later...

Hi guys!


I am just about finished re-coding how the bot communicates with Alloc's web API.  His latest update uses a more secure way to authenticate.  That part is sorted but I still need to make changes to how I process the API's responses while still supporting the previous method.  The bot will use the old method or the new method automatically depending on the version of Alloc's webserver as reported by the server.


These changes should be finished and tested by the end of the day.


Also note that in the latest game update The Pimps removed the ability to set trader protection on blocks.  This change breaks block protection for all server managers not just mine.  Hopefully the Pimps revert that change or provide a new way to set block protection but I am not expecting that they will do either.


At some stage I will remove the trader protection commands from the bot.  I am just waiting to see if they restore that ability.


While the Botman mod is no longer able to make blocks unbreakable, you can at least have the bot despawn zombies in and around anything you want.  There are 2 methods available that despawn zeds under different circumstances.  The Botman mod has bm-sanctuary which you can enable and use (console commands) to set an area of any size so that all zombies that spawn within it are immediately despawned.  It does not however currently despawn zombies that walk into the sanctuary area.  I hope to change that soon but need to add a timer to the mod and timed events (to rescan for zeds in sanctuaries etc).


The other method of despawning zombies requires the bot (not the mod).  You can set a location as safe with for example /location safe lobby.  To undo that use /location unsafe lobby.  The bot will scan for any hostile entities within the location every 10 seconds if a player is in the location.  If no players are there, it will not despawn zombies there.  Additionally the scan will only run if a player is in a location that is set to safe.


Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Create New...