{"id":255,"date":"2023-09-05T09:00:49","date_gmt":"2023-09-05T08:00:49","guid":{"rendered":"https:\/\/www.katsbits.com\/site\/?p=255"},"modified":"2023-09-07T10:08:38","modified_gmt":"2023-09-07T09:08:38","slug":"add-remove-bots","status":"publish","type":"post","link":"https:\/\/www.katsbits.com\/site\/add-remove-bots\/","title":{"rendered":"Add\/Remove Quake III Bots (&#8216;kick&#8217; players from a game server)"},"content":{"rendered":"<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_80 counter-hierarchy ez-toc-counter ez-toc-grey ez-toc-container-direction\">\n<div class=\"ez-toc-title-container\">\n<p class=\"ez-toc-title\" style=\"cursor:inherit\">Table of Contents<\/p>\n<span class=\"ez-toc-title-toggle\"><a href=\"#\" class=\"ez-toc-pull-right ez-toc-btn ez-toc-btn-xs ez-toc-btn-default ez-toc-toggle\" aria-label=\"Toggle Table of Content\"><span class=\"ez-toc-js-icon-con\"><span class=\"\"><span class=\"eztoc-hide\" style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #999;color:#999\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"><\/path><\/svg><svg style=\"fill: #999;color:#999\" class=\"arrow-unsorted-368013\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"10px\" height=\"10px\" viewBox=\"0 0 24 24\" version=\"1.2\" baseProfile=\"tiny\"><path d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\"\/><\/svg><\/span><\/span><\/span><\/a><\/span><\/div>\n<nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/www.katsbits.com\/site\/add-remove-bots\/#Adding_bots\" >Adding bots<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/www.katsbits.com\/site\/add-remove-bots\/#Removing_bots\" >Removing bots<\/a><\/li><\/ul><\/nav><\/div>\n<div style=\"background-color:#FFF4E8; border:1px solid #C60; padding:1%; color:#C00\"><i>The  article below was originally published some time ago and now remains online as an informational resource and archive.<\/i><\/div>\n<hr \/>\n<p>Bots, bots and more bots. There are two main ways to manage bots in Quake 3 when using both dedicated and non-dedicated servers;  running a non-dedicated game (a normal &#8216;LAN&#8217; games of Quake 3) it&#8217;s best to use thein-game menu options, and\/or using various &#8216;commands&#8217; typed into the in-game console or the server instance command line.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"Adding_bots\"><\/span>Adding bots<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Adding bots is relatively straight forward, the process essentially entails using a  command plus the name of the bot to be spawned into the running game. A game with bots also needs to have a number of &quot;<b>Open<\/b>&quot; slots to add more after the fact, so when setting up the server (either as a single player &quot;Skirmish&quot; or multi-player &#8216;server&#8217;) make sure the initial settings include a range of bots and at least one or two &quot;<b>Open<\/b>&quot; slots (if more bots are to be added but none removed).<\/p>\n<blockquote>\n<p><b>Design note<\/b>: when using custom bots and models some issues may occur because the files are extras and not part of the games original content (that installed from the CD\/DVD\/download). This may require the server be placed into &#8216;developer mode&#8217; or otherwise made less secure to allow the game the ability to access these types of third party files. Custom bots will be listed in the selection screen during set up.<\/p>\n<div class=\"content_images\"><a href=\"https:\/\/www.katsbits.com\/images\/tutorials\/server_setup\/bot-selection-menu.jpg\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.katsbits.com\/images\/tutorials\/server_setup\/bot-selection-menu_sml.jpg\" alt=\"Bot selection menu to occupy an open slot\" width=\"640\" height=\"360\" border=\"0\" \/><\/a><\/p>\n<p>Using the in-game menu option to select a Bot to fill a &quot;<b>Bot<\/b>&quot; slot<\/p>\n<\/div>\n<\/blockquote>\n<p>Once the game is set up and started, to add new Bots drop the in-game console (&quot;<b>~<\/b>&quot; &#8211; for International keyboards this will typically be the key located above  &quot;<b>Tab<\/b>&quot; key rather than the actual Tilda key) or type into the servers command line input;<\/p>\n<p><code>addbot [botname]<\/code><\/p>\n<p>Press &quot;<b>Enter<\/b>&quot;. The game\/server will then spawn the appropriate Bot  without you needing further User input. To add more repeat the process.<\/p>\n<blockquote>\n<p><b>Design note<\/b>: when typing a command into the in-game console be sure to preface the instruction with a &quot;<b>\/<\/b>&quot; else the game outputs whatever is typed as on-screen text visible to all, e.g., &quot;<b>\/addbot mynx<\/b>&quot; instead of &quot;<b>addbot minx<\/b>&quot;, the latter only works from the server command line.<\/p>\n<\/blockquote>\n<div class=\"content_images\"><a href=\"https:\/\/www.katsbits.com\/images\/tutorials\/server_setup\/addbot-server-command-line.jpg\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.katsbits.com\/images\/tutorials\/server_setup\/addbot-server-command-line_sml.jpg\" alt=\"Adding new bots using server command line input\" width=\"640\" height=\"360\" border=\"0\" title=\"Adding new bots using server command line input\" \/><\/a><\/p>\n<p>From the command line of a dedicated server instance type &#8220;<b>addbot [botname]<\/b>&#8220;, e.g., &#8220;<b>addbot slash<\/b>&#8220;<\/p>\n<\/p><\/div>\n<h3><span class=\"ez-toc-section\" id=\"Removing_bots\"><\/span>Removing bots<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>To remove a bot, they are actually <i>kicked<\/i>  from the game. This is possible because each bot or player in the game is  assigned a unique  &#8216;ID&#8217;,  a simple numerical value from &quot;<b>0<\/b>&quot; up to the number of slots available,  this number helps identify the &#8216;User&#8217; to be removed. For a game that active and running, to  find out which player or Bot is assigned what number, type the following into the in-game console or server command line;<\/p>\n<p><code>status<\/code><\/p>\n<p>Press &quot;<b>Enter<\/b>&quot;. The console will then display a  list of current Bots\/players in  game each assigned a number similar to the below &#8211; a number to the left, name to the right;<\/p>\n<p>          <code>0 major<\/code><br \/>\n          <code>1 unnamed player<\/code><br \/>\n          <code>2 hot pants<\/code><br \/>\n          <code>3 sarge<\/code><br \/>\n          <code>4 visor<\/code><br \/>\n          <code>5 lucy<\/code><br \/>\n          <code>6 yuriko<\/code><\/p>\n<p>Make a note of the Bot\/Player ID and Username then type the following into the in-game console or server command line;<\/p>\n<p><code>kick <i>[botname]<\/i><\/code><\/p>\n<p>Example &quot;<em>kick major<\/em>&quot;.<\/p>\n<p>This forcebly removes the selection, kicking them from the running game. To remove more Bot or players repeat the process; type &quot;<b>status<\/b>&quot; to acquire updated ID information, the &quot;<b>kick [name]<\/b>&quot; once known.<\/p>\n<blockquote>\n<p><b>Design note:<\/b> Bots and players can generally only be removed one at a time so the commands will typically need to be used serveral times when removing multiple Bots or players, esepcially as the output display in both in-game console and server can scroll upwards quickly in heavily trafficed or active games. Each time a Bot or player is removed the &#8216;ID&#8217;s will need to be checked as they tend to update as slots are freed or taken.<\/p>\n<\/blockquote>\n<div class=\"content_images\">\n            <a href=\"https:\/\/www.katsbits.com\/images\/tutorials\/server_setup\/quake-3-server-slots.jpg\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.katsbits.com\/images\/tutorials\/server_setup\/quake-3-server-slots_sml.jpg\" alt=\"Using &quot;status&quot; to reveal bot\/player slot information\" title=\"Using &quot;status&quot; to reveal bot\/player slot information\" width=\"640\" height=\"360\" border=\"0\" \/><\/a>           <img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.katsbits.com\/images\/tutorials\/server_setup\/add-remove-console_sml.jpg\" width=\"640\" height=\"360\" \/><\/p>\n<p>Checking the player slot usage with the &quot;<b>status<\/b>&quot; command before then removing an unwanted player with the &quot;<b>kick <i>[player name]<\/i><\/b>&quot; command, e.g., &quot;<b>kick slash<\/b>&quot;, typed into the dedicated server input field at the bottom of the server instance output window<\/p>\n<p>            <img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.katsbits.com\/images\/tutorials\/server_setup\/status-in-game-console_sml.jpg\" alt=\"Check player slot using &quot;\/status&quot; in the in-game console\" width=\"640\" height=\"360\" border=\"0\" \/><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.katsbits.com\/images\/tutorials\/server_setup\/kick-player-in-game-console_sml.jpg\" width=\"640\" height=\"360\" alt=\"Kicking player from in-game using the console\" \/><\/p>\n<p>The server player slots can also be managed using the in-game console (typically accessed using the &quot;~&quot; or &quot;`&quot; key to the left of &quot;1&quot;), however commands must be prefaced with a &quot;<b>\/<\/b>&quot; else the text is written to screen as player chat &#8211; &quot;<b>\/status<\/b>&quot; to reveal slot information, &quot;<b>\/kick [player name]<\/b>&quot; to remove (e.g., &quot;<b>\/kick slash<\/b>&quot;)<\/p>\n<\/div>\n","protected":false},"excerpt":{"rendered":"","protected":false},"author":1,"featured_media":154,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[10],"tags":[42,129,17,128,130],"class_list":["post-255","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-articles","tag-articles","tag-bots","tag-idtech","tag-quake-iii","tag-server-setup"],"post_mailing_queue_ids":[],"_links":{"self":[{"href":"https:\/\/www.katsbits.com\/site\/wp-json\/wp\/v2\/posts\/255","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.katsbits.com\/site\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.katsbits.com\/site\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.katsbits.com\/site\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.katsbits.com\/site\/wp-json\/wp\/v2\/comments?post=255"}],"version-history":[{"count":5,"href":"https:\/\/www.katsbits.com\/site\/wp-json\/wp\/v2\/posts\/255\/revisions"}],"predecessor-version":[{"id":260,"href":"https:\/\/www.katsbits.com\/site\/wp-json\/wp\/v2\/posts\/255\/revisions\/260"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.katsbits.com\/site\/wp-json\/wp\/v2\/media\/154"}],"wp:attachment":[{"href":"https:\/\/www.katsbits.com\/site\/wp-json\/wp\/v2\/media?parent=255"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.katsbits.com\/site\/wp-json\/wp\/v2\/categories?post=255"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.katsbits.com\/site\/wp-json\/wp\/v2\/tags?post=255"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}