Marius van Witzenburg We fight for our survival, we fight!

19Jun/110

How to add bots to your Urban Terror server via RCON

Posted by mariusvw

First of all you need to configure your server first! For more info about that check here.

Now you should have your server all up and running, next thing is having control over your bots.

bot configuration

First enable the use of bots

/rcon bot_enable 1
/rcon reload

Next, lets add bots.

/rcon addbot <type> [level] [team] [ping] [nick]

addbot arguments

type
Define the name of the bot type here, chose one from the list below.
level
Define a number from 1 to 5 here to set how good the bots will try to hunt you down!
team
Define the color name Red or Blue to set the team this bot belongs to.
ping
Define the average ping time the bot will have, if you define this to a low value the bots will respond fast, I recommend setting this to 40 on a local LAN and 75 on a WAN connection.
nick
Define the nickname of the bot, I usually give a simple name like Bot1, Bot2, Bot3, etc...

addbot examples

/rcon addbot Chicken Blue 75 Bot1
/rcon addbot Cockroach Blue 75 Bot2
/rcon addbot Mantis Blue 75 Bot3

In case you want to get rid of one or all bots, simply kick them!

/rcon kick [nickname]
/rcon kick allbots

Here is a simple Bash example that you could use to add or remove bots:

#!/bin/bash
 
# Add bot
echo -e "\xFF\xFF\xFF\xFFaddbot Chicken Blue 75 BOTNAME\n" | /usr/bin/nc -D -4 -d -n -u 127.0.0.1 27960
 
# Remove bot
echo -e "\xFF\xFF\xFF\xFFkick BOTNAME\n" | /usr/bin/nc -D -4 -d -n -u 127.0.0.1 27960


Here is a list of the bots names, weapons and their accessories they are carrying.

Name: Boa
Primary: ZM LR300 ML
Secondary: H&K MP5K
Sidearm: .50 Desert Eagle
Grenades: HE Grenades
Item 1: Kevlar Vest
Item 2: -
Item 3: -
 
Name: Cheetah
Primary: Kalashnikov AK103
Secondary: Franchi SPAS-12
Sidearm: .50 Desert Eagle
Grenades: HE Grenades
Item 1: Kevlar Vest
Item 2: -
Item 3: -
 
Name: Chicken
Primary: H&K G36
Secondary: H&K MP5K
Sidearm: .50 Desert Eagle
Grenades: HE Grenades
Item 1: Kevlar Vest
Item 2: -
Item 3: -
 
Name: Cobra
Primary: ZM LR300 ML
Secondary: H&K MP5K
Sidearm: .50 Desert Eagle
Grenades: Smoke Grenades
Item 1: Kevlar Vest
Item 2: -
Item 3: -
 
Name: Cockroach
Primary: H&K UMP45
Secondary: -
Sidearm: Beretta 92G
Grenades: Flash Grenades
Item 1: Kevlar Vest
Item 2: -
Item 3: -
 
Name: Cougar
Primary: H&K G36
Secondary: -
Sidearm: Beretta 92G
Grenades: Flash Grenades
Item 1: Silencer
Item 2: Kevlar Vest
Item 3: -
 
Name: Goose
Primary: H&K 69
Secondary: H&K UMP45
Sidearm: .50 Desert Eagle
Grenades: -
Item 1: Extra Ammo
Item 2: Kevlar Vest
Item 3: -
 
Name: Mantis
Primary: ZM LR300 ML
Secondary: -
Sidearm: Beretta 92G
Grenades: -
Item 1: Laser Sight
Item 2: Silencer
Item 3: Kevlar Vest
 
Name: Penguin
Primary: ZM LR300 ML
Secondary: -
Sidearm: .50 Desert Eagle
Grenades: -
Item 1: Laser Sight
Item 2: Silencer
Item 3: Kevlar Vest
 
Name: Puma
Primary: ZM LR300 ML
Secondary: -
Sidearm: Beretta 92G
Grenades: -
Item 1: Laser Sight
Item 2: Silencer
Item 3: Kevlar Vest
 
Name: Python
Primary: H&K G36
Secondary: Franchi SPAS-12
Sidearm: .50 Desert Eagle
Grenades: HE Grenades
Item 1: Kevlar Vest
Item 2: -
Item 3: -
 
Name: Raven
Primary: H&K PSG-1
Secondary: H&K MP5K
Sidearm: .50 Desert Eagle
Grenades: -
Item 1: Kevlar Vest
Item 2: Silencer
Item 3: -
 
Name: Scarab
Primary: H&K G36
Secondary: H&K MP5K
Sidearm: .50 Desert Eagle
Grenades: -
Item 1: Kevlar Vest
Item 2: Silencer
Item 3: -
 
Name: Scorpion
Primary: Remington SR8
Secondary: H&K MP5K
Sidearm: Beretta 92G
Grenades: HE Grenades
Item 1: Kevlar Vest
Item 2: -
Item 3: -
 
Name: Tiger
Primary: Kalashnikov AK103
Secondary: -
Sidearm: Beretta 92G
Grenades: HE Grenades
Item 1: Medkit
Item 2: Kevlar Vest
Item 3: -
 
Name: Widow
Primary: ZM LR300 ML
Secondary: H&K MP5K
Sidearm: Beretta 92G
Grenades: -
Item 1: Kevlar Vest
Item 2: Laser Sight
Item 3: -
19Jun/110

How to install an Urban Terror server with bots on FreeBSD

Posted by mariusvw

This will install an Urban Terror server running under the user urban with 4 bots enabled on the server.

First of all we install the binaries, I prefer installing them from the ports, in case you don't have root access you might want to manually download from http://www.urbanterror.info. The configuration is quite the same so you should be able to install on your own.

For the port install use:

cd /usr/ports/games/iourbanterror/
make WITHOUT_CLIENT=1 \
WITHOUT_GAMELIBS=1 \
WITH_DEDICATED=1 \
WITHOUT_CURL=1 \
WITHOUT_OPENAL=1 \
WITHOUT_MUMBLE=1 \
WITHOUT_VORBIS=1 \
WITH_TEAMARENA=1 install clean

Lets get some coffee, cause this installation might take a while... The installation requires downloading UrbanTerror411.zip from one of the mirrors which is around 1GB in size :-)

After installing you need to add a user to run the server.

pw user add urban -m

I don't set a password for this account simply because I mostly su into it ;-) So...

su - urban

First create the required directories

mkdir -p .ioUrbanTerror/q3ut4
cd .ioUrbanTerror/q3ut4

In this directory you need to add the configuration files: server.cfg / mapcycle.txt / bots.cfg

server.cfg

sets "Admin" "Marius van Witzenburg"
sets "Email" "marius@kitara.nl"
set rconpassword "This_Is_Your_RCON_Password"
set g_gametype "0"
set sv_hostname "Fire in the hole!"
set g_respawndelay "1"
set bot_enable "1"
set g_teamautojoin "1"
set g_maxteamkills "5"
set g_respawnprotection "3"
 
// (restart/map/nextmap/cyclemap)
set g_allowVote "536870926"
 
set g_log ""
set g_logroll "0"
 
set fraglimit "50"
set timelimit "15"
 
// Startup map
map ut4_turnpike
 
// Add bots
exec bots.cfg

In case you want to change this configuration, check out: http://www.urbanterror.info/docs/180-/

mapcycle.txt

ut4_turnpike
ut4_abbey
ut4_prague
ut4_mandolin
ut4_algiers
ut4_austria
ut4_sanc
ut4_riyadh
ut4_thingley

I limited the map list to the maps that work fine with bots.

bots.cfg

kick allbots
addbot boa 4 blue 25 "Bot 1"
addbot chicken 4 blue 25 "Bot 2"
addbot cockroach 4 blue 25 "Bot 3"
addbot goose 5 blue 25 "Bot 4"

You can start the server by manual but I would advice you do run the server with this script in tmux or in GNU Screen.

start.sh

#!/bin/bash
 
# Dedicated
# 1 don't report
# 2 report to master servers
 
myExit() {
	kill $$
	exit $?
}
 
trap myExit SIGINT
 
while true
do
	/usr/local/bin/ioUrTded \
		+set fs_game q3ut4 \
		+set dedicated 1 \
		+set net_ip 192.168.1.5 \
		+set net_port 27960 \
		+set com_hunkmegs 128 \
		+exec server.cfg
 
	echo "server crashed on `date`" > /usr/home/urban/last_crash.txt
done

Run it by doing

chmod 700 start.sh
./start.sh

In case you want this server to be reachable for the public, don't forget to set dedicated to 2.

Good luck! If you have any questions, let me know!