Page 1 of 3

[FINAL] TDBots: The fast-performing bots v26c (23/4/2020)

Posted: Thu May 02, 2019 7:51 am
TDBots are another bot mod that puts a computer-controlled opponent/friend into ZDoom, GZDoom, LZDoom, Zandronum, Eternity and MBF-compatible ports (including PrBoom). (They are also compatible with the respective Delta-Touch versions of these sourceports!) Eternity and MBF versions are now available in the "Other Versions" spoiler.

What sets it apart from all other external bot mods (Loaded by a .pk3 instead of custom .exe), is that they are handled far more like real players. For example, in Deathmatch you can frag them and actually get it counted as a frag. You can spectate from their point of view, they can run out of ammo, they can use the vast majority of items (health, ammo, armor, weapons, Heretic/Hexen inventory items), they can chat, get damaged by damaging floors, activate walkover lines, can use skins and custom colors, learn the map from your exploration, play Doom, Heretic, Hexen, Chex Quest and Strife, and are far less stupid than the built-in bots! Did i mention there's far less eating wall and more action with these bots?

As it's licensed under the MIT license, you can use it in your own projects too!

DOWNLOAD! (ZDoom, GZDoom and QZDoom version)

DOWNLOAD! (Zandronum version)

Bot config file (REQUIRED): UNZIP DIRECTLY INTO YOUR (G)ZDOOM DIRECTORY (Not needed for Zandronum) (UPDATED: 6/6/2019)

But, why? ZDoom and Zandronum have their own bots!
Well, this bot is actually quite different and is useful in it's own way compared to them, check out the features list!
Spoiler: Features (Open)
-They can chat! (Don't worry, it can be toggled via tdbots_chat 0, and they don't stop to do so!)
-Are about as skillful and machine-like as the ZDoomBots
-Difficulty can be customized for new or expert players
-Can learn the map's layout using your exploration
-Can play Doom, Heretic, Hexen, Strife and Chex Quest!
-They search the map for any helpful pickups they can find (Y'know, like the ZCajun bots did before they broke)
-Has a Waypointing system! (Ahh, the Quake flashbacks!)
-Waypoints can easily be stored into separate text files
-Isn't a modified monster, but really a player!
-All of the behavior is identical to a real player (Except for movement, aiming and some input handling)
-Can open doors, hit switches, action lifts, exit levels, activate walkover lines and get teleported by player-activated lines!
(note: may not hit the use key in Zandronum, engine limitation)
-Picks up any item, even weapons (But weapons need a minimal bit of editing to work)
-Extremely easy to make compatible with any mod
-Easily scriptable mod-side
-Compatible out-of-the-box with all playerclasses
-Can use skins and custom colors
-Can play Cooperative, Deathmatch and Team Deathmatch (And any gamemode but not as well)
-Roams around maps better than the ZCajun bots
-Doesn't shoot at walls (Unless the weapon fires very slowly, in which case it could possibly shoot at a wall)
-Is freaking fast! (Leaps and bounds faster in performance than the Zandronum bots, and noticeably faster than the ZDoom bots)

Make your own waypoints easily with node studio. Featuring point and click controls, you can make waypoints for most maps in just a matter of 2 to 15 minutes!
NOTE: To save waypoints, remember to use Notepad++ or something else, but not Windows' Notepad! Remember to disable line wrap too.
Spoiler: Usage guide (Open)

Installation for computers
If your sourceport has "ZDoom" in the name, you must download the bot config file
(which is on top of this post) and extract it on your sourceport folder. If done correctly
you should have a new "zcajun" folder on your sourceport folder, with a "bots.cfg" inside.
After doing this, you can continue with the rest of the guide normally. Remember this
isn't needed if your sourceport is Zandronum!

Simply put the .pk3 file into your ZDoom/GZDoom/QZDoom/Zandronum directory,
then drag and drop the .pk3 into your source-port executable of choice.

Installation for Android (Delta-Touch)
(Doom-Touch probably works too, but you need to use the Zandronum version
of the TDBots, and I don't know where the zcajun file goes)
(The "Freedoom" app on the playstore has been completely untested, mileage may vary)

First, choose which sourceport are you gonna use. If it's Zandronum, just put the
TDBots for Zandronum .pk3 (Called something like TDBotsZan.pk3) into the
OpenTouch/Delta/Mods directory on your SD card or internal phone memory, and then
load it like you would with any other mod with the Delta-Touch launcher.

If it's GZDoom and/or LZDoom, you will need to also download the TDBots config file,
and the TDBots for ZDoom .pk3 (Called something like TDBots.pk3), then navigate into
the OpenTouch/Delta/Mods directory and drop the .pk3 there. Go back to
OpenTouch/Delta and drop the contents of the file in the folder of
your sourceport of choice (If it's LZDoom, then it would be
OpenTouch/Delta/LZDoom/zcajun/bots.cfg), and finally load up the .pk3 as a mod
in your sourceport of choice.

Common things to all platforms
ZDoom 2.8.1, GZDoom 1.8.6 and Zandronum 3.0 are the minimum required
versions for the TDBots to work properly. Do note that for GZDoom 1.8.6 you
need to use the Zandronum version instead, unless you are using GZDoom 2.1
or newer, in which case the normal version works fine.

Games supported by the TDBots are: Doom 1, Doom 2, TNT Evilution and
Plutonia, Heretic, Hexen, Chex Quest, and Strife.

It can also support a few select mods, via usage of compatibility patches
located in the forum post you downloaded this from.

Bot Management

Opening up the TDBots menu is easy on PC, just go into the options menu,
scroll all the way down and you should see 3 TDBots binds, which say:
"Open TDBots menu"
"Bot teleport call"
"Change nodetype"
Just bind the "Open TDBots menu" key to any key you want. I usually use "O"
so you can try that too. Now, every time you press that key in-game, it'll open
up the TDBot options and management menu, which is used the same way as
all the other ZDoom/Zandronum menus, just pay attention to the description of
each option.

It's not as easy in Delta-Touch, but I'll try to explain. You have to click the cog
icon at the top of your screen when in a level, and then select the sliders icon
that just appeared under it. Look for an option that says "show/hide buttons"
and once you press that, scroll down and search for the "show custom" button
and enable it. A new button has appeared, so close the settings windows and
move it wherever you want. Now, do the same the guide says, but when you
are asked to press a key, you will see 6 or 8 new buttons, press any one of them
and once you press that button in-game (They will appear after pressing the new
button we unhid earlier), the menu will open up.

Bot Management

To add a bot into the game, type into the console "addbot" (you can do it
with or without quotes, it doesn't matter)

To remove all bots, type into the console "removeallbots".
In Zandronum, you can remove one bot at a time if you want, type in "removebot botname"
where botname is the name of the bot you want to remove.

Loading Waypoints

Just type in the console "exec nameoffile" including the extension, for the officially made nodelists,
the extension is .nod. And then go into the TDBots menu and make sure "use waypoints" is ON.

Making Waypoints

Sorry, i haven't made a full guide yet, but you can read the waypointing guide spoiler on this post and use
Node Studio to make nodes.

Other things

One command you can use, is "tdbots_oldschooldm".
This command sets all dmflags and compatflags for a oldschool Vanilla Doom-like experience.
For instance, it disables freelook, jumping, crouching, and makes actors infinitely tall. It also changes other
things, but you can find those on your own :)
Spoiler: Other versions (Open)
This version was made to showcase that the TDBots could have been possible back in the Skulltag era. Type "tdbots_help" in the console for help with CVARs.
Requires Skulltag 0.98d

(Note: the following two versions are more basic compared to the ZDoom-compatible versions, and lack many features. Still pretty fun to play with)
To add bots in these, you need to pass the command line parameter -dogs <amount of bots>
Or in Eternity, just go to the options menu and change the helper dog amount.
DOWNLOAD! (Eternity version)

DOWNLOAD! (MBF-compat version)
Spoiler: Changelog (Open)
Date format is DD/MM/YYYY
v26c (23/4/2020) THE CTF UPDATE, WELL, KIND OF
-Map learning now works on all competitive gamemodes, instead of only Deathmatch

-Fixed nodelist info being displayed multiple times in certain cases

v26b (16/4/2020) THE YEAH SPREAD IT UPDATE
-Doom's Plasma Rifle, Chex's Plasma Zorcher and Heretic's Skull Rod now have
BotForceInacc, which should help the bots better use the weapons.
(Thanks to sleep on the Zandro forums for the suggestion)

v26 (3/4/2020) THE BIG BRAIN UPDATE
-Bot learning is better now, they will begin to use an incomplete version of
the info 30 seconds into the match, and will update their knowledge when at 1
minute, update again at 1 minute 30 seconds, and one last time at 2 minutes.
This improves their ability to learn larger maps and also makes them learn
noticeably faster.

-"Use Waypoints" no longer needs to be enabled for "learn the map from player".

-ZDoom now uses the same mechanism as Zandronum for it's waypoint following.
Not sure if I'll keep this, but I chose this since it's potentially more
efficient (This mechanism only iterates through the waypoints, but ZDoom's
iterates through every actor every tic) and more customizable.
(NOTE: Item searching is left untouched)

-Removed the option for accurate waypoint following. It's always activated
now as performance difference is negligible, and some people that didn't
change the option would get a very bad first impression otherwise.

v25 (31/3/2020) THE "I'M LEARNING" UPDATE
-New option: Learn map from player. When enabled, the TDBots will resort to
learning the map from the player's exploration of it if there's no loaded
waypoint file for the current map. Works in Zandronum as well!
(NOTE: Use Waypoints must be ON for this to work, and this only takes
effect in Deathmatch and competitive modes!)

-New option: Teleport cooldown time. This is the amount of time in seconds
before you can call a bot to your location again. Minimum delay is 5
seconds, and max is 120 seconds (4 minutes).

-Waypoints should REALLY be invisible now. Sorry, I don't know how I keep
messing this up!

-Waypoints could spawn infinite copies of themselves in Zandronum, causing
massive slowdown if a waypoint was unreachable, this update fixes that.
(About time wasn't it?!)

v23b (18/2/2020) THE OOPS I GOOFED UP HOTFIX
-Waypoints were visible in the previous version, by accident. Now
they are invisible again (as intended)

-Added a new waypoint list version (v1, last version is considered v0)
Improvement: Now can specify waypoint type (Normal, Jump, Precision).

-Added a new waypoint type: Precision. This waypoint type means that the bot
should not try to dodge attacks after touching a waypoint of this type, and
this effect is reversed once it touches a waypoint of any other type. Useful
for places with little walking room where falling down is very dangerous,
or otherwise undesirable.

-Jump Waypoint now works properly and takes the player's JumpZ into account.

-Fixed nodelist detection, now if the CVAR is not defined, no "Nodes found"
message will be displayed.

-Bots will no longer strafe when following nodes in Zandronum (It's unnecessary
and just causes trouble, and this didn't happen in ZDoom anyways)

-The "start deathmatch on map" options will now automatically close the menu
once used.

-Added full waypoint support for Zandronum. Yes, this is not a joke and it's finally here.
It's a lil' bit buggy though, bots may deviate slightly by strafing while following the nodes, and the
way they follow them is not 100% identical to the ZDoom version. It is, however, close enough to
allow mostly correct operation of the nodes.

-Node Studio's editor is no longer given with IDKFA (It didn't pose any real problems, but just in case)

v21 (11/2/2020) FAIRLY COLD FIX
-Fixed player not automatically switching to starting weapon on map start if
"Switch on Pickup" was disabled.

-Fixed various bugs with NodeStudio. In particular, you can now make nodes for
Hexen/UDMF-format maps with ACS without any errors.

v20 "Final" (21/1/2020) HOTFIX
-Fixed Rocket Arena not working in Hexen and Skulltag maps.

-Hexen support has been perfected, all weapons display correct animations,
all weapons are given in RA, and are all in their proper weapon slots now.

v20 Release Candidate 1 (20/1/2020) THE ROCKET ARENA UPDATE
-Added Rocket Arena mode. (Also added a way to set up weapon and ammo lists for
mods that want better support for this mode, but it's not 100% required.
Info on TO_MODDERS.txt as always).

-Added Doom 64: Retribution v1.5 compatibility patch.

-Reorganized all code in multiple ACS files instead of everything being
on TDBOTSMAIN.acs. All that code compiles as TDB_Main.o.

-Fixed game identification breaking after one level of co-op.

-Fixed bots facing downwards while playing co-op.

-Very minor performance optimizations to bot spawning code. (Yes, again)

v19 (4/11/2019) THE MAPPER'S UPDATE
-Nodes can now be loaded from a LANGUAGE lump, so mappers can easily include
TDBots nodes into their map without having to place them in the map itself
or include a .nod file along with the map.
NOTE: User-loaded nodes have priority over LANGUAGE-loaded nodes!
Uploaded an example for this in the waypoint files spoiler.

-Added weapon flag "BotForceInacc", makes bots simulate refire spread.
Normally bots are 100% accurate at all times with weapons that are only
inaccurate after the first shot, but this "fixes" that limitation.
Not very effective in ZDoom, only in Zandronum thanks to the ZCajun bots'
usual interference. If anyone has any .cfg file that can help disable their
behavior then that would be a great help.

-Easy mode is less easy. Of course it's still really easy but it shouldn't be
a cakewalk enabling easy mode without changing the reaction time anymore.

-Disabled "BotCloseRange" flag. Not ready for prime time yet.

-Updated TO_MODDERS.txt to reflect the changes in this version.

-"Nodes loaded" message won't be printed if no nodes are loaded for the
current map.

-Fixed Last Man Standing (Zandronum-only) compatibility.

-Fixed a few bugs with the bot teleport call mechanism. Still haven't gotten
the crash some people mention but i haven't been able to test much online.
Until that crash gets fixed, tdbots_allowteleport will default to 0.
(So please don't set tdbots_allowteleport to 1, to avoid a server crash)

-Fixed bug where tdbots_roamchat would still play the chat sound even if the
bot didn't say anything.

-Bot chat message color now changes with the msg3color CVAR.

-TDBots_NoAnimation should actually work now.
I named the flag "TDBots_NoAnimations" even though it's meant to be
written without the S. Oops!

-Skulltag patch should now work with modern GZDoom, also made the Minigun
properly inaccurate (With the "BotForceInacc" flag)

-Added a patch to forcibly disable animations. This is for people who want
to be able to gib TDBots, and also avoid deathsounds playing twice.

-Added compatibility patch for Brutal Doom v21. ONLY WORKS ON ZANDRONUM AND GZDOOM PRE-ZSCRIPT VERSIONS

-Added compatibility patch for Q. Also made to work with modern GZDoom.
(Q is a Quake-based gameplay mod with 3 different classes, try it out!)

-Added note about BFG SPAMMER being a joke skill, because my friends thought
it was a serious one and kept trying to beat the BFG-armed bots.
It was pretty funny though!

-Removed NStudio_PrintSaveCVAR command, since i already moved that function
over to the Weapon Zoom key.

-TDBots now have two new versions: Eternity and MBF-compatible. To enable
them in these sourceports, you can load the TDBots file for that port
and use the -dogs <amount of bots> parameter. Max is 3 bots.
In Eternity, they use the Plasma Rifle, Chaingun, Rocket Launcher, Shotgun,
Super Shotgun, BFG and the Pistol, all with accurate timings.
In MBF it's just Plasma Rifle, Shotgun and Chaingun due to limited state

-Added bot teleport calling. You can bind a key to do this in the
customize controls menu. When pressed, a random bot of whichever are
connected to the server will teleport to your location.
Takes a 30 second cooldown after every use, so be careful.

-tdbots_playerbot will now work even if tdbots_enable is 0. This means real
players can become TDBots while the rest of bots are still ZCajun.
Kinda fun that the hardest ZCajun bots stand no chance!

-Bots now use all Heretic and Hexen artifacts (except for the torch)

-Bots now use the Heretic gauntlets like a Melee weapon, not a long ranged one.

-Bots won't shoot allies in co-op anymore. Yes, for real this time!

-Doubled chance of bots kicking your ass.

-Merged Node Studio into main .pk3 file.
Start it with the "Start Nodestudio" option in the TDBots menu.

-Increased speed of bots (They were far too slow before, should now be accurate
to Doom now)

-Optimized bot respawning code. Should cause less stuttering with many bots.

-tdbots_chat should now work properly at all times (It's a serverside CVAR tho)

-New option: tdbots_roamchat. If 0, bots won't chat when doing nothing.

-Added a new global flag: TDBots_NoAnimation. If an actor with this name is
defined, the TDBots won't simulate animations. Fixes a bug in QCDE where
bots dropped armor shards twice.

-Added a new weapon flag: BotCloseRange. If the bot has this item, it will stay
within 256 units of it's target. Useful for Shotguns and the like.
Also applied to the supported IWAD weapons. Yay for intelligent Shotgun usage!

-Bots' chat color is now green, like the default color for chat messages.

-Fixed bugs with mods having messages replaced by "Time to rack up some frags!"

-Cleaned up ACS code. Thanks to darkmessenger84 for his contribution.
(which was actually for v14 but i got lazy, sorry :P )

-CVARINFO and DECORATE are now tidier, as well as the .pk3 structure.

-Node Studio: Exported node lists are now exported correctly,
no more unintended nodes at x:32760, y:32760.
Node downloads have been updated to reflect this.

-Node Studio: Removed XXXXNodes CVARs from CVARINFO. Everything is the same
but when you type MAP and press tab you shouldn't get a bunch of empty
nodelist names. (You will still get a few if a .nod file is loaded though)

v17 (26/8/2019) THE MODDER'S UPDATE
-Added support for custom class speeds, using the Accuracy property.
Base running Doom/Heretic/Hexen/Strife speed is 24 for reference.
-Added custom action support, more info in TO_MODDERS.txt of the .pk3.
Quite useful, as you can place altfires, reloading, item uses, special
weapon handling and other things easily.
-Changed bot strafing motion, now they do something closer to circle strafing.
-Bot speed is now consistent throughout all movements, meaning that strafing
isn't faster than moving forward.
-TDBOTSMAIN.acs is now shared between ZDoom and Zandronum. Basically there won't
be any more randomly missing features from the Zandronum version.
-Added the Node Studio. You can now make nodes directly from the game and save
them into your .ini (very limited space thanks to ZDoom's limitations)
or into an autoexec file (practially unlimited thankfully).
NOTE: This is on a separate .pk3 due to ACS string mix-up issues.

v16b (18/8/2019) THE RESPAWNING UPDATE (Zandronum-only)
-Bots should now respawn offline and online correctly.
-"DMFLAGS changed to" should only appear once or twice when playing online, instead of being spammed various times.

-Added options menu. Bind a key to it in the "customize controls" menu.
-Added difficulty presets.
-Added a new CVAR: tdbots_lessfov. If enabled, the bots will have a 120 degree field of view instead of 360 degrees.

v15 (21/7/2019) THE SPIT N' POLISH UPDATE
-Improved bot following, should not get stuck as much anymore.
-Fixed melee weapon handling, bots should no longer move extremely fast while melee-ing. (About time i fixed this one!)
-Fixed Strife compatibility, now fully works with no crashes and normal weapon switching.
-Fixed a Hexen bug where the Cleric's fire weapon would flicker.
-Fixed a Heretic bug with some of the powered up weapons.
-tdbots_weaponize now works with all supported IWADs.

v14b (24/6/2019) THE PERFORMANCE UPDATE (Zandronum-only)
-Bots now perform about 4-16x faster. On a Celeron 1.4GHz i can have 40 bots running around at about 50fps+ instead of less than 0fps with native Zandro bots.
-Bots now have the same names and colors as in the ZDoom bot config.

-Added tdbots_weaponize CVAR, the higher the value, the better
a weapon the bot will spawn with. It's random chance so even if you set it to 6 the bot won't have a BFG 100% of the time, but ocassionally
-Added tdbots_follow CVAR, if enabled, it makes the bots in co-op follow you (sometimes) around the map so you can more easily finish a map with a bot.
-Added QCDE compatibility patch

-Updated Bot config with many new names (32 now!) and changed many other names (specifically, the ones that weren't real names)
-Added a CVAR: tdbots_reactiontime, changes the bot's reaction time in tics. minimum is 0 tics, max is 70 tics (2 seconds)
-Bots now display a walking animation correctly
-Zandronum version is updated again

-Bots can now follow nodes/waypoints/whatever you wanna call them
-Added 2 types of nodes: Normal (walk) nodes (DoomED Number 2401) can be spawned via ACS Spawn, classname: TDBots_PathNode
-Second type of node: Jumping node (DoomED Number 2402) can be spawned via ACS Spawn, classname: TDBots_JumpNode
-Added CVAR: tdbots_usenodes which needs to be enabled so the bots correctly follow waypoints

-Bots now strafe like the DecoBots do (code by Gustavo, but adapted to this) allowing WAY better coop and invasion play, and better dodging of projectiles overall
-Fixed bot targeting issues in Coop (almost completely)
-Reverted bot aiming changes (Yeah they caused problems again)
-Zandronum bot chat is disabled and replaced by the TDBots chat
-Bots now retain their previous speed while firing
-Bots now finally back out correctly while using an explosive weapon

-Easy mode is way easier now
-Added Chex Quest support
-Added completely untested Strife support (I don't have the game and don't plan to get it so if anyone can provide some feedback it would be appreciated)
-Removed all Zandronum-exclusive hacks to fix a couple thousand bugs that thankfully no one noticed/reported
-Bot aiming is very slightly less precise (this is completely intentional)

-Added easy mode, which worsens the bot's aim a bit (CVAR: tdbots_easymode)
-Re-enabled tdbots_buff CVAR, which now works in Doom, Heretic and Hexen (This is forced on for Zandronum)
-Fixed a crashing issue related to multiple targets (Mostly a Zandronum crash, but it sometimes happened in ZDoom)
-Bots no longer turn in mid-air
-Finally an update for Zandronum too!

v8 (9/5/2019) THE RAVEN UPDATE
-Now compatible with Heretic and Hexen
-Bots will only search for health pickups if they are under 70% health
-Reordered bot item priorities, which goes like this: Weapons, Ammo, Misc. Items, Armor
-Bots will now wait 6 seconds after picking up an item to pick another one again
-CVAR tdbots_enable now works properly, for quick switching between the TDBots and ZCajun bots without restarting ZDoom.

-Bots have MUCH, MUCH better reaction time
-Bots now have a cooldown period before they can look for items again
-Bots will now strafe while firing in a less stupid way
-Bots will not avoid firing explosive weapons anymore and just back out always
-Added a 100% chance of getting your ass kicked
-Officially dropped Zandronum support (sorry, but i'm not going to hold back the possibilities just for Zandronum)

-Bots will now actively search for health, weapons and ammo (may not work with very old/hacky mods)
-Bots orient themselves better on big maps but may prefer item stashes on smaller ones
-Bots are less hesitant to fire rocket launchers on close quarters and will now back out 100% of the time
-Fixed melee weapon handling
HOTFIX: fixes the bot's twitchy aim introduced in this update

-Reverted code changes from v4
-Bots now have better aim and reaction time
-Bots will now navigate corridors much more consistently
-Bugfix related to animation that i honestly can't remember


-Shortened main bot think loop
-Bots won't stop firing until their target is dead or out of their field of view
-Fixed a couple bugs
-A regression that i can't seem to fix or find the reason to has been introduced.
Basically, the bot will occasionally aim off-target and for some reason all LOS checks still are on target
But the bullets and camera view definitely are off target and shaking.
You will know when this happens because the bot quickly flickers between two angles and misses most of it's bullets/projectiles
-Bots are more forgetful about their target, which actually doubles as an advantage as they will get out of
their range faster, increasing chances of survival. (Only like 70% of the time though)

v3 (2/5/2019) THE FRIENDS UPDATE
-Bots no longer shoot their friends in co-op or Team DM
-Owing to this change, Bots on the same team occasionally attack cooperatively
-Also owing to this change, Bots will no longer push their friends into danger
-Bots now handle dangerous situations with explosive weapons better
-Code is better commented now, for easier understanding
-Started very preliminary work on waypoints, disabled due to problems
-Bots can now drop down from ledges up to 1024 units high, so as to be able to follow you through Plutonia MAP02.

v2 (2/5/2019) THE SMART UPDATE
-Now licensed under the MIT license
-Bots now have much better navigation that is a bit less RNG-based
-Bots now mix up their dodging while attacking a lot more
-Bots can now drop down from any height (Still falls into inescapable pits but at least it doesn't get stuck on a ledge)
-Bots have better aim
-Bots have less shaky camera view
-Bots now have their view re-centered after killing an enemy, for easier spectating
-Updated the bot config, now Crash and Illucia aren't erroneously mentioned as male
-Added a few more chat lines, suggestions welcome!
-Added flag: BotExplosiveWeapon (Makes bot back out of explosion range while firing)
-Added flag: BotMeleeWeapon (Makes bot aggressively close in to it's target while firing)
-Fixed the bots displaying the walk animation while dead very rarely
-Added CVAR: tdbots_enable (Let's you choose between ZCajun bots, when set to zero/false, and TDBots when set to one/true)
-Added CVAR: tdbots_buff (Gives bots ammunition and armor every 5 seconds, but they are better off without it anyways)
-Added CVAR: tdbots_playerbot (Makes the viewing player also a bot, useful for 8-bot matches in ZDoom)
-Added command: tdbots_oldschooldm (Sets up all gameplay and compatibility options to behave close to doom2.exe in Deathmatch, except for item respawns?)
Spoiler: How do i make my mod compatible? (Open)
NOTE: There's a better guide on the TO_MODDERS.txt file on the main TDBots pk3.
It's so easy, even a caveman could do it! All you got to do is:
Put the following DECORATE line in every weapon's ready state, right after the A_WeaponReady call:

Code: Select all

TNT1 A 0 A_JumpIfInventory("BotAttack", 1, "Fire")
Also put it right before any A_Refire calls (Remember to change the "Fire" part to the state A_Refire was set to!)
For example: just A_Refire means there's nothing to change, but if it's something like A_Refire("KeepFiring")
you would change "BotAttack", 1, "Fire") to "BotAttack", 1, "KeepFiring")

In weapons that are explosive (And can harm the user with the explosion), use the following in their select state:

Code: Select all

TNT1 A 0 A_GiveInventory("BotExplosiveWeapon")
And the following in it's deselect state:

Code: Select all

TNT1 A 0 A_TakeInventory("BotExplosiveWeapon")
In melee weapons (Chainsaws, Fists, etc.), use the following in their select state:

Code: Select all

TNT1 A 0 A_GiveInventory("BotMeleeWeapon")
And the following in their deselect state:

Code: Select all

TNT1 A 0 A_TakeInventory("BotMeleeWeapon")
And that's it, yes it's really that easy!
Spoiler: Waypointing guide (Open)
Not even i have yet mastered waypointing for these bots, but i can give you a set of rules that the bots follow when following waypoints:
-Bots can only see nodes 384 units ahead of them, try not to make a single path have 2 nodes farther than this distance.

-Bots prioritize closer nodes, so if there are two close paths that should not merge, place more very close to each other waypoints in each path.

-Jump nodes aren't as straightforward as you might think, they do not take the angle you give them into acccount, instead, they make the bot jump in the direction it was already traveling. So you need to place a regular walking node right behind the jump node, so the bot touches it first, and then runs into the jump node and that should get it jumping over some pit. This bot has about as much jumping power as a slightly slower player, so be careful about what you make it jump!
Spoiler: Waypoints and other addons (Open)
NOTE: This is not the final version of each noding list. I'm planning on doing the entirety of Doom 1 and 2, some of Heretic and all of duel2015.wad
To load these, type into your console "exec filename.nod" and then just start a deathmatch on the desired map.
Doom 1 (E1M1)
Doom 2 (MAP01 and MAP16)
Heretic (E1M1)
duel2015.wad (First 4 maps, not counting MAP00)

Force Disable Animations patch
Use this patch if you want to be able to gib TDBots as well as avoid deathsounds playing twice.
Spoiler: Mod compatibility patches (Open)
You can request a mod to make a patch for, and i will do it if i can download the mod. Please provide a link when possible!
Make sure to load TDBots first, then the mod, then the compatiblity patch for best results. (Use a launcher or a command line to specify an order)

Mods that support the TDBots without any patches:
DUBG (Not the battle royale mod, my gameplay mod)

Compatibility Patches:
Doom 64: Retribution
Q (Quake-themed gameplay mod)
Brutal Doom v21 (Zandronum only)
Complex Doom v26a2 (any version works, but v26a2 works best) (Zandronum only)
Complex Doom Legendary Complex Addon (requires Complex Doom compat patch too) (Zandronum only)
Skulltag Content / Skulltag Emulation
Armageddon Invasion (Thanks to proerd888 over at TSPG!)
D4T and QCDE patches were removed because they are currently not up to date with their mods

[FINAL] Re: TDBots: The fast-performing bots v2 (2/5/2019)

Posted: Thu May 02, 2019 1:12 pm
by Doomenator
I tested it on the map 07 Doom2 (deathmatch mode).
-Bots don't push buttons, as you say.
-Bots very poor dodge the shots.
-Bots do not react to each other when they are see a player.
As a result to kill them much easier than those are built into Zandronum. :cool:

[FINAL] Re: TDBots: The fast-performing bots v2 (2/5/2019)

Posted: Thu May 02, 2019 9:53 pm
Doomenator wrote:
Thu May 02, 2019 1:12 pm
I tested it on the map 07 Doom2 (deathmatch mode).
-Bots don't push buttons, as you say.
-Bots very poor dodge the shots.
-Bots do not react to each other when they are see a player.
As a result to kill them much easier than those are built into Zandronum. :cool:
Well, what do you expect? The current version is the work of just 2 days. With such short dev time it is expected to see some buggy behavior.

-Bots do push buttons in ZDoom, but apparently Zandronum bots have a different way of activating switches, i'm going to see if i can fix it.
-Bots are technically blind, and can't see any projectiles headed their way, if they don't dodge them, it's just bad RNG, but if they do, it's good RNG.
-Bots will change target if anything retailates against them, and will change target to the closest enemy before attacking.
-Don't forget that the bots will play co-op with you! That's definitely something the Zandronum bots can't do.

I recommend testing them in ZDoom to see if you encounter the same issues.
Also recommended is playing Duel maps, where these bots perform the best.

Please don't be so harsh, i'm trying my best to improve the bots with every update.

[FINAL] Re: TDBots: The fast-performing bots v2 (2/5/2019)

Posted: Fri May 03, 2019 11:50 am
by Doomenator
TDRR wrote:
Thu May 02, 2019 9:53 pm
Well, what do you expect?
I didn't expect anything special. I use bots only for one purpose, to train aiming. Therefore, I tested it based on my own needs and gave the appropriate feedback. If these bots are oriented to co-op gameplay only, then they are not much interest to me.

And I tested them in GZDoom. :biggrin:
Spoiler: (Open)
phpBB [media]

[FINAL] Re: TDBots: The fast-performing bots v2 (2/5/2019)

Posted: Fri May 03, 2019 6:55 pm
Doomenator wrote:
Fri May 03, 2019 11:50 am
TDRR wrote:
Thu May 02, 2019 9:53 pm
Well, what do you expect?
I didn't expect anything special. I use bots only for one purpose, to train aiming. Therefore, I tested it based on my own needs and gave the appropriate feedback. If these bots are oriented to co-op gameplay only, then they are not much interest to me.

And I tested them in GZDoom. :biggrin:
Spoiler: (Open)
phpBB [media]
Well, got work to do! I'm going to make sure i make them as good as possible (within the limits of Zandronum scripting of course) Next update, V5, now has better aiming, checks if it can actually hit the target from it's current viewpoint, overall better navigation and W.I.P projectile dodging. Also will add an RNG-based projectile weapon prediction.

After some testing, the bots seem to completely break Zandronum's bot system, causing all sorts of issues. I don't think this is an issue with my mod, though, as i'm just moving bots around and not really touching any of their internal handling. Sometimes the bots die and never respawn, and other times the internal bot nodes start showing up for some reason. Will report this as a bug.

[FINAL] Re: TDBots: The fast-performing bots v6b (4/5/2019)

Posted: Sun May 05, 2019 4:09 am
Updated! Bots now search for items around the map, and they navigate a bit better.
This update is the start of the search for more realistic behavior, so the goal is that they will rely less on just having perfect aim and more like taking advantageous positions and dodging when possible, and probably more.

Still to do: fix that nasty bug that makes Zandronum bot nodes display, maybe engine-side issue?

Download link in the OP!

[FINAL] Re: TDBots: The fast-performing bots v6b (4/5/2019)

Posted: Mon May 06, 2019 7:28 pm
TDBots will not be compatible with Zandronum anymore for the following reasons:

The bots are agurably worse than the ones that come with Zandronum

Even though i can make the navigation way better than the bots that come with Zandro, there's no way to do it in the current version (Without A_CheckProximity)

For some reason these bots completely break Zandro's bot system, leading to stuff like their permanent per-map deaths and weird multicolored nodes showing up. None of this happens in ZDoom.

[FINAL] Re: TDBots: The fast-performing bots v9 (14/5/2019)

Posted: Tue May 14, 2019 9:20 pm
Finally updated for Zandronum! Coming from v6 to here has given us a bunch of great improvements and bugfixes.

Download link in the OP!

[FINAL] Re: TDBots: The fast-performing bots v9 (14/5/2019)

Posted: Thu May 23, 2019 6:25 am
Updated! This update adds Chex Quest and untested Strife support. Whoever has Strife, can test it and tell me about any bugs please be my guest. It also fixes Zandronum-specific bugs and makes easy mode, well, easy.

Download link in the OP!

There was going to be a big update that had new AI made by Gustavo and a bunch of other things but it's going to be extremely delayed due to this issue: if anyone with knowledge can check it out that would be fantastic.

[FINAL] Re: TDBots: The fast-performing bots v11 (24/5/2019)

Posted: Fri May 24, 2019 7:04 am
Updated! This update mostly adds better dodging, bots now properly back out while using an explosive weapon and retain their previous speed while attacking.

By the way, anyone has any things the bots could say? As in, when they join a game or are just roaming? If so, would be cool if you posted them here! Kinda tiring to see them say the same 8 things over and over again :P

Download link in the OP!

[FINAL] Re: TDBots: The fast-performing bots v11 (24/5/2019)

Posted: Sat May 25, 2019 3:27 am
by Doomenator
TDRR wrote:
Fri May 24, 2019 7:04 am
By the way, anyone has any things the bots could say? As in, when they join a game or are just roaming? If so, would be cool if you posted them here! Kinda tiring to see them say the same 8 things over and over again :P
You can write a taunts from QCDE classes. :cool:

[FINAL] Re: TDBots: The fast-performing bots v11 (24/5/2019)

Posted: Sat May 25, 2019 7:01 pm
Doomenator wrote:
Sat May 25, 2019 3:27 am
You can write a taunts from QCDE classes. :cool:
I hope those lines aren't copyrighted or something, do note that the mod is under the MIT license so i may be in a little trouble if that's the case.

Thanks for the suggestion!

[FINAL] Re: TDBots: The fast-performing bots v11 (24/5/2019)

Posted: Sun May 26, 2019 10:25 pm
by Doomenator
MIT License - open source software license. It has nothing to do with the use of quotes. You can also reedit them.

[FINAL] Re: TDBots: The fast-performing bots v13 (6/6/2019)

Posted: Thu Jun 06, 2019 4:49 pm
Updated! This update has a bunch of new names to the bot config (There's 32 bots now!) so redownload that. It also adds tdbots_reactiontime, which sets the bot's reaction time in tics. And bots now have a walking animation!

I might add more names from the DecoBots in the next update, just so we don't see bots repeated too much.

Download link in the OP!

[FINAL] Re: TDBots: The fast-performing bots v14 (11/6/2019)

Posted: Wed Jun 12, 2019 3:25 am
Updated! This update is tiny but probably very good for those playing with these on Zandronum. I added a CVAR: tdbots_weaponize, while the name is pretty indicative about what it does, there's more detail on the changelog. Oh and yeah i added a QCDE compatiblity patch, yes that means you can finally enjoy better bots in QCDE, maybe not say goodbye to playing online but still way more fun when you are playing offline.

Hey everyone, what would you like to see in the next version? Tell me your feature suggestions, and i will try to implement them. Pretty excited to see what you guys can come up with!

Download link in the OP!

[FINAL] Re: TDBots: The fast-performing bots v14 (11/6/2019)

Posted: Sun Jun 16, 2019 7:36 pm
by JeanQuiche
Could you make this mod compatible with Complex DOOM ??

[FINAL] Re: TDBots: The fast-performing bots v14 (11/6/2019)

Posted: Mon Jun 17, 2019 3:55 am
JeanQuiche wrote:
Sun Jun 16, 2019 7:36 pm
Could you make this mod compatible with Complex DOOM ??
Yes, but only compatible with one version, because Daedalus constantly changes the weapons every version and that would need me to update the patch a lot.
Version 26a2 is the version that i will make a patch for. If anyone else is up to the task of making a constantly updated patch for Complex Doom, be my guest, but i am personally not interested enough in it and rather do other things.

I will upload the patch when it is done, and i will send you a PM (private message) to let you know.

[FINAL] Re: TDBots: The fast-performing bots v14 (11/6/2019)

Posted: Mon Jun 17, 2019 4:43 am
Added a Complex Doom compatibility patch in the main post, check under the "Mod Compatibility Patches" spoiler. It works with any version of Complex Doom but i can only guarantee it will work perfectly in 26a2. If you use it on a newer version, the weapons will be like in version 26a2 (Let's say the damage was changed in v27, that won't happen if you load this patch, but this only applies to weapons, monsters and other things are normally updated)

[FINAL] Re: TDBots: The fast-performing bots v14 (11/6/2019)

Posted: Sat Jun 22, 2019 1:57 pm
by darkmessenger84
Hey there.

I just came across this, and have just been messing around with the Zandronum version. I have looked at the source code and saw that it could use some optimisation.

I have uploaded a modified version to my cloud storage. Take a look and see what you think. :)

[FINAL] Re: TDBots: The fast-performing bots v14 (11/6/2019)

Posted: Sat Jun 22, 2019 5:48 pm
darkmessenger84 wrote:
Sat Jun 22, 2019 1:57 pm
Hey there.

I just came across this, and have just been messing around with the Zandronum version. I have looked at the source code and saw that it could use some optimisation.

I have uploaded a modified version to my cloud storage. Take a look and see what you think. :)
It's a pretty good modification, i don't quite get the weird spacing (It made it a lot less readable to me) but all other changes were definitely great. I'll admit, i'm a terrible ACS coder so it's good someone came and lent me a hand because i surely would have made the code even messier :smile:

Good job with it, i will be adding these into v15.