/steam-generic/tf2/ addons\ -------\ cfg\ \ maps\ --- These directories are linked in to every install and are identical across installs materials\ / motd.txt | sound\ -------/ autoexec\ The file autoexec.cfg-(server-name) is linked into cfg\autoexec.cfg in the appropriate install server_specific\ The file server_specific.cfg-(server-name) is linked into cfg\server_specific.cfg in the appropriate install mapcycle\ The file mapcycle.txt-(server-name) is linked into mapcycle.txt in the appropriate install so for example, listing /usr/local/games/steam3/orangebox/tf/cfg : drwxrwx--- 2 gsadmin gsadmin 4.0K 2009-06-02 17:47 . drwxrwx--- 17 gsadmin gsadmin 4.0K 2009-05-30 00:58 .. -rw-rw---- 1 gsadmin gsadmin 1.1K 2008-09-07 02:09 360controller.cfg lrwxrwxrwx 1 gsadmin gsadmin 60 2008-09-09 00:02 autoexec.cfg -> /usr/local/games/steam-generic/tf2/autoexec/autoexec.cfg-av d -rw-r--r-- 1 gsadmin gsadmin 0 2009-05-25 17:12 banned_ip.cfg lrwxrwxrwx 1 gsadmin gsadmin 54 2008-09-09 00:02 banned_user.cfg -> /usr/local/games/steam-generic/tf2/cfg/banned_user.cfg -rw-rw---- 1 gsadmin gsadmin 28 2008-09-07 02:09 chapter1.cfg -rw-rw---- 1 gsadmin gsadmin 32 2008-09-07 02:09 chapter2.cfg -rw-rw---- 1 gsadmin gsadmin 27 2008-09-07 02:09 chapter3.cfg -rw-rw---- 1 gsadmin gsadmin 1.2K 2008-09-07 02:09 config.360.cfg lrwxrwxrwx 1 gsadmin gsadmin 55 2008-09-09 00:02 config_arena.cfg -> /usr/local/games/steam-generic/tf2/cfg/config_arena.cfg lrwxrwxrwx 1 gsadmin gsadmin 54 2008-09-09 00:02 cp_dustbowl.cfg -> /usr/local/games/steam-generic/tf2/cfg/cp_dustbowl.cfg lrwxrwxrwx 1 gsadmin gsadmin 55 2008-09-09 00:02 cp_gravelpit.cfg -> /usr/local/games/steam-generic/tf2/cfg/cp_gravelpit.cfg lrwxrwxrwx 1 gsadmin gsadmin 51 2008-09-09 00:02 cp_steel.cfg -> /usr/local/games/steam-generic/tf2/cfg/cp_steel.cfg -rw-rw---- 1 gsadmin gsadmin 8 2008-09-07 02:09 demoman.cfg -rw-rw---- 1 gsadmin gsadmin 8 2008-09-07 02:09 engineer.cfg -rw-rw---- 1 gsadmin gsadmin 8 2008-09-07 02:09 heavyweapons.cfg -rw-rw---- 1 gsadmin gsadmin 8 2008-09-07 02:09 medic.cfg lrwxrwxrwx 1 gsadmin gsadmin 54 2008-09-09 00:02 pl_badwater.cfg -> /usr/local/games/steam-generic/tf2/cfg/pl_badwater.cfg lrwxrwxrwx 1 gsadmin gsadmin 54 2008-09-09 00:02 pl_goldrush.cfg -> /usr/local/games/steam-generic/tf2/cfg/pl_goldrush.cfg lrwxrwxrwx 1 gsadmin gsadmin 57 2009-01-27 17:09 pl_indigo_4cag.cfg -> /usr/local/games/steam-generic/tf2/cfg/pl_indigo_4cag .cfg lrwxrwxrwx 1 gsadmin gsadmin 55 2009-05-28 16:30 plr_pipeline.cfg -> /usr/local/games/steam-generic/tf2/cfg/plr_pipeline.cfg -rw-rw---- 1 gsadmin gsadmin 8 2008-09-07 02:09 pyro.cfg -rw-rw---- 1 gsadmin gsadmin 8 2008-09-07 02:09 scout.cfg lrwxrwxrwx 1 gsadmin gsadmin 49 2008-09-09 00:02 server.cfg -> /usr/local/games/steam-generic/tf2/cfg/server.cfg lrwxrwxrwx 1 gsadmin gsadmin 74 2008-09-09 00:02 server_specific.cfg -> /usr/local/games/steam-generic/tf2/server_specific/s erver_specific.cfg-avd -rw-rw---- 1 gsadmin gsadmin 1.5K 2008-09-08 23:51 settings_default.scr -rw-rw---- 1 gsadmin gsadmin 3.1K 2008-09-07 02:09 sfm_defaultanimationgroups.txt -rw-rw---- 1 gsadmin gsadmin 8 2008-09-07 02:09 sniper.cfg -rw-rw---- 1 gsadmin gsadmin 8 2008-09-07 02:09 soldier.cfg lrwxrwxrwx 1 gsadmin gsadmin 48 2008-09-09 00:02 sourcemod -> /usr/local/games/steam-generic/tf2/cfg/sourcemod -rw-rw---- 1 gsadmin gsadmin 8 2008-09-07 02:09 spy.cfg -rw-rw---- 1 gsadmin gsadmin 142 2008-09-07 02:09 undo360controller.cfg -rw-rw---- 1 gsadmin gsadmin 306 2008-09-07 02:09 valve.rc Execution of scripts: ===================== The autoexec.cfg file tells the server what map to run by default The server.cfg file sets up things which are commong to all instances (rates, admin contact address, fast download, sensible round and map time limits etc.) then executes server_specific.cfg The server_specific.cfg file executes things which are unique to the instance. Normally this is only the hostname Match servers: ============== Only files in the "maps" folder are linked in this way. Files in "cfg" could be done this way as well, but I was pressed for time when I did it :E Maps folder: ============ As well as symlinking the maps into the game instances, the script also compresses them and places them on the webspace for downloading Rationale: ========== We were running 3 public servers from the one box. Doing it this way meant we could make global changes easily (just alter server.cfg), had one common place to put maps, and, because the files were stored outside the game directory, made backing up easier. Also, at that time, steam updates had a habit of clobbering config files. HOWEVER as we are only running a couple of public servers AND they are temporary anyway, this system could/should be changed and simplified. I'd like to make the map servers use symlinking for config files and possibly do the same server.cfg - server_specific.cfg thing as well, but apart from that, I think the current system might just be unneccesarily confusing. Opinions?