IPB

Welcome Guest ( Log In | Register )

 
Reply to this topicStart new topic
> Installing a DODS-Server with RCBot2 from scratch with SteamCMD on LINUX, A (hopefully) helpful Tutorial for Beginners
n0nnie
post Oct 30 2014, 01:21 PM
Post #1


Member
**

Group: Members
Posts: 35
Joined: 27-October 14
Member No.: 2,361



Because this Forum gives a hell on writing Tutorials for Beginners, I decided to write one. I had a very hard time to get RCbot2 running on my Ubuntu 12.04 Server as dedicated Server. After 6(!) Hours of googleing, trying and raging I was finally able to get it to work. Now I will give an "overall" Tutorial for beginners.

Why me?
Nobody else seems to take care of.
What makes me so good for it?
I am an "all by my self" learner. I started doing Servers 17 years ago for Quake2 and never stopped it since. Only the game changed ^^
What this Tutorial will not be
Your mother. I am assuming you have an ftp or sftp access and a working SSH connection to your server. Also Steamcmd should work for you. If this is a problem I can write a steamcmdpart also.
Language
I am from Germany, so I am not a native Englishspeaker. So some mistakes in Grammar and spelling can occur. If someone feels to correct my spelling, please do and pm me =)

Getting started with downloading
First you need some files. Download them all, I will rely on them in this Tutorial:

Latest RCbot2 (here it is 0.94
Latest Linux Build .so

Creating User
I am a one user for all servers person but RCbot2 requires different users for different servers. To be exactly: Every Server with RCbot2 needs its own User with own Homedirectory! If you just want to run one Server with bots, then forget this. If other wise then we start from scratch. Go to your Terminal and create user!

CODE
Type:
    sudo adduser dodserver --ingroup sudo


This will create a user called dodserver who got the group sudo. Do not care about the group. You can make your own group if you want. For the group sudo we do not have to edit sudoers wink.gif
Now you want to give the user a password?

CODE
Type:
    sudo passwd dodserver


Give the user a password, tell this nobody ^^

Login in as your new user. Maybe another "Tab" [ALT + F1 - 6) will be useful.

Steamcmd
Now I will tell you quick how to setup a DODSserver. I will not tell you how to install Steamcd! Go here to learn about installing

HINT: I always install new servers as root-user. Why? No permissionconflicts and I am a "lazy" bastard. If you do not, then forget the chownstep^^

CODE
Type:
    ./steamcmd.sh

    login anonymous

    force_install_dir YOURPATH

    app_update 232290 validate (on first install validate is not needed. I just type it always. It does no harm, so why not ^^ )

        Now you have to wait
    
    exit


chown
If you have installed your DODSserver as root, then you have to make your dodserver user the owner of the serverfiles. Why? Because! Read about this in another Tutorial or the Manual of Ubuntu!

In terminal go to the Folder, where your Serverfolder is in. The Serverfolder contains Folders and Files. Folders are marked with (+):

CODE
(+)adf0c2279f5c06d2e0e5aef8b72595db3408bde8 (I do not know if this is always the same number ^^ )
(+)bin
(+)dod
(+)hl2
(+)platform
    srcds_linux
    srcds_run
    steam_appid.txt
    thirdpartylegacynotices.txt


CODE
Note: For better telling I am using this example:
Pathes:
    homedir: ./home/dodserver
    serverdir: ./server/dodserver (why not in home? Just for showing how RCbot2 works ^^ )
    User: dodserver



CODE
Type:
    sudo chown -R -v dodserver:sudo dodserver


This will make The user dodserver with its group sudo to the owner of the folder dodserver and its subfolders.

CODE
Type:
    chmod -R -c 775 dodserver


This will give all Files and Folders 775 permissions. 777 will not be needed. Google "chmod 777" if you want to learn more about this!

Running Server first time
Go to ./server/dodserver

CODE
Type:
    nano


This will open a Texteditor. Write in this:

CODE
#!/bin/sh
echo "starting dod"
sleep 1
screen -A -m -d -S dod ./srcds_run -console -game dod +maxplayers 32 -ip YOURIP -port 27334 -tick 66 +plugin_load ../bin/HPB_bot2_i486 +map dod_donner


Save it as start.sh in your folder. In my example ./server/dodserver

Now make it executeable:

CODE
Type:
    chmod +x start.sh


Run your server:
CODE
Type:
    ./start.sh


If you have not installed screen before, then do it know (an error will occur then)

CODE
Type:
    sudo apt-get install screen


Now redo ./start.sh it will execute and tell you, that you have a screen session running. Type:
screen -x dod
If you are not sure, what name you have given your screen process you can type screen -ls and a list will apear.

Now server will run. If not, then troubleshoot. Google for errormessages that might ouccur.

Uploading and running RCbot2
Now the interesting Part is coming!

Go to ./home/dodserver

CODE
Type:
    cd $home


Make a folder called RCBot2

CODE
Type:
    mkdir RCBot2


Now open RCBot2_XXX.zip and upload the folders to ./home/dodserver:
config
profiles
waypoints

Open bot_mods.ini in folder config and write at the end of it:

CODE
mod = DOD
steamdir = dodserver
gamedir = dod
bot = DOD


Go to the folder ./home/dodserver/RCBot2/waypoints and delete team fortress 2 and half-life 2 deathmatch folder. Rename day of defeat source to dodserver. I assume you have done renaming and uploading with a SFTP-Client like filezilla.

Now go to ./home/dodserver in your terminal!

CODE
Type:
    sudo apt-get install dos2unix
    dos2unix RCBot2
    chown -R -v dodserver:sudo RCBot2
    chmod -R -c 775 RCBot2


Dos2unix is a good little programm to change the Coding from DOS to Unix Format. This will prevent errors like "Edit your bot_mods.ini" =)

Now upload the HPB_bot2_i486.so which is corresponding to your Botversion, you downloaded before to ./server/dodserver/bin

Start your server again and type:
CODE
    rcbotd


If RCBot2 is running, you will get something like this:
CODE
         [RCBot] [rcbot]
         [RCBot]   [waypoint]
         [RCBot]     on [can't use]
         [RCBot]     off [can't use]
         [RCBot]     add [can't use]
         [RCBot]     delete [can't use]
         [RCBot]     info [can't use]
         [RCBot]     save [can't use]
         [RCBot]     load [can't use]
         [RCBot]     clear [can't use]
         [RCBot]     givetype [can't use]
         [RCBot]     drawtype [can't use]
         [RCBot]     angle [can't use]
         [RCBot]     updateyaw [can't use]
         [RCBot]     setarea [can't use]
         [RCBot]     setradius [can't use]
         [RCBot]     menu [can't use]
         [RCBot]     cut [can't use]
         [RCBot]     copy [can't use]
         [RCBot]     paste [can't use]
         [RCBot]     shiftareas [can't use]
         [RCBot]     teleport [can't use]
         [RCBot]     setareatonearest [can't use]
         [RCBot]     show [can't use]
         [RCBot]     check [can't use]
         [RCBot]     showvis [can't use]
         [RCBot]     autowaypoint [can't use]
         [RCBot]     autofix [can't use]
         [RCBot]   addbot
         [RCBot]   control
         [RCBot]   [pathwaypoint]
         [RCBot]     on [can't use]
         [RCBot]     off [can't use]
         [RCBot]     enable [can't use]
         [RCBot]     disable [can't use]
         [RCBot]     create1 [can't use]
         [RCBot]     create2 [can't use]
         [RCBot]     remove1 [can't use]
         [RCBot]     remove2 [can't use]
         [RCBot]     deleteto [can't use]
         [RCBot]     deletefrom [can't use]
         [RCBot]     createfromto [can't use]
         [RCBot]     removefromto [can't use]
         [RCBot]   [debug]
         [RCBot]     gameevent [can't use]
         [RCBot]     bot [can't use]
         [RCBot]     nav [can't use]
         [RCBot]     vis [can't use]
         [RCBot]     think [can't use]
         [RCBot]     look [can't use]
         [RCBot]     hud [can't use]
         [RCBot]     aim [can't use]
         [RCBot]     bot_goto [can't use]
         [RCBot]     bot_flush [can't use]
         [RCBot]     task [can't use]
         [RCBot]     givetask [can't use]
         [RCBot]     buttons [can't use]
         [RCBot]     speed [can't use]
         [RCBot]     usercmd [can't use]
         [RCBot]     util [can't use]
         [RCBot]     profiling [can't use]
         [RCBot]     edicts [can't use]
         [RCBot]     printprops [can't use]
         [RCBot]     getprop [can't use]
         [RCBot]     findclass [can't use]
         [RCBot]     findclassname [can't use]
         [RCBot]     findprop [can't use]
         [RCBot]     memoryscan [can't use]
         [RCBot]     memorycheck [can't use]
         [RCBot]   printcommands
         [RCBot]   [config]
         [RCBot]     event_version [can't use]
         [RCBot]     max_bots
         [RCBot]     min_bots
         [RCBot]   kickbot
         [RCBot]   [users]
         [RCBot]     show
         [RCBot]   [util]
         [RCBot]     search [can't use]
         [RCBot]     set_teleport [can't use]
         [RCBot]     teleport [can't use]
         [RCBot]     noclip [can't use]
         [RCBot]     god [can't use]
         [RCBot]     notouch [can't use]
         [RCBot] bot command not found


Now when you have got Bots working you might configure them a little bit. Go to ./home/dodserver/RCBot2/config and open config.ini

This looks like this:

CODE
# RCBot2 Config generated by RCBot2 Launcher
rcbot_defrate 0.19  //rate for bots to defend
rcbot_skill 0.60    //General difficulty of the bots. 0.5 = stock, < 0.5 easier, > 0.5 = harder
rcbot_anglespeed 0.25   // smaller number will make bots turn slower (1 = instant turn but may overshoot)
rcbot_avoid_radius 80 //radius in units for bots to avoid things
rcbot_avoid_strength 100 //strength of avoidance (0 = disable)
rcbot_aimsmooting 1 // (0 = no smoothing)
rcbot_change_classes 1 //bots change classes at random intervals
rcbot_taunt 0 //TF2! - enable/disable bots taunting
rcbot_messaround 1 //bots mess around at start up
rcbot_meleeonly 0 //unknown command, forget this ^^
rcbot_move_obj 1 //TF2! if 1 rcbot engineers will move objects around
rcbot_min_cc_time 60 //minimum time for bots to consider changing class <seconds>
rcbot_max_cc_time 240 //maximum time for bots to consider changing class <seconds>
rcbot_runplayer_hookonce 1 //function will hook only once, if 0 it will unook and rehook after every map
rcbot_runplayer_cmd_dods 417 //offset of the DOD:S PlayerRunCommand function  might change sometimes after an update
rcbot_runplayer_cmd_tf2 417
rcbot_scoutdj 0.5 //TF2
rcbot_voice_cmds 1  //TF2
rcbot_heavyaimoffset 0.1    //TF2
rcbot_move_sentry_time 120  //TF2
rcbot_move_sentry_kpm 1     //TF2
rcbot_move_disp_time 120    //TF2
rcbot_move_disp_healamount 100  //TF2
rcbot_move_tele_time 120    //TF2
rcbot_move_tele_tpm 1   //TF2
rcbot_move_dist 800     //TF2


You can add rcbotd config max_bots NUMBER to edit, which number of bots will join. The rest are GLOBAL settings, that can be get overwritten by Profilefiles in ./home/dodserver/RCBot2/profiles

If you want to edit Profiles, then look here for a detailed view.

You might be facing, that Bots are ignoring Profiles. If so you do not have to worry about the names. A simple Sourcemodplugin can solve this

Now I think I am done. Please tell if I have missed something important =) [b]
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
Cheeseh
post Oct 30 2014, 01:28 PM
Post #2


Admin
*****

Group: Admin
Posts: 3,055
Joined: 11-September 03
From: uk
Member No.: 1



thanks. pinned  smile.gif


don't really have the time to do this. laugh.gif
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
n0nnie
post Oct 30 2014, 01:35 PM
Post #3


Member
**

Group: Members
Posts: 35
Joined: 27-October 14
Member No.: 2,361



QUOTE(Cheeseh @ Oct 30 2014, 02:28 PM) *

thanks. pinned  smile.gif
don't really have the time to do this. laugh.gif


Thanks für Pinning biggrin.gif

And you are not the only one arround here to do this Cheeseh. I was wondering why the hell nobody does this and I felt like giving something back to thank you for this great Bots.
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
madmax2
post Oct 30 2014, 04:30 PM
Post #4


RCBot Guru
*****

Group: Waypointers
Posts: 956
Joined: 2-March 12
From: USA, WA state
Member No.: 2,162



QUOTE(n0nnie @ Oct 30 2014, 05:35 AM) *

And you are not the only one arround here to do this Cheeseh. I was wondering why the hell nobody does this and I felt like giving something back to thank you for this great Bots.

Right on! Thanks for sharing, and taking the time to contribute. Oh, and welcome to RCbot forum... smile.gif
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
n0nnie
post Oct 31 2014, 06:30 PM
Post #5


Member
**

Group: Members
Posts: 35
Joined: 27-October 14
Member No.: 2,361



QUOTE(madmax2 @ Oct 30 2014, 05:30 PM) *

Right on! Thanks for sharing, and taking the time to contribute. Oh, and welcome to RCbot forum... smile.gif


Thanks for the welcome smile.gif

If I did any mistakes fell free to tell smile.gif

Oh and happy Halloween unsure.gif
User is offlineProfile CardPM
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 User(s) are reading this topic (1 Guests and 0 Anonymous Users)
0 Members:

 



- Lo-Fi Version Time is now: 28th March 2024 - 08:53 AM