diff --git a/docs/basics.html b/docs/basics.html new file mode 100644 index 0000000000..8479109c0b --- /dev/null +++ b/docs/basics.html @@ -0,0 +1,468 @@ + + + + + + + + AssaultCube Documentation :: The basics + + + + + + + +
+
+ AssaultCube Documentation +
+ + + +
+ +

The basics

+ Bang bang! +

+ The game objectives of AssaultCube are simple and straightforward: +

+
    +
  1. Find the enemy.
  2. +
  3. Frag or gib the enemy.
  4. +
  5. REPEAT!
  6. +
+

+ There are also flag-based modes, + which have other, more exciting objectives. +

+

+ Controls +

+

+ After knowing the controls, most things in AssaultCube are relatively straightforward. + Press W to move forwards and then move your mouse around to change + directions. +

+

+ Left-click when aimed at an enemy to attack them. +

+

+ Below is a list of all the other controls (map editing controls are here). +

+

+ You can also assign custom keys to specific weapons by using the keybinding menu + in-game. + This can be found by pressing ESC and then navigating to: SettingsInput controls. +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ControlFunction ControlFunction
ESCMain menuLeft mouse clickAttack
WMove forwardRight mouse click + Quick nade throw +
(scope-in when using the sniper rifle) +
SMove backwards
AMove leftMousewheel scrollCycle through weapons
DMove rightCenter mouse clickKnife
Space barJump1Primary weapon
Left SHIFTCrouch2Pistol
BChange weapon menu3Grenades (if available)
RReload4Knife
GQuick grenade throwF1Vote yes
Left ALTMini-mapF2Vote no
TABScoreboardF10Download last recorded server demo
TChat / ConsoleF11Extend the console size
YTeam-chatF12Generate screenshot
VVoice-com menu(Keypad) -Scroll up through console messages
BackspaceDrop the flag(Keypad) +Scroll down through console messages
+
+

+ Joining a multiplayer game +

+

+ Press ESC and choose MultiplayerJoin a server. +

+
+ The serverbrowser +
+

+ The masterserver will be queried and provide you with a list of servers, like the image above. + This list of servers then gets saved in config/servers.cfg for next time. + If the console says "master server + not replying", then that means your client failed to download the list of servers + to play upon, and you will need to click on "Force serverlist update" until it updates. +

+

+ If you wish, you can sort the server browser using your left/right keys. Press F1 in this menu + to see other available options. +

+

+ Alternatively, you can connect to a server directly by using the Custom connect menu and + then enter a valid IP or DNS name of a server & the port number + (and optionally a password, if the server uses one). +

+

+ Note: Although the AssaultCube game engine is open source, you are warned that if you make + gameplay-affecting modifications to your client, and then connect to a public server, you could + be banned from servers and/or the game's + master server. Remember that when you play online, you are playing against other humans, not + bots, and they would like you to play fair.
+ DO NOT CHEAT IN PUBLIC SERVERS. +

+ + + + + + + + + + + + + + + + +
+ SP menu +
The single-player menu. +
+   +
+ Settings menu +
The settings menu. +
+   +
+ Weapons menu +
The weapons menu. +
+

+ Starting a single-player game +

+

+ Starting a single-player game is simple. Press ESC, navigate to Singleplayer, then choose + the mode, bot skill, amount of enemies and the map. Then, a game with computer-bot enemies will start immediately. +

+

+ Changing settings +

+

+ Most important setting changes can actually be changed from within the menus. So, + press ESC and then Settings. There are many important settings in + this menu that can be changed, including changing your name and team. Look in there + for what you need. +

+

+ There are other settings which can't be found inside the menu. These settings + can be changed via the console. Check out the + reference to find out about those settings and how they can be changed. +

+

+ To find out how settings are saved, read here. +

+

+ Choosing a weapon +

+

+ To select a primary weapon, press B to show the weapon menu. + Through this menu you'll be able to choose any of the five + primary weapons. +

+

+ You will then receive the weapon when you next respawn. + If you want the weapon straight away, type /suicide +

+

+ You can select between your primary weapon, pistol/akimbo, grenade or knife + by selecting them using the keys 1-4, or by scrolling through them with your mouse. + Pressing G or right click will throw a grenade. +

+

+ Quick nade throw: If you want to throw a grenade and then quickly switch + back to your normal weapon, press and hold the right mouse button and then let go + to throw the grenade. After throwing the grenade (if you clicked and held it) then + it will switch back to your normal weapon. +

+ Minimap +

+ Orientation +

+

+ If you can't find your way around the map, you can use the mini-map in the top-right + corner of your screen (see right). Also, a bigger version of the map can be shown + by pressing ALT. +

+

+ To learn more about the mini-map, see here. +

+

+ Talking/Chatting +

+

+ If you want to say something to other players, it's very simple. Just press T + to bring up the console where you can type whatever you would like. +

+

+ If you want to make sure what you say is said only to the players on your team (if + in a team mode), then press Y. This will bring up the console with a % + sign in-front of it. The % sign is what is needed in front of ANYTHING + you say to make it be seen ONLY by your team. +

+

+ Gibs +

+

+ "Gibs" are a great way of defeating another player. If you want to gain many + points quickly, this is the way to go about it. Deaths by gib count for 2 frags! + Gibs are created by: Sniper rifle headshots and deaths from knife slashes. +

+

+ Although they don't count for extra frags, it should be noted that death by grenade blasts + and blank-range shotgun create the same messy effect. +

+

+ Voting +

+

+ Voting can be used to do many various things in Multiplayer, such as changing mode/map, + forcing a team change, changing mastermode, kicking or banning a player, setting autoteam + and removing bans. +

+

+ You can make these votes through the menus in-game. When connected, press ESC and + click on Set mode/map. This can also be done through commands if you prefer, example: + typing the command /ctf ac_mines would start a vote for ac_mines in CTF mode. + Note: There are time limits between votes. +

+

+ Use F1 to vote for votes that appear at the bottom left of your screen and + use F2 to vote against them. +

+

+ Spectating +

+

+ Once fragged, you can spectate a game simply by pressing the space bar. + Using your mouse to scroll will change the player you are spectating. Pressing the + space bar will scroll through 3 different spectate modes: Normal spectate, follow-player + or follow with ghost. +

+

+ You can also spectate by pressing ESC in-game and clicking on "Change to spectate mode". This + will cost you 1 death if you're still alive at the time. +

+

+ Voice-com +

+

+ Voice-coms are a nifty way to quickly communicate common phrases to other players. + To use the voice-coms during a multiplayer game, press V. + Then, using numbers, select the voice-com you would like to say. +

+

+ Screenshots +

+

+ Most players use screenshots as a way of keeping a record of their scores. If you only need screenshots to do + this, it's recommended to turn on "Auto-screenshot", which automatically takes a screenshot during intermission + (while the scoreboard is showing) of every game you play. + This can be done in the SettingsMisc settings menu. +

+

+ You can also adjust the image quality of these screenshots through this menu. +

+ You can create a screenshot at anytime during the game by pressing F12 or by typing /screenshot. +

+

+ Demos +

+

+ Demos are a little bit like video recordings of the game, except what they really + do is record all the data sent/received in the game so it can be replayed later (it is not + a video file!). Demos are recorded on THE SERVER only (as recording demos locally + causes issues). +

+

+ Demos are recorded on all servers by default. However, if they've been disabled on the server you're on, + you can only get them recorded if you are an ADMIN and have the server's admin password. +

+

+ In these cases, to record a demo, take admin and use the demo menu (Press ESC in-game and go to Demos). + The next match, a recording will be made and you can vote to stop recording the + demo at any time through: DemosStop recording. +

+

+ When demos are recorded, you'll be prompted to download it by pressing F10 and if pressed, your demo will be downloaded. +

+

+ If you would like to download a previous demo that's still located on the server, + you can use: DemosDownload demos in the menus. +

+

+ Playing and sending custom maps +

+

+ If you want to play a custom map online, then there are three requirements to get it running: +

+
    +
  1. + Make a quality map - If your map does not fulfill the default quality + requirements, after sending it to the server, your map will be rejected, with + an explanation as to what quality requirement hasn't been fulfilled. +
  2. +
  3. + Start the map - This is done by voting for the map and mode to be played. + This can be done through the menus as shown in voting. +
  4. +
  5. + Send the map - This is done by typing /sendmap. This will send the map + file stored on your computer to all the other players so that you can properly play the map. + If the map has a config file, it will send that also. +
    Note: You or the server MUST already have the map file to be able to play a custom map! +
  6. +
+

+ Reset binds / Reset configs +

+

+ If you would like to reset all your controls back to the defaults, you can type + the /resetbinds command. Alternatively, you can find this inside Settings + ⇒ Keyboard settings by choosing Reset keybinds to default settings.... +

+

+ If you would like to be able to reset all settings AND controls to default + values, you can do this easily by typing /resetcfg 1. You can also do this through + the Settings menu by selecting Reset all settings. +

+

+ "resetcfg" deletes the saved.cfg and init.cfg files which contains all user-chosen settings + for AssaultCube. You will need to restart AssaultCube for this to take effect. +

+

+ In-game reference +

+

+ If you would like to see a reference of commands during the game, you can access + these through the menu by going through: HelpAssaultCube reference. +

+

+ If you know the command you would like to use, but just want some information about + it, you can type the command into AssaultCube and information about this command + will be displayed. You can disable this documentation reference if you want by pressing + F1 when it is shown. +

+

+ You can also search the reference through: HelpSearch the reference. +

+
+
+ © Copyright, Rabid Viper Productions +
+
+ + We would be grateful for any donations considered towards AssaultCube + +
+ +
+ + diff --git a/docs/commandline.html b/docs/commandline.html new file mode 100644 index 0000000000..f49b6abde9 --- /dev/null +++ b/docs/commandline.html @@ -0,0 +1,794 @@ + + + + + + + + + AssaultCube Documentation :: Command line arguments + + + + + + + + +
+
+ AssaultCube Documentation +
+ + + +
+ +

Command line arguments

+

+ When you launch AssaultCube, you're able to pass what are known as "arguments" or "switches" + to the launcher, which will force particular settings to occur when AssaultCube runs. +

+

+ Depending on your operating system, the way to pass these arguments will differ, see the following: +

+ + + + + + + + + + +
+ Microsoft Windows +
Microsoft Windows +
+ Linux +
Linux +
+ Apple Mac OS X +
Apple Mac OS X +
+ In the AssaultCube folder is a file named "assaultcube.bat". Right + click this and open it with "notepad" to edit the launcher for the + client. +
After running the server wizard, in this folder will be a "server_autoconfigured.bat". + Right click this and open it with "notepad" to edit the launcher for the server. +

+ All arguments need to be placed after the phrase: + bin_win32\ac_client.exe +
... and before the phrase: %1 %2 %3 %4 %5 +

+ Remember to save the file when you've finished! +
+ In the AssaultCube folder is a file named "assaultcube.sh". Open it with your + favourite text editor (such as: gedit, GNU nano, Vim, GNU Emacs, Kate, etc.) to edit + the launcher for the + client. +
+ After running the server wizard, in this folder will be "server_autogenerated.sh". + Open it with your favourite text editor to edit the launcher for the server. +

+ For the client, all arguments must be placed within the quotes on this line: + CUBE_OPTIONS="--home=${HOME} /.assaultcube --init"
+ For the server, just add your arguments after the phrase: ./server.sh. +

+ Remember to save the file when you've finished! +
+ After starting the AssaultCube launcher, under the "Main" tab of the AssaultCube + launcher is an "Advanced options" bar. You can type all the arguments you need for the client into there. +

+ For the server, under the "Server" tab of the AssaultCube launcher is an "Advanced options" bar. + You can type all the arguments you need for the server into there. +
+

Arguments for the AssaultCube client

+

+ These arguments are specifically for the clients launcher, not the server. All of the arguments are case-sensitive! +
Note: Some of these options can be changed in-game through the menus, without the need to manually force these arguments. +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
 ArgumentDescription
+ G
R
A
P
H
I
C
A
L +
+ -wX + + Sets the desired screen width to X. + The default is -w1024 +
+ -hY + + Sets the desired screen height to Y. + The default is -h768 +
-t + Forces AssaultCube to run in "window" mode (turns fullscreen off). +
You can explicitly force fullscreen mode by using -t1 +
-zN + Sets the precision of the z-buffer + to N bits. +
This should be at least 24 or you may experience depth problems. +
-bNSets the colour depth + to N bits per pixel + (example: -b16 would set the colour depth to 16-bits).
-sN + Sets the stencil buffer precision to N bits. +
This needs to be either 8 to enable shadowing effects, or 0 to turn it off (the default). +
-aN + Sets full-scene + anti-aliasing to N samples (example: -a4 is 4x). +
-vN + Enables v-sync if N is greater than 0. + If N equals -1 then system defaults will be used. +
+ O
N

L
A
U
N
C
H +
--loadmap=FILE + Forces AssaultCube to load the map named FILE when launched. +
--loaddemo=FILEForces AssaultCube to playback the demo named FILE when launched. +
-e"C" + Executes the command C on launch (i.e. -e"echo hello"). Refer to the + CubeScript command reference for a list of all possible commands. +
+ M
O
D
D
I
N
G +
--init + Executes the init script before starting the graphics and sound subsystems (recommended). + By default, the file ./config/init.cfg is used. This can be overriden by setting + --init=yourfile.cfg +
--mod=PATH + Adds the specified path to the list of directories to be searched when loading resources. + Use this to "MOD" the game in a clean way without having to place/replace files in the main directory. +
See the custom mods page for more information. +
Note: Mods need to be added into the --home + directory if one is specified. +
--home=PATH + Specifies the AssaultCube home folder. +
AssaultCube will write custom settings and files to this directory (recommended). +
-mHOSTNAME/IP + Sets the client to update its serverlist from the hostname or IP address of a different masterserver. +
The default is -massault.cubers.net +
--masterport=PORT + Sets the port of the masterserver the client will use, the default is 28760. +
+ M
I
S
C +
-TTags a timestamp to each line of text output to the console.
-d + This starts the executable file for the AssaultCube CLIENT, as an AssaultCube SERVER instead. + You don't need this argument if you're using the server executable. There is no need to use + this argument unless you know what you're doing. +
--versionPrints out the version number (example: 1.104) instead of running AssaultCube.
--protocolPrints out the protocol number (example: 1140) instead of running AssaultCube.
+

Arguments for the AssaultCube server

+

+ These arguments are specifically for the servers launcher, not the client. All of the arguments are case-sensitive! +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
 ArgumentDescription
+ S
I
Z
E +
-cN + Sets the maximum number of players that can play on the server to N (default 6). + The masterserver will only register servers with N set to a value less or equal 16. + If extra players try to connect they will receive a "server full" error message. +
+ N
A
M
I
N
G +
-nS + Sets the server description that shows in the server list. + Make sure you keep it short, otherwise it'll become truncated, example: -n"Fruity: Bananas & Cherry" +
-n1S + Sets a prefix for the server description that remains when the server description is changed using the + /serverdesc + command. A prefix AND/OR suffix MUST be specified for the /serverdesc command to work. +
-n2S + Sets a suffix for the server description that remains when the server description is changed using the + /serverdesc + command. A suffix AND/OR prefix MUST be specified for the /serverdesc command to work. +
-oN + Sets the servers MOTD (message of the day), which appears on the client's console after they connect to the server. +
+ I
P

&

P
O
R
T +
-iIP + Binds the AssaultCube server to a single IP address. This option is only of use for servers that have multiple + IP addresses. Don't use this unless you know what you're doing. +
-fPORT + The AssaultCube server uses 2 ports (UDP), the default ports are 28763 and 28764. + You need to use different ports if you want to run several servers on the same IP address. + This argument allows you to bind the AssaultCube server to other ports. + For example: -f9000 would run a server on ports 9000 and 9001. +
+ P
R
I
V
A
T
I
S
I
N
G +
-pPASSWD + Sets the password of the server PASSWD. Only clients that know the password will be able to connect. + Clients will be required to append the password to the end of the + connect command. +
-mHOSTNAME/IP + Forces the server to register with the hostname or IP address of a different masterserver. +
The default is -massault.cubers.net +
If you want your server to be hidden and not report to the masterserver, use -mlocalhost +
--masterport=PORT + Sets the port on the masterserver to which the server will register, the default is 28760. +
+ A
D
M
I
N
I
S
T
R
A
T
O
R +
-xPASSWD + Sets the administrator password to PASSWD. + If you don't want your commandline to contain the password, or if you need + more than one admin password, use the file "config/serverpwd.cfg". +

Once logged in with the administrator password (by using + /setadmin 1 YOURPASS), further administrator options + are presented to you when opening the menu (however, not all, check the + CubeScript command reference for other options). +
-PfkbMASRCDEPw + Sets whether the role required to call a specific vote belongs to a "player" or an "administrator". + The characters fkbMASRCDEPw are used to set these requirements.
A lower-case character + enables normal players to call that vote, whereas an upper-case character will only allow an administrator to call + the vote.
If a character doesn't appear, then the defaults for that setting will be used.

+ + + + + + + + + + + + + + + + + + + + + + +
 DEFAULT?Vote description
fLowerForce a player to the enemy team.
kLowerKick a player.
bLowerBan a player (and remove bans).
mUpperChange mastermode (open/private/match).
aUpperEnable/disable autoteam.
sUpperShuffle the teams.
rUpperRecord a demo of the next game (if autorecording is disabled).
cUpperClear all demos on the server.
dUpperChange server description.
eUpperCan vote for co-op edit mode.
pUpperCan vote for a gamemode that isn't supported by the map.
tLowerCan send private messages to any player.
wLower + Can vote to kick/ban for "weak" reasons. A "weak" reason is one where the server can't detect + if the player being voted against is lagging, teamkilling, spamming or cheating. +
+
+ For example: -PbmA enables ban & mastermode to be voted by normal players, but only an administrator can change autoteam. +
The '-P' argument can be used several times, for example: '-Pb -Pm -PA' is the same as '-PbmA'. +
+ L
O
G
G
I
N
G +
-V + Verbose mode. This enables additional log messages to be printed, including the server configuration files after parsing. + Using this argument twice will also enable logging of DEBUG messages. Be careful as your logs will show a part-obscured version + of the serverpwd.cfg file. +
-TTags a timestamp to each line of text output to the console/log files.
-NID + + Sets the log identity to ID . By default, the log identity is 'IP[port]'. +
On Linux systems, the log identity is used for the syslog to identify server log entries. +
On Windows and Apple systems, the log identity is used to create the server log filename. +
-Fn + Sets the syslog facility to n. + Values from 0 to 7 are allowed, to make use of the facilities "local0" through to "local7". + By default, local6 is used. For further information, read the documentation of your installed syslog daemon. +
-LFn + Sets the level of logging to n for logging to file. + On Linux systems, this argument enables ADDITIONAL logging, as Linux systems already log to syslog. +
The following levels can be selected:

+ + + + + + + + + + + + + + + + + + + + + +
0DEBUGLogs all messages.
1VERBOSE + Logs all messages of level VERBOSE and above +
This is the same as using the -V argument. +
2INFOLogs all messages of level INFO and above.
This is the default on Windows/Mac.
3WARNINGLog only messages of level WARNING and above.
4ERRORLog only messages of level ERROR.
5NONEDon't log to file. This is the default on Linux systems.
+
-LSn + Sets the level of logging to n for logging to syslog. + This argument is ignored on non-Linux systems. + The following levels can be selected:

+ + + + + + + + + + + + + + + + + + + + + +
0DEBUGLogs all messages.
1VERBOSE + Logs all messages of level VERBOSE and above +
This is the same as using the -V argument. +
2INFOLogs all messages of level INFO and above.
This is the default for Linux.
3WARNINGLog only messages of level WARNING and above.
4ERRORLog only messages of level ERROR.
5NONEDon't log to syslog. This is the default on Windows/Mac systems.
+
-lDisables periodic logging of the game's current status/score (enabled by default).
+ T
H
R
E
S
H
O
L
D
S +
-kN + Sets the kick threshold to N. If a players score drops below it, + he will be kicked automatically. The default is -5, all negative values DO require a minus sign. +
-yN + Sets the ban threshold to N. If a players score drops below it, + he will be banned automatically. The default is -6, all negative values DO require a minus sign. +
-kAN + Sets the threshold (in seconds) for the "AFK" + auto-kick to N. The server won't auto-kick if: +
    +
  • The servers mastermode is PRIVATE or MATCH.
  • +
  • If there are 4 or less players.
  • +
  • If the mode isn't team-based AND the server isn't full.
  • +
+ The server will assume inactive players, even if chatting or in spectate mode, as AFK. + If the value is set lower than 30 seconds, then AFK auto-kick is disabled. + The default setting is 45 seconds. +
-kBN + Sets the amount of minutes a banned player will remain banned from the server to + N
The default is 20 minutes. +
+ M
A
P
S

&

M
O
D
E
S +
-AN + Restricts voting to administrators for a specific map OR a specific mode OR a specific mode on a specified map. + To restrict a specific mode only, use a hash and append the + mode number to the end of this argument. + To restrict a specific map only, append the map name to this argument. + To restrict a specific mode on a map, append the map name to this argument, followed by a + hash and the mode number. +
This argument can be used several times. +

Example: -Aac_desert#13 would restrict mode 13 on ac_desert. +
-Aac_shine restricts map ac_shine +
-A#11 restricts mode 11 (tosok) with any map. +
-Mcurd + Sets whether the role required to sendmap belongs to a "player" or an "administrator". + The characters curd are used to set these requirements. +
A lower-case character enables normal players to do the listed sendmap action, whereas + an upper-case character will only allow an administrator to do the listed sendmap action. + If a character doesn't appear, then the defaults for that setting will be used. + + + + + + + + + + +
 DEFAULT?Sendmap action description
cUpperUpload new maps to the server.
uUpperUpdate existing maps (with the same, or a newer revision).
rUpperRevert existing maps (to an older revision).
dUpperDelete a map from the server.
+ For example: -MCuD enables updating maps for normal players, but only admins can create or delete maps. + The '-M' argument can be used several times on the commandline. For example: '-MC -Mu -MD' is equivalent to '-MCuD'. +
Note: Only maps in the "incoming" folder are affected. Maps in the "official" and "servermaps" folders are + treated as read only. Also note that deleting maps is disabled for BOTH players AND admins by default; to enable + deletion of maps, you MUST use this argument. +
-Zi + Sets the size limit (in megabytes) for maps being uploaded to the "incoming" folder to i. + Any map being uploaded exceeding this limit, will be rejected. The default is 10 megabytes. +
+ D
E
M
O
S +
-Dn + All games DO record demos (which can't be disabled). This argument however, sets the maximum number of recorded demos + to be held in the servers RAM at a time to n. + As demos can become quite large (sometimes up to 2 megabytes), + it may be wise not to keep this setting too high if you're low on RAM and/or are running many servers. + Up to 5 demos are kept in RAM by default. + The oldest demo will be deleted automatically as necessary, to allow for recording of further demos. + If an invalid number is specified (example: 0), then this argument will revert to the default of 5 demos. +
-DI + Limit downloading of demos until the intermission (this will increase the intermission time if someone is downloading a demo). +
-Wf + Sets the path (and optionally, the filename prefix) to write recorded demos to from RAM. + As an example: -Wserverdemos/mydemo would save all demos to the + directory "serverdemos", with a prefix in the filenames of "mydemo". +
Demo filenames will contain the (optional) prefix, the (encoded) time, game mode and map. + To set a path without filename prefix, ensure you add a '/' to the end of this argument. +
The server owner has to take precautions that demo files don't fill up the file system, + as demos can become quite large (sometimes over 2 megabytes). +
--demofilenameformat=s + Changes the format used for saving demos (if the -W argument + is used) to s. + See demonameformat for options. +
--demotimestampformat=s + Changes the timestamp format used for saving demos (if the -W argument + is used) to s. + See demotimeformat for options. +
--demotimelocal=s + Changes whether timestamps are converted to localtime (if s is set to 1) + or to use UTC (if s is set to 0 - this is the default) when saving demos + (if the -W argument is used). + See demotimelocal. +
+ C
H
A
N
G
E

C
F
G

F
I
L
E
P
A
T
H
S +
-Cf + Reads commandline arguments from a file (no files are read by default). + For example, -Cconfig/servercmdline.txt + will read arguments from that file. Only one argument per line is allowed in the file. + Empty lines, and any text after '//' in the file gets ignored. + The file is only read once at server startup, so changing the file's content will not affect a + running server; you would need to restart it. +
See ./config/servercmdline.txt for additional info. +
-Xf + Changes the location of the administrator password file. +
The default is: -Xconfig/serverpwd.cfg +
-rf + Changes the location of the map rotation file. +
The default is: -rconfig/maprot.cfg +
-Bf + Changes the location of the IP blacklist file. +
The default is: -Bconfig/serverblacklist.cfg +
-Kf + Changes the location of the nickname blacklist file. +
The default is: -Kconfig/nicknameblacklist.cfg +
-gf + Changes the location of the forbidden words file. +
The default is: -gconfig/forbidden.cfg +
-Ef + Changes the location of the kill messages file. +
The default is: -gconfig/serverkillmessages.cfg +
-If + Changes the location of the "serverinfo text" filename prefix. + The server automatically adds "_en.txt" as a suffix to complete the filename. +
The default is: -Iconfig/serverinfo +
-Of + Changes the location of the MOTD (message of the day) filename prefix. + The server automatically adds "_en.txt" as a suffix to complete the filename. +
The default is: -Oconfig/motd +
The MOTD will only be read from a file if the -o + argument hasn't been specified. +
+ M
I
S
C +
-SWr + Starts the server as Microsoft Windows service and sets the name of the windows service + that should be used to r. + This will only work if the server is started directly from the windows service manager. +
-uN + Sets the up-stream bandwidth (per player) to N bytes per second. + Only set this argument if you know what you're doing, as specifying a incorrect value is + worse than not specifying it. +
+
+
+ © Copyright, Rabid Viper Productions +
+
+ + We would be grateful for any donations considered towards AssaultCube + +
+ +
+ + diff --git a/docs/css/docs.css b/docs/css/docs.css new file mode 100644 index 0000000000..d43f746ac2 --- /dev/null +++ b/docs/css/docs.css @@ -0,0 +1,66 @@ +/* Main "docs" CSS file for the AssaultCube documentation. */ + +/* Written by: Rabid Viper Productions */ + +/* You may be able to redistribute this content under specific */ +/* conditions. Please read the licensing information, available */ +/* at http://assault.cubers.net/docs/license.html for the */ +/* conditions that would apply to what you may be redistributing. */ + +.docsmain { +padding : 0 5px; +padding-bottom : 25px; +margin-top : 15px; +background-color : #101010; +font-size : 13px; +clear : both; +} +#docsheader { +float : right; +font-size : 18px; +margin-top : 75px; +visibility : visible; +} +#donatedocs { +float : left; +clear : none; +width : 220px; +height : 30px; +margin-top : 5px; +text-align : left; +font-size : 10px; +} +#donatedocs a:link, #donatedocs a:visited { +text-decoration : none; +font-style : italic; +} +#donatedocs a:hover, #donatedocs a:active { +text-decoration : underline; +} +#gohome { +text-align : right; +position : absolute; +width : 870px; +font-family : "Trebuchet MS", Arial, Helvetica, sans-serif; +font-size : 11px; +} +h4 { +padding : 0; +margin : 5px 0; +font-size : 16px; +} +.docswarn { +padding : 5px; +margin-top : 15px; +background-color : #101010; +font-size : 13px; +clear : both; +} +.adsensefooter { +clear : both; +} +.head01 { +text-align : center; +font-weight : bold; +text-decoration : underline; +} diff --git a/docs/css/download.css b/docs/css/download.css new file mode 100644 index 0000000000..81829d4775 --- /dev/null +++ b/docs/css/download.css @@ -0,0 +1,33 @@ +/* Additional "download" CSS file for assault.cubers.net/download.html */ + +/* Written by: Rabid Viper Productions */ + +/* You may be able to redistribute this content under specific */ +/* conditions. Please read the licensing information, available */ +/* at http://assault.cubers.net/docs/license.html for the */ +/* conditions that would apply to what you may be redistributing. */ + +#donate { +margin-top : 15px; +} +#dllinks { +padding : 15px 0; +margin : auto auto; +text-align : center; +font-size : 14px; +} +#dllinks td { +padding : 0 30px; +vertical-align : text-bottom; +} +#dllinks td a:link, #dllinks td a:visited { +text-decoration : none; +} +#dllinks td a:hover, #dllinks td a:active { +text-decoration : underline; +} +.dlstats { +float : right; +padding : 5px; +font-size : 16px; +} \ No newline at end of file diff --git a/docs/css/fancytable.css b/docs/css/fancytable.css new file mode 100644 index 0000000000..4c7cf0b311 --- /dev/null +++ b/docs/css/fancytable.css @@ -0,0 +1,16 @@ +/* Fancy table file for the AssaultCube documentation. */ + +/* Written by: Rabid Viper Productions */ + +/* You may be able to redistribute this content under specific */ +/* conditions. Please read the licensing information, available */ +/* at http://assault.cubers.net/docs/license.html for the */ +/* conditions that would apply to what you may be redistributing. */ + +table, tr, td { +border : #555555 dotted 1px; +border-collapse : collapse; +vertical-align : top; +text-align : center; +padding : 5px; +} \ No newline at end of file diff --git a/docs/css/invisibility.css b/docs/css/invisibility.css new file mode 100644 index 0000000000..7311039fa6 --- /dev/null +++ b/docs/css/invisibility.css @@ -0,0 +1,25 @@ +/* "invisibility.css" for the AssaultCube documentation. */ +/* Written by: Rabid Viper Productions */ + +/* Use this file to hide elements on the website, that you wish */ +/* normally to be visible when viewed offline. */ +/* If you wish to do the same, but vice-versa, just use SSI to */ +/* gain the effect, instead. */ + +/* How to use: */ +/* Add the below SSI comment in the head of the webpage: */ +/* */ + +/* When the page is opened locally, your browser will interpret */ +/* the line as a comment and NOT open this visibility.css file. */ +/* However, when the server processes the page, it will add */ +/* this CSS file into the page. */ + +/* You may be able to redistribute this content under specific */ +/* conditions. Please read the licensing information, available */ +/* at http://assault.cubers.net/docs/license.html for the */ +/* conditions that would apply to what you may be redistributing*/ + +#docsheader { +visibility : hidden; +} diff --git a/docs/css/main.css b/docs/css/main.css new file mode 100644 index 0000000000..961e725e62 --- /dev/null +++ b/docs/css/main.css @@ -0,0 +1,246 @@ +/* Main CSS file for assault.cubers.net */ + +/* Written by: Rabid Viper Productions */ + +/* You may be able to redistribute this content under specific */ +/* conditions. Please read the licensing information, available */ +/* at http://assault.cubers.net/docs/license.html for the */ +/* conditions that would apply to what you may be redistributing. */ + +body { +margin : 0; +background : #222222 url('../images/bodybg.png') repeat-y center top; +background-attachment : fixed; +font-family : Verdana, Arial, Helvetica, sans-serif; +color : #909090; +} +img { +border : none; +} +a:link, a:visited { +color : #909090; +} +a:hover, a:active { +text-decoration : none; +color : #c0c0c0; +} +h4 { +margin : 24px 0 12px 0; +padding : 4px 8px; +} +#container { +margin : 0 auto 0 auto; +width : 880px; +} +#logo { +position : absolute; +padding-left : 4px; +} +#menubar { +margin : 0 auto 0 auto; +padding-top : 81px; +padding-bottom : 1px; +background : url('../images/cla-rvsf.png') top right no-repeat; +border-bottom : 1px solid #555555; +text-align : left; +font-size : 14px; +white-space : nowrap; +} +#menubar a:link, #menubar a:visited { +font-weight : bold; +color : #909090; +text-decoration : none; +} +#menubar a:hover, #menubar a:active { +color : #c0c0c0; +} +#main { +padding : 0 5px; +padding-bottom : 10px; +margin-top : 15px; +margin-bottom : 15px; +float : left; +width : 640px; +background-color : #101010; +text-align : left; +font-size : 13px; +} +#download { +float : right; +clear : right; +margin-top : 15px; +height : 300px; +width : 220px; +background-color : #101010; +text-align : center; +font-size : 15px; +} +#download td { +padding : 4px; +} +#screenshot { +text-align : center; +} +.dottedline { +margin : 0; +border-bottom : 2px dotted #555555; +line-height : 0; +} +#howdoi { +float : right; +clear : right; +margin-top : 10px; +padding : 0 5px; +height : 395px; +width : 210px; +background-color : #101010; +text-align : left; +font-size : 13px; +} +.downloadlink td a:link, .downloadlink td a:visited { +text-decoration : none; +} +.downloadlink td a:hover, .downloadlink td a:active { +text-decoration : underline; +} +.downloadlink { +margin : auto auto; +margin-top : 10px; +text-align : left; +} +h2 { +margin : 0; +padding-top : 10px; +text-align : center; +} +h3 { +margin : 0; +padding-top : 5px; +text-align : center; +font-size : 18px; +} +#nutshell { +list-style-type : square; +} +.titletext { +border-bottom : 1px dashed; +cursor : help; +display : inline; +} +#author { +float : right; +clear : right; +width : 220px; +height : 30px; +margin-top : 5px; +text-align : right; +font-size : 10px; +} +#author a:link, #author a:visited { +text-decoration : none; +font-style : italic; +} +#author a:hover, #author a:active { +text-decoration : underline; +} +#hotlinks { +float : right; +clear : right; +width : 220px; +height : 270px; +margin-top : 10px; +background-color : #101010; +text-align : left; +font-size : 13px; +} +#hotlinks ul { +margin-top : 5px; +list-style-type : square; +} +#socialmedia { +float : right; +clear : right; +width : 220px; +height : 175px; +margin-top : 10px; +background-color : #101010; +text-align : left; +font-size : 13px; +} +#socialmedia div { +text-align : center; +padding : 3px; +} +.errormain { +padding : 0 5px; +padding-bottom : 25px; +margin-top : 15px; +background-color : #101010; +text-align : center; +font-size : 13px; +} +.code { +font-family : "Courier New", Courier, monospace; +} +.table1 { +text-align : center; +} +.table1 tr td { +vertical-align : text-top; +} +.tabletxt { +padding : 10px 35px; +vertical-align : text-top; +text-align : left; +} +.tabletxt2 { +padding : 5px 10px; +vertical-align : text-top; +text-align : left; +} +.releasedate { +font-size : 75%; +} +.resources td { +padding : 4px 16px 2px 4px; +margin : 0; +width : 150px; +vertical-align : text-top; +} +#donate { +float : right; +clear : right; +width : 210px; +height : 180px; +margin-top : 10px; +padding : 0 5px; +background-color : #101010; +text-align : left; +font-size : 13px; +} +.adsense200x200 { +float : right; +clear : right; +margin : 5px; +} +.sponsors { +margin-bottom : 2px; +text-align : center; +font-size : 10px; +font-style : italic; +text-decoration : underline; +} +.adsensefooter { +text-align : center; +} +.footer1ad { +margin : 0 25px; +} +.footer2ad { +margin : 0 25px; +} +.adsense160x600 { +margin : 0 30px; +float : right; +clear : right; +} diff --git a/docs/css/referencexml.css b/docs/css/referencexml.css new file mode 100644 index 0000000000..567ca62e38 --- /dev/null +++ b/docs/css/referencexml.css @@ -0,0 +1,219 @@ +/* Main CSS file for the ../reference.xml document. */ + +/* Written by: Rabid Viper Productions */ +/* Special thanks to Adrian 'driAn' Henke for the original document */ +/* that all these XML-related files are based upon. */ + +/* You may be able to redistribute this content under specific */ +/* conditions. Please read the licensing information, available */ +/* at http://assault.cubers.net/docs/license.html for the */ +/* conditions that would apply to what you may be redistributing. */ + + +/* MAIN DOCUMENT */ +.docsmain { +clear : none; +float : left; +width : 720px; +} +#gohome { +width : 720px; +} +/* CONTENTS PANEL */ +.commandlist { +margin-top : 15px; +font-size : 17px; +text-align : center; +padding : 5px 0; +font-family : "Trebuchet MS", Arial, Helvetica, sans-serif; +color : #ffffff; +border : #00303d solid 2px; +background-color : #101010; +float : right; +clear : right; +width : 136px; +} +div#contentspanel { +margin-top : 10px; +float : right; +clear : right; +width : 140px; +overflow-wrap : break-word; +margin-left : 10px; +font-family : "Trebuchet MS", Arial, Helvetica, sans-serif; +font-size : 10px; +text-align : left; +background-color : #101010; +} +div#contentspanel div.sectiontitle { +padding-left : 10px; +height : 20px; +background-color : #252525; +border-top : 1px solid #000000; +border-bottom : 1px solid #000000; +font-size : 14px; +font-weight : bold; +margin : 0; +line-height : 20px; +white-space : nowrap; +} +div#contentspanel ul { +list-style-type : none; +margin : 0; +padding : 5px; +} +div#contentspanel a { +text-decoration : none; +color : #e0e0e0; +} +div#contentspanel div.identifiers a { +display : block; +position : relative; +width : 121px; +overflow : hidden; +} +div#contentspanel div.identifiers a:hover { +width : 128px; +color : black; +font-size : 12px; +border : #000000 solid 1px; +padding : 0; +text-align : center; +background-color : #666666; +} +/* TOP-OF-PAGE CATEGORY LIST */ +#categorylist { +margin : 0; +margin-top : 5px; +padding : 0; +padding-bottom : 20px; +} +#categorylist li { +display : inline; +list-style-type : none; +font-size : 13px; +padding-right : 20px; +} +div#topbutton a { +position : fixed; +padding : 5px 10px; +right : 20px; +bottom : 10px; +font-size : 12px; +font-family : "Trebuchet MS", Arial, Helvetica, sans-serif; +font-weight : bold; +text-decoration : none; +border : black solid 2px; +background-color : #444444; +color : black; +z-index : 1; +} +div#topbutton a:hover { +background-color : #666666; +} +/* Identifier */ +div.section div.identifier { +padding : 0 0 10px 0; +margin : 0 0 0 20px; +} +/* Display name */ +div.section div.identifier div.displayname { +font-family : "Courier New", Sans-Serif; +margin : 1em 0 1em -20px; +} +div.section div.identifier div.displayname a { +color : #007190; +text-decoration : none; +} +/* Command arguments */ +div.section div.identifier div.argumentDescriptions { +margin : 10px 0 0 0; +padding : 0; +} +div.section div.identifier div.argumentDescriptions table { +margin : 0; +padding : 0; +border-collapse : collapse; +width : 100%; +} +div.section div.identifier div.argumentDescriptions table td { +border : #777777 solid 1px; +} +div.section div.identifier div.argumentDescriptions table th { +font-weight : normal; +color : #000000; +padding : 2px 3px; +background-color : #666666; +border : #444444 solid 1px; +} +div.section div.identifier div.argumentDescriptions table tr td.token { +font-style : italic; +width : 65px; +} +div.section div.identifier div.argumentDescriptions table tr td.description { +width : 300px; +} +/* Variable value */ +div.section div.identifier div.valueDescription { +margin : 10px 0 0 0; +padding : 0; +} +div.section div.identifier div.valueDescription table { +margin : 0; +padding : 0; +border-collapse : collapse; +width : 100%; +} +div.section div.identifier div.valueDescription table td { +border : #777777 solid 1px; +} +div.section div.identifier div.valueDescription table th { +font-weight : normal; +color : #333333; +background-color : #777777; +border : #777777 solid 1px; +} +div.section div.identifier div.valueDescription table tr td.token { +font-style : italic; +width : 65px; +} +div.section div.identifier div.valueDescription table tr td.values { +width : 200px; +} +div.section div.identifier div.valueDescription table tr td.range { +width : 50px; +} +div.section div.identifier div.valueDescription table tr td.defaultValue { +text-align : right; +width : 50px; +} +/* Remarks */ +div.section div.identifier div.remarks { +margin : 10px 0 0 0; +padding : 0; +} +div.section div.identifier div.remarks div.remark { +margin : 10px 0 0 0; +} +div.section div.identifier div.references { +margin : 10px 0 0 0; +padding : 0; +} +/* References */ +div.section div.identifier div.references a.internal { +font-family : "Courier New", Sans-Serif; +text-decoration : none; +} +/* Examples */ +div.section div.identifier div.examples { +margin : 0; +padding : 0; +} +div.section div.identifier div.examples div.code { +margin : 10px 0 10px 0; +padding : 0; +} +div.section div.identifier div.examples div.exampleExplanation { +margin : 0; +padding : 0; +} diff --git a/docs/cubeengine.html b/docs/cubeengine.html new file mode 100644 index 0000000000..896abfcd61 --- /dev/null +++ b/docs/cubeengine.html @@ -0,0 +1,190 @@ + + + + + + + + AssaultCube Documentation :: The AssaultCube/CUBE engine + + + + + + +
+
+ AssaultCube Documentation +
+ + + +
+ NOTE: This page of the documentation has been quickly converted from + AssaultCube's old + README and has not yet been checked properly for mistakes/weird stylying/invalid markup/inconsistencies/etc. + We're on it though, check back soon! +
+
+ +

The AssaultCube/CUBE engine

+ + + + + + + + + + +

+ AssaultCube is based on the FPS Cube and so (apart from all the changes and also the + backports from Cube2/Sauerbraten) it works in quite the same way as Cube did. +

+

Rendering

+

+ The AssaultCube/Cube engine is simplicity itself. The whole map consists of a large 2D array of "cubes", + each with a floor and ceiling height, textures (for floor/ceiling/wall) and other properties. + These cubes are grouped 2x2 at a time recursively into a "quad tree", which is used to hold bigger + cubes which can be rendered faster. For those who have edited doom, this is very similar to + having a lot of square sectors but at overlapping sizes. This results in a map that can't have + room over room (yet), and is pretty cubic, except for the odd slope/slant here and there. +

+

+ The floor size of a single unit (single cube) is similar to about 16x16 units in games such as + doom & quake, so a staircase step is usually 1 unit, a wall 8 units high etc. +

+

+ AssaultCube/Cube renders this world by first determining which cubes are visible using a "dynamic occlusion culling" + algorithm and frustum culling. You can see the effect of this when you switch to edit mode (E), + and then fly out above a map: you'll see parts of the map dropping away as you move. The remaining + cubes are then rendered in their most efficient size (i.e. cube will render a mixture of 1x1 2x2 4x4 + etc. size cubes, depending on whether they have the same properties: height, texturing etc.). +

+

+ If you are on a fast system, or you are playing a simple/small map, AssaultCube/Cube will simply render all + of these visible cubes (this is indicated by LOD at its maximum of 250 on the hud). AssaultCube/Cube can however + make complex maps run fast even on slower computers by a technique called LOD: this will render cubes + that are further away using bigger approximations (2x2 and up), even the properties of the constituent + cubes don't match exactly. This reduces the amount of polys to be rendered tremendously, and thus allows + even slow machines to have a consistent frame rate (cube will adapt the LOD figure every frame to aim + for the fps you specify). The downside is of course, that if the approximations are visible closeup, this + can lead to ugly graphical glitches (this is called "popup" because it changes as you move). So in the + end, the choice is up to you: good FPS or constant visual quality (most engines only cater for the latter). +

+

Networking

+

+ You will notice that AssaultCube/Cube plays better on a high ping connection than most games out there. + The reason for this is that many things in AssaultCube/Cube are done clientside, not just + movement (as is common in games today) but also aim (the fat-client/thin-server model). +

+

+ The benefits of this are that the effects of lag are minimised, and someone on a 200 ping can + compete on an almost even playing field with someone with a 20 ping, the disadvantages are mainly + in that its harder to combat cheating. Recently though, AssaultCube has become slightly more + server side to add some cheat prevention into the game, but still does many things client-side. + Advantages for server administrators are that AssaultCube/Cube servers use virtually no CPU + and very little bandwidth, even with a lot of clients (you can host a 4 player game on a modem!). +

+

+ It is impossible to completely hide lag however, and these are some of the effects that can still + show lag if you or someone you play with has a high ping / bad connection: +

+ +

Map editing

+

+ All map editing is done internally within the game itself. Press E to enter map-editing mode. + In-game map editing promotes easy learning of how to edit maps, as well as co-operative + map editing. It also makes testing the map (using bots, seeing how it looks like within the game's environment, etc.) quite easy. + Creating a new map is quite easy, but it takes time to learn the skills needed to create one of fair quality. +

+

+ More information about map editing can be found here. +

+ + + + + + + + + + + + + + + + + +
+
+ © Copyright, Rabid Viper Productions +
+
+ + We would be grateful for any donations considered towards AssaultCube + +
+ +
+ + diff --git a/docs/faqs.html b/docs/faqs.html new file mode 100644 index 0000000000..0835c0f919 --- /dev/null +++ b/docs/faqs.html @@ -0,0 +1,227 @@ + + + + + + + + AssaultCube Documentation :: F.A.Q'S + + + + + + + + + +
+
+ AssaultCube Documentation +
+ + + +
+ +

F.A.Q'S

+

+ Only frequently asked questions are answered on this page. If you've looked through the + rest of the official documentation and still can't find the answer you need, you might like + to try searching the wiki and the + forums, and if you still can't find the + answer, post a thread on the forum explaining your situation. +

+ +
+
+ © Copyright, Rabid Viper Productions +
+
+ + We would be grateful for any donations considered towards AssaultCube + +
+ +
+ + diff --git a/docs/getstarted.html b/docs/getstarted.html new file mode 100644 index 0000000000..ec4ba9c2c2 --- /dev/null +++ b/docs/getstarted.html @@ -0,0 +1,266 @@ + + + + + + + + AssaultCube Documentation :: How to get started + + + + + + + +
+
+ AssaultCube Documentation +
+ + + +
+ +

How to get started

+

+ This page should help you with getting AssaultCube installed and making it work. If you've ever played + CUBE or Sauerbraten + and either of them runs fine, then so should AssaultCube. +

+

+ System requirements +

+

+ The following are the bare minimum requirements. AssaultCube may require you to use very low graphics settings + to play on a system like this. As you would expect, the more powerful than this, the better! +

+ +

+ It will also require one of the following, capable operating systems: +

+ + + + + + + + + + + + + + + + + +
+ Microsoft Windows 2000/XP/Vista/7/8 + + Microsoft Windows 2000/XP/Vista/7/8
+ Plus any derivatives of these systems. +
+ Linux + + Linux
+ You'll need to make sure the appropriate OpenGL drivers are installed, plus these libraries + (you may already have most of them installed by default): +
    +
  • SDL
  • +
  • SDL_image
  • +
  • zlib
  • +
  • libogg
  • +
  • libvorbis
  • +
  • OpenAL Soft
  • +
+ For RedHat based systems, type this at the command line:
+ + sudo yum install SDL SDL_image zlib libogg libvorbis openal-soft
+ For Debian based systems, type this at the command line:
+ + sudo apt-get install libsdl1.2debian-all libsdl-image1.2 zlib1g libogg0 libvorbis0a libopenal1 +
+ Apple Mac OS X 10.4 + + Mac OS X 10.4
+ Version 10.4 or higher. +
+ Any Other OS + + Any other operating systems
+ If you can run the neccesary libraries/drivers and are able to compile the AssaultCube source + code by yourself, then you may be able to port AssaultCube onto other platforms. + However, please note that we may be unable to support these platforms. +
+

+ Enhancing performance for low-end machines +

+

+ As previously stated, the hardware specifications shown above are the bare minimums, so you may require a + bit of adjustment to get AssaultCube to run on a system like that. Of course, we recommend that you run AssaultCube + on better hardware than this. Here's a few things to do to help AssaultCube can run well on such low specifications. +

+
    +
  1. Firstly, ensure you have updated your graphics drivers!
  2. +
  3. Secondly, if you're using a laptop, plug in the power, then check if any power-saving features are hindering AssaultCube.
  4. +
  5. In your operating system, set your resolution to 800x600 and colour depth to 16-bit (high colour).
  6. +
  7. + In your graphics driver software, turn off or turn down as many "extra" options that your graphics card allows, + such as anti-aliasing and anisotropic filtering. +
  8. +
  9. + Turn on "vsync" in your graphics driver software (however, turn this off again, if you find AssaultCube performs poorly). +
  10. +
  11. + In AssaultCube, set the resolution to be exactly the same as your operating systems resolution.
    + This can be done in the “Settings” -› “Video Settings” menu; under the "Screen width" and "Screen height" options. +
  12. +
  13. + To make things easy, we've put most of AssaultCubes graphic options in one easy slider. In AssaultCube, you can go to the + “Settings” -› “Video Settings” menu & slide the "Graphics detail" option to the lowest option. +
  14. +
+

+ These links should be able to help further if you would like to know more about tweaking your graphics card settings: +

+ +

+ Installing AssaultCube +

+ + + + + + + + + + + + + + + + + +
+ Windows + + Windows
+ Download the executable from Sourceforge. Open it and follow the instructions. +
+ Linux + + Linux
+ Download the tarball from Sourceforge. Extract it somewhere where you have permissions + to read/write. If you want to set AssaultCube to play straight off your desktop application menu, you + have to run client_desktop_install.sh once. +
+ Apple + + Mac OS X
+ Download the diskimage from Sourceforge. Drag the contents to your Applications folder. +
+ Any other OS + + Other operating systems
+ You'll need to gather the libraries and drivers needed for AssaultCube by yourself. + You will then need to compile AssaultCube from source. For this, you'll need to + download the tarball labelled "source" from Sourceforge as well as the linux tarball package. +
+

+ More help for installing AssaultCube on different Operating Systems can be found + on the wiki here. +

+

+ Running AssaultCube +

+ + + + + + + + + + + + + +
+ Windows + + Windows
+ Use the shortcut provided. Or execute the assaultcube.bat file in your AssaultCube folder. +
+ Linux + + Linux
+ In a console, change your location (cd) to the main AssaultCube directory and then + execute assaultcube.sh. + You can also click on AssaultCube from the 'Games' section of your desktop application menu. +
+ Apple + + Mac OS X
+ Open the applications folder. Click on AssaultCube. Select the options you want + to use to run AssaultCube and then press play. +
+

+ Special notes +

+

+ Files that AssaultCube writes during the game (such as screenshots, settings and maps) get saved + into a seperate folder known as the "AssaultCube home folder". The location of this folder differs, + depending on your operating system.
+ Read the where is my AssaultCube home folder FAQ for more details. +

+
+
+ © Copyright, Rabid Viper Productions +
+
+ + We would be grateful for any donations considered towards AssaultCube + +
+ +
+ + diff --git a/docs/graphicsdrivers.html b/docs/graphicsdrivers.html new file mode 100644 index 0000000000..c5cc2591b8 --- /dev/null +++ b/docs/graphicsdrivers.html @@ -0,0 +1,95 @@ + + + + + + + + AssaultCube Documentation :: Update your graphics drivers + + + + + + +
+
+ AssaultCube Documentation +
+ + + +
+ +

Update your graphics drivers

+

+ The best way to get the best performance out of any 3D application is by using the + latest and correct graphics drivers, with the correct settings. AssaultCube is no exception + to this rule. If you have any problems running AssaultCube, always check your drivers + first! +

+

+ To download and install the latest and correct drivers, follow these steps: +

+
    +
  1. Find out the correct name/make/model of your video card.
  2. +
  3. + Go to the driver/support section of your video card manufacturers website (e.g. + NVIDIA, + ATi, + Intel, + Matrox, + VIA, + S3, + etc) and download the latest and correct drivers for your model and operating system. +
  4. +
  5. + Install and configure the drivers as per the instructions given to you by the manufacturer + (make sure previous versions of the drivers are uninstalled). +
  6. +
+

+ Some operating systems and graphics cards have other special drivers and methods + that you can explore for your drivers. Microsoft Windows users may benefit from + Omega Drivers, some NVIDIA (Microsoft Windows only) + users can try using nTune. + Linux users might like EnvyNG. +

+

+ Warning: If you're using a laptop, you may need to consult your laptop manufacturer + for drivers, as most laptop graphics drivers are heavily customised. +

+

+ Note: Please read this if you need some guidance on + enhancing graphics performance for low-end machines. +

+

+ Disclaimer: Updating your graphics drivers, though important, is a process that involves + installing system-level software. Occasionally, issues may arise, so we recommend you keep + a backup of your old drivers just in case (these are probably on the CD that came with your + computer). If you have any issues at all, we highly recommend searching the forums + and support pages for your operating system supplier and graphics card manufacturer. +

+
+
+ © Copyright, Rabid Viper Productions +
+
+ + We would be grateful for any donations considered towards AssaultCube + +
+ +
+ + diff --git a/docs/history.html b/docs/history.html new file mode 100644 index 0000000000..5239ca7d36 --- /dev/null +++ b/docs/history.html @@ -0,0 +1,1002 @@ + + + + + + + + AssaultCube Documentation :: AssaultCubes history + + + + + + +
+
+ AssaultCube Documentation +
+ + + +
+ NOTE: This page of the documentation has been quickly converted from + AssaultCubes old + README and has not yet been checked properly for mistakes/weird stylying/invalid markup/inconsistancies/etc. + We're on it though, check back soon! +
+
+ +

AssaultCubes history

+ + +

+ AssaultCube v1.2.0.0 +

+ + AssaultCube ChangeLog + +

Weapons

+ + +

Gameplay

+ + +

Chat

+ + +

Servers

+ + +

Server browser

+ + +

Media (maps/textures/models)

+ + + +

Mapping

+ + + +

Rendering / HUD / ...

+ + +

Physics

+ + +

Demos / Spectating

+ + +

Sounds / Audio

+ + +

Menus

+ + +

Bots

+ + +

CubeScript

+ + +

I18n / L10n

+ + + +

+ AssaultCube v1.1.0.4 +

+

+ Released: 15th of November, 2010 +

+

+ Gameplay +

+ +

+ Client +

+ +

+ Server +

+ +

+ AssaultCube v1.1.0.3 +

+

+ Released: 10th of October, 2010 +

+

+ Gameplay +

+ +

+ Client +

+ +

+ AssaultCube v1.1.0.2 +

+

+ Released: 20th of August, 2010 +

+

+ Anticheat +

+ +

+ Server +

+ +

+ Client +

+ +

+ Code +

+ +

+ AssaultCube v1.1.0.1 +

+

+ Released: 9th of August, 2010 +

+

+ Anticheat +

+ +

+ Client +

+ +

+ Server +

+ +

+ AssaultCube v1.1.0.0 +

+

+ Released: 4th of August, 2010 +

+

+ Gameplay +

+ +

+ Server +

+ +

+ Client +

+ +

+ Editing +

+ +

+ Code +

+ +

+ Doc +

+ +

+ AssaultCube v1.0.4 +

+

+ Released: 15th of June, 2009 +

+

+ Client +

+ +

+ Server +

+ +

+ AssaultCube v1.0.3 +

+

+ Released: 18th of May, 2009 +

+

+ Client +

+ +

+ Server +

+ +

+ AssaultCube v1.0.2 +

+

+ Released: 30th of December, 2008 +

+

+ Client +

+ +

+ Server +

+ +

+ AssaultCube v1.0.1 +

+

+ Released: 12th of December, 2008 +

+

+ Gameplay +

+ +

+ Client +

+ +

+ Server +

+ +

+ AssaultCube v1.0 +

+

+ Released: 21st of November, 2008 +

+

+ Gameplay +

+ +

+ Audio +

+ +

+ Graphics +

+ +

+ Interface +

+ +

+ Server +

+ +

+ Editing +

+ +

+ Misc +

+ +

+ Fixes +

+ +

+ AssaultCube v0.93 +

+

+ Released: 4th of June, 2007 +

+ +

+ ActionCube v0.92 +

+

+ Released: 17th of Janurary, 2007 +

+ +

+ ActionCube v0.91 +

+

+ Released: 12 of November, 2006 +

+

+ Some of the features are backports from Sauerbraten, thanks to eihrul. +

+ +

+ ActionCube v0.90 - First public beta +

+

+ Released: 4th of November, 2006 +

+

+ Artwork +

+ +

+ Game/Engine +

+ +

+ The day makkE came to town... +

+
+ BEGIN LOGGING AT Sun Aug 1 11:46:13 2004
+ Aug 01 16:12:02 --> makkE (makkE@116-1-87.w193-250.abo.wanadoo.fr) has joined + #ActionCube
+ Aug 01 16:12:18 <makkE> hi
+ Aug 01 16:13:29 <driAn> hi +
+

+ Project Launch +

+

+ In July 2004, Arghvark, driAn, Verbal_ and dtd started developing AssaultCube. +

+ + + + + + + + + + + + + +
+
+ © Copyright, Rabid Viper Productions +
+
+ + We would be grateful for any donations considered towards AssaultCube + +
+ +
+ + diff --git a/docs/images/ac_knife-16px.gif b/docs/images/ac_knife-16px.gif new file mode 100644 index 0000000000..d3c71f6953 Binary files /dev/null and b/docs/images/ac_knife-16px.gif differ diff --git a/docs/images/ac_knife.gif b/docs/images/ac_knife.gif new file mode 100644 index 0000000000..f08955f56e Binary files /dev/null and b/docs/images/ac_knife.gif differ diff --git a/docs/images/aclogo.png b/docs/images/aclogo.png new file mode 100644 index 0000000000..9fbc977f88 Binary files /dev/null and b/docs/images/aclogo.png differ diff --git a/docs/images/apple.png b/docs/images/apple.png new file mode 100644 index 0000000000..0ecc172a29 Binary files /dev/null and b/docs/images/apple.png differ diff --git a/docs/images/attackfromback.jpg b/docs/images/attackfromback.jpg new file mode 100644 index 0000000000..a8216d2045 Binary files /dev/null and b/docs/images/attackfromback.jpg differ diff --git a/docs/images/bodybg.png b/docs/images/bodybg.png new file mode 100644 index 0000000000..3be2a32071 Binary files /dev/null and b/docs/images/bodybg.png differ diff --git a/docs/images/cla-rvsf.png b/docs/images/cla-rvsf.png new file mode 100644 index 0000000000..c389153eeb Binary files /dev/null and b/docs/images/cla-rvsf.png differ diff --git a/docs/images/crouch_jump.gif b/docs/images/crouch_jump.gif new file mode 100644 index 0000000000..97304726e8 Binary files /dev/null and b/docs/images/crouch_jump.gif differ diff --git a/docs/images/ctf-hud.jpg b/docs/images/ctf-hud.jpg new file mode 100644 index 0000000000..c02ac98205 Binary files /dev/null and b/docs/images/ctf-hud.jpg differ diff --git a/docs/images/editmode-arrow.jpg b/docs/images/editmode-arrow.jpg new file mode 100644 index 0000000000..1817ed17e3 Binary files /dev/null and b/docs/images/editmode-arrow.jpg differ diff --git a/docs/images/editmode-clipbox.jpg b/docs/images/editmode-clipbox.jpg new file mode 100644 index 0000000000..cb32191600 Binary files /dev/null and b/docs/images/editmode-clipbox.jpg differ diff --git a/docs/images/editmode-entity.jpg b/docs/images/editmode-entity.jpg new file mode 100644 index 0000000000..6d72f97b1b Binary files /dev/null and b/docs/images/editmode-entity.jpg differ diff --git a/docs/images/editmode-grid.jpg b/docs/images/editmode-grid.jpg new file mode 100644 index 0000000000..68db909f06 Binary files /dev/null and b/docs/images/editmode-grid.jpg differ diff --git a/docs/images/editmode-heightfield.jpg b/docs/images/editmode-heightfield.jpg new file mode 100644 index 0000000000..c8b31e5bfd Binary files /dev/null and b/docs/images/editmode-heightfield.jpg differ diff --git a/docs/images/editmode-nearestent.jpg b/docs/images/editmode-nearestent.jpg new file mode 100644 index 0000000000..31b96b4bd0 Binary files /dev/null and b/docs/images/editmode-nearestent.jpg differ diff --git a/docs/images/editmode-plclipbox.jpg b/docs/images/editmode-plclipbox.jpg new file mode 100644 index 0000000000..b65413af39 Binary files /dev/null and b/docs/images/editmode-plclipbox.jpg differ diff --git a/docs/images/editmode-selector.jpg b/docs/images/editmode-selector.jpg new file mode 100644 index 0000000000..3c63100e32 Binary files /dev/null and b/docs/images/editmode-selector.jpg differ diff --git a/docs/images/favicon.ico b/docs/images/favicon.ico new file mode 100644 index 0000000000..67e777efbe Binary files /dev/null and b/docs/images/favicon.ico differ diff --git a/docs/images/favicon.png b/docs/images/favicon.png new file mode 100644 index 0000000000..8dda0ebe92 Binary files /dev/null and b/docs/images/favicon.png differ diff --git a/docs/images/flag_cla.jpg b/docs/images/flag_cla.jpg new file mode 100644 index 0000000000..1e5cc6cb75 Binary files /dev/null and b/docs/images/flag_cla.jpg differ diff --git a/docs/images/flag_rvsf.jpg b/docs/images/flag_rvsf.jpg new file mode 100644 index 0000000000..e8c95b61cb Binary files /dev/null and b/docs/images/flag_rvsf.jpg differ diff --git a/docs/images/head.gif b/docs/images/head.gif new file mode 100644 index 0000000000..94c79b5dc3 Binary files /dev/null and b/docs/images/head.gif differ diff --git a/docs/images/hud.jpg b/docs/images/hud.jpg new file mode 100644 index 0000000000..e4cd1a6dd4 Binary files /dev/null and b/docs/images/hud.jpg differ diff --git a/docs/images/icon.png b/docs/images/icon.png new file mode 100644 index 0000000000..94b8300a38 Binary files /dev/null and b/docs/images/icon.png differ diff --git a/docs/images/item_akimbo.jpg b/docs/images/item_akimbo.jpg new file mode 100644 index 0000000000..1ae6cb031e Binary files /dev/null and b/docs/images/item_akimbo.jpg differ diff --git a/docs/images/item_ammobox.jpg b/docs/images/item_ammobox.jpg new file mode 100644 index 0000000000..38c32b8ae1 Binary files /dev/null and b/docs/images/item_ammobox.jpg differ diff --git a/docs/images/item_grenade.jpg b/docs/images/item_grenade.jpg new file mode 100644 index 0000000000..c55fdc60d8 Binary files /dev/null and b/docs/images/item_grenade.jpg differ diff --git a/docs/images/item_health.jpg b/docs/images/item_health.jpg new file mode 100644 index 0000000000..13d39370c3 Binary files /dev/null and b/docs/images/item_health.jpg differ diff --git a/docs/images/item_helmet.jpg b/docs/images/item_helmet.jpg new file mode 100644 index 0000000000..81c2353a4f Binary files /dev/null and b/docs/images/item_helmet.jpg differ diff --git a/docs/images/item_kevlar.jpg b/docs/images/item_kevlar.jpg new file mode 100644 index 0000000000..9c42be62d4 Binary files /dev/null and b/docs/images/item_kevlar.jpg differ diff --git a/docs/images/item_pistolmag.jpg b/docs/images/item_pistolmag.jpg new file mode 100644 index 0000000000..792c7536a8 Binary files /dev/null and b/docs/images/item_pistolmag.jpg differ diff --git a/docs/images/linux.png b/docs/images/linux.png new file mode 100644 index 0000000000..b6f9d37e78 Binary files /dev/null and b/docs/images/linux.png differ diff --git a/docs/images/menus.jpg b/docs/images/menus.jpg new file mode 100644 index 0000000000..2f22d366eb Binary files /dev/null and b/docs/images/menus.jpg differ diff --git a/docs/images/minimap.jpg b/docs/images/minimap.jpg new file mode 100644 index 0000000000..16aa5a06b8 Binary files /dev/null and b/docs/images/minimap.jpg differ diff --git a/docs/images/otheros.png b/docs/images/otheros.png new file mode 100644 index 0000000000..98ff5b46aa Binary files /dev/null and b/docs/images/otheros.png differ diff --git a/docs/images/riflejump.jpg b/docs/images/riflejump.jpg new file mode 100644 index 0000000000..7ecad60895 Binary files /dev/null and b/docs/images/riflejump.jpg differ diff --git a/docs/images/scopedin.jpg b/docs/images/scopedin.jpg new file mode 100644 index 0000000000..4df8a767d3 Binary files /dev/null and b/docs/images/scopedin.jpg differ diff --git a/docs/images/scoreboard.jpg b/docs/images/scoreboard.jpg new file mode 100644 index 0000000000..06ae85a774 Binary files /dev/null and b/docs/images/scoreboard.jpg differ diff --git a/docs/images/server_error_rate_examples.jpg b/docs/images/server_error_rate_examples.jpg new file mode 100644 index 0000000000..d7e1cc0583 Binary files /dev/null and b/docs/images/server_error_rate_examples.jpg differ diff --git a/docs/images/server_error_stats.jpg b/docs/images/server_error_stats.jpg new file mode 100644 index 0000000000..8f8cf1351b Binary files /dev/null and b/docs/images/server_error_stats.jpg differ diff --git a/docs/images/serverbrowser.jpg b/docs/images/serverbrowser.jpg new file mode 100644 index 0000000000..db347bdb10 Binary files /dev/null and b/docs/images/serverbrowser.jpg differ diff --git a/docs/images/settingsmenu.jpg b/docs/images/settingsmenu.jpg new file mode 100644 index 0000000000..e9c9dc4d6d Binary files /dev/null and b/docs/images/settingsmenu.jpg differ diff --git a/docs/images/smallminimap.jpg b/docs/images/smallminimap.jpg new file mode 100644 index 0000000000..9e42eb104d Binary files /dev/null and b/docs/images/smallminimap.jpg differ diff --git a/docs/images/spmenu.jpg b/docs/images/spmenu.jpg new file mode 100644 index 0000000000..0f735ca4f8 Binary files /dev/null and b/docs/images/spmenu.jpg differ diff --git a/docs/images/support.jpg b/docs/images/support.jpg new file mode 100644 index 0000000000..5d15550f7f Binary files /dev/null and b/docs/images/support.jpg differ diff --git a/docs/images/teabag.jpg b/docs/images/teabag.jpg new file mode 100644 index 0000000000..d53904581d Binary files /dev/null and b/docs/images/teabag.jpg differ diff --git a/docs/images/weapon_assault.jpg b/docs/images/weapon_assault.jpg new file mode 100644 index 0000000000..dd65208810 Binary files /dev/null and b/docs/images/weapon_assault.jpg differ diff --git a/docs/images/weapon_carbine.jpg b/docs/images/weapon_carbine.jpg new file mode 100644 index 0000000000..337caf07ae Binary files /dev/null and b/docs/images/weapon_carbine.jpg differ diff --git a/docs/images/weapon_grenade.jpg b/docs/images/weapon_grenade.jpg new file mode 100644 index 0000000000..a7e30a517e Binary files /dev/null and b/docs/images/weapon_grenade.jpg differ diff --git a/docs/images/weapon_knife.jpg b/docs/images/weapon_knife.jpg new file mode 100644 index 0000000000..ebfbf39596 Binary files /dev/null and b/docs/images/weapon_knife.jpg differ diff --git a/docs/images/weapon_pistol.jpg b/docs/images/weapon_pistol.jpg new file mode 100644 index 0000000000..05d50d63bf Binary files /dev/null and b/docs/images/weapon_pistol.jpg differ diff --git a/docs/images/weapon_shotgun.jpg b/docs/images/weapon_shotgun.jpg new file mode 100644 index 0000000000..e4e050a76f Binary files /dev/null and b/docs/images/weapon_shotgun.jpg differ diff --git a/docs/images/weapon_sniper.jpg b/docs/images/weapon_sniper.jpg new file mode 100644 index 0000000000..9bdc7fd06b Binary files /dev/null and b/docs/images/weapon_sniper.jpg differ diff --git a/docs/images/weapon_subgun.jpg b/docs/images/weapon_subgun.jpg new file mode 100644 index 0000000000..e924f23f21 Binary files /dev/null and b/docs/images/weapon_subgun.jpg differ diff --git a/docs/images/weaponselect.jpg b/docs/images/weaponselect.jpg new file mode 100644 index 0000000000..5ab22794c2 Binary files /dev/null and b/docs/images/weaponselect.jpg differ diff --git a/docs/images/windows.png b/docs/images/windows.png new file mode 100644 index 0000000000..303ca04952 Binary files /dev/null and b/docs/images/windows.png differ diff --git a/docs/images/wsad-strafe.gif b/docs/images/wsad-strafe.gif new file mode 100644 index 0000000000..13f1b93981 Binary files /dev/null and b/docs/images/wsad-strafe.gif differ diff --git a/docs/index.html b/docs/index.html new file mode 100644 index 0000000000..422cba0b8f --- /dev/null +++ b/docs/index.html @@ -0,0 +1,152 @@ + + + + + + + + + AssaultCube Documentation + + + + + + + +
+
+ AssaultCube Documentation +
+ + + +
+

Documentation Index

+

+ AssaultCube is a FREE, multiplayer, first-person shooter game, based on the + CUBE engine by the team at + Rabid Viper Productions. + Taking place in realistic environments, with fast, arcade gameplay, it's addictive and fun! +

+

+ With efficient bandwidth usage, it's low-latency and can even run over a 56Kbps connection. + It's tiny too, weighing in at a lightweight 40 MB package available for Windows, Mac and Linux. + On the correct settings, it can even run on old hardware (Pentium III and above). +

+

+ You can read more about AssaultCube from the website @ http://assault.cubers.net/ +

+

For new players:

+ +

For the üß3r advanced players:

+ +

Map editing:

+ +

Modding:

+ +

Other:

+ +

Participate in the Community

+

+ If you're curious about how to participate in the community, then take a look here: + http://assault.cubers.net/community.html +

+

Help?!

+

+ If you need some help with anything at all, please first search through this official documentation. + If you still can't find the answer you need, search the wiki, and the + forums, and if you + still can't find the answer, post a thread on the forum explaining your situation. You can use this + search engine to search the whole lot in one go! +

+

+ You may also try IRC for a real-time response, + but be patient (at least 30mins), as people "idle" in IRC. You might get an instant response, or it may take a little bit of time. + Just hang out and see! +

+
+
+ © Copyright, Rabid Viper Productions +
+
+ + We would be grateful for any donations considered towards AssaultCube + +
+ +
+ + diff --git a/docs/interface.html b/docs/interface.html new file mode 100644 index 0000000000..8597a08008 --- /dev/null +++ b/docs/interface.html @@ -0,0 +1,197 @@ + + + + + + + + AssaultCube Documentation :: AssaultCubes interface + + + + + + + + +
+
+ AssaultCube Documentation +
+ + + +
+ +

AssaultCubes interface

+

+ Simply, this is about how AssaultCube looks, feels and works. The interface should feel fairly familiar, + echoing that of many other first-person shooters. Go ahead, jump right in! +

+ Main menu +

Menus

+

+ While in-game, press ESC to access a menu. From there you can access almost anything and use all sorts of actions, + like joining multiplayer games and changing settings, as well as using text inputs, checkboxes and menu sliders. +

+

+ As an example, in multiplayer you can use the set mode/map submenu to vote on a new + mode/map. Further customizations and actions + can be done to these menus using CubeScript. +

+

+ In some circumstances, there may be more on a menu than what can be shown. In these cases, small arrows will + show at the top/bottom right-side of the menu. Pressing page-up/page-down will then show the next page. +

+

The console

+

+ Many actions in AssaultCube can be done in a console. Although not entirely necessary to use it + (the menu can be used to do most important commands - but not all of them) + it can be very useful and often faster to use the console. +

+

+ To show the console, press T. This opens up the chat prompt. To turn it into a console, all you need to do + is add a / (forward-slash) at the beginning of the prompt, followed by a command. +

+

+ As an example, if you type the following into the chat prompt, your crosshair will change size: + /crosshairsize 25 +

+

+ For a list of all possible commands, read the CubeScript reference. +

+

+ Hint: You can toggle showing a longer command/chat history by pressing F11. +

+

The HUD

+

+ HUD stands for Head-up display and is a common term in video gaming. + The HUD is used to indicate things such as health, armour, ammo, etc when playing the AssaultCube. +

+
+ The HUD +
+

+ You may notice small red markers at the edges of your screen during conflict. This is to indicate the direction + of where the damage that hit your player came from. The capture-the-flag HUD is different to the normal HUD, click the image + above to see the CTF HUD. +

+

The scoreboard

+

+ Press TAB at any time to see the scoreboard, which will tell you (horizontally in this order): +

+ + +
+ The scoreboard +
+

+ Pressing page-up/page-down on the scoreboard will show the next page on the scoreboard. + You'll be able to tell if there is another page (this occurs when there are too many players to fit) + by the arrow at the bottom of the screen. +

+

+ Packet jump (PJ) is the amount of milliseconds that have passed since you have received updates from players. + A high (for example: 950) or variable (for example: The PJ is at 40 then jumps to 1000 and then 300 then 550) packet + jump is bad for gameplay, because these players may become difficult targets and "warp" around the map (warp means + they disappear, then reappear out of nowhere).
+ If a players packet jump is bad enough, their PJ number will turn into the + word LAG and they'll stand still and start saluting because they are lagging so badly. Special note: You cannot see + your own packet jump. +

+

+ Ping is the amount of time in milliseconds that it takes for your packets of data to get back and forth from the + server.
The lower the ping, the better. +

+

+ Client number is a number that is given out automatically by the server.
There is nothing particularly special about it + other than allowing people to identify players easier. +

+

+ If a player name is red, then they are an administrator of that server and have full control over it.
+ Players names that are in grey, are currently in dead/spectate mode. +

+

Mini-map

+

+ The mini-map shows your location on the map. To activate it, hold down ALT. +

+

+ You can find yourself on the mini-map by looking for the symbol in green. + As well as showing your location on the map, it will also show your team-mates locations (if you're playing a team-based game). + X's mark dead team-mates, pulsating icons show team-mates that are attacking. +

+

+ If you're playing CTF, then red and blue flags will show up in their respective locations on the mini-map, + unless the enemy has your flag (then you won't be able to see it) OR if your team has the enemies flag (It will show + which team-member is carrying the flag). +

+
+ Mini-map +
+
+
+ © Copyright, Rabid Viper Productions +
+
+ + We would be grateful for any donations considered towards AssaultCube + +
+ +
+ + diff --git a/docs/introduction.html b/docs/introduction.html new file mode 100644 index 0000000000..195ec9a8f1 --- /dev/null +++ b/docs/introduction.html @@ -0,0 +1,494 @@ + + + + + + + + AssaultCube Documentation :: Introduction to AssaultCube + + + + + + + + +
+
+ AssaultCube Documentation +
+ + + +
+ +

Introduction to AssaultCube

+

+ AssaultCube has a simple theme; two teams on a single battle ground. There's no story, just on-going + destruction & ownage. +

+ CLA +
Team CLA: The Cubers Liberation Army
+
+ Little is known about the goals or motivations of this small, but feared terrorist group. Their activities are + as diverse as their members. + With ex-military, anarchists, religious fanatics, conspiracy theorists, tripping hippies, free © software + fanatics™, or simply severely mentally disordered persons and bored youngsters, this organization is a + pool of radicals from across the globe.
+ Their operations range from simple annoyances (such as introducing hallucinogenic drugs into air conditioning + systems of largely populated offices or malls), to well planned gruesome bombings. + They'll target civilians, as well as politicians, lobbyists or religious leaders and their employees.
+ Their selfish motto: "Terror for the sake of terror, because you all suck!" +
+
+ RVSF +
Team RVSF: The Rabid Viper Special Forces
+
+ An elite group of special armed forces, but not the kind you'd expect. RVSF is made up of battle worn fighters + and mercenaries, who might've been just a little too trigger happy and up for the glory to fit into any other + kind of elite squad. They're not suitable where lives are to be spared and private or public property to + remain intact.
+ Any associated parties to this extravagant task-force remain well concealed for obvious + reasons. Their primary targets are highly unpredictable terrorists and organized criminals such as the CLA, + where intelligence, infiltration and stealth would just be a waste of time.
+ Their policy is simple: "Shoot first, then ask questions later... if anyone is left to ask". +
+
+

Weapons

+

+ There are eight weapons available for you to frag & gib your enemies with. + Every player spawns with the standard outfitting of three weapons: a knife, a pistol & a primary weapon. + Grenades must be picked up along the way. To change your primary weapon, press B for the weapons menu and select the one you want. + Next time you spawn, you will spawn with that weapon. +

+
+ Knife + Swiss Tech Combat Blade DR-88
+ A sharp and swift blade. It's your last resort when you run out of ammo, as well as your best friend + in humiliating snipers and campers. "Slash" with this weapon & you'll gain two frags, instead of one. +
+
+ Pistol + Mk-77 Semi-Automatic Pistol
+ Your basic sidearm. A powerful secondary weapon, yet typically less effective at range. + The small magazine size is something you need to keep an eye on. The akimbo + power-up makes this weapon twice as deadly and much more fun! +
+
+ Assault rifle + MTP-57 Assault Rifle
+ The large calibre deals a substantial amount of damage, with a surprising amount of recoil. + A long barrel ensures accuracy even at high range. + It can become difficult to control when shooting bursts of more than three bullets. +
+
+ Sniper rifle + Precision Tech AD-81 Sniper Rifle
+ Semi-Automatic Sniper rifle, equipped with a 2x scope. The large calibre can do a frightful amount of damage. + Though naturally most accurate when used with the scope, the highly ergonomic design allows the experienced shooter + to operate it from the hip as well. +
+ Not recommended on its own for hand-to-hand combat, since it can take some time + to recock the weapon. Shots to the head from this weapon produce a "headshot" instead of a frag, + which causes instant death and counts for two frags, instead of one. +
+
+ Sub-machine gun + A-ARD/10 Sub-machine Gun
+ This weapon releases a deadly spray of bullets at a high rate of fire. + However, due to the short barrel and small calibre, + its man-stopping power is limited, and effectiveness ceases at longer ranges. Like the Assault Rifle, + its accuracy gets worse the longer your bursts. +
+
+ Shotgun + V-19 Combat Shotgun
+ A 7-round semi-automatic shotgun. +
This powerful weapon can shred your opponents to pieces - if you're close enough. +
+
+ Carbine + TMP-M&A Carbine
+ The perfect weapon for the most accurate shooter. Faster than a sniper rifle and more deadly than an automatic; + just make sure you're pointing it in the right direction. Its 10-round magazine will let you dispose + of five unarmoured opponents before you need to reload. Its ability to "pierce" your enemies' armour vests will increase + your chances to stand your ground. +
+
+ Grenade + SAL-T3 Grenade
+ This grenade is your friend in mid range fights. Its timer is adjusted to two seconds which makes it quite + useful for quick responses to your enemies fire bursts. Kills from this weapon produce a "gib" instead of a + frag. +
+

Weapon statistics

+

+ The below statistics should give an indication on how each weapon can be used in AssaultCube.
+ Mouse-over each acronym in the left-row to understand what it means. +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
 Swiss Tech Combat Blade DR-88Mk-77 Semi-Automatic PistolMTP-57 Assault RiflePrecision Tech AD-81 Sniper RifleA-ARD/10 Submachine GunV-19 Combat ShotgunTMP-M&A CarbineSAL-T3 Grenade
RTD-1.402.001.951.652.401.801.00
ATD0.500.160.121.500.080.800.720.65
MDPS5018228216-60200
SPREAD-53185045-10-
MS-10205307101
EAPP-204010601415-
AQOS-6060209028300
MAQ-110802012028403
+
+

Item pickups

+
+ Ammobox + Ammobox
+ This box supplies ammunition for the primary weapons. + To find out the exact contents, read the EAPP + line in the weapon stats above.

+ The time it takes to respawn this item depends on the amount of players in the match at that time:
+ 1-2 players = 8 seconds
+ 3-4 players = 6 seconds
+ 5+ players = 4 seconds +
+
+ Pistol magazine + Pistol magazine
+ This item supplies ammunition for the pistol. + To find out the exact contents, read the EAPP + line in the weapon stats above.

+ The time it takes to respawn this item depends on the amount of players in the match at that time:
+ 1-2 players = 8 seconds
+ 3-4 players = 6 seconds
+ 5+ players = 4 seconds +
+
+ Akimbo + Akimbo
+ This item lets you fire with two pistols for 30 seconds.
+ Make sure you take advantage of the crazy firing rate!

+ This item respawns every 60 seconds.


+
+
+ Health + Health
+ This sweet health pack cures your damaged body with 33hp.

+ The time it takes to respawn this item depends on the amount of players in the match at that time:
+ 1-2 players = 20 seconds
+ 3-4 players = 15 seconds
+ 5+ players = 10 seconds +
+
+ Helmet + Helmet armour
+ Helmet armour pickups give you 25 points of protection. This item respawns every 25 seconds. + Armour works on a tiered approach. The more armour you have, the more damage it absorbs.

+ 0-25 armour = 16% protection.
+ 26-50 armour = 33% protection.
+ 51-75 armour = 37% protection.
+ 76-100 armour = 41% protection.

+ Note: How armour works, is it reduces the amount of damage caused by the bullet. So if a bullet + normally causes 21 damage and you have + 78 armour points, + then: 21 damage, minus 41% (the armour protection) = the bullet causes + 12 damage. +
The part of that bullet that doesn't affect the health, depletes the armour instead, i.e. it causes + 9 damage + to the armour. +
+
+ Kevlar + Kevlar armour
+ Kevlar armour pickups give you 50 points of protection. This item respawns every 25 seconds. + Armour works on a tiered approach. The more armour you have, the more damage it absorbs.

+ 0-25 armour = 16% protection.
+ 26-50 armour = 33% protection.
+ 51-75 armour = 37% protection.
+ 76-100 armour = 41% protection.

+ Note: How armour works, is it reduces the amount of damage caused by the bullet. So if a bullet + normally causes 21 damage and you have + 78 armour points, + then: 21 damage, minus 41% (the armour protection) = the bullet causes + 12 damage. +
The part of that bullet that doesn't affect the health, depletes the armour instead, i.e. it causes + 9 damage + to the armour. +
+
+ Grenades + Grenade
+ Grab this to get a single grenade fitted to your pocket. In + LSS mode, all grenade spawns fit 2 grenades to your pocket. + Also in LSS mode, pistol magazine pickups turn into grenades.

+ The time it takes to respawn this item depends on the amount of players in the match at that time:
+ 1-2 players = 9 seconds
+ 3-4 players = 8 seconds
+ 5+ players = 7 seconds +
+

Game modes

+

+ AssaultCube offers 14 different multi-player game modes (5 free-for-all, 5 team based and 4 flag based (3 of which are team based)), + 8 single-player game modes and 1 mode for co-operative map editing. +

+

+ You can vote for any of these multi-player modes by using the menu. This can be found by pressing ESC while connected in-game. + After choosing a mode, you will then be asked to choose a map available in the list provided. +

+

Multi-player free-for-all modes

+ + With these modes, your aim is to frag anyone & everyone! They're more suited for smaller games. + + + HEADSHOT! +

Multi-player team modes

+ Don't frag your team mates! Most suited to bigger games! + +

Multi-player flag modes

+

Suited best to large games (6+ players), these modes provide special tactics and ways to score and win the game!

+ +

Single-player bot modes

+

+ AssaultCube comes with bots to offer singleplayer gaming. To start a botmatch, press ESC and navigate to Singleplayer. + There you can choose the mode, skill, number of bots and the map to play on.
+ Please keep in mind that AssaultCube's main approach is multi-player gaming, so the bots may lack certain features, such as + human intelligence. +

+ +
+
+ © Copyright, Rabid Viper Productions +
+
+ + We would be grateful for any donations considered towards AssaultCube + +
+ +
+ + diff --git a/docs/knownissues.html b/docs/knownissues.html new file mode 100644 index 0000000000..bfa8b2e8db --- /dev/null +++ b/docs/knownissues.html @@ -0,0 +1,65 @@ + + + + + + + + AssaultCube Documentation :: Known issues + + + + + + +
+
+ AssaultCube Documentation +
+ + + +
+ +

Known issues

+

General issues

+ +

First-run issues

+ + These are issues that only ever happen on the 1st load of AssaultCube and dissapear on the 2nd load. + + +
+
+ © Copyright, Rabid Viper Productions +
+
+ + We would be grateful for any donations considered towards AssaultCube + +
+ +
+ + diff --git a/docs/license.html b/docs/license.html new file mode 100644 index 0000000000..77a8aa56e3 --- /dev/null +++ b/docs/license.html @@ -0,0 +1,212 @@ + + + + + + + + AssaultCube Documentation :: Licensing information + + + + + + + + +
+
+ AssaultCube Documentation +
+ + + +
+ +

Licensing information

+

+ AssaultCube is developed by various people around the world. People that enjoy making this game together. + All of these various people have been given the freedom to license their works in the way they wish. + Because of this, licensing of AssaultCube is very specific. +

+

+ To find out more about the people that help make AssaultCube happen, take a look at the team: + Rabid Viper Productions. +

+

+ Please select from the list below to find out how permission is granted for: +

+ +

+ For anything else, please check in your ./docs/package_copyrights.txt file and any individual *.txt files + or *.cfg files within AssaultCube to see if permission is granted to redistribute that data. If no permission + is found, you MUST assume that the data is COPYRIGHT and you are NOT allowed to redistribute that data outside + of an UNMODIFIED AssaultCube package(s). +

+
+

+ The entire AssaultCube package +

+

+ AssaultCube is FREEWARE. By downloading the AssaultCube package(s) you agree that you may freely + use and redistribute the AssaultCube package(s) UNMODIFIED (the AssaultCube package(s) can be originally found + at http://sourceforge.net/projects/actiongame/files/ + or downloaded with an SVN client from https://svn.code.sf.net/p/actiongame/code/) on any media, + subject to the following licensing conditions: +

+ +

+ PLEASE NOTE: This license is for the entire UNMODIFIED AssaultCube package(s). You may choose to disect, and use + or redistribute, etc. pieces of AssaultCube, instead of the entire package(s) if you wish. HOWEVER, you must adhere + to the license specified for that particular data. If no license is specified, you MUST assume that the data is + COPYRIGHT and you are NOT allowed to redistribute that data outside of an UNMODIFIED AssaultCube package(s). +

+
+

AssaultCube website and documentation

+

+ Please note, that this ONLY applies to the parts of the site that can be found at + http://actiongame.svn.sourceforge.net/viewvc/actiongame/ac_website/ + or downloaded with an SVN client from https://actiongame.svn.sourceforge.net/svnroot/actiongame/ac_website/. +
Unless you can find a license stating otherwise, anything else from the website, that is not available + on the links provided, should be assumed COPYRIGHT, meaning you are NOT allowed to redistribute/modify it. +

+

+ The content, code and images of the AssaultCube website and all documentation are licensed under + "Attribution-NonCommercial-ShareAlike 3.0 Unported" Creative Commons + (http://creativecommons.org/licenses/by-nc-sa/3.0/), + with the additional clause, that you may not use the website/documentation to misrepresent the origin of AssaultCube, + or claim that you created AssaultCube or any of the original AssaultCube package(s). +

+

+ This means you are free to share, copy, distribute, transmit and/or remix/adapt + the work under the following conditions: +

+ + With the understanding that: + +
+

A specific file in the AssaultCube package

+

+ Not every file is listed here, if you're unable to find the license for a specific file here, you'll need + to look through the AssaultCube package carefully to see if you're able to find the license there. + If no license is specified, you MUST assume that the data is COPYRIGHT and you are NOT allowed to + redistribute that data outside of an UNMODIFIED AssaultCube package(s). +

+

+ For filenames in this list, the ./ means the base of the AssaultCube package. + Where a * is shown, this is a wildcard, meaning every file in that directory is + covered by the license. +

+ + + + + + + + + + + + + + + +
FilenameLink to license FilenameLink to license
./packages/audio/misc/pickup_armour.ogg + Online + / Offline + ./packages/crosshairs/* + Online + / Offline +
+
+
+ © Copyright, Rabid Viper Productions +
+
+ + We would be grateful for any donations considered towards AssaultCube + +
+ +
+ + diff --git a/docs/maneuvers.html b/docs/maneuvers.html new file mode 100644 index 0000000000..fe16e213f2 --- /dev/null +++ b/docs/maneuvers.html @@ -0,0 +1,203 @@ + + + + + + + + AssaultCube Documentation :: Special maneuvers + + + + + + +
+
+ AssaultCube Documentation +
+ + + +
+ +

Special maneuvers

+

+ Make sure you read through these special maneuvers if you want to go from n00b to awesome. +

+
    +
  1. + Strafe running +
  2. +
  3. + Rifle jump +
  4. +
  5. + Rifle sprinting +
  6. +
  7. + Stalling grenades +
  8. +
  9. + Grenade jumping +
  10. +
  11. + Crouch jumping +
  12. +
  13. + Tea bagging +
  14. +
+

Strafe running

+
+ strafe run +
+

+ Strafe running is the most important technique to learn, because it allows you to move about 41% faster than normal. + This occurs because the game adds the speed you get from moving forwards or backwards, to the speed you get + from strafing left or right. More information can be + found here. +

+

+ Strafe running is simple: while you're moving forwards (or backwards), strafe left (A) or right (D) at the same time. + See the diagram to the right for an example. +

+
+ rifle jump +
+

Rifle Jump

+

+ Rifle Jumping allows you to be able to jump higher than normal. You can use this move + to jump onto things you just couldn't normally get on top of. Rifle jumping can even be + used for surprising an enemy by popping up where they don't expect you to be! +

+

+ This move uses the recoil of the weapon you are using to push you up into the air. The assault + rifle is the best weapon to use with rifle jump, because it has the greatest amount of recoil, + where the other weapons have far less and won't be able to yield the same results as the assault rifle can. +

+

+ How to rifle jump: after jumping, fire your weapon at the ground while still in mid-air. You should get propelled + further upwards and get more air-time than a normal jump would give you. See the diagram to the left. +

+

Rifle sprint

+

+ Rifle sprinting is very similar to rifle jumping. It allows you to travel at great speeds by using the + rifle's recoil in your hasty escape. It is especially useful in capture-the-flag modes or avoiding shotgun players. +

+

+ To rifle sprint: You MUST use the assault rifle. You will need to be careful that you are shooting away from team mates; + it's best to aim toward walls and slightly downward. Your back should be facing the direction you wish to go. + Then, walk backwards and jump continuously as you fire your weapon. +

+

+ If you're able to, aim your weapon at the enemy while making this move to get some frags at the same time. +

+

+ It should be noted however, using rifle sprint poses the following dangers: +

+ +

+ Stalling grenades +

+

+ Grenades have a 3 second timer before they blow up. This can make it difficult to be accurate with them, but it's + a necessary evil to ensure you don't blow yourself up in the process. +

+
+ Grenades +
+

+ However, you can become more accurate with grenades if you stall them. To do this, select your grenades + as the weapon you are using, then press and HOLD the fire button. Hold it for nearly 3 seconds, then + let go of the fire button to release the grenade. If you throw it too quickly, the grenade will still have to + wait before exploding. If you don't throw it quickly enough the grenade will blow YOU up, resulting in suicide. +

+

+ Disadvantages of stalling grenades: +

+ +

Grenade jumping

+

+ Grenade jumping is simple, but deadly, so be careful. Because of its deadliness, it's not a very useful move. + To grenade jump, you will need some grenades... and a lot of armour to protect you from the blast. +

+

+ Firstly, throw a grenade at the ground and make sure you are close to it. Just before the grenade explodes + (grenades have a 3 second timer) jump away from the grenade. + You should be able to use the impact from the blast to jump quite high. +

+

+ Disadvantages of grenade jumping: +

+ +
+ Crouch Jump +
A player crouch jumping to clear a large gap. +
+

Crouch jumping

+
+ Teabag +
A player tea-bagging an enemy corpse. +
+

+ Crouch jumping can be useful to give you just a little bit of extra air-time during your jump, which can be helpful + to get up onto ledges, windows, etc. or to jump across larger gaps than can be managed normally. It's quite simple; + after you jump, press and hold the crouch key (left shift, by default). +

+
+

Tea bagging

+

+ Perhaps the most immature part of gameplay, tea bagging is a maneuver that offers no advantages + at all, except that of humiliating your enemy. Many people have their own views on tea bagging, + some believing you look like a silly immature n00b for trying it. +

+

+ How to tea bag: after fragging a player, stand over that player and repeatedly crouch up and down. + The humiliating part of doing this is that by effectively sitting on top of their dead corpse, + you remove any respect you may have had towards them. Of course, any respect they had towards you + also disappears. +

+
+
+ © Copyright, Rabid Viper Productions +
+
+ + We would be grateful for any donations considered towards AssaultCube + +
+ +
+ + diff --git a/docs/mapediting1.html b/docs/mapediting1.html new file mode 100644 index 0000000000..69976ff310 --- /dev/null +++ b/docs/mapediting1.html @@ -0,0 +1,367 @@ + + + + + + + + AssaultCube Documentation :: Map editing - Interface & controls + + + + + + + + +
+
+ AssaultCube Documentation +
+ + + +
+ +

Map editing - Interface & controls

+

+ Learning and understanding the interface and controls are the first step to map editing... +

+

The interface

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
The grid + The cube grid +

+ This is shown as a white grid of squares drawn where ever you point. +
Each of these small squares is a single cube. The cubes in AssaultCube are known as "geometry". + The bigger blue squares, indicate a selection of 8x8 cubes (to help make map editing easier). +

+
Heightfield cubes + Heightfield cubes
+

+ These are the light green cubes in the grid. +
These cubes indicate heightfields, which will be explained later here. +

+
Cube selector + Cube selector
+

+ This appears as a small white box with a red mini-square in the corner. + It will appear in the middle of the screen and you can use it to select geometry, a bit like a crosshair. +
The red mini-square indicates which corner of a cube you are manipulating if you're using + heightfields, or where your entity + will be placed if you're creating an entity. +

+
Entity sparkles + Entity sparkles
+

+ These are shown as coloured sparkly dots. They are known as "entities", which will be explained later + here. Each entity is colour coded: +

+ +
Nearest entity text + "Closest entity" text
+

+ This is the white writing along the bottom. It will tell you the location of the closest entity and its properties. + Note: The sparkly of the closest entity will show up blue. +

+
Yellow clip box + Yellow clip box
+

+ These boxes will be shown where clip entities are used and depict the total size of the clip. + These clip boxes stop players and grenades passing through. + See the clips section on the entities page for more information. +

+
Purple clip box + Purple clip box
+

+ These boxes will be shown where clip entities are used and depict the total size of the clip. + These clip boxes stop players passing through, however, still allow grenades to pass. + See the clips section on the entities page for more information. +

+
Playerstart arrows + Playerstart arrows
+

+ These arrows show up for any entity that is a "playerstart". This is to help you judge the correct + direction for each player to face when they spawn. +

+
+

+ To get a feel for editmode, press E and float around. Try clicking and dragging the small white box at your crosshair over + some cubes (you will see a red box over what you are selecting). This is how you select geometry. +

+

Map editing controls

+

+ Below are the controls that get used in map-editing, you will use most of these controls + when creating a map, so it's good to learn them. Note: These controls can ONLY be used in map editing mode. +

+

Changing geometry

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ControlFunction ControlFunction
[Moves cubes in the floor downwards.]Moves cubes in the floor upwards.
OMoves cubes in the ceiling downwards.PMoves cubes in the ceiling upwards.
UUndoes the last action (only applies to geometry).FMakes selected cubes a solid.
GMakes selected cubes a space/non-heightfield.KMakes selected cubes a corner.
CCopy selected cubes.VPastes copied cubes. Note: It pastes from the upper corner of the red mini-square.
,Equalize the floor..Equalize the ceiling.
HMakes the floor a heightfield.IMakes the ceiling a heightfield.
9 + Manipulates upwards the corner of a cube where the red mini-square is positioned. + This only works if the cube is a heightfield. + 8 + Manipulates downwards the corner of a cube where the red mini-square is positioned. + This only works if the cube is a heightfield. +
+

Changing textures

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ControlFunction ControlFunction
HomeBrowses forward through wall textures.EndBrowses backward through wall textures.
7Browses forward through upper-wall textures.4Browses backward through upper-wall textures.
InsertBrowses forward through floor textures.DeleteBrowses backward through floor textures.
Page UpBrowses forward through ceiling textures.Page DownBrowses backward through ceiling textures.
+

Mouse controls

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ControlFunction ControlFunction
Left-clickAllows you to select cubes. Hold CTRL for multiple selections.Right-clickShow the editing menu.
ScrollingScrolling will move cubes up/down, depending on the direction you look.Hold Q and scroll + This will manipulate the corner of a cube where the red dot is positioned up/down. + Only works if the cube is a heightfield. +
Hold Z and scrollScrolls forward/backwards through textures on the floor/ceiling, depending on the direction you look.Hold X and scrollScrolls forward/backwards through textures on the wall/upper-wall, depending on the direction you look.
Hold 1 and scrollChange the first attribute value of the closest entity.Hold 2 and scrollChange the second attribute value of the closest entity.
Hold 3 and scrollChange the third attribute value of the closest entity.Hold 4 and scrollChange the fourth attribute value of the closest entity.
Hold M and scrollMove the closest entity in the axis of the direction you look.  
+

Misc

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ControlFunction ControlFunction ControlFunction
EToggle edit mode.BackspaceDelete entity.;Entset
LShows the lighting menu.F5Toggle occlusion on/off.F6Toggle showmip on/off.
-Copies nearest entity into memory.=Pastes nearest entity out of memory.7Selects the next closest entity, to the one currently selected.
F7Toggle fullbright on/off.    
+

The next step? Go to Map editing: Begin!

+
+
+ © Copyright, Rabid Viper Productions +
+
+ + We would be grateful for any donations considered towards AssaultCube + +
+ +
+ + diff --git a/docs/mapediting2.html b/docs/mapediting2.html new file mode 100644 index 0000000000..45e5553d9b --- /dev/null +++ b/docs/mapediting2.html @@ -0,0 +1,373 @@ + + + + + + + + AssaultCube Documentation :: Map editing - Begin! + + + + + + +
+
+ AssaultCube Documentation +
+ + + +
+ NOTE: This page of the documentation has been quickly converted from + AssaultCubes old + README and has not yet been checked properly for mistakes/weird stylying/invalid markup/inconsistancies/etc. + We're on it though, check back soon! +
+
+ +

Map editing - Begin!

+ + + + + +

+ Prior to reading this, please learn the controls and interface here. +

+

+ To begin map editing, while in AssaultCube, press the letter E which toggles editmode. AssaultCubes map editor is built into the game, + so its easy to learn and you don't need to download any special tools to get started. +
Note: Because of how the cube engine works there are some limitations to what you can create, but + there are also some clever work-arounds you can use to get what you want. +

+

+ In editmode (press E) you can fly around in any direction you + like and you can even go through walls.
This is to make map-editing easier... +

+

+ Tip: When editing a map, make sure you have your settings set back to the defaults, so you can see what your map looks like to the + average player (example: set gamma back to 100, so you can judge lighting correctly). +

+

+ Covered on this page... +

+ +

Starting, saving and loading a map

+

+ If you would like to start creating a new map, type: /newmap and then the size you would like (7 is the sensible default) and + then press ENTER. If you made your mapsize too small, you can easily make it double in size, simply by typing /mapenlarge. +

+

+ You can save your map at any time by typing: /savemap and then the name you would like it saved as (after you have chosen the filename, + there is no need to type the name every time you save from then on. Instead, you can simply type /savemap). The map gets + saved in the packages/maps directory. Save your map often, to avoid the frustration of losing all of your work if something goes wrong. + Each time you do save your map, a backup of your last save is created with a timestamp that ends with the extension ".BAK". + If you need to utilize these backups, all you will need to do, is rename the ".BAK" extension to ".cgz". +

+

+ Note: Make sure when you start a map, to use the /newmap command, rather than editing an existing map, otherwise your map may get saved + a bit strangely. Also note: you cannot put spaces or any illegal characters in the name you wish to save it as. +

+

+ To load your map, type /map and the file name you chose for your map. If you have not placed lighting in your map yet, your map will turn up dark. + To temporarily fix this problem, type: /fullbright 1 - this will fill your whole map with light. The fullbright command only works in edit + mode and is not a permanent fix. To remove fullbright mode, reload the map, or type: /recalc. + Note: Fullbright can be turned on/off in the lighting menu (press L). +

+

Manipulating geometry

+

+ The ceiling and floor of AssaultCube are made up of individual cubes, which can be made into various objects that you choose, such as walls, + by simply manipulating the geometry. +

+

+ There are six different ways to manipulate geometry: +

+ +

Solids and spaces

+

+ The reason we are covering solids and spaces, before moving cubes, is because solids block visibility and do not need to be rendered, so they + are more efficient to use in maps. The use of solids in a map is essential to creating a good map. Without enough solids AssaultCube maps + would lag too much for the average user and would be unplayable. Solids are also easy to create and can be used to make walls with a single keystroke! +
Tip: When you've finished your map, change any unused space into solids. +

+ +

Moving cubes

+

+ Moving cubes is simple and can be done, either with your mouse or keyboard... +

+ +

Corners

+

+ Corners can be used to create a 45 degree corner (instead of a 90 degree one) where 2 walls meet. They are very simple to create. + Select a cube where 2 walls meet and press K. This will cut the cube in half diagonally, keeping one + half and giving the other half to the nearest cube - making it a corner. To undo this as a corner, press G. +

+

Heightfields

+

+ You can use heightfields to manipulate the corners of cubes and create slopes/arches. Heightfields are somewhat restrictive, so there are a + few things to know about before creating a heightfield: +

+
    +
  1. + On a single cube, only the floor OR the ceiling can be a heightfield. A single cube can't have both. +
  2. +
  3. + All cubes that are going to be heightfielded need to be level (the same height) as each other if they are right next to each other. + If they aren't, they will become glitchy. +
  4. +
  5. + Heightfields can't be a solid or a corner! +
  6. +
  7. + Pickups placed on heightfields will remain at the original height of the cube that was heightfielded, unless + height is applied to the pickup. +
  8. +
  9. + Sometimes, when saved, textures on the wall/upper-wall part of a heightfield (or its surrounding cubes) may change. + To fix this, try selecting all cubes in the surrounding area of this heightfield and change them to the + texture you wanted. +
  10. +
+

+ To create a heightfield, select a cube and press "H" or "I". "H" allows the heightfield to occur on the + floor and "I" allows the heightfield to occur on the ceiling. You can hold down Q and scroll to manipulate each + corner that the red dot on the cube selector is, or you can use 8 or 9 + to move the cubes corner up/down. To undo a heightfield, press G. +

+

+ After making it a heightfield, slopes and arches can be created by selecting an area and using the arch or slope command. +

+

+ Slopes - Type /slope X Y. Replace "X" and "Y" with different numbers to make your slope shape in different + directions (you can use negative values here, for example: /slope 0 -2). +

+

+ Arches - Type /arch X and replace "X" with a number to create different types of arches. +

+

Textures

+

+ There are four different parts of the cube world that you can change textures on (see below)... +

+ + + + + + + + + + + + + + + + + + + + + + + + + + +
+ Cubes + + Browse forwards + + Browse backwards +
+ Floor + + Insert + + Delete +
+ Ceiling + + Page up + + Page down +
+ Wall + + Home + + End +
+ Upper-Wall + + Number pad 7 + + Number pad 4 +
+

+ There is 1 key allocated to move forwards through the textures for each of these and one key to move backwards. When selecting textures, + the AssaultCube engine automatically puts the last chosen texture at the start of the list, so commonly used textures become easier to find. +
Note: The "upper-wall" are the sides of the wall that protrudes from the ceiling. +

+

Useful commands

+

Copy/paste

+

+ Selecting some cubes and pressing C will copy them. Then, select a cube and press V to paste it. + The cubes will be pasted from the red dot on the cube selector. +

+

+ Note: Only geometry can be copied. +

+

Water

+

+ In AssaultCube, water is placed by selecting a level at which the water will be present. It will then settle throughout the whole map + at that level. You can't have water in just one place, it can only be put through the whole map. +

+

+ To add water to your map, type: /waterlevel X
+ Replace X with the level that you would like the water to settle at. To remove water, use the same command to make the water settle + lower than the geometry (for example: /waterlevel -128 ). +

+

+ You can also change the colour of the water. Simply type: /watercolour R G B
+ Replace R with the red colour for the water, G with the green colour for the water and B with the blue + colour for the water to choose your colouring mix. When using this command, ensure that you create a value for each + colour (even if the value is just "1"), otherwise, the command may not work correctly. It does not harm to add this command into the + map cfg file but it is not neccesary! +

+

Map messages

+

+ When your map is loaded up, there is always a message stated. This message is used to advise players of the map name and author. + This "map message" can be added to any map by using the "mapmsg" command. + When using this command, be sure to use quote marks at the beginning and end of the phrase you use, otherwise it will not put the full message + onto the map. Be sure to save your map afterwards. Below is an example of how to use the "mapmsg" command. +

+

+ Example: /mapmsg "Foobar by Raboof" +

+

Undo

+

+ Pressing U will undo the last texture/geometry action that was done. It will not undo entities. +

+

+ The next step? Go to Map editing: Entities to learn how to place lights, spawns, etc. +

+ + + + + + + + + + + +
+
+ © Copyright, Rabid Viper Productions +
+
+ + We would be grateful for any donations considered towards AssaultCube + +
+ +
+ + diff --git a/docs/mapediting3.html b/docs/mapediting3.html new file mode 100644 index 0000000000..d9ce74af66 --- /dev/null +++ b/docs/mapediting3.html @@ -0,0 +1,340 @@ + + + + + + + + AssaultCube Documentation :: Map editing - Entities + + + + + + +
+
+ AssaultCube Documentation +
+ + + +
+ NOTE: This page of the documentation has been quickly converted from + AssaultCubes old + README and has not yet been checked properly for mistakes/weird stylying/invalid markup/inconsistancies/etc. + We're on it though, check back soon! +
+
+ +

Map editing - Entities

+ + + + + +

+ Entities are shown as colour-coded + sparkly dots when in edit mode. They are used for adding non-geometry/non-texture items, + such as: +

+ +

+ Each of these entities will be explained soon. All entities are added by the /newent + command (or through the editing menu). When adding entities, they are always added + to the red dot on the corner of the cube that you selected and at the height of + which you are currently hovering (note: the physical entity created will always + drop down to the ground). +

+

+ Some useful commands to use with entities: +

+ +

+ Lighting

+

+ When lighting up a map, make sure to allow for contrast, as contrast is what makes + a map look atmospheric. Things that are naturally bright, should become naturally + bright (for example: outside areas, lights, lamps, etc). Places that are naturally + dark, should be a bit dim (for example: A room with no windows or lights). +

+

+ Tips: +

+ +

+ Lights can be added typing "/newent light" and then a number between 1 and + 32 to define the size of the light (the radius) and then a number between 1 and + 255 to define the brightness. +

+

+ Coloured lighting can be added typing "/newent light" and then a number between + 1 and 32 to define the size of the light (the radius) and then a number between + 1 and 255 to define the amount of red light and then a number between 1 and 255 + to define the amount of green light and then a number between 1 and 255 to define + the amount of blue light. +

+

+ Note: The radius and all 3 colour values must be defined for a coloured light + to be created correctly. You can't omit a value as it will not create the light + correctly. If you don't want any colour from a specific value, simply use the value + "1" as a place holder. +

+

+ There is also a new handy menu that you can use to create lights by pressing L or + accessing it through the editing menu. +

+

+ Tip: If you accidentally light a map too brightly (for example, you didn't + reset your gamma levels before editing), instead of deleting lights and starting + again, you could utilize the + /scalelights command. +

+

+ Item pickups

+

+ Pickups must be placed strategically through maps and do take some time to position + correctly. Powerful pickups should be few and not be too close to each other (unless + there is a good risk involved) and pickups should be well spread and not be too + high in number. Try to keep powerful pickups away from the spawn area so players + are encouraged to leave their bases. Strategy is key! A good idea to keep in mind + when mapping is "what would I need here to help me pwn?" +

+

+ To place pickups, use the pickups menu inside the editing menu, otherwise type one + of the below... +

+ +

+ If needed, you can apply height to the model by adding a figure after the command + indicating the vertical position of the pickup. This figure is allowed to be a negative + number if needed (for example: if you use a pickup on a heightfield and want the + pickup to appear at the correct height) to move it downwards instead of upwards. +

+

+ Spawn points

+

+ In AssaultCube, there are three types of spawn points: RVSF spawn points, CLA spawn + points and FFA spawn points (free-for-all). +

+

+ As a general rule, you should place as many spawn points as possible in a spawn + area so that players aren't spawning from the same point too often. However, don't + over-do it. Make sure that spawn points are not too close to each other. +

+

+ Also make sure that spawns are not too close to any walls and mapmodels so players + don't get stuck inside them. Take care when placing spawn points to make sure you + face the direction you would like the player to face when they spawn, so that they + spawn looking in that direction, rather than facing a wall! +

+

+ RVSF and CLA spawn points should be placed in their respective bases. FFA spawns + should be placed all over the map in various places (FFA spawns are for non-team + type games, such as Deathmatch or One-shot, one-kill). +

+

+ If spawn points are not created, players will just spawn in the middle of the map, + all next to each other, so please remember to add spawn points. +

+

+ You can add spawn points through the editing menu, or you can type: +

+ +

+ Mapmodels

+

+ AssaultCube is packaged with many mapmodels to begin with, so there's a large choice + available. You can add your own custom models if you want through config files. When adding mapmodels to your map, use them sparingly, + as mapmodels slow down gamespeed and too many in one place just looks plain ugly. +

+

+ To add a mapmodel to a map, type: /newent mapmodel X Y Z.
+ Alternatively, you can use the very handy mapmodel menu inside the editing menu. +

+

+ Replace X with the mapmodels number (you can find this out by opening /config/default_map_settings.cfg - The mapmodels number is + written in a comment to the right of the mapmodel). +

+

+ Replace Y with the height you would like the mapmodel to appear above the + cube that it is placed upon. +

+

+ If you want a different texture to appear on the mapmodel, you can use Z + to define a texture number to apply to that mapmodel. Using this is unrecommended + as it's better to use the models default texture. +

+

+ Note: Some mapmodels in the mapmodels menu do not appear instantly. Instead, + they bring up the text needed to place that mapmodel, giving you a chance to define + a height for that mapmodel if needed. +

+

+ Mapmodel platforms

+

+ Due to the AssaultCube engines limitations... you can't use geometry to create a + second level. But, you can use a mapmodel platform or bridge. Look in the editing + menu under "Platforms/Clips". Apply some height to these to create a second + floor. Using too many of these is unrecommended. +

+

+ CTF flags

+

+ If you want to enable CTF mode on your map, place a CTF flag in each respective + base using the menus or by typing: +

+ +

+ Clips

+

+ Clips can be used to block players from accessing + areas that they shouldn't be able to access (for example: over a fence). You can use clips through + the editing menu through Entities -> Clips.
You can also simply use the command by picking + where you want the clips and typing: +

/newent clips W X Y Z

+

+

+ Replace W with the elevation from the ground of the clip.
+ Replace X with the length of the clip
+ Replace Y with the width of the clip
+ Replace Z with the height of the clip. +

+

+ Note: Some older maps, created prior to v1.0 may use a different technique of clipping that + you can't visibly see in editmode, as the current way of using clips did not exist at the time. +

+

+ Ladders

+

+ Ladders are comprised of TWO pieces. One part is the ladder mapmodel which + gives the ladder an appearance. The other part is the "entity" which is an invisible + force that let's you climb the mapmodel like a ladder. +

+

+ To place the mapmodel

+

+ Choose the appropriate place for the model, then, pick the appropriate sized mapmodel + from the Editing > Mapmodels > Ladders/stairs menu. To place the model + with the correct orientation, turn 90 degrees to the left before placing + it.
+ There is a single ladder rung model that you can use to make different sized ladders + if needed (by applying height to the model, see mapmodels). +

+

+ To place the entity

+

+ On the same cube that you placed the mapmodel, type: /newent ladder X. Replace + "X" with the amount of cubes that the player will need to climb. +

+

+ Ambient sounds

+

+ So long as the sound is defined in the config + files you can use ambient sounds in a map. When using ambient sounds, sound + will be played to all players within the radius defined, from the source of the + entity. +

+

+ To use an ambient sound, type: /newent sound W X Y Z +

+

+ Replace W with the number for the sound (as defined by your custom config files).
+ Replace X with the radius you want the sound to play for.
+ Replace Y with the amount of distance inside the radius you would like before + the sound starts to fade.
+ Replace Z with the volume of the sound (from 1-255). +

+

+ For more information, see: + newent sound. +

+ + + + + + + + + + + + +
+
+ © Copyright, Rabid Viper Productions +
+
+ + We would be grateful for any donations considered towards AssaultCube + +
+ +
+ + diff --git a/docs/mapediting4.html b/docs/mapediting4.html new file mode 100644 index 0000000000..5740277136 --- /dev/null +++ b/docs/mapediting4.html @@ -0,0 +1,268 @@ + + + + + + + + AssaultCube Documentation :: Map editing - Tips, tricks and advice + + + + + + +
+
+ AssaultCube Documentation +
+ + + +
+ NOTE: This page of the documentation has been quickly converted from + AssaultCubes old + README and has not yet been checked properly for mistakes/weird stylying/invalid markup/inconsistancies/etc. + We're on it though, check back soon! +
+
+ +

Map editing - Tips, tricks and advice

+ + + + + + +

Covered in this article:

+ +

Size Matters!

+

+ Size DOES matter in AssaultCube! Don't make fanatically huge maps as they will lag players down. + Not to mention, it will take forever for players to find/frag each other, in what's supposed to be a fast paced game. + Due to the restrictions of the cube engine, it is generally a BAD idea to try and rebuild your favourite map from + a different game, as most engines allow for larger rooms and bigger lines-of-sight than the Cube engine does! +

+

+

World Quads (WQD)

+ The WQD count can be found by typing /showstats 2. Some figures will appear at the right of + your screen, one of them will be WQD... +

+

+ WQD is a good way to measure how good your map will or won't lag. Maps should ideally + average a maximum of 5000 WQD (less is better). It's okay for your map to exceed this if it's only a + little bit more in a short area. Keep in mind that lights and details will raise the WQD counts, so a rough layout + won't really represent the final WQD values of a map. In an empty map (layout is the only completed part) + which only has corridors and basic geometry, WQD shouldn't be above 1000. This leaves enough overhang for details, lightning and mapmodels. +

+

+ The key to getting a good WQD count is by using occluders or "solids" (press F). These are full-sized walls + that block the view, and it allows the engine to know that it can stop rendering whatever is behind it.
+ To undersand the concept of occluding, do the following: +

+
    +
  1. + Load one of the official AssaultCube maps. +
  2. +
  3. + Enter edit-mode (Press E). +
  4. +
  5. + Fly above the map (beyond the skymap). +
  6. +
  7. + You will now see occlusion at work. The blacked out parts of the map are where solids exist, + and the engine has decided not to render past them. Parts you can see have, of course, not been occluded. +
  8. +
+

+ You can toggle occlusion on and off by using the F5 key (Warning: This may be very laggy!). + Viewing occlusion at work will give you an idea on where to place solid cubes while creating the layout for your map. +

+ Keep in mind, the better your map runs, the more people will want to play it. If your map looks awesome, but + can only be run on a decent, new computer, then people won't play it as their computer simply won't be able to + handle it. Many AssaultCube players are still using quite old hardware! +

+

Layout and design

+

+ When creating a map, make sure not to make areas far too small. Six or more cubes wide is a good dimension for + doorways, to allow people to pass through them easily. Take reality as your guide. If you're unsure + about how large your door/window/stairs should be, look at those in your house or outside somewhere. + If players block a doorway for teammates, just because the doorway is only 4 cubes wide, people won't like + the map very much. Another up-side to allowing enough space in the map, is that it also gives room to plays to + "strafe-run". +

+

+ When you build your map, use more than one level. Flat maps are boring. By adding vertical variety, you also + make the gameplay more intresting. Even small alterations in floor height usually makes things more diverse. +

+

+ Be sure that players aren't "fighting the map" too much. They should be fighting each other after all. + Also make sure that players aren't constantly bumping + their heads, especially against the skymap, as it can be annoying, and unrealistic. +

+

+ Try to keep wall sizes about 3-4 cubes thick, to allow for detail and realism. +

+

Second floors

+ Due to the limitations of the Cube engine, it's simply not possible to build a second floor out of geometry. + You can however use architectural mapmodels + to create them... but don't try to build a 5-storey building with them, otherwise it will be impossible to make it look + right, especially with lighting, since lights in the Cube engine are circular (not spherical), meaning you can't change + the lighting on each level of the platform. + By creative use of levels, you can make maps that very well give the impression of multiple floors! + If you use the bridge mapmodels, use it with care! + +

Texture use

+

+ Take your time in chosing textures. Don't just decide by "how it looks", consider reality to be your guide.
+ Don't put a floor texture on the ceiling, or wall textures on the floor (although there are exeptions). Try to use + some common sense. A nice wooden structure will probably not support a concrete roof too well, or your factory + will probably not have a wooden flooring. Brickwalls on the ground are very uncommon... etc, etc. +

+

+ At the end of the texture list is a texture imprinted with the words "missing content". DON'T use it, it's not a texture, + in-fact, it's lack of a texture. It looks ugly and shouldn't be used in any map, because it's actually there to show if + textures and skins did not load properly. +

+

Mapmodel usage

+

+ Though they can add some nice and neccesary detail to your map, don't heavily rely on them! It is advised to add + mapmodels at a late stage in mapping. Think of them more like the icing on the cake. + A boring room won't look better if you add lots of mapmodels. + When you add them, less is often more. If every square metre has a cigarette and a leaflet on the ground, the + effect will be lost. +

+

Lighting

+

+ Careful placing of lights can produce different effects. Contrast in lighting is what makes a map look atmospheric. + Be sure to take time placing lights correctly, don't use very bright lights to light the whole map, instead, use + medium-sized, mid-brightness, ambient style lights instead.
+ A good approach is to imagine that the map is real, and then use what is appropriate for the situation!
+ Small, bright lights (i.e. 255 brightness, 4 radius) should be used as highlights for actual light sources, + such as lamps and lightbulbs. +

+

+ Coloured lights:
+ When adding coloured lights, be careful. Some textures can become bland if exposed to certain colours. + Also make sure you keep a consistent colour theme. Don't add a red, a blue and a yellow light to the same area... +

+

Item placement

+

+ Pickups must be placed strategically through maps and do take some time to position + correctly. Powerful pickups should be few and not be too close to each other (unless + there is a good risk involved) and pickups should be well spread and not be too + high in number, this encourages players to move around. + Try to keep powerful pickups away from the spawn area so players + are encouraged to leave their bases. Strategy is key! A good idea to keep in mind + when mapping is "what would I need here to help me pwn?" +

+

+ If you want a spot to have grenades for when players are playing the mode Last Swiss Standing, but not for other + modes, be advised, that pistol magazines turn into grenades during Last Swiss Standing mode... so if you want, + you can strategically place pistol magazines with this thought in mind. +

+

+ It's a good idea to put powerful pickups in risky areas, this helps keep balance and makes it harder for + players to hog them. +

+

Spawn points

+

+ Rule of thumb: The more, the better. Try to add as many as you can. + Avoid creating spawnpoints that are in the middle of a room, or a corridor. Spawning and being instantly killed + just because you're in the line of fire of some other players is frustrating. +

+ It's a common mistake to new map editors to place spawn points with an incorrect orientation. If you want to add a spawn + in a corner, select the cube you want the spawn to be and fly over it, then add the entity while looking in the desired direction! +

+

+ Be sure not to use too many models. Mapmodels slow down the gamespeed and that's a problem on older machines, so + a map that's heavily laden with models just isn't good for those players. +

+

Co-operative map editing

+

+ If you'd like to create a map with friends, you can use co-operative map editing to let you build and modify maps with others online easily. + This mode allows you to edit maps online with other players + who could help speed up repetitive or boring tasks, bring in fresh ideas or spot errors you may have missed. +

+

+ To start co-operative map editing, when in a server, type: /mode 1 and then type: /map and then your mapnames name and press ENTER. + You will have to of made a "newmap" previous to entering the server to be able to co-op edit it. Alternatively, you can type: /coop MAP + (replace MAP with your maps name). +

+

+ You will then need to send the map. You can do this by typing: /sendmap and then your mapnames name and press ENTER. Note: Custom + materials can't be sent, they will have to be downloaded another way if you are using them. If you are using a custom "cfg" file, it will automatically + be sent with the map, if there is a cfg file present. +

+

+ Note: Some useful editing commands can't be used in co-op editing, such as: copy, paste, slope, arch, undo, etc. +

+ + + + + + + + + + + +
+
+ © Copyright, Rabid Viper Productions +
+
+ + We would be grateful for any donations considered towards AssaultCube + +
+ +
+ + diff --git a/docs/mapediting5.html b/docs/mapediting5.html new file mode 100644 index 0000000000..6cedbc4460 --- /dev/null +++ b/docs/mapediting5.html @@ -0,0 +1,327 @@ + + + + + + + + AssaultCube Documentation :: Map editing - Config files + + + + + + +
+
+ AssaultCube Documentation +
+ + + +
+ NOTE: This page of the documentation has been quickly converted from + AssaultCubes old + README and has not yet been checked properly for mistakes/weird stylying/invalid markup/inconsistancies/etc. + We're on it though, check back soon! +
+
+ +

Map editing - Config files

+ + + + + + + + + + + + + + + + + + + +

+ When you first start a map, be sure to use the /newmap command, rather than editing + an existing map. + Issuing the newmap command ensures that your map uses the default map settings, rather than + using the existing configuration for that map (if it did use the existing configuration, upon 2nd load, the map will become messed up). +

+

+ Map config files will ONLY be needed if you want to utilize any of the below: +

+ +

+ The first step to using any of the above in your map is copying the + /config/default_map_settings.cfg file into your + /packages/maps folder + and then renaming it to the same name as what your map will be called (i.e. foobar.cfg). + Whenever your map is loaded, it will look for your maps config file (which it can only + find if it's named the same as your map). If it can't find + the config file for your map, it will automatically load + the default config instead. +

+

+ Warning: PLEASE be aware when adding custom content to your map, to make sure you use + LOWERCASE through out the config file and make sure file names of your custom content also use lower case. + If you don't, some operating systems such as Linux, will not load the commands or files due to the fact that an + uppercase letter in Linux is counted as a completely different letter to a lower case letter. So it is absolutely + vital that the filenames match (even in the file-name extension!) +

+

+ Warning: Don't use single slashes in the config file to issue commands, as the commands won't work if you do. +

+

+ Note: You may see "comments" in the config files. Comments are lines of writing in the config file that + have had 2 forward-slashes put in front of them. Using comments is a good way to advise the reader of the config + file about things in the config file. Comments are ignored by the AssaultCube engine. Below is an example of a comment:
+ // This is a comment! +

+

Custom textures

+

+ When you want to add custom textures to your config file, be sure that the textures tile seamlessly. + This means that your texture, when lined up against itself in all directions, should match itself. +

+

+ Preferably, textures should be 256x256 pixels. But, each cube in AssaultCube measures 32x32 pixels, so, as + long as the image is a multiple of 32 pixels and doesn't take up too much space, the texture should work fine. If + the image is not a multiple of 32 pixels, it will not fit on the cube properly and will be unaligned and look strange. + When creating/using custom textures, remember that too much detail/size could make that texture in the map too laggy! +

+

+ You will notice in the default config a command "texturereset". This ensures that all the textures + in your map are always shown in the correct order, so make sure you leave this where it is! Textures are in a numbered + list and the "texturereset" command resets that list, so that your map is not using the last maps texture list. + The first and second textures in the list are hardcoded as the + skymap and water textures. +

+

+ You are allowed to add new textures anywhere below where it says + // Texture #1 Putting it above this will + create some problems. If you are just starting your map, it would be fine to replace textures in the list, or slot + your textures anywhere between the current texture list. However, if you have already started your map and are just + now adding a new texture, it would be wise to place your texture at the very end of the list, so that your map does + not get messed up! +

+

+ To add a new texture, use this format: texture 0 "./raboof/foobar.jpg" on a single line. + Replace "raboof" with the folder name and "foobar" with the name of the image. Be sure to put all your content + inside a separate folder so that it does not get mixed in with everyone elses content. +

+

+ Note: All textures MUST be placed inside /packages/textures/. +

+

+ Warning: There is a texture command in the default config that has the comment "dummy" after it. + Do not touch or remove this texture command as it will break some configurations. +

+

+ Warning: There can only be maximum of 256 textures in your map! Any more won't be loaded. +

+

Custom mapmodels

+

+ To use your own custom mapmodels in AssaultCube, all models must be of either md2 or md3 format and + be placed inside /packages/models/mapmodels. You will need + to create a separate folder for your mapmodel. Inside it, you will need to place the model with the name "tris" + (and the .md2 or .md3 extension). You will also need to place the skin in the same folder with the name "skin.jpg". +

+

+ You will see a command called "mapmodelreset". All mapmodels can be placed below this. The mapmodelreset command + ensures that the mapmodels in the numbered list are reset, meaning that everything appears as it should, rather than + using the last maps mapmodel numbering. +

+

+ To add a mapmodel, use this format: mapmodel X Y Z 0 "model-folder" on a single line. + Replace "model-folder" with the name of the folder that the mapmodel is in (for example, if the file is + in /packages/models/mapmodels/tree, you would put "tree" there).| +

+

+ Mapmodels use an invisible force to make them feel solid (i.e. you colide against them, rather than falling through + them). This invisible force is called a "clip". +

+ +

+ Note: The mapmodel number is defined by where the mapmodel is placed inside the mapmodel list, i.e. the 21st + mapmodel command will be the 21st mapmodel +

+

+ Tip: If you define the mapmodel to have 0 clipping of the width/length but give it a height + clipping (for example, a clipping of 8 high) + then that model will actually take up the width/length of 1 single cube with the height you defined + (if you define both to be 0, then it won't be clipped) +

+

Custom skymaps

+

+ All skymaps should be placed in their own individual folder (based on the author) inside + packages/textures/skymaps/.
+ Six pieces make up a skymap and should be named as below (replace "foobar" with the name of the skymap): +

+ +

+ Look for the part of the config with the commands "loadsky". Delete or "comment out" the current skymap + commands there so they don't conflict with your skymap. Then, on a single line, use this format to add your skymap: + loadsky "textures/skymaps/foobars-skymaps/foobar1" (where it says "foobars-skymaps", replace that with your folders name, where it + says "foobar1", replace that with the skymap name). +

+

+ Note: There are a selection of skymaps already available for you to use if needed. Just uncomment the one you want (comment the others). +

+

+ Note: The skymap is hardcoded as the first texture, in the texture list. +

+

Custom fog distances and colours

+

+ Fog is used in AssaultCube to help improve performance on some computers. However, it's not completely necessary + and as long as it doesn't make your map too laggy and will improve your maps look, then you can make the fog appear + at different distances and colours to add to your maps appearance. +

+

+ To change the distance at which fog will appear, add this command to a single line in your config file: fog X
+ Replace X with the distance at which you want the fog to start appearing (maximum of 1024, default is 160). +

+

+ To change the colour of the fog, add this command to a single line in your config file: fogcolour X
+ Replace X with the appropriate hexadecimal colour code. +

+

Changing the angle shadow stencils are drawn

+

+ Changing the angle at which shadows stencils are drawn can have some nice effects on lighting in your map. + To change the angle, first experiment in the map by typing "/shadowyaw D" (replace "D" + with an angle between 0 and 360). When you have found the appropriate angle you wish to use, simply add the command + shadowyaw D to a single line in your configuration file (replacing "D" + with an angle between 0 and 360). +

+

Ambient sounds

+

+ To enable custom ambient sounds in your map, all sound files must be either .wav or .ogg format. + All files need to be put in the /packages/audio/sounds folder. Be + sure to put your sound files inside your own individual folder. +

+

+ You will see a command called "mapsoundreset". All mapsounds can be placed below this. The mapsoundreset command ensures + that the mapsounds in the numbered list are reset, meaning that everything sounds as it should, rather than using + the last maps sound numbering. +

+

+ To add sounds to the config file, add this command to a single line: mapsound "raboof/foobar.wav" X
+ Replace "raboof" with your sounds folder name and replace "foobar.wav" with your sound files name. + Replace X with how many times the sound should be allowed to play at once (for example, if there are several of the same sound in one area, + this would define how many of them should play at once, as too many might be a bit of an overkill). Using the + value "-1" (which is the default) will make it play an unlimited amount of times. +

+

+ The order that you place the mapsound commands in the config file, determines their slot number (i.e. the first one + in the list would be slot 0, the second mapsound command would be slot 1). +

+

Using the "loadnotexture" command

+

+ Due to AssaultCube's light-weight approach to gaming, custom content from new custom maps are not downloaded + automatically to a players computer system, as content size can be quite big, which is just not appropriate for + 56k modem users and users with restricted bandwidth. Because of this, users will have to go and download + the content manually. Since the config and map files are downloaded (due to their small sizes), there is a + command + you can use in the config which will automatically load all textures that aren't found to be a specific already + existing texture. +

+

+ When using this command, the texture that you want to load must be found within the + /packages/textures/ folder. To use this feature, add this command + to a single line: loadnotexture "raboof/foobar.jpg". Replace "raboof" with the folder name and + "foobar" with the name of the image. You will need to have commented-out or deleted the pre-existing "loadnotexture" + command. +

+ + + + + + + + + + +
+
+ © Copyright, Rabid Viper Productions +
+
+ + We would be grateful for any donations considered towards AssaultCube + +
+ +
+ + diff --git a/docs/mapediting6.html b/docs/mapediting6.html new file mode 100644 index 0000000000..e260907bda --- /dev/null +++ b/docs/mapediting6.html @@ -0,0 +1,143 @@ + + + + + + + + AssaultCube Documentation :: Map editing - Official maps + + + + + + +
+
+ AssaultCube Documentation +
+ + + +
+ NOTE: This page of the documentation has been quickly converted from + AssaultCubes old + README and has not yet been checked properly for mistakes/weird stylying/invalid markup/inconsistancies/etc. + We're on it though, check back soon! +
+
+ +

Map editing - Official maps

+ + + + + + + + +

+If you want to create maps with the intention of getting them into the +official AssaultCube package, then you're best to read the following... +

+

+AssaultCube only adds high quality maps to their release. No exceptions. So +we have added this guide to make it somewhat easier for you, the map editor, +to know what we are looking out for...
+Note: If you're looking for a place where your map will most likely be +seen by a AssaultCube developer, try Quadropolis, +where some devs will often take a look to see what new user content has been created recently. +

+

Firstly...

+

Please, read this page, which entails a guide and tips on +making a good map, the majority of the details on that apply to our specifications!

+

What we're looking for...

+

This list is by no means exact, and there are exceptions to every rule, but this will +at least give you an idea on what we're looking out for... +

+ + + + + + + + + + + + + + + + + + + + + +
+
+ © Copyright, Rabid Viper Productions +
+
+ + We would be grateful for any donations considered towards AssaultCube + +
+ +
+ + diff --git a/docs/mods.html b/docs/mods.html new file mode 100644 index 0000000000..8d044a2eb2 --- /dev/null +++ b/docs/mods.html @@ -0,0 +1,114 @@ + + + + + + + + AssaultCube Documentation :: Custom mods + + + + + + +
+
+ AssaultCube Documentation +
+ + + +
+ +

Custom mods

+

+ AssaultCube allows 3rd + party developers to "MOD" the game by using the existing + AssaultCube engine/data for their own modifications, so long as they don't break any of the + license agreements for the particular media they're modifying. +

+

+ However, many don't realise that you can release your MOD without needing to overwrite existing + data (a.k.a: content replacement). The advantage of this is that it allows you to add MODS cleanly + without placing the files inside the main AssaultCube directory. This means, that if you don't + want to play AssaultCube using the MOD, or want to play AssaultCube using a different MOD, you + can without having to install several copies of AssaultCube. +

+

+ How to set up a MOD in this way is quite easy. How it works, is when AssaultCube loads files for + the game, it looks into several directories to find the files needed to load the game. + This list of directories can be simply extended, by using the --mod argument + which lets you add a custom directory to recursively load additional files from. +

+

+ While using the --mod argument, when AssaultCube looks for + any resources it will load all its normal files first, then it will check your MOD folders for + additional files and if any of the filepaths in that folder match files that need to be loaded, + AssaultCube will then load these MOD files, instead of the original files. +

+

+ IMPORTANT: Please ensure that if your users are using a "--home" + directory, that they extract the mod into that directory (rather than the main AssaultCube directory), or + else it won't work. +

+

+ Please note: AssaultCube's main license forbids redistributing a + MOD with ALL of AssaultCube's original files, as AssaultCube's files use a variety of different + licenses. If you want to modify and/or redistribute anything from AssaultCube, you MUST + check each redistributed file's license allows you to do this in the way you are redistributing + it. This is the main reason that the --mod argument exists + to begin with. +

+

Example:

+

+ Assume you want to create a mod that provides a customized HUD-gun; here's how you would create a mod directory: +

+
    +
  1. + Create a "MOD" directory in the AssaultCube folder: ./mods/MyMod1/ +
  2. +
  3. + Inside the MOD directory, place your customized HUD-gun files, using a folder scheme that + matches how it would normally be placed within AssaultCube's packaging: + ./mods/MyMod1/packages/models/hudguns/assaultrifle.md3 +
  4. +
  5. + Now to make AssaultCube aware of this mod you'll need to start AssaultCube with the argument + --mod="mods/MyMod1". +
  6. +
+

+ To start AssaultCube with the mod argument all the time, you can create your own AssaultCube launcher + (this option is not available on Apple Mac OS X). + Simply copy/paste the existing assaultcube.sh (Linux) or assaultcube.bat (Windows) file + with a new filename. Then edit it with a notepad application. +

+

+ For Windows users, add your new --mod command line option to the end of the file.
+ For Linux users, add your new --mod command line option into the CUBE_OPTIONS + line. +

+
+
+ © Copyright, Rabid Viper Productions +
+
+ + We would be grateful for any donations considered towards AssaultCube + +
+ +
+ + diff --git a/docs/playerskins.html b/docs/playerskins.html new file mode 100644 index 0000000000..d0dccd6503 --- /dev/null +++ b/docs/playerskins.html @@ -0,0 +1,122 @@ + + + + + + + + AssaultCube Documentation :: Player skins + + + + + + + +
+
+ AssaultCube Documentation +
+ + + +
+ +

Player skins

+

+ This page covers implementation/use of custom playerskins (not how to create/edit a custom playerskin). + To learn how to edit a playerskin, please refer elsewhere.
+ Note: You can use ./packages/models/playermodels/skin.jpg + as a template for a new playerskin. +

+

+ The AssaultCube playermodel/playerskin was originally created by Darren “HitmanDaz[MT]” Pattenden. +

+

+ Under the license + provided by him, you may use these models/skins for personal use only (i.e. NOT for commercial use). + This also means any derivatives/modifications you make MUST also be licensed to ONLY allow personal use. We recommend + including the ./packages/models/playermodels/license.txt + file whenever you redistribute a new player skin. +

+

Single-name nickname skins

+

+ Single-name nickname skins allow you to assign ONE specific skin to ONE specific player's name. + This is great if you have, for example, an adversary in the game who you want to be able to always recognise + easily, so you can specifically target them. +

+

+ To implement this, add your new skin file into the folder: ./packages/models/playermodels/custom and then + name it as below (note: nicknames and filenames are case sensitive). +

+ +

Multi-name nickname skins

+

+ Multi-name nickname skins search for key words in a nickname instead. This is especially useful if you want + all of your clan to display the same skin, rather than a single person. +

+

+ To implement this, add your new skin file into the folder: ./packages/models/playermodels/custom and then + name it as below (note: nicknames and filenames are case sensitive. Also note how there are *TWO* + underscores, not one!) +

+ +

+ If you can't see your custom skins in-game, make sure you've selected the correct option under
+ SettingsGameplay settingsCustom player skins +

+

File replacement

+

+ Some players prefer file replacement, where you simply replace the existing skin file with your new skin; + this way, anybody using the same skin that you replaced, would appear with your new skin. + This isn't recommended. If you do decide to do this however, it is best to implement it as a mod + so that none of your previous files are missing. +

+
+
+ © Copyright, Rabid Viper Productions +
+
+ + We would be grateful for any donations considered towards AssaultCube + +
+ +
+ + diff --git a/docs/reference.xml b/docs/reference.xml new file mode 100644 index 0000000000..bc8e50a191 --- /dev/null +++ b/docs/reference.xml @@ -0,0 +1,7965 @@ + + + + + + + + + + + + + + +
+ This section describes identifiers that are closely related to the CubeScript language. + + + + Compares if a particular floating-point value is smaller than another floating-point value. + + + + + + + + + Compares if a particular floating-point value is less than or equal to another floating-point value. + + + + + + + + + Compares if a particular floating-point value is equal to another floating-point value. + + + + + + + + + Determines if the first floating-point value is greater than the second floating-point value. + + + + + + + + + Determines if the first floating-point value is greater than or equal to the second floating-point value. + + + + + + + + + Determines if the first floating-point value is not equal to the second floating-point value. + + + + + + + + + Sets the result value of a CubeScript block. + + + + + + + + + + + + Sets the result value of a CubeScript block. + + + + + + + + + + + Executes the specified string as CubeScript. + + + + + + + Example output: 90.0 + + + + + + Temporarily redefines the value of an alias. + + + + + + + + Output: 2 + + + + + + + + + return the value of the alias + + + + + + + + + + + + returns whether or not there is an identifier by that name + + + + + + + Performs a floating-point modulo operation. + + + + + + + + + Output: 7.5 + + + + Output: 5.0 + + + + + + Returns A raised to the power of B (floating-point) + + + + + + + + + Resets a previously pushed alias to it's original value. + + + + + + + Output: 1 + + + + + + + + + Performs an addition. + + + Example: echo the sum of x and y is (+ $x $y) + + + + + + + + + + + Performs a subtraction. + + + + + + + + + Performs a multiplication. + + + + + + + + + Performs an integer division. + + + + + + + + + Subtracts two floating-point numbers. + + + + + + + + + Adds up two floating-point numbers. + + + + + + + + + Performs a floating point multiplication. + + + + + + + + + Performs a division with floating-point precision. + + + + + + + + + Adds a value to an alias. + + + Example: += foo 1337 + + + + + + + + + + Increments an alias by 1. + + + + + + i = 0; ++ i; echo $i + Output: 1 + + + + + + + + + + + Increments an alias by 1. + + + + + + i = 2.14; ++f i; echo $i + Output: 3.14 + + + + + + + + + + + Subtracts a value from an alias. + + + Example: -= foo 1337 + + + + + + + + + + Decrements an alias by 1. + + + + + + i = 0; -- i; echo $i + Output: -1 + + + + + + + + + + + Decrements an alias by 1. + + + + + + i = 4.14; --f i; echo $i + Output: 3.14 + + + + + + + + + + + Multiplies an alias by a value. + + + Example: *= foo 1337 + + + + + + + + + + Divides an alias by a value. + + + Example: div= foo 1337 + + + + + + + + + + Adds a floating-point value to an alias. + + + Example: +=f foo 13.37 + + + + + + + + + + Subtracts a floating-point value from an alias. + + + Example: -=f foo 13.37 + + + + + + + + + + Multiplies an alias by a floating-point value. + + + Example: *=f foo 13.37 + + + + + + + + + + Divides an alias by a floating-point value. + + + Example: div=f foo 13.37 + + + + + + + + + + Performs a modulo operation. + + + + + + + + + Determines if two values are equal. + + + + + + + + + Output: there are only 10 types of people in the world + + + + + + Determines if two values are not equal. + + + + + + + + + Determines if a value is smaller than a second value. + + + + + + + + + Determines if a value is bigger than a second value. + + + + + + + + + Determines if a values is less than or equal than a second value. + + + + + + + + Determines if a values is greater than or equal than a second value. + + + + + + + + logical AND. + + + + Output: 1 + + + + Output: 0 + + + + + + + + + + + logical OR. + + + + output: 1 + + + + output: 0 + + + + + + + + + + + Performs a negation. + + + + + + + Random value + + + + + + + + Round the given float + + + + + + + + Upper value of a float number + + + + + + + + Floor value of a float number + + + + + + + + Determines if two strings are equal. + + + + Output: the two strings are equal + + + + + + + + + + + + + + Determines if string B was found in string A. + + + + Output: found Hello in Hello world! + + + + + + + + + + + + + + Returns the length (in characters, including whitespace) of string S. + + + + Output: 12 + + + + + + + + + + + + Returns the position of a substring into another + + + + + + + + Character indexes and occurence number begin at 0. + + + + + + + + + + + + + + + + + Copies a substring out of the original. + + + + + + + + Character indexes begins at 0. If "start position" is negative, the reference is the end of the string. + + + + + + + + + + + + + + + + + + + + + + Controls the script flow based on a boolean expression. + + + $x 10) [ echo x is bigger than 10 ] [ echo x too small ]]]> + + + + + + + + + + + Takes an integer argument to determine what block of code to execute. + + + + Output: case 2 + + + + + + + + This command can only handle up to 23 'cases'. (because of cubescript's 24 argument limit) + + + + + Loops the specified body. + + This command sets the alias you choose, as first argument, from 0 to N-1 for every iteration. + + + + + + + + + + + + + + + + + + + + Loops the specified body while the condition evaluates to true. + + + This command sets the alias "i" from 0 to N-1 for every iteration. + Note that the condition here has to have [], otherwise it would only be evaluated once. + + + + + + + + + + + + + + + + + + + + Browses a list and executes a body for each element + + + + + + + + + + + + + + + + + + + Aborts a loop created with a 'loop', 'looplist' or 'while' command. + + + + output: 0 1 2 3 + + + + + + + + + + + Skip current loop iteration. + + + + output: 0 1 3 4 + + + + + + + + + + + Loops through every character in the given string and executes the given block of cubescript on each iteration. + + + + Uses echo on every character in the string: "Hello world" + + + + Uses echo on every character in the string: "Hello world" --- Also outputs the position of each character in the string. + + + + Outputs: ".sdrawkcab gnitseretni kool lliw sihT" + + + $__iter 4) breakparse [echo $iter]]]]> + Example usage of the breakparse command. Uses echo on characters a through e, then breaks out of the parse. + + + + + + + + + + Important: A secondary iterator alias (prefixed with a double underscore "__") is automatically created before each iteration that contains the character position data. + + + + + + + + + + + Breaks out of a parsestring loop. + + Important: This command should only be used within the 3rd argument (the cubescript to execute) of parsestring. + + + + + + + + Removes all whitespace characters from the given string. + + + + Outputs: Helloworld + + + + + + + + + + + + + Removes all unnecessary leading and trailing whitespace characters from the given string. + + + + Outputs: "H e ll o w o r l d" + + + + + + + + + + + + + Concatenates multiple strings with spaces inbetween. + + + + output: hello world + + + + + + + + + + + Concatenates multiple strings. + + The newly created string is saved to the alias 's'. + + + + + output: CubeScript + + + + + + + + + + + Grabs a word out of a string. + + + + output: two + + + + + + + + + + + returns the element count of the given list. + + + + + + + find client number (cn) + + + + + + + find player name + + + + + + + Searches a list for a specified value. + + + + + + + + + Executes a command after specified time period. + + + + Prints 'foo' to the screen after 1 second. + + + + + + + + + + + Resets all current "sleep". + + + + The number of arguments passed to the current alias + + + + + + + + + + + + output: 99 bottles of beer on the wall, 99 bottles of beer! + + + + + + Adds color to a string. + + + + Output: a red "Hello" and a green "world!" + + + + + + + + + + + + leading zeros for the number V to make it W chars wide. It may look like 10 - which might be considered a mnemonic - but it's lowercase-L and 0! + + + + Output: 01000 + + + + Output: 1000 + + + + + + + + + + Generates an alias (list) of the current values for the given aliases/CVARs. + + + + Example result: stores "3.000 1 120" into alias "tmp". + + + + + + + + + + + + + Binds a name to commands. + + + + + + + + It is possible to re-bind an alias, even during its evaluation. + + + + There is also the shorthand version of defining an alias via the "="-sign. + + + + + + Set an alias as a constant. + + A constant cannot be redefined : its value cannot be changed. + To get rid of a constant, use delalias + + + + + + + + + Set "myalias" value to "myvalue" then "lock" it as a constant. + + + + You can directly set a value for your alias when you define it as a constant. + + + + Assigning a value to a const will throw you an error. Output: myalias is already defined as a constant + + + + + + Determines if the argument given is an existing alias or not. + + + + Output: 1 + + + + Output: 0 + + + + + + + + + + + + + Determines if the argument given is a constant or not. + + + + Output: 1 + + + + Output: 0 + + + + + + + + + + + + Ensures the initialization of an alias. + + + + Output: if alias mapstartalways does not exist, this command initializes it. + + + + Output: if alias mapstartalways does not exist, it is initialized, and if the block of code "[ echo New map, good luck! ]" does not exist within the aliases contents, this command adds it. + + + + + + + + + + + + + + + + Defines an alias only if it does not already exist. + + + + + + + + + + + + + + Forcibly sets a list of aliases to a specified value. + + + + Can be written as: + + + + + + + + + + + + + Initializes a group of aliases using checkinit. + + + + + + + + + + + + + + Uses check2init on a list of aliases. + + + + + + + + + + + + + + Controls whether aliases defined afterwards will be saved (1) or not (0). This option is useful to keep saved.cfg free from unneeded clutter. + Note: in map and model configs, this option is always disabled. + + + + + + + foo will not be saved and has to be redefined when restarting AC. + + + + bar will be saved and persistent across sessions. + + + + + + Injects CubeScript punctuation. + + + + Output: "hello" + + + + Output: [hello] + + + + Output: (hello) + + + + Output: $hello + + + + + + + Output: % + + + + Output: 90.0 + + + + + + + + + + Returns the current number of players. + + The return value includes the local player "(you)", and works in both singleplayer and multiplayer scenarios. + + + + + Returns the highest valid client number available. + + + + Converts a string to all lowercase characters. + + + + Output: hello + + + + + + + + + + + + + Converts a string to all uppercase characters. + + + + Output: HELLO + + + + + + + + + + + + + Converts a list of strings to lowercase or uppercase characters. + + + + Output: zero one two three + + + + Output: ZERO ONE TWO THREE + + + + + + + + This command can handle up to 23 string arguments. + + + + + + + + + Tests a character argument for various things. + + + + Output: 1 // It is a 0-9 digit + + + + Output: 1 // It is a a-z or A-Z character + + + + Output: 1 // It is a a-z or A-Z character or 0-9 digit + + + + Output: 1 // It is a lowercase a-z character + + + + Output: 1 // It is a uppercase A-Z character + + + + Output: 1 // It is a printable character + + + + Output: 1 // It is a punctuation character + + + + Output: 1 // It is a whitespace character + + + + + + + + See the following c++ functions for more information about the usage of this command: + isalpha(), isalnum(), isdigit(), islower(), isprint(), ispunct(), isupper(), and isspace() + + + + + Returns a string, with a portion of it replaced with a new sub-string. + + + + Output: Hello world + + + + + + + + + + + + + + + + Returns the average of a list of numbers. + + + + Output: 4.0 + + + + + + + + + This will append the passed 2nd argument to any existing content of the alias named in the 1st argument. Several popular aliases have predefined shortcuts using this scriptalias: addOnQuit, addOnLoadOnce, addOnLoadAlways. Check config/scripts.cfg for possible omissions in that list. + + + + + + Output: one two + This will output the string and override any other actions that might've been defined. + + + + + + + + + + Appends a new element to a list. + + + + Output: Hello world! + + + + + + + + + + + + + + Adds a block of code, if it does not already exist, to a keybind. + + + + + + + + + + + + Returns the contents of a keybind. + + + + + + + + + + + Returns the name of a key via a specified code. + + + + Output: BACKSPACE + + + + Output: PAGEUP + + + + + + + Returns -255 if the key does not exist. + See /config/keymap.cfg for a full list of valid key codes. + + + + + + + + + Returns the integer code of a key. + + + + Output: 8 + + + + Output: 280 + + + + + + + Returns -255 if the key does not exist. + See /config/keymap.cfg for a full list of valid key names. + + + + + + + + +
+ + +
+ This section describes general identifiers. + + + + Toggle for taking an automatic screenshot during intermission. + + + + + Toggle format of screenshot image. Your choice is for BMP (0), JPEG (1) or PNG (2). + + + + + + + + Scales screenshots by the given factor before saving. 1 = original size, 0.5 = half size, etc. + + + + + Returns the file extension of the client's current screenshottype setting. + + + + Example output: .jpg + + + + + + + + + + Sets the JPEG screenshot image quality. + + The image quality is set by it's compression level, a value of 10 sets maximum compression and a small file size but results in a bad quality image + while a value of 100 results in a large file but gives the best quality image. + + + + + + Sets the PNG screenshot file compression. + + A value of 9 sets maximum data compression and a smaller file size while a value of 0 results in a large file image, quality is always the same since PNG its a loosless format. + + + + + + Plays all hardcoded sounds in order. + + + + writes current configuration to config/saved.cfg - automatic on quit + + + + registers a track as music - the first three tracks have special meaning. Track #1 is for "flag grab" the second and third are used as "last minute" tracks. + + + + + + + Outputs text to the console. + + + + + + + + + + Outputs text to the console and heads up display. + + + + + + + + + + + Enables or disables the ability of hudecho to output text to the heads up display. + + + + + + + + Dump all command arguments to STDOUT + + + + + + + + + + Toggles getting descriptive text from CGZ or DMO files in menudirlist. + + + + + + + + Toggles physics interpolation. + + + + + create a menu listing of files from a path and perform an action on them when clicked. + + use this inside menu definitions, almost always as the only command of that menu. + compare the usage inside config/menus.cfg + + + + + + + + will create a list of maps and load them when clicked + + + + + + + + + + Toggles the console. + + + + Triggers a jump. + + default keys: space and right mouse. + + + + + Contacts the masterserver and adds any new servers to the server list. + + The servers are written to the config/servers.cfg file. This menu can be reached through the Multiplayer menu. + + + + + + + + Returns the number of milliseconds since engine start. + + + + + + + + + + seconds since the epoch (00:00:00 UTC on January 1, 1970) + + + + + + + + + a list of values for current time + + format: YYYY mm dd HH MM SS + + + + + + + + + + + + + + + + representation of date + + format: Www Mmm dd hh:mm:ss yyyy + Use timestamp to create your own formatting. + + + + + + + + + + the current time in (H)H:MM:SS format + + + + + + + + + + + + Binds a key to a command. + + + To find out what key names and their default bindings are, look at config/keymap.cfg, + then add bind commands to your autoexec.cfg. + + + + + + + + + + + + + + + + Similar to bind, but is only active while editing, where it overrides the regular bind for the specified key. + + + + + + + + + + + + Similar to bind, but is only active while spectating, where it overrides the regular bind for the specified key. + + + + + + + + + + + + Binds a key to many different actions depending on the current game state. + + + + + + + + + + + + + + + This command requires 6 arguments, no less. Use an empty set of brackets [] for any of the arguments that you want to "do nothing". + + + + + + + + + Executes a command on the release of a key/button. + + This command must be placed in an action in a bind or in an alias in a bind. + + + + + + + + + + + + + + + + + Quits the game without asking. + + + + Moves the player forward. + + default keys: W and Up Arrow + + + + + Moves the player backward. + + default keys: S and Down Arrow + + + + + Moves the player left. + + default keys: A and Left Arrow + + + + + Moves the player right. + + default keys: D and Right Arrow + + + + + Fires the current weapon. + + default: left mouse button + + + + + Sets mouse to "flight sim" mode. + + + + + + + Takes a screenshot. + + + Screenshots are saved to "screenshots/[date]_[time]_[map]_[mode].[ext]", + where [ext] is the image type selected. + + + + + + + + + + + + Take a "clean" screenshot with no HUD items. + + Your current HUD configuration is stored into a buffer, and is re-enabled afterwards. + + + + + + + + save an image of the entire radar-overview of the map. + + + + Executes all commands in a specified config file. + + + + + + + Executes a config file within /config/ + + + + + + + Sets up the keymap for the specified key. + + You should never have to use this command manually, use "bind" instead. + + + + + + + + + + + + + Sets the mouse sensitivity. + + + + + + + Adds a server to the list of server to query in the server list menu. + + + + + + + + Clears the list of secured maps. + + + + + + + Adds a map to the list of secured maps. + + Secured maps can not be overwritten by the commands sendmap and getmap. + + + + + + + + + + + + + Returns a list of values describing the current engine (rendering) state. + + It will only be filled after the first frame was drawn. + The list is: FPS LOD WQD WVT EVT + FPS = Frames Per Second + LOD = Level Of Detail + WQD = World QuaD Count + WVT = World VerTex Count + EVT = Extra VerTex Count (HUD & menu) + + + + + + + + + + Enables output of processed network packets. + + This variable only has an effect if the client binary is compiled in debug mode. + + + + + + Determines if the current played map should be automatically downloaded if it is not available locally. + + + + + Automatically get new map revisions from the server. + + + + + Sets the correction value for clockfix. + + Engine source-code snippet (main.cpp): if(clockfix) millis = int(millis*(double(clockerror)/1000000)); + + + + + + + + + Enables correction of the system clock. + + + + + + + + Enable triangle debug. + + Prints details while connecting triangles of 3d models. + + + + + + Limits the FPS (frames per second) of the game. + + + + + Gets the maximum number of supported textures when performing multitexturing. + + + + + Minimal level of detail. + + + + + Toggles use of acronyms instead of full modenames in the serverbrowser. + + + + + Returns the current game mode. + + + + Example output: capture the flag + + + + Example output: CTF + + + + + + + + + + + + + Resets all binds back to their default values. + + + This command executes the file /config/resetbinds.cfg which will bind all keys to the values specified in that + file, thus resetting the binds to their default values. + + + + + + Swaps your player to the enemy team. + + + + Determines if all settings should be reset when the game quits. + + + It is recommended to quit the game immediately after enabling this setting. Note that the reset happens + only once as the value of this variable is reset as well. + + + + + + + + + + Determines the valid distance when extrapolating a players position. + + + + + Determines the speed when extrapolating a players position. + + + + + Determines how fast network throttling accelerates. + + + + + + + + + Determines how fast network throttling decelerates. + + + + + + + + + Determines the interval of re-evaluating network throttling. + + + + + + + + + Swaps vertices of model triangles. + + + + + Gets an integer representing the game version. READ ONLY + + As example, version 1.0 is represented as value 1000. + + + + + Gets an integer representing the game protocol. READ ONLY + + As example, the protocol of version 1.1.0.4 is represented as value 1132. + + + + + Holds the current game mode. READ ONLY + + + + Output: 5 + + + + + + + + + Indicates if a connection to a server exists. + + + + + Sets the maximum value the display will roll on strafing. + + + + + Hold the current number of lines on the console. + + + + Sets the language for which a translated server MOTD will be fetched, if the server has one for this language. + + This is always a two-letter language code as defined in the ISO 639 standard, three-letter codes are currently not allowed. + If lang is not set, or if the server does not have a matching MOTD file, it will fall back to English. + Note: this does not affect the client language, which is derived from the system settings (e.g. on many *nix systems, it may be changed via the "LANG" environment variable). + + + + en, de, fr, ... + + + + + + +
+ + +
+ This section describes gameplay related identifiers. + + + + Returns the name of the last player you aimed at. + + Returns nothing "" if you have not yet aimed at a player. + + + + + If this alias exists it will be run when the game reaches intermission. + + + + + + This will output the full statistics line for all players. + + + + + + + + + + If this alias exists it will be run when the game starts a new map, then it is deleted. + + + + + + This will output the string and override any other actions that might've been defined. + + + + + + This will output the string after any previously defined actions have run. + + + + + + + + + + If this alias exists it will be run every time the game starts a new map. + + + + + + This will output the string and override any other actions that might've been defined. + + + + + + This will output the string after any previously defined actions have run. + + + + + + + + + + If this alias exists it will be run every time a vote is called. + + + + + + + + If this alias exists it will be run every time a vote is changed. + + + + + + + + If this alias exists it will be run every time a vote passes or fails. + + + + + + + + Determines if there is a vote pending or not. + + + + Output: if there is currently a vote pending, returns 1, else returns 0. + + + + + + If it exists, this alias will be executing when any player get killed, receiving a few arguments : + + + + + + + + + + + + + + + If defined, this will be executed each time a flag action occurs. + + + + + + + + If defined, this will be executed each time you pick up an item. + + + + + + + If defined, this will be executed each time you shot a bullet, throw a grenade or use your knife. + + + + + + + + + + + If it's defined, this alias will be executed each time a damage is done. + + + + + + + If defined, this will be executed each time you switch to a different weapon. + + + + + + + If defined, this will be executed each time you reload a weapon. + + + + + + + If defined, this will be executed when you or another player join(s) a server. + + + + + + + If defined, this will be executed when you or another player disconnect(s) from a server. + + + + + + + If defined, this will be executed each time a player spawns. + + + + + + + + If defined, this will be executed when you or another player change(s) his name. + + The alias is executed before the name is effectively changed, so you can still get the previous name of the client from this alias. + + + + + If defined, this will be executed after saved.cfg is loaded. + + + + If defined, this will be executed every time you press a key. + + + + + + + + + + + + + + + + If defined, this will be executed every time you release a key. + + + + + + + + + + + + + + + + + Execute a command or block of code on quit. + + + + + + + + Deletes a list of aliases (from saved.cfg) on quit. + + + + Deletes aliases a, b, and c from existance and saved.cfg upon quit. + + + + + + + + + + change name of directory used for weapon model (hudgun) number N + + + + + + This will make the subgun hudgun model use the data inside packages/models/weapon/my_subgun + + + + These setting should be loaded from config/autoexec.cfg, but they work on-the-fly too. + If the model fails to load you will end up with nothing being displayed; use delalias to get back to default + + + + + + + + + + + change name of directory used for weapon model (viewable/world) number N + + + + + + + + + + change name of directory used for pickup model number N + + + + This will make the health pickup model use the data inside packages/models/pickups/health2 + + + + This will make the ammobox pickup model use the data inside packages/models/pickups/my_ammobox + + + + These setting should be loaded from config/autoexec.cfg, but they work on-the-fly too. + If the model fails to load you will end up with nothing being displayed; use delalias to get back to default + + + + + + + + + + + + change name of directory used for bounce model number N + + + + This will make the gib 1 model use the data inside packages/models/misc/my_gib1 + + + + This will make the gib 2 model use the data inside packages/models/misc/my_gib2 + + + + This will make the gib 3 model use the data inside packages/models/misc/my_gib3 + + + + This will make the grenade static model use the data inside packages/models/weapons/grenade2/static + + + + These setting should be loaded from config/autoexec.cfg, but they work on-the-fly too. + If the model fails to load you will end up with nothing being displayed; use delalias to get back to default + + + + + + + + + + + Returns the score statistics for the player with the given clientnumber. + + + + + + + + + Output: 0 5 3 43 1 1 unarmed + The output is a list of FLAGS, FRAGS, DEATHS, POINTS, TEAM, TEAMKILLS, and NAME. + + + + + + + + + + Returns the shot statistics for the player with the given clientnumber. + + + + + + + + + Output: 0 0 0 0 0 0 0 0 0 0 1 240 15 312 0 0 3 112 0 0 + The output is a list of tuples for all weapons, SHOTS-FIRED and DAMAGE-DEALT for each. + + + + The list is: + knife/atk dmg pistol/atk dmg carbine/atk dmg shotgun/atk dmg smg/atk dmg sniper/atk dmg assault/atk dmg cpistol/atk dmg nade/atk dmg akimbo/atk dmg + + + + + + + + + + shifts your selected weapon by a given delta. By default the mouse-wheel shifts one up or down according to your scroll direction. + + + + + + + + + + + will display a scope for the sniper-rifle. used in the zoom-script (config/scripts.cfg [l. 92ff "alias zoom"] + + + + + + + cycles through all available spectator modes. Follow-1stPerson, Follow-3rdPerson, Follow-3rdPerson-transparent and Fly. + + + + + + + get the IP address of a given clientnumber - only admins get shown the last octet + + + + + + + agree or disagree to the currently running vote + + + + + + + + + + + + + + + + + + + + + Enables or disables voicecom audio. + + + + + + + + + + returns the mapname + + + + outputs the mapsize. + + + + Loads a crosshair for argument T. + + + + Loads the red_dot.png crosshair for all weapons. + + + + Same as above. Loads the red_dot.png crosshair for all weapons. + + + + Loads the red_dot.png crosshair for your knife only. + + + + Loads the red_dot.png crosshair for your assault rifle only. + + + + Loads the red_dot.png crosshair for your sniper rifle scope only. + + + + + + + + + + Enables or disables the processing of the bots artificial intelligence + + + + + + + Will make the bots stand still. + + + + Will enable the bots to move and shoot. + + + + + + Kicks all bots out of the current game. + + + + + + + Kicks the bot with the given name out of the current game. + + + + + + + Will make the bot named "Robbie" dissapear from the current game. + + + + + + + Get the game demos listing from the server we are currently connected. + + + + + + + + + + + + + + + + + Drops the enemy flag. + + + + Draws a shooting line in the direction of all available bots. + + + + + This is a debugging command and only works for single player modes. + + + + + + add a bot for a given team with a given skill calling him a given name. + + + + + + + + This command only works for single player modes. + + + + + Will add a bot named Robbie with a medium skill level to the RVSF team. + + + + + + will add a given count of bots for the given team with the given skill and select random names for them. + + + + + + + + This command only works for single player modes. + The name of the bots will be selected randomly. + + + + + Will add 2 bots with a bad skill level to the CLA team. + + + + + + changes the skill level for the given bot. + + + + + + + + Changes the previous bot skill level of the bot named Robbie to a 'best' skill level. + + + + + + changes the skill level for all bots. + + + + + + + Changes the previous bot skill level for all bots to a 'worse' skill level. + + + + + + Enables or disables the ability of the bots to fire their weapons + + + + + + + Bots won't shoot. + + + + + + + + + + + + + + + + + + Returns 1 if the local player is alive. + + + + Output: 1 + + + + + + Returns the current map being played. + + If you pass it a non-zero value, the result will be path-less. + + + + + output: playing maps/ac_complex vote for: ac_complex + + + + + + + + + + + + + + Returns the mode number for the current game. + + + + + + + + + Returns the mode number for a specified mode acronym. + + + + Output: 5 + + + + Output: 21 + + + + + + + Returns -1 if not found. + + + + + Current map revision number. + + + + + Checks the current game mode for certain attributes. + + + + + Possible attributes are: team, arena, flag and bot. + + + + + Returns the current game mode number. + + + + Returns the server's current mastermode state. + + + + Returns the server's current autoteam state. + + + + Returns the weapon-index the local player currently has selected as primary. + + This is not the same as curweapon - which could be a grenade or the knife. + + + + + + + + + + + + + + Determines if the local player (you) are currently carrying a primary weapon. + + + + Everytime you press the left mouse button, assuming you are carrying your primary weapon, the above echo will be executed. + + + + + + + + + Returns 0 (false) or 1 (true). + + + + + Returns 1 if the local player has admin privileges, 0 otherwise. + + + + + + + + Returns information on the current server - if you're connected to one. + + If I is 0 (omitted or any other value than the ones below) you will get a string with 'IP PORT' + If I is 1,2 or 3 you will get the IP, HostName or port respectively. + If I is 4 you get a string representing the current state of the peer - usually this should be 'connected'. + FIXME:TODO: 5=SERVERNAME, 6,7=description, 8=serverbrowser-line -- these are to be handled with caution, sometimes empty, #8 will be outdated w/o serverbrowser open. + + + + + + + + Output: I am connected to ctf-only.assault-servers.net + + + + + This will either remember or retrieve the last server you pressed the PrintScreen-key on. + + + + + + Returns an integer indicating what team a client is currently on. + + + + + Returns 0 for CLA, 1 for RVSF. + Returns 2 for CLA-spectator, 3 for RVSF-spectator. + Returns 4 for spectator. + By default this command returns what team *you* (player1) are currently on. + + + + + + + + + + Returns the weapon-index the local player is currently holding. + + + + + + + + + + + + + Returns the weapon-index the local player was previously holding. + + + + + + + + + + + + + + + + + + + + + + + + Loads up a map in the gamemode set previously by the 'mode' command. + + + If connected to a multiplayer server, it votes to load the map (others will have to type "map M" as well + to agree with loading this map). To vote for a map with a specific mode, set the mode before you issue the map command. + + + A map given as "blah" refers to "packages/maps/blah.cgz", "mypackage/blah" refers to "packages/mypackage/blah.cgz". + At every map load, "config/default_map_settings.cfg" is loaded which sets up all texture definitions, etc. Everything + defined there can be overridden per package or per map by creating a "mapname.cfg" which + contains whatever you want to do differently from the default. + + + When the map finishes it will load the next map when one is defined, otherwise it reloads the current map. + You can define what map follows a particular map by making an alias like (in the map script): alias nextmap_blah1 blah2 + (loads "blah2" after "blah1"). + + + + + + + + + Sets the next gamemode then calls a vote for a map. + + + + + + + + Returns the primary weapon on next respawn. + + + + + + + Reloads the weapon. + + + + + + + Determines the skin of the current player. + + See the player model folder for the according skin-id. + + + + + + + + Choose skin when playing for team CLA. + + + + + + + Choose skin when playing for team RVSF. + + + + + + + Sets the nick name for the local player. + + + + + + + Outputs text to other players. + + + If the text begins with a percent character (%), + only team mates will receive the message. + + + + + + + + + Sends a private message to a specified client. + + + + + + + + + + + + Easily respond the the last client who sent you a private message. + + + + + + + Ignore a player. + + + + + You won't see any further game chat or hear any more voice com messages from that player. + + + + + Print a list of all players that you are currently ignoring. + + + + Clear list of ignored players. + + + + + Omit the client number to clear the whole list. + + + + + Ignores all clients currently on the server. (only works in multiplayer) + + + + + + + + + Unignores all clients currently on the server. (only works in multiplayer) + + + + + + + + + Ignores all clients on the specified team. + + + + + + + + + + + + Ignores all clients on the enemy team. + + + + + + + + + Mute a player + + + + + You won't hear any further voice com messages from that player. + + + + + Clear list of muted players. + + + + + Omit the client number to clear the whole list. + + + + + Print a list of all players that you have muted. + + + + Action chat message. + + + + + + + Puts a prompt on screen. + + + This puts a prompt on screen that you can type into, + and will capture all keystrokes until you press return (or ESC to cancel). + If what you typed started with a "/", the rest of it will be executed as a command, + otherwise its something you "say" to all players. + + + + + + + + + + + + + + + + + + + + + Makes an input perform a certain command. + + + + + + + + + + + + + + + + + + + + + + The completion will work on the first word of your console input. + + + + + If you enter "/demo " and press TAB you will cycle through all available demos. + + + + helper alias for quickly adding complete-definitions for all gamemodes - see config/script.cfg (below "Auto-Completions") + + + + + + + + + + + + + + + + + + + adds a command to complete nicknames on + + your own nick will be ignored + + + + + with this you can enter "/nickgreet " and cycle via TAB to the nickname you want to greet. + + + + + + + + + Connects to a server. + + + If the server name is omitted, the client will try to connect to an available server in the LAN. + If the port is omitted or set to 0, the default port will be used. + + + + + + + + + + + + + + + + + + + + + Connects to a server and tries to claim admin state. + + + This command will connect to a server just like the command 'connect' and + try to claim admin state. If the specified password is correct, the admin + will be able to connect even if he is locked out by ban, private master mode or taken client slots. + If successfully connected, bans assigned to the admin's host will be removed automatically. If all + client slots are taken a random client will be kicked to let the admin in. + + + If the server name ist omitted, the client will try to connect to an available server in the LAN. + If the port is omitted or set to 0, the default port will be used. + + + + + + connect as admin on port 777 of localhost + + + + will try to connect to a LAN server on the default port as admin with the given password of "myAdminPassword". + + + + + + + + + + + + + + + + + Leaves a server. + + + + + + + + + Disconnects then reconnects you to the current server. + + + + + + + + + + + + Sets the team for the local player. + + + + + + + + + + + + Move from active team to spectator during match. + + + + Connect to a modded server. + + + + + + + + The modified server needs to use the original client-server protocol. The protocol version number + will be the negated value of an unmodded server. + + + + + + Connect to a modded server and claim admin. + + + + + + + + The modified server needs to use the original client-server protocol. The protocol version number + will be the negated value of an unmodded server. + + + + + + Connect to a modified LAN server. + + + The modified server needs to use the original client-server protocol. The protocol version number + will be the negated value of an unmodded server. + + + + + + Shows or hides the scores. + + + + + + + Changes the weapon. + + + + + + + Switches to your current primary weapon. (must be binded to a key) + + + + + + + + + Switches to your secondary weapon. (must be binded to a key) + + + + + + + + + Switches to your knife. (must be binded to a key) + + + + + + + + + Switches to grenades. (if available) (must be binded to a key) + + + + + + + + + Toggles between your primary weapon and your secondary weapon. (must be binded to a key) + + + + + + + + Toggles between your primary weapon and your knife. (must be binded to a key) + + + + + + + + Toggles between your primary weapon and grenades. (must be binded to a key) + + + + + + + + Returns contents of current magazine. + + A knife will always return 1. + Weapons that aren't available will return -1. + + + + + + + + + + + + + + + + Returns contents of magazine reserve. + + + + + + + + + + + + + + + Determines if you have any ammunition available for the specified weapon. (uses magcontent and magreserve) + + + + + + + + + + + Retrieves the last map that was sent to the server using 'sendmap'. + + If the command is passed an argument, different than the map being played, the game tries to download the specified map from an available packages source server. + + + + + + + + + + + + + + + Downloads and loads the specified map from an available packages source server. + + + + + + + + + + + Adds a packages source server where to download custom content from. + + Only add servers you trust. + The list of servers is saved into config/pcksources.cfg on game quit. + + + + + addpckserver http://packages.ac-akimbo.net + + + + + + + + + + + + + + + + Resets the list of packages source servers where to download custom content from. + + The list of servers is saved into config/pcksources.cfg on game quit. + + + + + + + + + + + Sorts the available packages source servers by ascendant ping. The fastest to reach is then used by default. + + + + + + + + + + Determines if the game should try to download missing packages such as textures or mapmodels on the fly. + + + + + Sets the desired spectating mode. + + + + + + + + + + Toggles spectator mode. + + + + Stops any demo recording or playback. + + + + Returns 1 when the current game is being played from a demo, else 0. + + + + + + + + + + Kills your player. You will lose 1 frag point and receive 1 death point when using this command. + + + + Plays a recorded demo. + + Playback is interpolated for the player whose perspective you view. + + + + + + + + + + + + Go to a predefined number of minutes before the end of the game while watching a demo. + + + + + + + + + + + Rewind the current demo to S seconds ago. + + Note: you can use a negative value to forward. + + + + + + + + + + + + Determines if bot waypoints should be selected/placed using the crosshair or by the nearest location to your player. + + + + + Returns the remaining minutes of the currently played game. READ ONLY + + + + + + + + + + Returns the time (in milliseconds) of the currently played game. READ ONLY + + + $lastgametimeupdate 0) [ + gmr = (- $gametimemaximum (+ $gametimecurrent (- (millis) $lastgametimeupdate))) + gsr = (div $gmr 1000) + gts = (mod $gsr 60) + if (< $gts 10) [ gts = (concatword 0 $gts) ] [ ] + gtm = (div $gsr 60) + if (< $gtm 10) [ gtm = (concatword 0 $gtm) ] [ ] + echo (concatword $gtm : $gts) remaining + ] [ + echo gametime not updated yet + ] + ]]]> + + + + + + + + + + + + Returns the maximum time (in milliseconds) of the currently played game. READ ONLY + + + + + + + + + + Returns the time (in milliseconds) when the last map was loaded. + + + + + + + + + + Returns the last time (in milliseconds) the gametime was updated. READ ONLY + + + + + + + + + + Determines if the game should be paused. + + + + + Indicates if the weapons should be reloaded automatically. + + + + + Determines the FOV when scoping. + + + + + + + + Determines if the mini-map should be shown on screen. + + + + + change wether to have a see-through map overview (0), or render it on a black backdrop (1) or a combination of both (2) + + + + + Transparency of the black map backdrop (in percent) rendered if showmapbackdrop is set to 2. + + + + + + + + Determines if scores should be shown on death. + + + + + Indicates if the footsteps sound should be played + + + + + Indicates if the footsteps sound for the local player should be played + + + + + Maximum time span between player animation and the playback of the footstep sound + + + If the footstep sound would be played immediately when entering the radius of the other player, it would + not be synchronous to the player model animation. + + + + + + + Plays a sound upon every successful hit if enabled. + + + + + + + Sets the gamespeed in percent. + + This does not work in multiplayer. For entertainment purposes only :) + + + + + + + + + Smoothly changes your gamespeed to the specified value. + + + + + + + + Every 30 milliseconds your gamespeed is changed by 1 until it reaches its goal of gamespeed 1000. + + + + + + + + + + Enables or disables automatic switching to the akimbo upon pickup. + + + + + + + + Sets the behavior of weapon switching upon akimbo expiration. + + + + + + + + + + + + If no ammunition is detected for the target weapon, it will fallback to the previous weapon until it finds a weapon with ammunition to use. + + + + + Prepares a round of bot survival mode on the specified map. + + All official maps are compatible with survival, if you want to play survival on a custom map, prior edits/additions to the script are necessary, such as adding a zone for that specific map. + + + + + + + + + Draws a zone marker with the specified color and dimensions on the minimap/radar. This is primarily intended for the survival mode. + + You can draw a few zones at a time. They will be reset (i.e. removed) once a new game starts. + Note that the coordinates must be specified as integers, not as floating-point values. + + + + + + + + + + + + + + + + Reset all drawn zones. + + + + + + + + If this alias exists, it will be automatically executed on the last minute remaining mark. + + + + Determines if the local player is standing in water or submerged. + + + + Example output: in water + + + + Example output: not submerged + + + + + + + + + Determines if the client number given is a valid client (player). + + + + Example output: 1 + + + + Example output: 0 + + + + + + + + +
+ + +
+ + + + Binds a list of keys to be used to create new (multiple) selections in editmode. + + + + Makes all 4 keys create new (multiple) selections in editmode. + + + + LCTRL is default. + + + + + Will toggle the focus of the mouse in game. Normally you can use your mouse to look around, when you type this command your mouse cursor is visible and can be used as normally. This is only useful when you run cube windowed. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + makes waypoints visible and either turns on or off the waypoint information display. + + + + + + + + + + + + + + + takes the current player yaw for the current waypoint + + + + teletransports the bot with the lowest connection number to you current position. + + + + + This is a debugging command and only works for single player modes. + + + + + When used you will see what the bot sees. Type it again (with or without name) to return to the game(you will respawn). + + + + + + + + + + + + + + + + + Adds a bot waypoint at the current position. + + + + + + + Automatically place waypoints. + + + + + + + + + Deletes the selected waypoint. + + + + During map editing, drop all mapsounds so they can be re-added. + + + + + + + + + + + In map edit mode you can select bits of the map by clicking or dragging your crosshair on the floor + or ceiling (using the "attack" identifier, normally MOUSE1), then use the identifiers below to + modify the selection. While in edit mode, normal physics and collision don't apply (clips), and key repeat is ON. + Note that if you fly outside the map, cube still renders the world as if you were standing on the floor + directly below the camera. + + Hotkey E + + + + + + + + + + + + Default keys are the six keys above the cursor keys, which each 2 of them cycle one type (and numpad 7/4 for upper). + + + The way this works is slightly strange at first, but allows for very fast texture assignment. All textures are in 3 individual lists for each type (both wall kinds treated the same), and each time a texture is used, it is moved to the top of the list. So after a bit of editing, all your most frequently used textures will come first when pressing these keys, and the most recently used texture is set immediately when you press the forward key for the type. These lists are saved with the map. make a selection (including wall bits) and press these keys to get a feel for what they do. + + + + + + + + + + + + + + + + + + + + Default keys are [ and ] for floor level, and o/p for ceiling. + + + + + + + + + makes the current selection all solid (i.e. wall) or all non-solid. + + + This operation retains floor/ceiling heights/textures while swapping between the two. Default keys f and g respectively. + + + + + + + + + Levels the floor/ceiling of the selection. + + default keys , and . + + + + + + + + Marks the current selection as a heightfield. + + + marks the current selection as a heightfield, with T being floor or ceiling, as above. + A surface marked as heightfield will use the vdelta values (see below) of its 4 corners to create a sloped surface. + To mark a heightfield as normal again (ignoring vdelta values, set or not) use "solid 0". + Default keys are h (floor) and i (ceiling). + + + Heightfields should be made the exact size that is needed, not more not less. + The most important reason for this is that cube automatically generates "caps" (side-faces for heightfields) + only on the borders of the heightfield. This also means if you have 2 independent heightfields accidentally + touch each other, you will not get correct caps. Also, a heightfield is slightly slower to render than a + non-heightfield floor or ceiling. Last but not least, a heightfield should have all the same baseheight + (i.e. the height determined by a normal editheight operation) to get correct results. + + + + + + + + + + + + changes the vdelta value of the current selection + + + Note that unlike all other editing functions, this function doesn't affect a cube, but its top-left vertex + (market by the dot in the editing cursor). So to edit a N * M heightfield, you will likely have to edit + the vdelta of (N+1) * (M+1) cubes, i.e. you have to select 1 row and 1 column more in the opposite direction + of the red dot to affect all the vertices of a heightfield of a given size (try it, it makes sense :) + + + A floor delta offsets vertices to beneath the level set by editheight (and a ceil delta to above). Delta offsets have a precision of a quarter of a unit, however you should use non-unitsize vertices only to touch other such vertices. Default keys are 8 and 9 to decrease/increase the vdelta. + + + + + + + + + Makes the current selection into a "corner". + + + Currently there is only one type of corner (a 45 degree one), only works on a single unit (cube) at a time. + It can be positioned either next to 2 solid walls or + in the middle of 2 higher floorlevels and 2 lower ones forming a diagonal (and similar with ceiling). + + + In both cases, the corner will orient itself automatically depending on its neighbours, behaviour with other + configurations than the 2 above is unspecified. Since the latter configuration generates possibly 2 floor and + 2 ceiling levels, up to 4 textures are used: for example for the 2 floors the higher one will of the cube + itself, and the lower one of a neighbouring low cube. You can make bigger corners at once by + issuing "corner" on grid aligned 2x2/4x4/8x8 selections, with equal size solid blocks next to them. + + + + + + + + + Multi-level undo of any of the changes caused by editing operations + + hotkey u + + + + + Sets the number of megabytes used for the undo buffer. + + + undo's work for any size areas, so the amount of undo steps per megabyte is more for small areas + than for big ones (a megabyte fits 280 undo steps on a 16x16 area, but only 4 steps on a 128x128 area). + + + + + + + + + Copies the current selection into a buffer. + + hotkey c + + + + + Copies the current closest entity into a buffer. + + Only works while in edit mode. + + + + + + + + Pastes a previously copied selection. + + + To paste a selection back requires a same size selection at the destination location. If it is not the same + size the selection will be resized automatically prior to the paste operation (with the red dot as anchor), + which is easier for large selections. + + hotkey v + + + + + Returns the number of solid walls contained into the current selection. + + + + + + + Output: The selection contains 3 solid wall(s) + + + + + + Pastes a previously copied entity. + + Only works while in edit mode. + + + + + + + + Repeats the last texture edit throughout the map. + + + The way it works is intuitive: simply edit any texture anywhere, then using "replace" will replace + all textures throughout the map in the same way (taking into account whether it was a floor/wall/ceil/upper too). + If the there was more than one "old" texture in your selection, the one nearest to the red dot is used. + This operation can't be undone. + + + + + + Adds a new entity + + + (x,y) is determined by the current selection (the red dot corner) and z by the camera height, of said type. + Type is a string giving the type of entity, such as "light", and may optionally take values (depending on the entity). + + + + + + + + + + + + + Adds a new light entity + + if only argument R is specified, it is interpreted as brightness for white light. + + + + + + + + + + + Adds a new spawn spot. + + The yaw is taken from the current camera yaw. + + + + + Adds a new ammo box item. + + + + Adds a pistol magazine item. + + + + Adds a new grenades item. + + + + Adds a new health item. + + + + Adds a new armour item. + + + + Adds a new helmet item. + + + + Adds a new akimbo item. + + + + Adds a map model to the map (i.e. a rendered md2/md3 model which you collide against but has no behaviour or movement) + + + The mapmodel identifier is the desired map model which is defined by the 'mapmodel' command. The order in which + the mapmodel is placed in the map config file defines the mapmodel identifier. + The map texture refers to a texture which is defined by the 'texture' command, if omitted the + models default skin will be used. The 'mapmodel' and 'texture' commands are placed in the map config normally. + Mapmodels are more expensive than normal map geometry, so do not use insane amounts of them to replace normal geometry. + + + + + + + + + + + Adds a CTF flag entity. + + Note that outside of edit mode, this entity is only rendered as flag if the current game mode is CTF. + + + + + + + + Adds a ladder entity. + + + Note that this entity is used for physics only, to create a visual ladder you + will need to add a mapmodel entity too. + + + + + + + + + + + + Adds a sound entity. + + + Will play map-specific sound so long as the player is within the radius. + However, only up to the max uses allowed for N (specified in the mapsound command) will play, even if the player is within the radius of more N sounds than the max. + By default (size 0), the sound is a point source. Its volume is maximal at the entity's location, and tapers off to 0 at the radius. If size is specified, + the volume is maximal within the specified size, and only starts tapering once outside this distance. Radius is always defined as distance from the entity's location, + so a size greater than or equal to the radius will just make a sound that is always max volume within the radius, and off outside. + + + A sound entity can be either ambient or non-ambient. Ambient sounds have no specific direction, they are 'just there'. Non-ambient sounds however appear to come from a specific direction (stereo panning). + If S is set to 0, the sound is a single point and will therefore be non-ambient. However if S is greater than 0, the sound will be ambient as it covers a specified area instead of being a single point. + + + + + + + + + + + + + + + Adds a clip entity. + + Defines a clipping box against which the player will collide. + + Use this clip type to clip visible obstacles like fences or the gas tank. If you only want to prevent a player from entering an area, use plclip instead. + + + + + + + + + + + + Deletes the entity closest to the player + + hotkey x + + + + + Adds a player clip entity. + + Defines a clipping box against which (only) the player will collide. + + Use this clip type to define no-go areas for players without visible obstacles, for example to prevent players from walking on a wall. + + Nades will not be affected by this clip type. + + + + + + + + + + + Deletes the entity closest to the player + + hotkey x + + + + + Edits the closest entity. + + Overwrites the closest entity with the specified values. + + + + + + + + + + + + Changes property of the closest entity. + + For example 'entproperty 0 2' when executed near a lightsource would increase its radius by 2. + + + + + + + + + Deletes all entities of said type. + + + + + + + Recomputes all there is to recompute about a map, currently only lighting. + + hotkey R + + + + + Saves the current map. + + + savemap makes a versioned backup (mapname_N.BAK) if a map by that name already exists. + If the name argument is omitted, it is saved under the current map name. + + + Where you store a map depends on the complexity of what you are creating: if its a single + map (maybe with its own .cfg) then the "base" package is the best place. If its multiple maps + or a map with new media (textures etc.) its better to store it in its own package (a directory under "packages"), + which makes distributing it less messy. + + + + + + + + + + + + Determines if map backups (.bak) should be created when a map is saved. + + + + + Creates a new map. + + The new map has 2^S cubes. For S, 6 is small, 7 medium, 8 large. + + + + + + + + Enlarges the current map. + + + This command will make the current map 1 power of two bigger. + So a size 6 map (64x64 units) will become a size 7 map (128x128), + with the old map in the middle (from 32-96) and the new areas solid. + + + + + + + + + Reduces the world size by 1. + + + This command will make the current map 1 power of two smaller. + So a size 7 map (128x128) will become a 6 size map (64x64 units), by removing 32 cubes from each side. + The area to be removed needs to be empty (= all solid). + + + + + + Sets the map message, which will be displayed when the map loads. + + You will need to use quote marks around the message, otherwise it save the message correctly. + For example: /mapmsg "Map By Author" + + + + + + + + Returns the map message of the current map. + + + + Print some map entity statistics to the console. + + + + Restrict 'closest entity' display to one entity type. + + + + + + + Choose another 'closest ent'. + + + Use this, when two entities are placed in exactly the same location. + + + + + + Visit next player spawn entity. + + + + + + + Converts the nearest entity (if its a clip or plclip) to its opposite type. + + + + Assuming the nearest entity is a clip, it will be converted to a plclip. + + + + Assuming the nearest entity is a plclip, it will be converted to a clip. + + + + + + Move the whole map (including all entities) in the specified direction. + + + + + + + + + Flip the selected part of the map at an axis. + + + + + + + Rotate the selected part of the map in 90 degree steps. + + + + + + To rotate clockwise, use a positive number of steps. Note, that only quadratic selections can be rotated by 90 degrees. + + + + + + Contains the main axis of the player orientation. + + + + + Select the increment of the map revision number for the next 'savemap'. + + + + + Show mapmodel clipping during edit mode. + + + + + Show editing cursor grid. + + + + + Show clips/plclips/mapmodel clips in edit mode. + + + + + Enables or disables a special set of default textures while editing. + + The textures in "packages/textures/map_editor" are used. + + + + + Sets the global water level for the map. + + + Every cube that has a lower floor than the water level will be rendered with a nice wavy + water alpha texture. Water physics will be applied to any entity located below it. + + + Performance notes: water is rendered for a whole square encapsulating all visible water areas + in the map (try flying above the map in edit mode to see how). So the most efficient water is + a single body of water, or multiple water areas that are mostly not visible from each other. + Players can influence how accurate the water is rendered using the "watersubdiv" command (map config). + + + + + + + + + Controls the ambient lighting of the map, i.e. how bright areas not affected by any light entities will appear. + This should be entered in hexadecimal notation, as 0xRRGGBB. If the green and blue are both zero, the input will be interpreted as a grayscale value. + + + + + Sets all light values to fullbright. + + Will be reset when you issue a 'recalc'. Only works in edit mode. + + + + + + + + Toggles between showing what parts of the scenery are rendered. + + + Shows what parts of the scenery are rendered using what size cubes, and outputs some statistics about it. + This can give map editors hints as to what architecture to align, textures to change, etc. + + + + + + Turns occlusion culling on and off. + + + The reason one may want to turn it off is to get an overview of the map from above, + without having all occluded bits stripped out. + + + + + + Makes a slope out of the current selection. + + + The selection must be a heightfield before this command can be used. + The steps specify the slope with the red vertex as left-top, + i.e. "slope 1 2" will make a slope that increases just 1 step from left to right, + and is slightly steeper from top to bottom. "slope -6 0" decreases steeply from left to right, + and does not slope at all from top to bottom. Note that like the vdelta command, + an increasing vdelta goes further away from the player, regardless of floor or ceiling. + + + + + + + + + + Makes an arch out of the current selection. + + + The selection must be a heightfield before this command can be used. + Will make the arch in the long direction, i.e when you have 6x2 cubes selected, the arch will span 7 vertices. + Optionally, sidedelta specifies the delta to add to the outer rows of vertices in the other direction, + i.e. give the impression of an arch that bends 2 ways (try "arch 2" on an selection of at least 2 thick to see the effect). + Not all arch sizes are necessarily available, see config/prefabs.cfg. + + + + + + + + + Defines a vertex delta for a specific arch span prefab, used by the 'arch' command. + + See config/prefabs.cfg for an example on usage. + + + + + + + + + + Generates a perlin noise landscape in the current selection. + + + Keep the seed the same to create multiple perlin areas which fit with each other, + or use different numbers if to create alternative random generations. + + + + + + + + + + + Resets all current selections and selects the given area, as if dragged with the mouse. + + + This command is similar to addselection although "select" resets all selections. + + + + + + + + + + + + + + + + + + + + Select the given area, as if dragged with the mouse holding CTRL. + + + This command is useful for making complex geometry-generating scripts. + It adds a selection to the current list of selections. + + The dimensions of the current selections can be accessed by the commands selsx, selsy, selsxs and selsys. + These commands return the list of coordinates corresponding to each selection. + + + Coordinates are as follows: after a "newmap 6" the top-left corner (the one where the red dot points) are (8,8), + the opposite corner is (56,56) (or (120,120) on a "newmap 7" etc.). + + + + + + + + + + + + + + + + + + + + Resets all current selections. + + + + Increases the size of the current selection by N cubes on all sides. + + + + + Instead of manually executing this command, you can bind "domodifier 11" to a key. While holding this key you can expand/shrink the current selection with the mouse wheel. + + + + + + + + Decreases the size of the current selection by N cubes on all sides. + + + + + Instead of manually executing this command, you can bind "domodifier 11" to a key. While holding this key you can expand/shrink the current selection with the mouse wheel. + + + + + + + + Return a list containg the x-coordinate of each selection + + + + Return a list containg the x-span of each selection + + + + Return a list containg the y-coordinate of each selection + + + + Return a list containg the y-span of each selection + + + + Registers a sound. + + + This command returns the sound number, which is assigned from 0 onwards, + and which can be used with "sound" command. If the sound was already registered, + its existing index is returned. registersound does not actually load the sound, this is done on first play. + + See for example config/sounds.cfg. + + + + + + + + + + + Scales all lights in the map. + + This command is useful if a map is too dark or bright but you want to keep the light entities where they are. + + + + + + + + + A variable indicating if the game is in editmode. + + + + + A variable indicating if the player looks at the floor or at the ceiling. + + + + + Used to finetune the "overbright lighting" rendering feature when enabled. + + After changing this value, a "recalc" is needed to see the differences. + + + + + + + + + Enables or disables the old editing binds. + + + + disables the old editing binds + + + + enables the old editing binds + + + + If disabled, an updated editing binds system is used, see the comments in "/config/resetbinds.cfg" for more info. + + + + + If this alias exists, it will be automatically executed when you start a new map. + + + + Determines by how much to multiply the fly speeds by. + + + + + Enables or disables using triangles to render the editing grid/current selection instead of squares. + + + + +
+ + +
+ This section describes identifiers related to the menu gui. + + + + Specifies commands to be executed when a menu opens. + + + + + This command should be placed after newmenu. + + + + + + + + Creates a new menu. + + + + + + All menu commands placed after newmenu (i.e. menuitem, menuitemcheckbox, etc) are added + into the menu until another "newmenu" command is specified. + + + + + + + + + Creates a new menuitem. + + + Upon activating the menuitem, the associated command will be executed. + (See config/menus.cfg for examples). If the command argument is omitted, + then it will be set to the same value as the description. If -1 is specified + instead of the command to execute, then no command is executed when activating the item. + If the rollover option is used, the menuitem will execute that command when selecting (but not activating) + the menuitem. + + (Note: To activate the menu item, select it, and either: Click, press SPACE or press ENTER/Return). + + + + + + + + + + + + + Defines the initial selection for a menu. + + + + + + + Creates a new menuitem with variable content. + + + Like 'menuitem', but the menuitem description will be the result of an evaluation, everytime the menu gets displayed. + + + + + + + + + + + + + + + Selects a line in a menu. + + + + + + + + Defines the background color for the menu selection bar. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Displays the specified menu. + + + The menu allows the user to pick an item with the cursor keys. + Upon pressing return, the associated action will be executed. + Pressing ESC will cancel the menu. + + + + + + + + + + + + + + Closes the specified menu if it is open. + + If it is open multiple times in the stack only the topmost instance will be closed! + + + + + + + + + + + + + Deletes the entire contents (all menu items) of the given menu. + + + + + + + + + + + + Specifies a model to render while displaying the last added menu. + + + + + + + + + + Changes the menu model of a specified menu. + + + + + + + + + + + + + + If wrapslider is set the menuitemslider will toggle to the min/max value if at end of the range. + + + + +
+ + +
+ This section describes the identifiers to configure the head-up display (HUD). + + + Sets the display mode for the HUD clock. + + The clock shows game-time, it is either off (0) or counts backward (1) or forward (2). + + + + + + Recreates the minimap for the current map. + + + + + + + Executes the specified command in the command line history. + + + For example, binding "history 1" to a key allows you to quickly repeat the last + command typed in (useful for placing many identical entities etc.) + + + + + + + + + Allows to browse through the console history by offsetting the console output. + + + + + + + + + + + Sets how many typed console commands to store. + + + This value sets how many command lines to store in memory, everytime a command is entered + it gets store so it can be recalled using the "/" key along with the arrow keys to scroll back and forth through the list. + + + + + + + Sets the resolution for the minimap. + + + + + + + + Turns on/off the radar compass + + + + + Turns on/off the damage indicator + + + + + Hide big images in menus. + + + + + Shows ammo statistics like version 1.0 + + + + + Choose whether the players hand carrying the weapon appears as right or left handed. + + + + + Sets how many seconds before the console text rolls (disappears) up the screen. + + + + + Sets the total number of text lines from the console to store as history. + + + + + Sets how many lines of text the console displays. + + + + + + + + + Sets the number of text lines on an alternate F11 history display. + + + + + + + + + Sets the number of text lines on the F11 history display. + + + + + + + + + Time in milliseconds before the abovehead icon dissapears. + + + + + Turns on or off the display of console text. + + + + + Turns on or off the display of equipement icons. + + + + + Turns on or off the display of messages at the bottom of the screen. + + + + + Shows extra gameplay messages on certain events if connected to a server. + + + + + + + + + + + + + + + + Turns on or off the display of spectator staus. + + + + + Turns on or off the display of flag icons. + + + + + Turns on or off the display of local player team icons. + + + + + Turns on or off the display of the on-screen radar. + + + + + Turns on or off the display of vote icons. + + + + + Turns on or off the display of the current selected gun. + + + + + Turns on/off the display of the hudgun while spectating a player in first-person view. Works in demo mode as well. + + + + + Turns on/off display of FPS/rendering statistics on the HUD. + + + + + + + + + + . + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Turns on/off display of team warning crosshair. + + + + + Set the level of transparency of the damage indicator, 0 = is fully transparent, 100 = totaly solid. + + + + + Sets the separation of the arrows in the damage indicator. + + + + + Sets the size of the damage indicator. + + + + + Sets how long the damage indicator stays on screen. + + + + + Sets the size of your crosshair. + + + The crosshair is turned off entirely if the size is set to 0. + + + + + + + Turns on or off crosshair effects. + + + When on, the crosshair will go grey when the weapon is reloading, orange when health is 50 or red when is 25. + + + + + + + + + + + Sets the icon size of the players shown in the radar and the minimap. + + + + + colour of CN column in scoreboard + + + + + + + + + + + + + + + + + Show the client number column on the scoreboard first? + + + + + change at what height you are floating in the radar-view + + + + + enables or disables showing the player name on the HUD when in your crosshair. + + + + + Enables or disables showing the player's horizontal speed. + + + + + Stores your current HUD configuration in a buffer and disables it entirely. + + + + + + + + Restores your HUD configuration after using disablehud. + + + + + + + + enables or disables the showing of game mode descriptions on the console after map starts. + + + + + Sets the order priority for the column flags on the scoreboard. + + + + + Sets the order priority for the column frags on the scoreboard. + + + + + Sets the order priority for the column deaths or disables it on the scoreboard. + + + + + Sets the order priority for the column ratio or disables it on the scoreboard. + + + + + Sets the order priority for the column score or disables it on the scoreboard. + + + + + Sets the order priority for the column pj/ping or disables it on the scoreboard. + + + + + Sets the order priority for the column cn on the scoreboard. + + + + + Sets the order priority for the column name on the scoreboard. + + + + +
+ + +
+ This section describes identifiers to configure the visuals. + + + Resets the OpenGL rendering settings + + + + Changes the screen resolution + + + + + + + + checks for the searchstring in all loaded extensions + + + + + + + + + + + + (descripton unavailable) + + + + + + + + + + + + + + + + + + + + + + + + + + + + Displays local player's current x,y,z position in map, showstats 1 must be enabled. + + + + + + + + + + + + + + + + + + + + + + + + + Sets the transparency/opacity level of stencil shadows. + + + + + + + + + + + + + + + + + + + + + + + + + Sets the level of brightness to use when using the command "/fullbright 1". + + + + + Sets the field of view (fov) based on the rules of AC v0.93 + + This command is supplied for backward compatibility. + + + + + + + + + Loads a font texture to use as text within AssaultCube. + + + + + + + + + + + + + + + + Specify a region of an image to be used as a font character + + + + + + + + + + + Changes the current font. + + + + + + + Whether a special monospace font should be used to render the text on the scoreboard. + + + + + Sets the field of view (fov). + + + + + Sets the size for the icon shown above a player using comunications voices. + + + + + Sets the amount of time in milliseconds that blood is displayed on the ground. + + + + + Turn on and off the display of blood. + + + + + Enables or disables the gib animation entirely. + + + + + + + + + + + Sets the number of gibs to display when performing a "messy" kill (grenade, knife, sniper headshot). + + Larger values are more spectacular, but can slow down less powerful machines. Reducing gibttl may help in this case. + + + + + + + + + + Sets the time for gibs to live (in milliseconds), after which they will disappear. + + + + + + + + + Sets the velocity at which gibs will fly from a victim. + + + + + + + + + Defines the health level at or below which a heartbeat sound will be played. A value of 0 (which is the default) disables this feature. + + + + + Sets the team display mode. + + + In mode 0 team display is disabled + In mode 1 players will be rendered with a colored vest to make the teams distinguishable. + In mode 2 almost the whole suit of the players will be colored. These display modes are only + applied in team gameodes. + + + + + + + Sets the size/resolution of the dynamic shadow data. + + + + + Sets the display size of the dynamic shadows. + + + + + Sets if dynamic shadows should be saved to disk. + + + + + Sets the alpha value (transparency) for dynamic shadows. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Determines whether dynamic shadows and lights are rendered, provided just incase they slow your fps down too much. + + + With radius you can specify the radius of a dynamic light, + smaller to maybe gain some speed (0 is off entirely), + or bigger to see the effect of dynamic shadows more dramatically + (try shooting it past some pillars that have a dark area on the other side... or use the "gamespeed" variable). + + + + + + + Determines the subdivision of the water surface in maps. + + + Must be a power of 2: 4 is the default, 8 is recommended for people on slow machines, + 2 is nice for fast machines, and 1 is quite OTT. See "waterlevel" (edit reference) + on how to add water to your own levels. + + + + + + + Turns on/off the reflections in the water surface. + + + + + Turns on/off water refractions. + + + + + + + + + + + + + Enables or disables fullscreen. + + Not supported on Windows and Mac. + + + + + + Sets the level of fullscreen antialiasing (FSAA). + + + + + Sets the screen width. + + + + + Sets the screen height. + + + + + Sets the bits per pixel value. + + + + + Sets the bits for the depth buffer. + + + + + Enables or disables vsync. + + + -1 uses the default settings obtained from the system. 0 disables, 1 enables vsync. + + + + + Sets the hardware gamma value. + + May not work if your card/driver doesn't support it. + + + + + + + + + Smoothly changes your gamma to the specified value. + + + + + + + + Every 30 milliseconds your gamma is changed by 1 until it reaches its goal of gamma 300. + + + + + + + + + + Enables or disables the per official map dynamic gamma system. + + + + Output: disables the system + + + + Output: enables the system + + + + + + + + + + Sets the current map's default dynamic gamma. + + + + + Sets your custom gamma values for the per official map dynamic gamma system. If you are going to use this method, + you MUST include values for every existing official map. The list must be alphabetical and be the exact length of + the number of currrent official maps. Hint: use "echo $defaultmaps" and "echo (listlen $defaultmaps)". + + + + + + + + The setting will take affect automatically if dyngamma is enabled, upon future loads of that map. This command only works on official maps! + Rather than manually loading each official map and setting it's default gamma with this command, the entire list can be initialized via your autoexec.cfg like so: + + + + + + + + + Allows to finetune the amount of "error" the mipmapper/stripifier allow themselves for changing lightlevels. + + If this variable is changed this during play, a "recalc" is needed to see the effect. + + + + + + + + + Specifies the Field Of View when in spectating/ghost mode. + + + + + The maximum texture size (in pixels) supported by the graphics hardware. + + + + + The maximum texture (if less than hwtexsize) that will actually be used by the engine, larger textures will be scaled down. 0 removes this limit. + + + + + + + + + + + + Reduces the size of all texture by the selected factor: + -1: 2x2 : 0 : 1: x0.5 : 2: x0.25 : 3: x0.125 + Note: -1 is a special mode which reduces all textures to flat coloured surfaces. + + + + + Controls whether textures with a scale higher than 1.0 will be scaled down while loading to increase performance (0) or stay at higher resolution (1). + + + + + + + + Specifies how long (in milliseconds) to display bullet holes. + + + + + Turns on/off the display of bullet holes + + + + + Scales all particles. + + + + + Sets the time available for interpolation between model animations. + + + + + + + + + + Adjusts gib/gibnum/gibspeed/gibttl variables collectively. + + + + + + + + + + + show the blood-spat overlay when receiving damage? + + + + + if overlay of blood-spat, at what blending (transparency) level? + + + + + if overlay of blood-spat, use which factor? + + + + + if overlay of blood-spat, at what speed does it fade? + + + + + make dead players instantly pop out of existence, instead of falling over and sinking into the ground. + + + + + set the frag message corresponding to a weapon (appearing on the hud or in server logs) + + + + + + + fragmessage 5 sniped // set "sniped" message for frags with sniper. + + It will display "you sniped unarmed" on the hud when you frag unarmed with sniper. + In server logs you will get "[127.0.0.1] killer sniped unarmed". + + + + + This command can be read by both client and server, but the server can't read the cfg if it contains anything else than fragmessage or gibmessage calls. + + + + + + set the gib message corresponding to a weapon (appearing on the hud or in server logs) + + + This command is identical to fragmessage (above) + + + + + + change at what position to truncate the map title string + + + + +
+ + +
+ This section describes all identifiers related to music and sound effects. + + + + + + + + + + + + + + + + + + + The distance from the source emitting the sound to the listener. + + + + + This value indicates the relative "strength" of a sound (how far away the sound can be heard. + + + + + Plays the specified sound. + + + See config/sounds.cfg for default sounds, and use registersound to register your own. + For example, sound 0 and sound (registersound "aard/jump") both play the standard jump sound. + + + + + + + + + Mute a specific game sound. + + + + + + + + + + + + Returns 1 if sound A is muted, else 0. + + + + Output: Sound 5 is muted! + + + + + + + + + + + + + Unmutes all previously muted sounds. + + + + + + + Specifies the interval for checking mapsounds. + + If set to value 0, the map sounds will be checked in every frame without any interval limitation. + + + + + + + + + + Enables verbose output for debugging purposes. + + + + + Each subsequent played sound's gain-value is scaled by this percentage. + + + This lowers the gain of the sounds before they are mixed, this might be useful in cases when the mixer has problems with too high gain values. + + + + + + + Sets the music volume. + + + + + + + + Play music in the background. + + + + + + + + + Enables or disables the audio subsystem in AC. + + + + + Sets the desired amount of allocated sound channels. + + AC will try to allocate that number of channels but it is not guaranteed to succeed. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Sets the sound volume for all sounds. + + + + +
+ + +
+ This section describes all identifiers related to the ingame documentation reference. + + + Adds a new section to the ingame documentation. + + + + + + + + + + Adds a new identifier documentation to the last added section. + + An identifier represents a command or variable. The new identifier + + The name may contain spaces to create a "multipart" identifier documentation + that can be used to describe a complex argument as a single pseudo identifier, + look at the examples. + + + + + + + + + + + + + + + + + + + + + + + + + + + + Adds a new argument documentation to the last added identifier. + + An argument represents either a command argument or a variable value. + + The last argument of an identifier can be flagged as variable-length + to indicate that it represents an unknown number of arguments. + + + + + + + + + + + + + + + Adds a new documentation remark to the last added identifier. + + + + + + + + + + Adds an example to the last added identifier. + + + + + + + + Adds a new documentation reference to an identifier. + + The new reference is added to the last added identifier documentation. + + + + + + + + + + + + + Outputs a list of yet undocumented identifiers (commands,variables, etc) + + + If the one argument is omitted, only the builtin identifiers will be listed. Therefore specify the argument + other identifiers like aliases should be included too. + + + Note that the list also includes identifiers that contain the substrings "TODO" or "UNDONE" in their documentation. + + + + + + + + + + + + + + Outputs a list of identifier documentations that do not match any existing identifier. + + Multipart identifiers are not included in this list, see 'docident'. + + + + + + + + + + Searches the ingame docs for identifier documentations matching the specified search string. + + The name, description and remarks are included in the search. + + + + + + + + + + + + + Writes out a base XML documentation reference containing templates for the builtin identifiers. + + + The generated reference is written to "docs/autogenerated_base_reference.xml" by default. + The three arguments can be changed later on in the generated XML document. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ + This section lists commands used by the client that communicate to the server. Most are used for server administration. + Also see the "mode" section and the "map" command which also communicate to the server. + + + + + + If the server was run with -n1 and -n2 arguments (prefix and suffix of descriptive title) + a serveradmin can set a user-defined server description with this command, if it wasn't this command results + in "invalid vote". This title will only stay until the next map is loaded. + + + + + + + If, for example, the server was run with -n"Fred's Server" -n1"Fred's " -n2" Server", + then you could call "/serverdesc [pWn4g3 TOSOK]" and it would show up as "Fred's pWn4g3 TOSOK Server" + in the serverbrowser. + + + + + + Modded servers announcement of features. See source/src/server.cpp [Line 2926ff. "case SV_EXTENSION:"] + + + + + + + + Whether servers that have not yet responded to a ping should be shown in the server list. + + + + + + + + + + + + + + + + + + + + + Sets the number of servers to be pinged at once. + + + + + Adds a new category in the serverbrowser favourites. + + Add new categories to your autoexec.cfg, check favourites.cfg for examples. + + + + + + + + List all registered serverbrowser favourites categories + + + + Hide favourites icons in serverbrowser. + + + + + Hide favourites tag column in serverbrowser + + + + + Hide server IP and port in serverbrowser. + + + + + Select ascending of descending sort order in serverbrowser. + + + + Sort official maps over custom maps in serverbrowser. + + + + + Show 'minutes remaining' in serverbrowser. + + + + + Show player names in serverbrowser. + + + + + Show only servers of one favourites category in serverbrowser. + + + + + Show only servers with the correct protocol in serverbrowser. + + + + + Show 'weights' in serverbrowser. + + + + 'weights' are the sort criteria with the highest priority. Favourites categories can change the weights. + Use 'showweights' to debug problems with serverbrowser sorting. + + + + + + Search a nickname (or -part) on all servers. + + + + + + + Sets automated team assignment. + + + + + + + + + + Temporary ban of the specified player from the server. + + Temporary ban duration is fixed at 20 minutes. + + + + + + + + + + + + Calls a vote on the server. + + + This command is wrapped by aliases for better usability and is used to action votes such as ban, kick, etc. + See config/admin.cfg for actual uses. + + + + + + + + + + + Calls a vote to force the specified player to switch to the specified team. + + + + + + + + + + + + + Calls a vote to forceteam yourself to the specified team. + + + + + By default, if you are on team CLA or RVSF, this command will force you to the enemy team, no arguments necessary. + + + + + + + + + + Shuffles the teams. The server will attempt to restore balance, but the result may + be less that optimal, and there are certainly better ways to keep teams balanced. + + + + + + + + + Gives admin state to the specified player. + + Requires admin state. The admin will lose his admin state after successfully issuing this command. + + + + + + + + + + + Kicks the specified player from the server. + + + + + + + + + + Sets the mastermode for the server. + + + If the mastermode is set to 'private', no more clients can join the server. + Default is 'open' which allows anyone to join the server. + + + + + + + + + + + + Removes all temporary bans from the server. Temporary bans are normally automatically removed after 20 minutes. + + + + + + + + Clears all demos currently in memory on the server. + + + + Sends a map to the server. + + + During coop edit, the current map gets saved to file and sent to the server. + Other players can use 'getmap' to download it. + + + When not in edit mode, the map will not be saved. The new map will be used, when + the next game on that map starts on the server. + + + + + + + + + + + + + Deletes a map from the current server. + + + + + + + Claims or drops admin status. + + + Failed logins result in an auto kick. + The admin is granted the right to kick, ban, remove bans, set autoteam, set shuffleteam, change server + description (if enabled), change map, change mastermode, force team, change mode, record demos, stop demos + and clear demo(s) - All without needing votes from other users. + If the admin votes on any (other players) call, his vote is final. + In the scoreboard, the admin will be shown as a red colour. + + + + + + + + + + + + + + + + +
+ + +
+ + + + Sets the gameplay mode to N for the next map loaded. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + You will need to define mode before loading the map or it will stay as the last mode played. + There are many aliases for you to use instead of remembering the numeric mapping. + + + + + + + + + + + + + + + + + + + + + + + Starts a map with the mode "Co-op edit" + + See the co-op edit section in page 4 of the map editing guide for more information. + + + + + + + + + + + + + Starts a map with the mode "Capture the Flag" + + + + + + + + + + + + + Starts a map with the mode "Deathmatch" + + + + + + + + + + + + + Starts a map with the mode "Hunt the Flag" + + + + + + + + + + + + + Starts a map with the mode "Keep the Flag" + + + + + + + + + + + + + Starts a map with the mode "Last Man Standing" + + + + + + + + + + + + + Starts a map with the mode "Last Swiss Standing" + + + + + + + + + + + + + Starts a map with the mode "One shot, One kill" + + + + + + + + + + + + + Starts a map with the mode "Pistol Frenzy" + + + + + + + + + + + + + Starts a map with the mode "Team Deathmatch" + + + + + + + + + + + + + Starts a map with the mode "Team Keep the Flag" + + + + + + + + + + + + + Starts a map with the mode "Team One Shot, One Kill" + + + + + + + + + + + + + Starts a map with the mode "Team Survivor" + + + + + + + + + + + + + Starts a map with the mode "Hunt the Flag". Some players prefer the name "VIP" for this mode. + + + + + + + + + + + + +
+ + +
+ + All the below commands are used specifically in map configuration files. + Some of these commands can also be used without the need of a map configuration file. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + translates (= moves) the model + + + + + + + + + + + + + + + + + + + + + Isolates the given context. This disables access from this context to identifiers located in other contexts, also it removes all aliases created in this context once the running context changes + + + + + + + + + + secure this configuration for the rest of the game + + + + + + + + + + + Sets the fog distance. + + + You can do this for tweaking the visual effect of the fog, or if you are on a slow machine, + setting the fog to a low value can also be a very effective way to increase fps (if you are geometry limited). + Try out different values on big maps / maps which give you low fps. It is also good for aesthetic features of maps + especially when combined with "fogcolour". + + + + + + + + + + + + Sets the fog and clearing colour. + + + + + + + + + + Binds a texture to be used if a slot couldn't be loaded with a given textures path. + + + Binds the texture indicated in the filename to the texture slot of any textures that aren't found. + The path is given exactly as with the texture-command, if it is omitted (or can't be loaded) the default is used. + The default is located in packages/misc/notexture.jpg (not in packages/textures - where custom ones must reside!) + + + + + + + + + + + + + + + + + + + + + Loads a skymap for a map. + + The available skymaps reside in packages/textures/skymaps/.. + + To select a skymap you need to use the full path from "packages/" + but only up to the underscore "_" in the filename. + + + + + + + + + + + + + + Registers a mapmodel that can be placed in maps. + + + A mapmodel registered with this command can be placed in a map using the 'newent mapmodel' command. + The bounding box is an invisible force surrounding the model, allowing players to collide against it, instead + of walking through the mapmodel. For more information about this command, read mapediting5.xml. + + Example: mapmodel 4 2 4 0 "modelname" + This mapmodel has a bounding box of 8x8x2 in size (X/Y/Z) and by default hovers 4 units above ground. + + + + + + + + + + + + + + + + Resets the mapmodel slots/indices to 0 for the subsequent "mapmodel" commands. + + Each subsequent mapmodel command increases it again. See config/default_map_settings.cfg for an example. + + + + + + + + + Defines a mapsound. + + + Registers the sound as a map-specific sound. These map-specific sounds may currently + only be used with "sound" entities within a map. The first map sound registered in a map has slot/index number 0 + and increases afterwards. + + + + + + + + + + + + + + Resets the mapsound slots/indices to 0 for the subsequent "mapsound" commands. + + Each subsequent mapsound command increases it again. See config/default_map_settings.cfg for an example. + + + + + + + + + Shadow yaw specifies the angle at which shadow stencils are drawn on a map. + + + + + + + + When specifying shadowyaw, remember that the default angle is 45 degrees. The example below + would make the shadows appear at 90 degrees (45 degrees more to the left). + + + + + + + + + Binds a texture to the current texture slot. + + Binds the texture indicated in the filename to the current texture slot and increments the slot number. + The texture is rendered at the given scale. At scale 1.0 (or if scale is 0), 32x32 texels cover one cube. At scale 2.0, which is the current maximum, it's 64x64. + + + + + + + + + + + + + + Sets the texture slots/indicies to 0 for the subsequent "texture" commands. + + Each subsequent texture command increases it again. See config/default_map_settings.cfg for an example. + + + + + + + + Determines the water colour in a map. + + + + + + You must define all 3 values, otherwise this command may not work + correctly (use "1" as a placeholder if needed). + + + + + + + + + + + Sets the wave height of water, between 0 (completely still, no waves at all) and 1 (very choppy). + + + + +
+ + +
+ This section describes identifiers that are not documented yet, but you may try to help us there. + + + + deletes the passed alias. + + + + returns the currently used formatstring for demo filenames + + + + + + + + + returns the currently used formatstring for demo timestamp + + + + + + + + + set the formatstring for demo filenames - default: TODO (when stable) + + + + + we use the following internal mapping of formatchars: + %g : gamemode (int) %G : gamemode (chr) %F : gamemode (full) + %m : minutes remaining %M : minutes played + %s : seconds remaining %S : seconds played + %h : IP of server %H : hostname of server (%N : title of server (really???)) + %n : mapName + %w : timestamp "when" + + + + + + + + + + set the formatstring for demo timestamp - default: TODO (when stable) + + + + + same as strftime() - see http://www.cplusplus.com/reference/clibrary/ctime/strftime/ for details + + + + + + + + + + + use localtime (1) or GMT (0)? + + + + + TODO: Description + + + + + + + + + At what char does the definition proceed? + + + + + + + An alias used for i18n. Translateable text should be marked [(_ "this is the EN-us variant of the text")]. + + + + + + + switch the font in which the menu is displayed + + + + + + + for toggling on the ability for menutext to have the blinking bit set. The global setting of 'allowblinkingtext' overrides this + + + + + + + + + + for toggling on the ability for any text to have the blinking bit set. + + + + + + + + + + a menuitem that loads a map, displays the title and the preview or a default image + + + + + + + + TODO: Description + + + + + + + TODO: Description + + + + TODO: Description + + + + + + + TODO: Description + + + + TODO: Description + + + + + + + do you really want to quit? + + + + + TODO + + + + + TODO + + + + + TODO + + + + + TODO + + + + + TODO + + + + + TODO + + + + + TODO + + + + + TODO + + + + + TODO + + + + + TODO + + + + + shows the settings of edithide (sparklies) + + + + Hides the list of entity types you set. Pass 1 for light, 2 for spawn, or use "playerstart". + + + + + Pass light or 1, playerstart or 2. Call [setedithide 1 10] to just hide all lights and mapmodels. + Or [setedithide [3 4 5 6 7 8 9 12 13]] for all the clips, ammo, nades, health, helmet, armour, akimbo, ladder, and flag. + Reversly just use [1 2 10 11 13 14 15 16] to hide light, spawn, mapmodel, ladder, sound, clip, plclip. + Only shown entity types are potential 'closest entity'. + + + + + Hides all but the single entity type you give. Pass 1 for light, 2 for spawn, or use [playerstart]. + + + + + Just run [seteditshow model] and see just the model entities. + The other entity types are ignored as closestentity too. + other call forms may use the numerical item type + + + + +
+ +
+
diff --git a/docs/server.html b/docs/server.html new file mode 100644 index 0000000000..1ad824a0ad --- /dev/null +++ b/docs/server.html @@ -0,0 +1,616 @@ + + + + + + + + AssaultCube Documentation :: AssaultCube servers + + + + + + +
+
+ AssaultCube Documentation +
+ + +
+ +

AssaultCube servers

+

+ Server process +

+

+ The dedicated server runs in the shell only (no graphics), with increased priority. + However, it uses very little CPU time and memory, so you can run one in the background, + or at the same time as the client if you want to host a game and play in it. The default + server ports are UDP 28763 (game) and 28764 (info). If you choose to set + your own port as X (with the -f option) it will automatically + use X+1 for the info port! See the Get Started Guide + to find out how to join a server. +

+

+ Main Configuration +

+

+ The easiest way to configure the AssaultCube server is through the options in + config/servercmdline.txt. + The server scripts, assaultcube_server.bat on windows or + assaultcube_server.sh on linux, use this method by default. All the possible command + line options are documented in this file, and you simply have to uncomment (remove the //'s + from the start of the line) and edit the ones you want to use. +

+

+ You can still assign the options on the command line if you have an existing server, or + you prefer this method. The command line options can also be obtained from the command line section of this documentation. +

+

+ When you've configured your server, run the script to start it. You should see the message: +

+		looking up assault.cubers.net...
+		master server registration succeeded
+	     
+ If you don't see this, use the website search facility + to search for the output you do see. The most common reason for failure is incorrectly + forwarded ports. +

+

+ LAN/private server +

+

+ A server automatically acts as a LAN server, and any clients on the same subnet will be able to + connect through the Join to a LAN server menu option. If you want the server to remain + private, and not be displayed on the public in-game server list, you must use the -m + option to change the master server. It's common to use -mlocalhost + to achieve this, but any other hostname or IP address will do. +

+

+ Number of clients +

+

+ Deciding on the maximum number of clients (-c option) that can connect + to your server can be a difficult task. + The maximum you can have, and still register with the Master Server, is 16, but the maximum + that your server can efficiently support is dictated by the upstream bandwidth + of your internet connection. If you overload your connection with too many clients, they will + all suffer from lag spikes, regardless of geographical distance from the server. +

+

+ The server list gives an indication of a server's error rate; green is good, red is bad. Error rate + can be affected by line quality and/or limited bandwidth. Pressing F9, followed by F2 + brings up a further graphic showing how the error rate is affected by client connections. +

+ + + + + + +
+ Server error rates + + + Player/error stats
+ F9 ⇒ F2: It looks like this server could do with
+ having its max. clients reduced to 6 +
+

+ Map rotation +

+

+ In the map rotation file specified with the -r option (default: + config/maprot.cfg), you can specify the map, mode, time and voting for + your server. Each line defines one round. The optional arguments of minplayer, maxplayer and skiplines + empower you to change which lines will be played when your server is rather empty or closer to full. +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ map + + Map filename without extension. Only use standard maps and maps from + your packages/maps/servermaps folder, otherwise the map won't start. +
+ mode + + Game mode number. One of: Team Deathmatch (0), Deathmatch (2), Pistol + Frenzy (6), Team Pistol Frenzy (16), Capture the Flag (5), Hunt the Flag (13), + Keep the Flag (15), Team Keep the Flag (14), Team Survivor (4), Survivor (3), Last + Swiss Standing (9), Team Last Swiss Standing (17), One Shot One Kill (10), + Team One Shot One Kill (11) +
+ time + + Game time in minutes. Usually 15 minutes for flag modes, 10 minutes for + all other modes. +
+ vote + + 1: allow players to vote for another map/mode, 0: only an admin can change the + map/mode +
+ minplayer + + If specified, the server will skip the map if fewer than the required + players are connected at time of game start. +
+ maxplayer + + If specified, the server will skip the map if more than the allowed + players are connected at time of game start. +
+ skiplines + + If the map actually got played (depending on minplayer and maxplayer), the server + will skip the specified number of (used) lines in the maprotation before picking the + next map. This can be used to prevent the same map being played twice in a row. +
+

+ Minplayer and maxplayer numbers are only checked when a new game is picked from + the map rotation. If the player number changes during gameplay, no action will + be taken. +

+

+ Example: +

+
+		// server side maprotations
+		// WARNING: You can NOT use CubeScript in there
+		// Use the following scheme...
+		// map:mode:time:allowVote[:minplayer[:maxplayer[:skiplines]]]
+
+		// tdm
+		ac_complex:0:10:1
+		ac_depot:0:10:1
+		ac_desert:0:10:1
+		ac_mines:0:10:1
+
+		// ctf
+		ac_mines:5:10:1
+		ac_depot:5:10:1
+
+		// ac_arctic
+		ac_arctic     : 0:10: 1: 4: 7: 1     // tdm, 10 minutes, 4..7 players
+		ac_arctic     :11:10: 1: 7: 0: 0     // tosok, 10 minutes, 8.. players
+
+		// one short game on ac_snow, either osok or deathmatch (pseudorandom)
+		ac_snow       :10: 6: 1: 0: 1: 7     // osok, 6 minutes, 0..1 players
+		ac_snow       : 2: 6: 1: 2: 2: 6     // dm, 6 minutes, 2 players
+		ac_snow       :10: 6: 1: 3: 3: 5     // osok, 6 minutes, 3 players
+		ac_snow       : 2: 6: 1: 4: 4: 4     // dm, 6 minutes, 4 players
+		ac_snow       :10: 6: 1: 5: 5: 3     // osok, 6 minutes, 5 players
+		ac_snow       : 2: 6: 1: 6: 6: 2     // dm, 6 minutes, 6 players
+		ac_snow       :10: 6: 1: 7: 7: 1     // osok, 6 minutes, 7 players
+		ac_snow       : 0: 6: 1: 8:11: 0     // tdm, 6 minutes, 8..11 players
+	 
+

+ The first line, ac_complex:0:10:1, means, the map + ac_complex is played in mode 0 (Team Deathmatch) for 10 minutes. The + connected players are allowed to vote for a different map/mode. +

+

+ The ac_arctic-block will play team deathmatch or team one shot one kill + on ac_arctic, depending on the number of players; + for 4 to 7 players it will be team deathmatch, for 8 or more players it will be tosok; if less than 4 + players are on the server, the map will be skipped. + (Notice the skipline = 1 in the first ac_arctic line (tdm) - this will skip the tosok line, + if tdm actually gets played.) +

+

+ The last block will play only one match on ac_snow, but depending on the number of players with varying gamemode; + for less than 8 players and an even number it will be deathmatch, for uneven numbers osok, + with more than 8 players team deathmatch will be played. +

+

+ Important: Do not use the maprot file to force the same map or mode repeatedly. Servers with map rotations containing + less than two different maps (or three if they are all the same mode) may be removed from the public server list. + Also, do only use standard maps and maps from your packages/maps/servermaps folder! +

+

+ IP Blacklist +

+

+ In the blacklist file specified with the -B option (default: + config/serverblacklist.cfg), you can specify IP addresses and IP address ranges to be denied + access to your server. Each line defines one IP address (range). +

+

+ You can use three different schemes to specify IP address ranges: +

+

+ 1.2.3.4   ⇒ ban a single IP +

+

+ 1.2.3.4/24   ⇒ ban an IP block using + CIDR notation (here: 1.2.3.0 - 1.2.3.255) +

+

+ 1.2.3.4 - 2.3.4.5   ⇒ ban an IP range +

+

+ If a player from a banned IP address tries to connect to your server, he will get an + error message: "connection refused due to ban". +

+

+ Important: The AC development team reserves the right to ban players centrally, usually proven cheats. + This may result in players NOT in your blacklist being banned from your server. + Everything possible is done to prevent innocent players from being banned. +

+

+ Nickname Blacklist +

+

+ In the nickname blacklist file specified with the -K option (default: + config/nicknameblacklist.cfg), you can configure the nickname blacklist and the nickname + whitelist. +

+

+ Whenever a player connects to a server (or changes his nickname), the nickname is compared to the + whitelist and the blacklist. First, the nickname (as a whole) is searched in the whitelist. If the + nickname is in the whitelist, the player's IP and password are checked (if required). If an IP range + or password requirement is not met, the player gets kicked. If the nickname is not in the whitelist, + it is checked against the blacklist. If a blacklist entry matches, the player gets kicked. +

+

+ To prevent whitelist entries being misused by other players, each entry can be secured by one or more + IP ranges and one or more passwords. IP ranges are very convenient to use. For players with static IP, + this is a very secure method to prevent others from using the nickname. If the IP is dynamic, it + depends on how big the used IP range is. A single /16 range should be secure enough for most cases. + If the range is bigger, the IP range will not block others sufficiently. In those cases, passwords can + be used. +

+

+ The following commands can be used in nicknameblacklist.cfg: +

+
+
+ accept nickname [IP range ...] [password ...] +
+
+ Add nickname to the whitelist. IP ranges and passwords are optional; if IP ranges are + specified, only connects from those ranges are allowed; if one or more passwords are specified, + the connect password has to match one of them. +
+
+ block nicknamefragment1 [nicknamefragment2 ...] +
+
+ Block nicknames that contain all specified fragments (up to 5). +
+
+ blocki nicknamefragment1 [nicknamefragment2 ...] +
+
+ Block nicknames that contain all specified fragments (up to 5), ignoring case. +
+
+ +

+ Forbidden words file +

+

+ If there are things you just don't want people to say in your server, this file, specified + with the -g option (default: config/forbidden.cfg), + contains example words and phrases which will be barred from public display. If a + client types one of these words or phrases, it will be displayed on their HUD only, along + with a warning. If you wish to disable this function, just remove every entry from the list. +

+

+ Server password file +

+

+ In the server password file specified with the -X option (default: + config/serverpwd.cfg), you can specify admin passwords and passwords + to bypass server bans. Each line defines one password. +

+

+ Example: +

+
+		// list of additional server admin passwords
+		// WARNING: You can NOT use CubeScript in here!!
+		// one password per line
+
+		// Use the following scheme...
+		// password [denyadmin]
+		// optional: if denyadmin is set to '1' then
+		// the password can only be used to connect to the server in case of ban, not to claim admin
+
+		Lorem 1
+		ipsum
+		dolor 0
+	 
+

+ In the above example three passwords are defined: Lorem, ipsum and dolor. +

+

+ ipsum and dolor are full admin passwords. They can be used to claim admin, connect + to a full server and to get over a server ban. +

+

+ Lorem is a less powerful password: it can only be used to connect to a server that has a pending + ban on the user. This kind of password is useful, whenever a blacklist range ban affects innocent players. +

+

+ Colouring +

+

+ You can use colours to set your server apart from the others. The "Message of the day" (MOTD), the server + description and the additional server information can all be coloured. +

+

+ To change a colour to another, use \f plus a corresponding number or letter. The following colours are available. +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
0green
1blue
2yellow
3red
4gray
5white
6dark brown
7dark red
8magenta
9orange
A B C Dred set
E F G Hyellow set
I J K Lgreen set
M N O Pcyan set
Q R S Tblue set
U V W Xmagenta set
Ylight gray
Zdark gray
+

+ Example of usage:
+ \f5This colour is \f1blue\f5 and this is a different \fRblue\f5.
+ ...produces:
+ This colour is blue + and this is a different blue. +

+

+ Additional Server Information +

+

+ An important enhancement to your server description is the additional server information file + specified by -I (default: config/serverinfo_en.txt). The + text in this can be seen in-game by pressing F9 when your server is highlighted in + the server list, or by pressing Escape and selecting Get additional server + information when connected to the server. You can use this file to provide extended + information about your server, such as contact details, server location, where demos + can be downloaded from, clan information, etc. The file contains formatting help to assist you. +

+

+ Administration +

+

+ Cheating +

+

+ Cheating is a problem that can't be solved entirely. AssaultCube is open source, + so everyone who knows how to compile it can easily modify the source to do + whatever he wants; that's the problem of open source games. The fact that most of + the game logic is client-side, to save bandwidth, makes it even easier + to cheat. There is no way to completely avoid this abuse, but cheats should be kicked + from the game as soon as possible, to ensure fair play for everyone else. +

+

+ Server Admin +

+

+ There is a client role a player can claim called admin. It can be + claimed by the owner of a server (or players the owner trusts) to take control + over what is happening when they are present. Claiming admin state requires a + password that matches the server configuration. +

+

+ The main advantage of the admin role is its overriding vote power. A 'yes' (F1) + or 'no' (F2) vote from an admin will be the deciding vote immediately. Read more about + being an admin of a server on the AssaultCube wiki. +

+ Related commands: +

+ +

+ Use the setadmin command to claim admin if you are + already connected to a sever. However if you are locked out of your own server + because you are banned, master mode is private or because all client slots are + taken, you can use the connectadmin command to get + control back. If you want to leave the server in the hands of a certain + player giveadmin can be used to give control to a + honest player. +

+

+ The admin password is best configured using the + -X option, but can also + be set with -x on the command line. +

+

+ Server logs +

+

+ By default, a running server will log to a file in the main AssaultCube folder (Windows), + or the gamedata folder (Mac) or to the syslog (linux). The level of detail in the + log can be controlled with the -LF or -LS + options. +

+

+ The log can be used as reference for IP addresses of connected clients, a record of + things said during a game or an indication of suspicious client activity (using the game's + anticheat coding), and contains many other pieces of information. +

+

+ Kill Messages +

+

+ You can control how kills are reported in your log with the kill messages file, specified + with the -E option (default: config/serverkillmessages.cfg). + These messages will appear in your log only; you can't control what messages the clients see. +

+

+ Demos +

+

+ By default, a server will store records of the previous 5 games in RAM, as downloadable demos. + It's possible to change the number of stored demos with the -D option, + and you can also write the demos to disk, and change the location and file prefix, using the + -W option. +

+

+ As a responsible server owner, you may be approached by players who were on your server, requesting + a demo they may have forgotten to get in-game, or a piece of information from the log. Releasing these + is, of course, at your discretion. +

+

+ Important: Server modifications +

+

+ Obviously AssaultCube is an open source game, and the server code is open to modification. You may + find that some part of the server code can be improved (please let us know if this is the case), or + that it doesn't provide a bit of functionality that you require. You're welcome to compile your own + server binary, provided that any changes you make don't affect the gameplay. We want to ensure that + all clients connecting to public servers are aware of the game modes, ammo and health settings, game + physics, etc., and that there are no surprises. If your server is deemed to have a gameplay-affecting + modification, it will be removed from the master server list. +

+
+
+ © Copyright, Rabid Viper Productions +
+
+ + We would be grateful for any donations considered towards AssaultCube + +
+ +
+ + diff --git a/docs/team.html b/docs/team.html new file mode 100644 index 0000000000..c815fbb101 --- /dev/null +++ b/docs/team.html @@ -0,0 +1,275 @@ + + + + + + + + + AssaultCube Documentation - The Team + + + + + + + +
+
+ AssaultCube Documentation +
+ + + +
+ +

The Team

+ AssaultCube +

+ AssaultCube is developed by various people around the world. People that enjoy making this game together. + This page tells you who works on the game behind the scenes, from the original developers, to the community + that enhances the game with their great contributions. +

+

+ Thank you to everyone participating to help us make AssaultCube what it is today... +

+

Project Leaders

+ + + + + + + +
ärkefiendeCoding, Windows packaging, VisualStudio configuration, documentation.
Nigel “RandumKiwi”Linux packaging, maps, site design, documentation, config/menus.
James “jamz” HarrisHosting, community maintenance extraordinaire, textures, documentation.
+
+ These are the main areas of contribution. They also do a lot of other different work (like testing) on the game. +
+

Active Developers

+ + + + + + + + + + + + + + + + + + + +
Rafael “Brahma”Coding (server-side scrutiny, masterserver, etc).
Alejandro “Toca”Mapmodels, sounds, textures, some code.
Shane “Bukz” PinkleyCoding, cubescript, documentation, maps: ac_stellar, ac_edifice, Akimbo
Luc@sCoding, hosting, Akimbo.
tempestCoding, documentation.
V-ManCubescript, documentation.
Ronald_ReaganMac OS X packaging, coding.
Cleaner3D art, md3 mapmodel conversion/packaging optimization, Akimbo
VonDrakulaCoding.
+
+ These are the main areas of contribution. They also do a lot of other different work (like testing) on the game. +
+

Inactive/Retired Developers

+ + + + + + + + + + + + + + + + + + + +
Adrian “driAn” HenkeCoding (OpenAL, OpenGL, gameplay).
Markus “makkE” BekelModels, skins, animation, 2D art, textures, maps, sounds.
stefCoding (Bug fixes, new modes, servers, etc).
Andrew “Arghvark” DavisCoding, the original project leader & game conception.
Florian “flowtron” SchulteCoding, web hosting, administration.
Goran “GeneralDisarray” DejanovicCoding (OpenGL), sounds, some 2D art.
Lee “eihrul” SalzmanCoding (OpenGL, Enet libraries, Cube2 backports, etc).
Mr.FloppyModels, skins, animation, 2D art, textures, maps, sounds.
wahnfredCoding, Apple Xcode, Mac OS X packaging.
+
+ These are the main areas of contribution. They have also done a lot of other different work (like testing) on the game. +
Some of these developers may still help us out, from time-to-time, on a consultancy basis. +
+

Community Mappers

+ + + + + + + + + + + + + + + + + + + + + + +
ShadowMap: ac_elevation.
WotwotMap: ac_power (Also: textures).
daMfr0Map: ac_snow.
MitaMANMap: ac_depot (Also: textures).
Shane NiebMap: ac_desert2, ac_desert3 (Also: mapmodels, 2D-art).
ArchangelMap: ac_urban.
DogDancingMap: ac_shine, ac_scaffold (Also: textures).
R4zorMap: ac_sunset, ac_gothic, ac_ingress, ac_wasteland.
HaloMap: ac_arctic, ac_lainio, ac_stellar, ac_wasteland.
BenWasHereMap: ac_arid.
RuthlessMap: ac_iceroad, ac_ingress.
UndeadMap: ac_cavern, ac_iceroad, ac_swamp.
Pablo “RatBoy” CiamarraMap: ac_rattrap.
JibaMap: ac_arabian, ac_industrial.
DES ClanMap: ac_outpost.
BrettMap: ac_industrial.
optusMap: ac_edifice.
ExodusSMap: ac_cavern, ac_swamp.
fundogMap: ac_venison.
Sanzo''Map: ac_industrial, ac_terros.
DaylixXMap: ac_terros.
+

Special thanks

+ + + + + + + + + + + + + + + + + + + + + + + + + +
Wouter “Aardappel” van Oortmerssen, + Lee “eihrul” Salzman & othersThe original CUBE game/engine.
Elliot “Verbal_” LockwoodAdvice, back-in-the-day testing.
Rick HelmusOriginal bot code.
Julian “absinth” MayerOriginal Mac OS X packager.
Zac “dtd” JarcoPrevious hosting.
Grenadier (aurhat)Some code contributions/fixes.
KanslozeClownCode contributions, advice & previous hosting.
Chris RobinsonOpenAL-Soft advice.
ApolloWiki guru.
Joseph “X-Ray_Dog”Hosting, Wiki editor and maintenance, Akimbo
FranzAdditional code.
SKBAdditional code.
+

Resources

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Paul “JCDPC” CashLaptop mapmodel, textures.
Topher (Death Illustrated)Some crosshairs.
leileilol of OpenArenaBullethole image.
SteiniSkymaps.
Attila “Antiklimax” FeherNew sniper scope.
Stephanos "RaZgRiZ" VlastosExplosion texture.
Deb "Lady NightHawk" MurtaghCanyons1 skymap.
Simon "socksky" O'CallaghanIceStation/Nightball/Graveyard skymaps.
Darren “HitmanDaz[MT]” PattendenPlayermodels.
sittersMinecart/Rails mapmodels.
Lewis CommunicationsNew AssaultCube logo.
Matthew Welch"White Rabbit" font.
Kell “Kothic” McDonaldAt Sea skymap.
Emil “Humus” PerssonPowerlines skymap.
+

Texture resources

+ + + + + + + + + + + + + + + + + + + + + +
ArticoolBoeckCraig FortuneDigital Flux
www.mayang.comwww.afflict.netGolgotha teamNOCTUA graphics
Chris Zastrow3D CafeGRsitesLemog 3D
www.imageafter.comRohrschachDrunkenMKurt Keslar
John Solowww.openfootage.net  
+

Sound resources

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
DCPBahutanmwl500fonogeno
livindeadNoiseCollectordroboidenicStage
acclivitySyna MaxermineReWired
nofeedbakvuzzmich3dRhedcerulean
www.soundsnap.comdommygeefrescoignotus
WIMacclivityLukas Zapletal & Ludek Horacek (Music)cameronmusic
wildweasel (Voting)Tremulous team (Gibs) 
+   +
+
+ © Copyright, Rabid Viper Productions +
+
+ + We would be grateful for any donations considered towards AssaultCube + +
+ +
+ + diff --git a/docs/xml/cuberef.xsd b/docs/xml/cuberef.xsd new file mode 100644 index 0000000000..aa919c7c0f --- /dev/null +++ b/docs/xml/cuberef.xsd @@ -0,0 +1,271 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/xml/cuberef2cubescript.xslt b/docs/xml/cuberef2cubescript.xslt new file mode 100644 index 0000000000..cfa3db8888 --- /dev/null +++ b/docs/xml/cuberef2cubescript.xslt @@ -0,0 +1,157 @@ + + + + + + + + + + + + + + + + + + + // This CubeScript file has been automatically generated from AssaultCube's ./docs/reference.xml + + // DO NOT MODIFY THIS FILE - Instead, modify ./docs/reference.xml and generate this file automatically. + + // To generate this file automatically, please carefully read the comment at the top of reference.xml + + + + + + docsection + [ + + ] + + + + + + docident + [ + + ] [ + + ]; + + + + + docargument + [ + + ] [ + + ] [ + + ] [ + + + 1 + + + 0 + + + ]; + + + + + + docargument + [ + + ] [ + + ] [ + + + + read-only + + + + + + min + + /max + + /default + + + + ]; + + + + + + docremark + [ + + ]; + + + + + + docexample + [ + + ] [ + + ]; + + + + + + dockey + [ + + ] [ + + ] [ + + ]; + + + + + + docref + [ + + ] [ + + ] [ + + ]; + + + + + + + + + diff --git a/docs/xml/cuberef2xhtml.xslt b/docs/xml/cuberef2xhtml.xslt new file mode 100644 index 0000000000..12a3f9317d --- /dev/null +++ b/docs/xml/cuberef2xhtml.xslt @@ -0,0 +1,444 @@ + + + + + + + + + + + + + + + + + + + - + + + + + + + + #identifier_ + + + + + + + + + + + + + + + + + AssaultCube Documentation :: CubeScript + + + + + + +
+
+ AssaultCube Documentation +
+ + +
+ + +

+ CubeScript +

+

+ CubeScript is the scripting language of AssaultCube and it is similar to scripting languages of other games, except + that its a bit more powerful because it is almost a full programming language. +

+

+ CubeScript consists of the command itself, followed by any number of arguments separated by whitespace. You can: +

+ +
    +
  • + Use "" to quote strings that have whitespace within them. +
    • Input example: alias grass "is greener"
    +
  • +
  • + Use $ to capture the value of a variable/alias/bracketed-string as an argument for a command. +
      +
    • Input example: echo "The grass" $grass
    • +
    • Output: The grass is greener
    • +
    • Input example: echo "Your FOV is" $fov
    • +
    • Output: Your FOV is 90.0
    • +
    +
  • +
  • + Use ; to sequence multiple commands into one. +
      +
    • Input example: alias grass "is yellow"; echo "The grass" $grass
    • +
    • Output: The grass is yellow
    • +
    +
  • +
  • + You can also use () or [] to quote strings (i.e. instead of ""). + These can be nested infinitely and may contain linefeeds. + The normal brackets () are special, as they evaluate commands contained within them, + before evaluating the surrounding command. +
      +
    • Input example: alias 4x2 (* 2 (+ 1 3))
    • +
    • Input command: echo $4x2
    • +
    • Output: 8
    • +
    • Input example: alias grass [ is greener ]
    • +
    +
  • +
  • + Lastly, you can use the automatically-set aliases of $arg1 + (.. and $arg2, $arg3, etc) in your scripts. +
      +
    • Input example: alias grass [ if (= $arg1 1) [ echo "The grass is green" ] [ if (= $arg1 2) [ echo "The grass is yellow" ] ] ]
    • +
    • Input command: grass 1
    • +
    • Output: The grass is green
    • +
    • Input command: grass 2
    • +
    • Output: The grass is brown
    • +
    +
  • +
+

+ It is recommended to read examples of this in your ./config/ folder to understand them better. The documentation below + contains a reference of ALL of the CubeScript commands at your disposal. Have fun! +

+
+ +
+

+ +

+
+

CATEGORIES:

+ +
+ + + + +
+
+

+ + + section_ + + + +

+ + +

+ +

+ + + + + + +
+ + + identifier_ + + + + +
+ + + + + + + + + + + + + + +
+ + +
+ +
+ + + + +
+ + + + + + + + + + + + + +
ArgumentDescriptionValues
+ + + + + (optional) + + + +
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ Token + + Description + ValuesRangeDefault
+ + + + + + + + .. + + + +
+
+
+
+ + + +
+ +
+ +
+
+
+
+ + + +
+ +

+ Example: + + + + + + + + + + +

+
+
+
+ + + + +

+ Return value: , +

+
+ + + +
+

+ + + default key: + + + + default keys: +
+ + +
+
+
+
+

+
+
+ + + + + +
+
+
+
+
+
+ +
+ CubeScript command & variable list +
+
+ + + + +
+ +
    + + +
  • + +
  • +
    +
+
+
+
+
+
+
+ + +
+
diff --git a/docs/xml/cuberef2xhtml_acwebsite.xslt b/docs/xml/cuberef2xhtml_acwebsite.xslt new file mode 100644 index 0000000000..cbb99f156a --- /dev/null +++ b/docs/xml/cuberef2xhtml_acwebsite.xslt @@ -0,0 +1,459 @@ + + + + + ]> + + + + + + + + + + + + + + + + + + + - + + + + + + + + #identifier_ + + + + + + + + + + + + + + + + + AssaultCube Documentation :: CubeScript + + + + + + + + + +
+
+ AssaultCube Documentation +
+ + + + &docswarnssi; + +
+ + +

+ CubeScript +

+

+ CubeScript is the scripting language of AssaultCube and it is similar to scripting languages of other games, except + that its a bit more powerful because it is almost a full programming language. +

+

+ CubeScript consists of the command itself, followed by any number of arguments separated by whitespace. You can: +

+ +
    +
  • + Use "" to quote strings that have whitespace within them. +
    • Input example: alias grass "is greener"
    +
  • +
  • + Use $ to capture the value of a variable/alias/bracketed-string as an argument for a command. +
      +
    • Input example: echo "The grass" $grass
    • +
    • Output: The grass is greener
    • +
    • Input example: echo "Your FOV is" $fov
    • +
    • Output: Your FOV is 90.0
    • +
    +
  • +
  • + Use ; to sequence multiple commands into one. +
      +
    • Input example: alias grass "is yellow"; echo "The grass" $grass
    • +
    • Output: The grass is yellow
    • +
    +
  • +
  • + You can also use () or [] to quote strings (i.e. instead of ""). + These can be nested infinitely and may contain linefeeds. + The normal brackets () are special, as they evaluate commands contained within them, + before evaluating the surrounding command. +
      +
    • Input example: alias 4x2 (* 2 (+ 1 3))
    • +
    • Input command: echo $4x2
    • +
    • Output: 8
    • +
    • Input example: alias grass [ is greener ]
    • +
    +
  • +
  • + Lastly, you can use the automatically-set aliases of $arg1 + (.. and $arg2, $arg3, etc) in your scripts. +
      +
    • Input example: alias grass [ if (= $arg1 1) [ echo "The grass is green" ] [ if (= $arg1 2) [ echo "The grass is yellow" ] ] ]
    • +
    • Input command: grass 1
    • +
    • Output: The grass is green
    • +
    • Input command: grass 2
    • +
    • Output: The grass is brown
    • +
    +
  • +
+

+ It is recommended to read examples of this in your ./config/ folder to understand them better. The documentation below + contains a reference of ALL of the CubeScript commands at your disposal. Have fun! +

+
+ +
+

+ +

+
+

CATEGORIES:

+ +
+ + + + +
+
+

+ + + section_ + + + +

+ + +

+ +

+ + + + + + +
+ + + identifier_ + + + + +
+ + + + + + + + + + + + + + +
+ + +
+ +
+ + + + +
+ + + + + + + + + + + + + +
ArgumentDescriptionValues
+ + + + + (optional) + + + +
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ Token + + Description + ValuesRangeDefault
+ + + + + + + + .. + + + +
+
+
+
+ + + +
+ +
+ +
+
+
+
+ + + +
+ +

+ Example: + + + + + + + + + + +

+
+
+
+ + + + +

+ Return value: , +

+
+ + + +
+

+ + + default key: + + + + default keys: +
+ + +
+
+
+
+

+
+
+ + + + + +
+
+
+
+
+
+ +
+ CubeScript command & variable list +
+
+ + + + +
+ +
    + + +
  • + +
  • +
    +
+
+
+
+
+
+
+ + +
+
diff --git a/docs/xml/unix_cuberef2cubescript.sh b/docs/xml/unix_cuberef2cubescript.sh new file mode 100644 index 0000000000..94e86a2529 --- /dev/null +++ b/docs/xml/unix_cuberef2cubescript.sh @@ -0,0 +1,9 @@ +// Automatically allows *nix based platforms to transform ../reference.xml into ../../config/docs.cfg +// This requires "xsltproc" - which may already be installed on most Linux based operating systems. + +xsltproc -o ../../config/docs.cfg cuberef2cubescript.xslt ../reference.xml + +echo "" +echo "" +echo "This shell script has finished!" +sleep 10 \ No newline at end of file diff --git a/docs/xml/win32_cuberef2cubescript.bat b/docs/xml/win32_cuberef2cubescript.bat new file mode 100644 index 0000000000..4dc94d32e2 --- /dev/null +++ b/docs/xml/win32_cuberef2cubescript.bat @@ -0,0 +1,10 @@ +@echo off +rem Automatically allows MS Windows to transform ../reference.xml into ../../config/docs.cfg +rem This requires MSXSL, available at: http://www.microsoft.com/en-us/download/details.aspx?id=21714 +@echo on + +msxsl.exe -o ..\..\config\docs.cfg -v ..\reference.xml cuberef2cubescript.xslt + +echo THIS BATCH +echo IS FINISHED! +pause \ No newline at end of file