Command Interpolation
Server Name Command Interpolation
Server Name Command Interpolation (SNCI) provides a simple and easy form of scripting to server name. These can be used on the player list title as well.
How to use SNCI
The syntax for commands is {command_name,arg1,arg2,arg...} , which is placed within the server name. All characters can be escaped in order to have { , } , or , in closures. It means that you need to put a backslash (\) before { , } , or , if you want to use them in your servername. Whitespace of the command name or arguments is not trimmed.
Example
In this scenario, the following will be our server name:
<color=#b0b>The Stetzone</color>\n<color=#{random_list,b00,0b0,b0b}>Ruleless Anarchy</color>\n<color=#fc0><size=10>
{scp_counter} SCPs | {add,{alive_team,1},{alive_team,3}} Foundation Personnel | {add,{alive_team,2},{alive_team,4}}
Insurgents/Prisoners {warhead_detonated,| ☢ WARHEAD DETONATED ☢,}\n[{round_duration_minutes}:{round_duration_seconds}]
</size></color>
On the server list, it displays as a 20/20 server with the name of:
<color=#b0b>The Stetzone</color>
<color=#b00>Ruleless Anarchy</color>
<color=#fc0><size=10>3/5 SCPs | 12 Foundation Personnel | 4 Insurgents/Prisoners | ☢ WARHEAD DETONATED ☢ [8:29]</size></color>
The reason why it displays is:
-
The interpolator encounters {random_list,b00,0b0,b0b}.
-
The interpolator picks a random number from 1-3 (amount of items).
-
The interpolator resolves that item just in case it has closures within it.
-
Returned b00.
-
-
The interpolator then moves to {scp_counter}.
-
There were 5 SCPs at the start.
-
There are only 3 now.
-
Returned 3/5.
-
-
The interpolator keeps moving and finds {add,{alive_team,1},{alive_team,3}}
-
The interpolator resolves the arguments.
-
{alive_team,1} resolves to 9.
-
{alive_team,3} resolves to 3.
-
-
The interpolator adds the results together.
-
Returned 12.
-
-
The interpolator scrolls along and sees {add,{alive_team,2},{alive_team,4}}. This is the same as #3 so it returned 4 and we'll skip it.
-
The interpolator goes to the next closure: {warhead_detonated,| ☠ WARHEAD DETONATED ☠,}
-
The warhead has detonated so it selects the first argument.
-
The interpolator resolves the first argument.
-
Returned | ☠ WARHEAD DETONATED ☠
-
-
The interpolator gets to {round_duration_minutes}.
-
The round has been going on for 8 minutes, 29 seconds.
-
Returned 8.
-
-
The interpolator finally reaches {round_duration_seconds}.
-
The round has been going on for 8 minutes, 29 seconds.
-
Returned 29.
-
Commands
Server info
| Name | Arguments | Returns |
| ip | None | The IP address of the server. |
| port | None | The port of the server . |
| number | None | Assuming the port starts at 7777, the server number. |
| version | None | The leading compatible version. |
Player Counts
| Name | Arguments | Returns |
| player_count | None | The current number of players on the server |
| full_player_count | None; [full] | The current out of maximum players on the server, or full if full. |
| max_players | None | The maximum number of players on the server. |
Round Info
| Name | Arguments | Returns |
| round_duration_minutes | None | The duration of the round in minutes. |
| round_duration_seconds | None | The duration of the round in seconds, ignoring minutes (always <60). |
| kills | None | Total kills this round. |
| kills_frag | None | Total frag grenade kills this round. |
| mtf_respawns | None | Total MTF respawns this round. |
| warhead_detonated | None;[detonated][undetonated] | Detonated or undetonated (default "☢ WARHEAD DETONATED☢" or
empty) depending on whether or not the warhead has been detonated. |
Alive Players
| Name | Arguments | Returns |
|---|---|---|
alive_role |
[role], ex: 001 or ClassD |
The number of players alive with the specified role. The role can be provided as a role name (e.g. ClassD) or a numeric role ID (e.g. 001). |
alive_team |
[team], ex: MTF or 1 |
The number of players alive in the specified team. The team can be provided as a team name (e.g. MTF) or a numeric team ID (e.g. 1). |
Team Numbers for alive_team
| Team Name | Team Number |
|---|---|
| SCPs | 0 |
| FoundationForces | 1 |
| ChaosInsurgency | 2 |
| Scientists | 3 |
| ClassD | 4 |
| Dead | 5 |
| OtherAlive | 6 |
| Flamingos | 7 |
SCP Info
| Name | Arguments | Returns |
| scp_counter | None | Alive SCPs (except for zombies) out of initial SCPs of the round. |
| scp_start | None | Initial SCPs of the round. |
| scp_killed | None | SCPs killed this round. |
| scp_kills | None | Kills by SCPs this round. |
| zombies_recalled | None | Zombies recalled this round. |
Class D Info
| Name | Arguments | Returns |
| classd_counter | None | Escaped Class Ds out of initial Class Ds of the round. |
| classd_start | None | Initial Class Ds of the round. |
| classd_escaped | None | Class Ds escapees this round. |
Scientist Info
| Name | Arguments | Returns |
| scientist_counter | None | Escaped scientists out of initial scientists of the round. |
| scientist_start | None | Initial scientists of the round. |
| scientist_escaped | None | Scientist escapees this round |
Randomization
| Name | Arguments | Returns |
| random | [max]; [min] [max] | Random decimal between the min (default 0) and max. |
| random_list | [item 1] [item 2] […] | A random item |
Constants
| Name | Arguments | Returns |
| constant_e | None | Euler's number. |
| constant_pi | None | Pi (π). |
Operations
| Name | Arguments | Returns |
| add | [a] [b] | a + b |
| subtract | [a] [b] | a - b |
| multiply | [a] [b] | a * b |
| division | [a] [b] | a / b |
| power | [a] [b] | a ^ b |
| log | [value]; [base] [value] | Log [base] (default 10) of [value]. |
| ln | [value] | Natural log of [value] |
Rounding
| Name | Arguments | Returns |
| round | [value] | Rounds to the nearest whole number. |
| round_up | [value] | Rounds up to the nearest whole number. |
| round_down | [value] | Rounds down to the nearest whole number. |
Comparisons
| Name | Arguments | Returns |
| equals | [a] [b] | Checks equality of [a] and [b] by string representation. |
| greater | [a] [b] | "True" if [a] > [b], else "False". |
| lesser | [a] [b] | "True" if [a] < [b], else "False". |
| greater_or_equal | [a] [b] | "True" if [a] >= [b], else "False". |
| lesser_or_equal | [a] [b] | "True" if [a] <= [b], else "False". |
Boolean Logic
| Name | Arguments | Returns |
| not | [value] | Inverts [value]. |
| or | [a] [b] | "True" if [a] OR [b] are true, else "False". |
| and | [a] [b] | "True" if [a] AND [b] are true, else "False". |
| xor | [a] [b] | "True" if [a] OR [b] but NOT [a] AND [B], else "False". |
| if | [condition] [a]; [condition] [a] [b] | [a] if [condition] is true else [b] (default empty) |
No comments to display
No comments to display