Alias

It defines an alias, that is, a shortcut to one or more commands. It may overwrite previous definitions of the alias.
Aliases will only act for the engine session they were defined in.
== Usage ==
If no parameters are given, the game prints followed by a list of all existing aliases and their values, if any. They appear in the order in which they were defined for the first time, starting with the newest.
The first parameter is the alias name (max. 31 characters, not case-sensitive) and all subsequent parameters are concatenated with a space character to form the command that the alias name will be associated with (max. 1023 characters). Passing no command behaves like passing the empty command.
Invoking the name of an alias like a command (after it has been defined with the alias command) will execute its associated command; Passing parameters has no effect.
The name of a new alias may not equal any existing console variable or console command.
If the alias already exists, its associated command will be overwritten.
When an alias is mapped to a command with quotation marks, the quotation marks do not become part of the alias. Instead, they decide whether semicolons terminate the alias command. If the command is run, then is stored as .
=== Examples ===
After running the command , typing in the console will execute .
After running the command , typing in the console will no longer do anything.
An example of an alias that toggles zoom. Running will alternate between running and 
An example of three aliases used to cycle between several binds.
:
Alias names may also use the prefixes and , see . A common use of alias is to change keybindings when a key is pressed or unpressed. For example, the following aliases can be used to make exit the engine (whereas alone will not):
== Technical details ==
Each alias is a struct consisting of a name, a command string value and a reference to the next alias next.
To iterate over all existing aliases, the game stores a reference to some "first" alias. When a new alias is created, it is inserted as the first element. When iterating over all aliases (such as when printing them via the command ), the alias that was created first will be the last element.
== Advanced uses ==
Ignoring the limitation that there can only be a predefined maximum number of aliases, the alias command alone makes the console Turing-complete. In other words, it is able to simulate any computer calculation, meaning a command can be run based on an arbitrarily complex way that aliased commands were invoked. For example, an alias can run another command if the amount of times the alias was invoked previously was prime. There are many uses that are more practical. 
If the limit of a predefined maximum number of aliases is not ignored, the console is only able to simulate a finite-state machine. However, due to how the alias command can simulate a finite-state machine, it negates the typical drawback of mathematical operations requiring extremely large quantities of states. This is because unlike a traditional finite-state machine, the results of inputs (contents of aliases) are not changed by default upon a transition. The following example helps illustrate this:
Here, after state A is activated, followed by input 1 firing, the functions of inputs 1 and 2 persist after state B becomes the current state. This attribute of transitions persisting between states until redefined allows for what are effectively switch statements, except the case is switched separately from when the switch is invoked. A set of binary switches, which are effectively bits, may be used to store data, which may be manipulated according to logic, allowing for reasonably efficient mathematical operations and comparisons of any data type, such as integers, doubles, or floats, all of which may be signed or unsigned, and of any length. Compare the ability to store a 32-bit value with 32 binary switches to a traditional finite-state machine's requirement of 232 states to store an equivalent amount of data.