An experimental client mod for Cube 2: Sauerbraten, created by Fanatic members.
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.

#Fanatic Edition

#####₪ About

Fanatic Edition is an experimental Cube 2: Sauerbraten client modification, developed by Fanatic members, available for Windows and Linux and licensed under the zlib/libpng license. The project itself is currently in alpha state and bugs/fixes appear daily. If you want to live on the bleeding edge of our development, feel free to try out our client and/or report bugs at our IRC channel.

#####₪ Features

★ Ingame IRC
★ Lua scripting
★ Image importing
★ Object importing
★ Ingame file sharing
★ Client side edit muting
★ Extended editing functions
★ Send your maps inclusive lightmaps
★ New special effects, playermodels and weapon enhancements

... and much more!

#####₪ Installation

Step §1:
Download the latest Cube 2: Sauerbraten SVN repository here or here.

Step §2:
Download the latest Fanatic Edition development release here

Step §3:
Unzip and copy everythig into your fresh created Sauerbraten directory; on linux, place faned_client into your bin_unix/ directory, on windows, place faned_client.exe into your bin/ directory.

Step §4:
On linux, run, on windows, run faned.bat, to fire up the game.

#####₪ Updating

Same like installing, but remember to delete your configuration file faned_config.cfg; an outdated config file may result in errors.

#####₪ Usage

Filesharing: The Fanatic Edition sendfile function allows you to send and share - for example - a mymap.cfg for your map mymap.ogz. Run the command sendfile packages/base/mymap.cfg; your config file will now be sent to the server. After that, your friend needs to run the command getfile packages/base/mymap.cfg to save it and exec packages/base/mymap.cfg to execute the config file. sendfile is not limited to map or configs files; you can share everything you want with it as long as the server is supporting it's file size. Other players without Fanatic Edition who may try to get your file using the default getmap command will get the default could not read map error instead of your file. Remember: This works only if both players are using Fanatic Edition or another modified client with a simliar getfile function (SJM, CMEd).

Filesystem: Fanatic Edition is made to run next to your vanilla Sauerbraten SVN client and not to interfer with its file system; if you want to use your personal auth.cfg or autoexec.cfg with Fanatic Edition, you need to rename them to faned_auth.cfg / faned_autoexec.cfg, otherwise Fanatic Edition will ignore these files.

Importing Images: With Fanatic Edition, you can easy import image files to your map using LUA. Place myimage.png into your sauerbraten main directory, ingame enter the following command: lua importimagevcolor('myImage.png',100,100) and wait till the converting process is finished. The full function's syntax is importimagevcolor('FiLE',WiDTH,HEIGHT,R,G,B,ALPHA).

Importing Objects: To use the blender importer, first install Wrack's SMC Exporter, located at faned/tools/ into Blender: File > User Preferences > Addons > Install Addon and don't forget to activate it. Now create some geometry, select it, hit File > Export > Sauerbraten (.smc), set desired grid and cubecount values (grid 0 and cubecount 50 are good values for testing) and back at Fanatic Edition, simply enter importsmc PATH/FiLE.smc. This will load the .smc (Sauerbraten Marching Cubes) file to your current selection.

Ingame IRC: To use the IRC function, simply go to Main Menu > IRC, connect to a server, join a channel and hit the new keybind »i« to chat. You can use default IRC commands like NAMES, PRIVMSG, WHOIS and WHOWAS within this keybind, too.

Typewriting: To use the typewriter, simply select a cube's right face and run the command typegen "HELLO WORLD!". Note to write your text in uppercase (future fonts will also include lowercase characters). To change the typewriter's font, run the command typegen_font "Directory". Currently included public domain fonts:

»#yolo by Snowy« - Directory: tf_snowy_#yolo/
»1 by restcoser« - Directory: tf_restcoser_1/
»alphabet by TristamK« - Directory: tf_tristamk_alphabet/
»ANDROMEDA by Redon« - Directory: tf_redon_andromeda/
»BAD FONT by bum« - Directory: tf_bum_bad_font/
»Fanatic by Neo« - Directory: tf_neo_fanatic/
»GENERIC by TimmytheWhale« - Directory: tf_timmythewhale_generic/
»lib_rus by TristamK« - Directory: tf_tristamk_lib_rus/
»Pixel Font by Nyne« - Directory: tf_nyne_pixel_font/
»sYNDABC by sYNDERF« - Directory: tf_synderf_syndabc/
»Tiny Font by SomeDude« - Directory: tf_somedude_tiny_font/

#####₪ New Commands: Main

abort Use this command for proper "crashing" FanEd;
anticheat 0|1 Enable or disable the anticheat detection system;
autorespawn 0|1
autosaydisconnect 0|1
autosaydisconnectmsg "STR"
autosaygg 0|1
autosayggmsg "STR"
autosaynp 0|1
autosaynpmsg "STR %s" %s will be replaced with the player's name who teamkilled you;
autosaysorry 0|1
autosaysorrymsg "STR %s" %s will be replaced with the player's name you teamkilled;
autosayteam 0|1
autoswitchclientteam CN / autounswitchclientteam CN
autoswitchweapon 0|1 Enable or disable automatic weapon switch on ammo pickup;
backgroundbluremphasis 0-100
backgroundblurrepeat 0-100
backgroundfog 0.0-1.0
backgroundimagefile STR
backgroundlogofile STR
bloodcolour RGB|HEX
bloodintensity FLOAT
centerconsole 0|1
centerconsolealpha 0-255
centerconsoledelay 0-10000
cgshotcolor RGB|HEX
cgshotduration iNT
cgshotsize FLOAT
codepad Helper for CubeScript/Lua ingame scripting;
compass 0|1
confix iNT Set fixed width for console lines;
consmoothfade 0|1 Enable or disable smooth console fading;
contimestamp 0|1|2 Enable or disable console time, 1: fullconsole, 2: always;
crosshairalpha 0.0f-1.1f
crosshairbumpfx 0|1 Enable or disable the crosshair bump effect;
crosshaircolor RGB|HEX Change the color of your crosshair;
crosshairnames 0|1 Enable or disable drawing info text next to the crosshair (player->name);
crosshairnamesalpha 0-255
crosshairnamescolor 0-9-A-Z
crosshairnamesdelay 0-10000
ctfsoundset "STR" Set the desired soundset for ctf modes;
damagemotion 0|1 Enable or disable special effects after getting damage from explosives;
date %FORMAT Returns the current date/time in given format; example: echo (date %Y-%m-%d %H:%M:%S);
deathcamera 0|1 Enable or disable experimental actor following after death (Note: Other players will not see you spectating.);
deathpanicscreen 0|1 Enable or disable the deathpanic eyeveins screen;
deathpanicsound 0|1 Enable or disable the deathpanic heartbeat sound;
getbuildname Returns "Cube 2: Sauerbraten - Fanatic Edition";
getbuildrevision Returns the current Cube 2: Sauerbraten SVN revision Fanatic Edition is based on;
getbuildurl Returns Fanatic Edition's current github URL;
getbuildversion Returns Fanatic Edition's current build version;
getconline Get the last console output; for specific words use (at $getconline iNT);
guialpha 0-255
guncolorfrags 0|1 Enable or disabled weapon related (colored) frag messages;
highlight "STR" Highlight STR (play highlight sound), default: player1->name;
hudgunalpha 0-255
hudminiscoreboard 0|1 Show a small mini scoreboard at the right side of the hud;
hudminiscoreboardalpha 0-255
hudminiscoreboardcolor 0-9-A-Z
hudminiscoreboardforce 0|1 Force yourself to be the first player shown at the mini scoreboard;
hudminiscoreboardlimitcmode iNT Limit the players shown at the mini scoreboard in ctf/collect mode (with radar);
hudminiscoreboardlimit iNT Limit the players shown at the mini scoreboard;
hudstats 0|1
hudstatsalpha 0-255
hudstatscolor 0-9-A-Z
lasercolorrainbow 0|1
lasercolor RGB|HEX
lasercolorteam 0|1
lightningcolorrainbow 0|1
lightningcolor RGB|HEX
lightningcolorteam 0|1
pishotcolor RGB|HEX
pishotduration iNT
pishotsize FLOAT
playchatsound 0|1
playnearmisssound 0|1
playrespawnsound 0|1
positionpacketdelay 0-33 Less values are smoothing network lags;
radar STR Set custom radar texture;
radarteammatesdead 0|1 Enable or disable radar icons for dead players (own team);
radarteammatesplayerstarts 0|1 Enable or disable radar icons for playerstarts (own team);
riflarecolor RGB|HEX
riflareduration iNT
riflaresize FLOAT
rishotduration iNT
rishotgravity iNT
rishotsize FLOAT
ritraillaser 0|1
ritraillightning 0|1
ritrailsmoke 0|1
ritrailspin 0|1
serverlistmax iNT Set amount of servers shown at one server list page;
setfont FONT Hook for dynamic font changing; myFont.cfg needs to be executed before: (exec packages/fonts/myFont.cfg);
sgshotcolor RGB|HEX
sgshotduration iNT
sgshotsize FLOAT
shotsparks 0|1
showbuildversion 0|1 Enable or disable Fanatic Edition's build version in main menu;
showhighlight 0|1
showserverpreview 0|1 Enable or disable server previews before connecting to a server;
showteamscores 0|1 Show team scores time at upper right corner/below minimap;
showtimeremaining 0|1 Show remaining time at upper right corner/below minimap;
smokecolorrainbow 0|1
smokecolor RGB|HEX
smokecolorteam 0|1
spincolorrainbow 0|1
spincolor RGB|HEX
spincolorteam 0|1
system STR Runs any system command ingame and returns exit/error informations;
teamblue Join the blue team;
teamcolorblue RGB|HEX
teamcolorgreen RGB|HEX
teamcolorred RGB|HEX
teamred Join the red team;
thirdpersonalpha 0-100
zoomscope 0|1

#####₪ New Commands: Editing

ambientocclusion 0-255
ambientocclusionradius 0.0-40.0
ambientocclusionprecision 0.0-17.0f
buildhelix RADiUS HEiGHT POWER
buildmandelbrot Customize via mandelbrotgrid, mandelbrotwidth, mandelbrotheight, mandelbrotdepth and mandelbrotiterations;
buildsimplexnoise RADiUS POWER POSiTiON-X POSiTiON-Y POSiTiON-Z
calclightradius RADiUS Local calclight at player's current position with given radius; set to 0 to disable);
clearbots Remove all connected bots at once;
clearpickups Remove all ffa ents: ammo, health, armor, etc.;
collisions 0|1 Enable or disbale collisions with other players or mapmodels;
conoutf_healthboost 0|1 Enable or disable console output on health boost;
conoutf_quaddamage 0|1 Enable or disable console output on quad damage;
cubelimit iNT Set a limit of cubes other players are allowed to change at once; warn when this limit exceeds;
editent iNDEX X Y Z TYPE ATTR1 ATTR2 ATTR3 ATTR4 ATTR5 Entity scripting hook;
editmute CN / uneditmute CN
fragrecstart Start recording frags (actor, victim, location) to >fragrec.log;
fragrecstop Stop recording frags (actor, victim, location) to >fragrec.log;
genmaze X Y SEED Maze generation; grid is set by selection;
gotodist iNT Customize the distance for /goto and /gotosel;
grid2Dselectioncolor RGB|HEX Set the color of the 2D selection box in editmode;
grid3Dselectioncolor RGB|HEX Set the color of the 3D selection box in editmode;
gridhoverselectioncolor RGB|HEX Set the color of the hovered selection in editmode;
gridselectioncolor RGB|HEX Set the color of the selection in editmode;
importrec FiLE Import .rec files exported from CMEd;
importsmc FiLE Import .smc files exported from Blender;
playasound iNT
playasoundat iNT CN
printsvarescaped 0|1 If enabled, re-print map SVAR (maptitle, cloudlayer, ...) changes escaped;
rave 0|1 Just for fun: /rave 1 will loop through near all possible map variable colors, /rave 0 sets everything back like it was before;
replacetex iNT iNT 0|1 Replace specific texture (iD) with another specific texture (iD), 0|1 everywhere or in selection only;
receiveai 0|1 Enable or disable receiving initial packages for artifical intelligences aka bots;
receivenewmap 0|1 Enable or disable receiving /newmap packets (/getmap to be back in sync);
receiveremip 0|1 Enable or disable /remip packets (/getmap to be back in sync);
receivesendmap 0|1 Enable or disable forced /getmap (#sendto by other players); Warning: This will disable your own /getmap too!;
resetmonsters Call this to update the monster entities after changing the spguard setting;
resetmovables Call this to update the movable entities after changing the spguard setting;
savebak 0|1|2|3 backup saving; 0: no backup, 1: mapname.BAK, 2: mapname_totalmillis.BAK, 3: mapname_date_time.BAK;
selectionguard 0|1 Enable or disable warnings about editing a selection that is not in view;
setcampos X Y Z Works only in coop edit mode;
settex iNT
spguard 0|1 Enable or disable monsters, barrels, boxes, elevators and platforms (works online only for FanEd and CMEd users);
teleport Teleports you instantly to the location your crosshair is pointing at (default bind: "Q"); works only in coop edit;
teleportcn CN X Y Z Teleport CN from his current position to X Y Z;
typegen "TEXT" Write TEXT using premade cube fonts;
typegen_font "DiRECTORY" Change the typegen's font;
unlockmmodels Loads a shitload of additional mapmodels into the F4 menu; used models have to be linked at the map.cfg
writeprotectogz 0|1 Enable to protect already existing maps from overwriting;

#####₪ New Commands: Events

> on* [ action ] Additional event hooks for CubeScript usage;

onconnect [$arg1] Returns: clientnum;
ondamage [$arg1 $arg2 $arg3 $arg4] Returns: actor->clientnum, target->clientnum, actor->gunselect, damage;
ondemoend [ ];
ondemostart [ ];
ondied [$arg1 $arg2 $arg3] Returns actor->clientnum, victim->clientnum, actor->gunselect;
ondropflag [$arg1] Returns: clientnum;
oneditmode [$arg1 $arg2] Returns: clientnum, value;
ongamepausechange [$arg1 $arg2] Returns: clientnum, value;
ongamespeedchange [$arg1 $arg2] Returns: clientnum, value;
onintermision [ ];
onjumppad [$arg1 $arg2] Returns: clientnum, jumppad;
onmapchange [$arg1] Returns: mapname;
onmapstart [ ];
onping [$arg1 $arg2] Returns: clientnum, ping;
onresetflag [$arg1] Returns: team;
onreturnflag [$arg1] Returns: clientnum;
onscoreflag [$arg1 $arg2] Returns: clientnum, team;
onservmsg [$arg1] Returns: text;
onsuicide [$arg1] Returns: clientnum;
ontakeflag [$arg1] Returns: clientnum;
onteleport [$arg1 $arg2 $arg3] Returns clientnum, teleport, teledest;

#####₪ New Commands: History

> Note: These New Commands load and save your /command history manually;
> By default, FanEd will load your /command history automatically;


#####₪ New Commands: Informations

> $get* Get client informations (own client);


> (getclientinfo CN TYPE) Get client informations (all clients);

TYPE 1: return client's current ai;
TYPE 2: return client's current armour;
TYPE 3: return client's current armourtype;
TYPE 4: return client's current attackchan;
TYPE 5: return client's current attacksound;
TYPE 6: return client's current deaths;
TYPE 7: return client's current edit;
TYPE 8: return client's current flagpickup;
TYPE 9: return client's current flags;
TYPE 10: return client's current frags;
TYPE 11: return client's current gunselect;
TYPE 12: return client's current health;
TYPE 13: return client's current idlechan;
TYPE 14: return client's current idlesound;
TYPE 15: return client's current lastaction;
TYPE 16: return client's current lastattackgun;
TYPE 17: return client's current lastbase;
TYPE 18: return client's current lastnode;
TYPE 19: return client's current lastpain;
TYPE 20: return client's current lastpickup;
TYPE 21: return client's current lastpickupmillis;
TYPE 22: return client's current lastrepammo;
TYPE 23: return client's current lasttaunt;
TYPE 24: return client's current lastupdate;
TYPE 25: return client's current lifesequence;
TYPE 26: return client's current ownernum;
TYPE 27: return client's current o.x;
TYPE 28: return client's current o.y;
TYPE 29: return client's current o.z;
TYPE 30: return client's current physstate;
TYPE 31: return client's current ping;
TYPE 32: return client's current pitch;
TYPE 33: return client's current plag;
TYPE 34: return client's current playermodel;
TYPE 35: return client's current privilege;
TYPE 36: return client's current respawned;
TYPE 37: return client's current smoothmillis;
TYPE 38: return client's current state;
TYPE 39: return client's current suicided;
TYPE 40: return client's current tokens;
TYPE 41: return client's current totaldamage;
TYPE 42: return client's current totalshots;
TYPE 43: return client's current vel.magnitude();
TYPE 44: return client's current vel.x;
TYPE 45: return client's current vel.y;
TYPE 46: return client's current vel.z;
TYPE 47: return client's current weight;
TYPE 48: return client's current yaw;

> (get* iNT) Get team score informations: STR = "evil" or "good";

(getteamscore STR)

> (get* iNT [STR]) Get vslot informations: iNT = texture-id, STR = shader-parameter;

(getvalpha iNT);
(getvcolor iNT);
(getvlayer iNT);
(getvoffset iNT);
(getvrotate iNT);
(getvscale iNT);
(getvscroll iNT);
(getvshaderparam iNT STR);

#####₪ New Commands: IRC

irchighlight "STR"
ircquitmessage "STR"

#####₪ New Commands: Physics

> Note: These commands work only in coop edit mode;

airjump 0|1 Airjumping: (hit jump key while in air);
bunnyhop 0|1 Bunny hopping: (hold jump key for continuous jumping);
walljump 0|1 Walljumping: (hit jump key while jumping against a wall);
walljumpvel FLOAT

floorz FLOAT
gravity FLOAT
jumpvel FLOAT
slopez FLOAT
stairheight FLOAT
velocity FLOAT
wallz FLOAT

lookup iNT
lookdown iNT
lookleft iNT
lookright iNT

#####₪ Credits

Nyne: Main Development, Design, C, Lua, CubeScript
bum: C, Lua, CubeScript
Pyccna: Playermodel Reskins and Hudguns
Wrack: Marching Cubes functions
Q009: SauerEnhanced functions
AC: CMEd functions
RaZgRiZ: CubeScript Martial Arts

#####₪ Original Cube 2: Sauerbraten:

Wouter "Aardappel" van Oortmerssen
Lee "eihrul" Salzman
★ Mike "Gilt" Dysart
★ Robert "baby-rabbit" Pointon
★ John "geartrooper" Siar
★ Quinton "Quin" Reeves and others.

#####₪ Contact

IRC: #fanatic
Server: 28785