SDoS-Client base:

The ComEd client is based on the SDoS test client developed by pisto. Core feature of the latter is the updated SDL version (switch to SDL2), which consequently is also part of ComEd. Make sure to check out the readme on GitHub.

ComEd GUI interface:

Since the first release (0.1) we ship an interface where you can find most of the added features, as well as some explanation about those which are best used from the command-line. Make sure you’ve copied the comed-gui.cfg to your config directory as advised in the file, then you can open it with:



Toggle highdpi mode for high resolution displays:
/highdpi [0|1]
On high-dpi displays, you may also want to keep Sauer’s “normal” font size by using /conscale 0.66

Scoreboard options:

Show damage dealt (“dd”) on the scoreboard:
/showdamagedealt [0|1|2]

  • 1: decimal point at numbers > 1000, e.g. “1.4k”
  • 2: full number, e.g. “1450″

Note: Since Sauerbraten servers do not send damage info packets, a little hack is used to record damage on the client side. This results in the damage dealt being recorded from the time you join the server. Therefore, if you join in the middle of a game, you will see the damage dealt from this point on – there should be no problem if you join a game before a new map is loaded.

Show damage received (“dr”) on the scoreboard:
/showdamagereceived [0|1|2]
Same parameters as for damage dealt

Show the accuracy (“acc”) on the scoreboard:
/showaccuracy [0|1]
Note: As the accuracy is calculated using the damage dealt, the same issue as mentioned above applies here, too.

Show deaths on the scoreboard:
/showdeaths [0|1]

Show kill per death ratio (“K/D”) on the scoreboard:
/showkpd [0|1]

Show suicides (“sui”) on the scoreboard:
/showsuicides [0|1]

Chat options:

Color nick names pursuant to the teams’ colors.
/chatcolors [0|1]
Note: Team colors are red for enemies and blue for teammates. Independently from the value of this option, teamchat is orange and spectators are white.

Spectator options:

Draw the HUD element showing spectated players’ names in team colors:
/speccolors [0|1]
Note: The color is shown with respect to the team you are in. Yes, that’s right, even spectators are part of a team. Use: /team [evil|good] to switch sides.

/specautoteam [0|1]
switches automatically the team when you cycle through spectators, so that you’ll always see teammates in blue and enemies in red.

HUD options:

/crosshaircolors [0|1|2]

  • 0: crosshair will always keep its color
  • 1: default behaviour
  • 2: enables the following options:

/crosshaircolor [r g b/hex]
/crosshaircolorhit [r g b/hex]

Floating hud elements:

Almost all elements on your hud are able to assume any position on your screen. All the variables have the following structure in common:

/hud<object>offset_<x|y> [value]

where <object> can be: amour, health, ammo, quad, flag.

You can also switch off the Ammo counter, if you find it distracting when you use the ammobar for example.

/hudammoicon [0|1]


To show a list of how much ammo per weapon you have left or picked up use:

/ammobar [0|1]

The following commands are self-explanatory:

/ammobarfilterempty [0|1]
/ammobarsize [1-30]
/ammobaroffset_x [0-1000]
/ammobaroffset_start_x [-1|0|1]
/ammobaroffset_y, [0-1000]
/ammobarhorizontal [0|1]
/ammobarselectedcolor_r [0-255]
/ammobarselectedcolor_g [0-255]
/ammobarselectedcolor_b [0-255]
/ammobarselectedcolor_a [0-255]

Hud scores:

To display the current score on your hud use

/hudscores [0|1]

There are several adjustment options available for this feature, all are named analogous to the ammobar options above. You can scroll through them by using



To display who you fragged or who fragged you and which weapon was used for the final death stroke, you can use the following command:

/fragmsg [0|1]

Options availabe are: /fragmsgfade [0-10000], /fragmsgname [0|1], /fragmsgsize [1-8], /fragmsgposy [0-1000]

Attacker name options:

Display teammates’ health above their heads:
/showteamhealth [0|1|2]

  • 1: display in numbers
  • 2: display health bars

Increase the size of players’ names above their heads:
/playernamesize [2-10]

Raise players’ names above their heads:
/playernamezoffset [0-10]
Note: Mind that there is a ‘z’ bewteen playername and offset.
Concerns: Mind expose an attacker behind boxes and other obstacles.

Teamkill names:

To retrieve the name for the last victim or culprit of a teamkill you were involved in, use the following commands within your scripts:


For example:

bind KEY [ say (format "Sorry, %1" (getlasttkvictim)) ]

Gunflare cumstomizations:

There are 3 basic options on how to make the smoke trails of shots more visible:

  • [weapon]flarecolor [r g b/hex]
  • [weapon]flaresize [float], float being a value between 0.0 and 5.0
  • [weapon]trailtime [milliseconds], milliseconds being in the range from 0 to 1000

In each case, [weapon] needs to be replaced by either sg (shotgun), cg (chaingun and pistol), ri (rifle), rl (rocketlauncher) or gl (grenade launcher).

For example:

/riflarecolor 255 0 0 or /sgflarecolor #FF0000 for red rifle/shotgun shots
/cgflaresize 5 for chaingun shots thick as trunks
/ritrailtime 1000 for rifle trails staying on screen for one second

Visit a page like this if you need assistance finding the right RGB/Hex value.

Remove the random spread from the particle flares distribution of rifle shots, making them seem smoother:
/smoothrays [0|1]

Change the fading gravity of rifle shots (default 20):
/riflegravity [0-20]


/onspawn = [command]
/ondeath = [command]
Lets you execute an action when you spawn/die.

For example:

onspawn = [ sleep 50 [ if ( || ( = (getmode) 5 ) ( = (getmode) 17 ) ) [ setweapon 3 ] ] ]

selects the rocketlauncher after you respawn in effic (gamemode 5) and efficctf (gamemode 17).

ondeath = customzoom_zoom_out

Calls a -zoom function for a custom zoom script

Weapon accuracy:

If you want to know your accuracy with a specific weapon, use one of the following commands:
getsgaccuracy, getcgaccuracy, getrlaccuracy, getriaccuracy, getglaccuracy, getpistolaccuracy, getfistaccuracy


/echo (format "My shotgun accuracy: %1" (getsgaccuracy))

Example HUD (will be shown in the bottom right corner of your screen):

gamehud = [ format "^f7SG: ^f1%1%% ^f7CG: ^f1%2%% ^f7RL: ^f1%3%% ^f7RI: ^f1%4%% ^f7GL: ^f1%5%% ^n^f7Frags: ^f0%6 ^f7Deaths: ^f3%7 ^f7Acc.: ^f2%8%% ^f7K/D: ^f5%9" (getsgaccuracy) (getcgaccuracy) (getrlaccuracy) (getriaccuracy) (getglaccuracy) (getfrags) (getdeaths) (getaccuracy) (substr (divf (getfrags) (max (getdeaths) 1)) 0 4) ]

Demo options:

The following command enables you to jump to any remaining time during a demo replay.
/demotime [min] [sec]
Note: rewinding is possible.

Client sided demo recording:
/cdemostart – manually start demo recording
/cdemostop – manually stop demo recording

Automatic client sided demo recording:
/cdemoauto [0|1] – enable autorecording clientside demos

Note: this will record any game which is loaded, to prevent a great amount of spam, we added a GUI that will show up on mapload and ask you if you’d like to keep the previously recorded demo. If you use /quit to exit Sauerbraten, this dialogue won’t show up and thus the demo will be saved by default. A better way would be to use /disconnect instead. Make sure to check your config-directory regularly if you use this option.