Skip to content

Instantly share code, notes, and snippets.

@timraay
Last active March 2, 2024 16:33
Show Gist options
  • Star 4 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save timraay/5634d85eab552b5dfafb9fd61273dc52 to your computer and use it in GitHub Desktop.
Save timraay/5634d85eab552b5dfafb9fd61273dc52 to your computer and use it in GitHub Desktop.
Documentation of HLL's RCON protocol and all available commands

Protocol

HLL servers open up a RCON port that lets people connect via TCP. All communication is and should be encrypted with a XOR cipher, of which the key will be sent upon opening the socket connection.

A few implementations can be found here:

Executing commands

Commands are simply (encrypted) strings with no special headers and the like. All responses are either SUCCESS, FAIL, EMPTY, or a custom string if the command should return information.

Commands may require one or more parameters. Parameters can be added behind the command itself, separated by a space. In some instances parameters are allowed to be wrapped in "quotation marks", making it possible to include spaces.

To execute any commands (except for the help command), the author needs to be authorized first. To do so, a login command has to be sent. If the response is not SUCCESS, the password is incorrect. Attempting to run a command without proper authorization will yield a FAIL.

Lists

Some commands may return a list as response. Each value is separated by a tab (\t). The first entry in the list will dictate the length of the list (excluding itself), and the response always ends with an additional tab: 2\tITEM1\tITEM2\t

WARNING: Some commands allow you to inject tabs into another command's response, which will cause programs attempting to unpack the list to fail. To prevent this from happening, you should replace any tabs before sending requests to the server.

An example of this is the vipadd command. When the name parameter here includes a tab, any subsequent get vipids commands will be programatically unreadable until the VIP is removed again using the vipdel command.

Built-in console

The game has a built-in RCON console which can be opened by pressing Ctrl + Alt + Shift + N. Depending on the admin role you have, you may still need to login to use certain commands.

Unique player IDs

Each player has a persistent unique ID (UID) associated to them, which is the ideal identifier to target individual players. A lot of commands do not accept UIDs however, and instead require the player's name. Carefully read the documentation of each command to see whether you can use UIDs or not.

UIDs come in different formats, depending on the player's platform. For Steam players, it will be their Steam64ID. For all other platforms it will be a version 4 UUID.

Commands

Legend:

<required>

[optional]

"may be quoted"

Commands are case-insensitive.

NOTE: In case no response is documented, you may assume the command will return SUCCESS.


Help

See all commands and their parameters.

NOTE: You don't have to be logged in to use this command.

Returns:

  • All available commands and parameters

Login <password>

Authorizes this connection to use commands.

Params:

  • password (str) - The server's RCON password

RconPassword <old_password> <new_password>

Changes the RCON password.

Params:

  • old_password (str) - The current RCON password
  • new_password (str) - The new RCON password

Server


Get Name

Get the server's name, as can be seen in the server browser.

Returns:

  • The server's name

Get Slots

Get the current and max amount of players on the server.

Returns:

  • The current and max player count, separated by a slash
> get slots
89/100

Get GameState

Get information about the current match.

WARNING: If the last player on a server leaves, the player count on their team is not updated to 0 and will stay 1 until a player joins the server.

Returns:

  • Detailed information about the current match
> get gamestate
Players: Allied: 48 - Axis: 50
Score: Allied: 2 - Axis: 3
Remaining Time: 0:31:44
Map: utahbeach_warfare
Next Map: stmariedumont_warfare

Get MaxQueuedPlayers

Get the max size of the server queue.

Returns:

  • The max queue length

Get NumVipSlots

Get the number of slots on the server that are reserved for VIPs.

Returns:

  • The number of reserved slots

SetMaxQueuedPlayers <size>

Changes the maximum size of the server queue.

Params:

  • size (int) - The queue size (max. 6)

SetNumVipSlots <amount>

Changes the amount of server slots reserved for VIPs.

Params:

  • amount (int) - The number of reserved slots

Say <message>

Generally known as the welcome message, shown on the deployment screen and when first spawning in.

Updates the welcome message, and shows the new message to every player currently spawned in.

Params:

  • message (str) - The welcome messagae

Broadcast <message>

Broadcasts a message at the top left of the screen for all players, or clears the current broadcast if the message is empty.

NOTE: The message parameter is still required, but it can be left completely empty. "Broadcast" would fail, while "Broadcast " would clear the current message.

Params:

  • message (str) - The broadcast message, leave empty to clear

ShowLog <timespan> ["filter"]

Get server logs up to the specified amount of minutes ago.

WARNING: The server keeps track of all logs until it is restarted. You cannot obtain logs of actions that happened prior to a server restart.

Params:

  • timespan (int) - The number of minutes ago that you want to include logs from. Setting this to, for instance, 5 will return all logs from now up to 5 minutes ago.
  • filter (str) - A phrase to filter all results by.

Returns:

  • Log messages separated by newlines (\n), or EMPTY if no logs match the given criteria. For more information on how to break down the response see the logs section.

Maps


Get Map

Get the current map. If the same map is played twice in a row, it will get a _RESTART suffix (eg. utahbeach_warfare_RESTART).

While the server is loading a new map (which takes approx. 5 seconds), it may show a map called Untitled_#, with # being the index of the map it is loading in rotation.

Returns:

  • The active map

Get MapsForRotation

Get a list of all existing maps. Not to be confused with the rotlist command, used to list all maps currently in rotation.

Returns:

  • A list of map names

RotList

Return the current map rotation of the server.

Returns:

  • A \n-delimited sequence of map names

RotAdd <map_name> [after_map_name] [after_map_ordinal]

Add a map to the rotation. This will be at the end, unless otherwise is specified.

WARNING: This command will not always return FAIL on failure, but instead may return a message explaining why it failed.

Changed in U14.7: map_name and after_map_name no longer need to be prefixed with /Game/Maps/ and are now case-insensitive.

Params:

  • map_name (str) - The map to add
  • after_map_name (str) - The name of a map already in rotation the map should be placed next after.
  • after_map_ordinal (int) - If after_map_name is in rotation more than once, after which instance of said map the new map should be added, by default 1 (1st)

RotDel <map_name> [map_ordinal]

Remove a map from the rotation.

WARNING: This command will not always return FAIL on failure, but instead may return a message explaining why it failed.

Changed in U14.7: map_name no longer needs to be prefixed with /Game/Maps/ and is now case-insensitive.

Params:

  • map_name (str) - The map to remove
  • map_ordinal (int) - If map_name is in rotation more than once, which instance of said map should be removed, by default 1 (1st)

Map <map_name> [map_ordinal]

Starts a 60-second timer shown to all players on the server, after which the current match is immediately ended (skipping the End of Round screen) and the specified map is laoded.

Changed in U14.7: A map no longer needs to be in rotation to be switched to

Params:

  • map_name (str) - The map to switch to, case-insensitive
  • map_ordinal (int) - If map_name is in rotation more than once, which isntance of said map should be switched to, by default 1 (1st)

QueryMapShuffle

Query whether map shuffling is enabled.

Returns:

  • Map Shuffle: TRUE or Map Shuffle: FALSE

ToggleMapShuffle

Toggle map shuffling on or off.

WARNING: This command can supposedly fail under certain unknown circimstances.


ListCurrentMapSequence

Assuming map shuffling has been enabled, returns the new, shuffled rotation

Returns:

  • A \n-delimited sequence of map names

Players


Get Players

Get a list of names and UIDs of all online players.

Returns:

  • A list of player names and UIDs:
> get players
2\t(WTH) Abu : 76561199023367826\tAnotherName : 12345678901234567\t

Get PlayerIds

Get a list of the UIDs of all online players.

Returns:

  • A list of player UIDs

Get AdminIds

Get a list of all admins, which includes their name, UID, and their role.

A list of available roles can be obtained using the get admingroups command.

Returns:

  • A list of all admins. Each item in the list is a string containing a UID, a role, and a name, all separated by a space:
> get adminids
2\t76561199023367826 senior (WTH) Abu\t12345678901234567 camera AnotherName\t

Get AdminGroups

Get a list of available permission groups or "roles", that can be assigned using the adminadd command.

Groups and their individual permissions can often be configured on the panel provided by Game Server Providers.

Returns:


Get VipIds

Get a list of all VIPs, which includes a UID and a comment (usually their name).

Returns:

  • A list of all VIPs. Each item in the list is a string containing a UID and a comment, all separated by a space:
> get vipids
2\t76561199023367826 Abu (Admin)\t12345678901234567 AnotherName\t

PlayerInfo <player_name>

Return detailed information about a player, including their team and unit, role, and kills.

NOTE: The PlayerInfo command is the only command that shows the full name of the player. All other commands will truncate names longer than 20 characters.

WARNING: The amount of information included may vary depending on the state of the player.

  • If the player is on the team select screen, their team will be None and their current loadout is not included.
  • If the player is not in a unit, no information related to their unit will be included.

WARNING: The player's loadout is only updated every time they spawn in.

WARNING: If a player's name has a space as 20th character, its truncated name will end with a space, which will cause this command to always fail. It is not possible to get detailed information about this player.

Params:

  • player_name (str) - The name of a player

Returns:

  • Detailed information about a player
> playerinfo (WTH) Abu
Name: (WTH) Abu
steamID64: 12345678901234567
Team: Allies
Role: Officer
Unit: 0 - Able
Loadout: NCO
Kills: 0 - Deaths: 0
Score: C 50, O 0, D 40, S 10
Level: 174

AdminAdd <"player_id"> <"role"> ["name"]

Assign an admin role to a user, granting them access to special permissions in-game.

Params:

  • player_id (str) - The UID of a player
  • role (str) - An assignable role
  • name (str) - A name for the player

AdminDel <player_id>

Remove any roles from a user, revoking their access to special permissions in-game.

Params:

  • player_id (str) - The UID of a player

VipAdd <"player_id"> <name>

Assign VIP permissions to a user, allowing them to use reserved VIP slots.

Params:

  • player_id (str) - The UID of a player
  • name (str) - A name for the player

VipDel <player_id>

Remove VIP permissions from a user, revoking their ability to use reserved VIP slots.

Params:

  • player_id (str) - The UID of a player

Moderation


Get TempBans

Get a list of all active temporary bans.

Each returned ban is a string (or so-called "ban log") that you have to parse yourself. It will include the UID, name at the time of ban, duration in hours, date banned, reason, and admin name:

76561199023367826 : nickname "(WTH) Abu" banned for 2 hours on 2021.12.09-16.40.08 for "Being a troll" by admin "Some Admin Name"

Both the reason and admin name are omitted if they were not provided when the player was banned.

WARNING: You may see some empty strings included in the array. These are expired bans that due to a game bug still affect the response.

You need the full, raw ban log to remove a temp ban.

Returns:


Get PermaBans

Get a list of all active permanent bans.

Each returned ban is a string (or so-called "ban log") that you have to parse yourself. It will include the UID, name at the time of ban, date banned, reason, and admin name:

76561199023367826 : nickname "(WTH) Abu" banned on 2021.12.09-16.40.08 for "Being a troll" by admin "Some Admin Name"

You need the full, raw ban log to remove a perma ban.

Returns:


Message <"player"> <"message">

Message a player with a specific message shown to them at the top right of their screen.

WARNING: Due to a game bug, using a name that contains one or more spaces to target a player will always fail. Use a UID instead to reliably target a player.

Params:

  • player (str) - The name or UID of a player
  • message (str) - The message shown to the player

Punish <"player"> ["reason"]

Kill a player with a specific message shown to them.

Params:

  • player (str) - The name of a player
  • reason (str) - The reason shown to the player

SwitchTeamOnDeath <player>

Make a player switch teams next time they die.

Params:

  • player (str) - The name of a player

SwitchTeamNow <player>

Make a player switch teams immediately, killing them if they are alive.

Params:

  • player (str) - The name of a player

Kick <"player"> ["reason"]

Kick a player from the server with a specific message shown to them.

Params:

  • player (str) - The name of a player
  • reason (str) - The reason shown to the player

TempBan <"player_id"> [duration] ["reason"] ["admin_name"]

Temporarily ban a player for the duration and reason specified.

WARNING: The <"player_id"> parameter technically also supports player names. However, aside from the use of non-unique identifiers being unsafe, the game server does not return FAIL in case of an unrecognized name, and instead replaces the UID with an empty string.

Params:

  • player_id (str) - The UID of a player
  • duration (int) - The duration of the ban in hours, defaults to 2
  • reason (str) - The reason shown to the player
  • admin_name (str) - The name of whoever applied the ban, for audit purposes only

PermaBan <"player_id"> ["reason"] ["admin_name"]

WARNING: The <"player_id"> parameter technically also supports player names. However, aside from the use of non-unique identifiers being unsafe, the game server does not return FAIL in case of an unrecognized name, and instead replaces the UID with an empty string.

Params:

  • player_id (str) - The UID of a player
  • reason (str) - The reason shown to the player
  • admin_name (str) - The name of whoever applied the ban, for audit purposes only

PardonTempBan <ban_log>

Remove a temporary ban.

Params:

  • ban_log (str) - A ban log as is returned by the get tempbans command

PardonPermaPan <ban_log>

Remove a permanent ban.

Params:

  • ban_log (str) - A ban log as is returned by the get permabans command

Configuration


Get Idletime

Get the current amount of minutes of inactivity before a player is automatically kicked.

Returns:

  • The number of minutes players can be idle for

Get HighPing

Get the current latency ("ping") threshold that will trigger an automated kick when surpassed.

Returns:

  • The latency threshold in milliseconds

Get TeamSwitchCooldown

Get the current team switch cooldown in minutes.

Returns:

  • The team switch cooldown

Get AutoBalanceEnabled

Get whether team auto balance is enabled or not.

Returns:

  • 0 or 1

Get AutoBalanceThreshold

Get the current auto balance player threshold.

Returns:

  • The auto balance threshold

Get VoteKickEnabled

Get whether players can initiate vote kicks or not.

Returns:

  • 0 or 1

Get VoteKickThreshold

Get the current vote kick threshold. When the number of votes reaches this threshold the player is kicked.

Returns:

  • The number of votes required

Get Profanity

Get a list of all profanities (censored words in chat) on the server.

Returns:

  • A list of all profanities

SetKickIdleTime <threshold>

Changes the time it takes for inactive players to be automatically kicked.

Params:

  • threshold (int) - The threshold in minutes, 0 to disable

SetHighPing <threshold>

Changes the latency threshold players have to not exceed in order to not be automatically kicked.

Params:

  • threshold (int) - The threshold in milliseconds, 0 to disable

SetTeamSwitchCooldown <cooldown>

Changes the cooldown applied before being able to switch teams again.

Params:

  • cooldown (int) - The cooldown in minutes

SetAutoBalanceEnabled <bool>

Enable or disable team auto balancing.

Params:

  • bool (bool) - Whether auto balance should be enabled, either on or off.

SetAutoBalanceThreshold <threshold>

Changes the maximum difference in players per team before players are forced to join the lesser full team.

Params:

  • threshold (int) - The threshold

SetVoteKickEnabled <bool>

Enable or disable vote kicking.

Params:

  • bool (bool) - Whether vote kicks should be enabled, either on or off.

SetVoteKickThreshold <threshold_pairs>

Set the amount of votes required to kick a player. The amount can be varied depending on the amount of players online at the moment.

Params:

  • threshold_pairs (str) - Expects a comma-separated list of playercount & threshold pairs. The first pair must always be for 0 players. You can add as many pairs as you want. For instance, 0,5,25,10 will require 5 votes when at least 0 players are online, or otherwise 10 votes when at least 25 players are online.

ResetVoteKickThreshold

Reset the vote kick thresholds defined with the setvotekickthreshold command.


BanProfanity <profanities>

Add one or more words to the list of profanities.

Params:

  • profanities (str) - A comma-separated list of words

Returns:

  • A list of all profanities

UnbanProfanity <profanities>

Remove one or more words from the list of profanities.

Params:

  • profanities (str) - A comma-separated list of words

Returns:

  • A list of all profanities

Logs

Logs can be obtained with the Showlog command. Logs are returned as a wall of text, oldest first, with each line representing an event that happened on the game server.

Each line is prefixed with how long ago the event took place, as well as the timestamp.

TODO: Add vote kick logs

[10:00:00 hours (1639106251)] CONNECTED A Player Name (12345678901234567)
[10:00:00 hours (1639122640)] DISCONNECTED A Player Name (12345678901234567)
[10:00:00 hours (1639143555)] KILL: A Player Name(Axis/12345678901234567) -> (WTH) A Player name(Allies/12345678901234567) with MP40
[10:00:00 hours (1639144073)] TEAM KILL: A Player Name(Allies/12345678901234567) -> A Player Name(Allies/12345678901234567) with M1 GARAND
[30:00 min (1639144118)] CHAT[Team][A Player Name(Allies/12345678901234567)]: Please build garrisons!
[30:00 min (1639145775)] CHAT[Unit][A Player Name(Axis/12345678901234567)]: comms working?
[15.03 sec (1639148961)] Player [A Player Name (12345678901234567)] Entered Admin Camera
[15.03 sec (1639148961)] Player [A Player Name (12345678901234567)] Left Admin Camera
[15.03 sec (1639148961)] BAN: [A Player Name] has been banned. [BANNED FOR 2 HOURS BY THE ADMINISTRATOR!]
[15.03 sec (1639148961)] KICK: [A Player Name] has been kicked. [BANNED FOR 2 HOURS BY THE ADMINISTRATOR!]
[15.03 sec (1639148961)] MESSAGE: player [A Player Name(12345678901234567)], content [Stop teamkilling, you donkey!]
[805 ms (1639148969)] MATCH START SAINTE-MÈRE-ÉGLISE WARFARE
[805 ms (1639148969)] MATCH ENDED `SAINTE-MÈRE-ÉGLISE WARFARE` ALLIED (2 - 3) AXIS 

WARNING: Certain log lines may include unescaped newlines, turning them into multiple lines. As of writing, this can happen with BAN, KICK and MESSAGE log lines.

[13:35 min (1671206494)] MESSAGE: player [A Player Name(12345678901234567)], content [This is line 1.
This is line 2.
And this is line 3!]

You can escape these newlines with Regex. The below example uses a negative lookahead to replace any newlines not followed by the log time you see at the start of each line with an escaped newline.

# Python
import re
logs = logs.strip('\n')
logs = re.sub(r"\n(?!\[.+? \(\d+\)\])", "\\n", logs)

Available Maps

NOTE: Some night maps are yet to release and are currently only available in PTEs.

Map Name Pretty Name* Base Gamemode Environment Attackers
carentan_offensive_ger CARENTAN OFFENSIVE Carentan Offensive Day GER
carentan_offensive_us CARENTAN OFFENSIVE Carentan Offensive Day US
carentan_warfare CARENTAN WARFARE Carentan Warfare Day
carentan_warfare_night CARENTAN NIGHT WARFARE Carentan Warfare Night
driel_offensive_ger DRIEL OFFENSIVE Driel Offensive Day GER
driel_offensive_us DRIEL OFFENSIVE Driel Offensive Day GB
driel_warfare DRIEL WARFARE Driel Warfare Dawn
driel_warfare_night DRIEL WARFARE Driel Warfare Night
DRL_S_1944_P_Skirmish DRIEL WARFARE Driel Control Dawn
DRL_S_1944_Day_P_Skirmish DRIEL WARFARE Driel Control Day
DRL_S_1944_Night_P_Skirmish DRIEL WARFARE Driel Control Night
ELA_S_1942_P_Skirmish EL ALAMEIN WARFARE El Alamein Control Day
ELA_S_1942_Night_P_Skirmish EL ALAMEIN WARFARE El Alamein Control Dusk
elalamein_offensive_CW EL ALAMEIN OFFENSIVE El Alamein Offensive Day GB
elalamein_offensive_ger EL ALAMEIN OFFENSIVE El Alamein Offensive Day GER
elalamein_warfare EL ALAMEIN WARFARE El Alamein Warfare Day
elalamein_warfare_night EL ALAMEIN WARFARE El Alamein Warfare Dusk
foy_offensive_ger FOY OFFENSIVE Foy Offensive Day GER
foy_offensive_us FOY OFFENSIVE Foy Offensive Day US
foy_warfare FOY WARFARE Foy Warfare Day
foy_warfare_night FOY WARFARE Foy Warfare Night
hill400_offensive_US** HILL 400 OFFENSIVE Hill 400 Offensive Day US
hill400_offensive_ger HILL 400 OFFENSIVE Hill 400 Offensive Foggy GER
hill400_warfare HILL 400 WARFARE Hill 400 Warfare Day
hill400_warfare_night HILL 400 WARFARE Hill 400 Warfare Night
hurtgenforest_offensive_US HÜRTGEN FOREST OFFENSIVE Hürtgen Forest Offensive Day US
hurtgenforest_offensive_ger HÜRTGEN FOREST OFFENSIVE Hürtgen Forest Offensive Foggy GER
hurtgenforest_warfare_V2 HÜRTGEN FOREST WARFARE Hürtgen Forest Warfare Day
hurtgenforest_warfare_V2_night HÜRTGEN FOREST WARFARE Hürtgen Forest Warfare Night
kharkov_offensive_ger Kharkov OFFENSIVE Kharkov Offensive Day GER
kharkov_offensive_rus Kharkov OFFENSIVE Kharkov Offensive Day RUS
kharkov_warfare Kharkov WARFARE Kharkov Warfare Day
kharkov_warfare_night Kharkov WARFARE Kharkov Warfare Night
kursk_offensive_ger KURSK OFFENSIVE Kursk Offensive Day GER
kursk_offensive_rus KURSK OFFENSIVE Kursk Offensive Day RUS
kursk_warfare KURSK WARFARE Kursk Warfare Day
kursk_warfare_night KURSK WARFARE Kursk Warfare Night
omahabeach_offensive_ger OMAHA BEACH OFFENSIVE Omaha Beach Offensive Day GER
omahabeach_offensive_us OMAHA BEACH OFFENSIVE Omaha Beach Offensive Day US
omahabeach_warfare OMAHA BEACH WARFARE Omaha Beach Warfare Day
omahabeach_warfare_night OMAHA BEACH WARFARE Omaha Beach Warfare Dusk
purpleheartlane_offensive_ger PURPLE HEART LANE OFFENSIVE Purple Heart Lane Offensive Day GER
purpleheartlane_offensive_us PURPLE HEART LANE OFFENSIVE Purple Heart Lane Offensive Day US
purpleheartlane_warfare PURPLE HEART LANE WARFARE Purple Heart Lane Warfare Rain
purpleheartlane_warfare_night PURPLE HEART LANE WARFARE Purple Heart Lane Warfare Night
remagen_offensive_ger REMAGEN OFFENSIVE Remagen Offensive Foggy GER
remagen_offensive_us REMAGEN OFFENSIVE Remagen Offensive Day US
remagen_warfare REMAGEN WARFARE Remagen Warfare Day
remagen_warfare_night REMAGEN WARFARE Remagen Warfare Night
stalingrad_offensive_ger STALINGRAD OFFENSIVE Stalingrad Offensive Day GER
stalingrad_offensive_rus STALINGRAD OFFENSIVE Stalingrad Offensive Day RUS
stalingrad_warfare STALINGRAD WARFARE Stalingrad Warfare Day
stalingrad_warfare_night STALINGRAD WARFARE Stalingrad Warfare Night
stmariedumont_off_ger ST MARIE DU MONT OFF St. Marie Du Mont Offensive Day GER
stmariedumont_off_us ST MARIE DU MONT OFF St. Marie Du Mont Offensive Day US
stmariedumont_warfare ST MARIE DU MONT WARFARE St. Marie Du Mont Warfare Day
stmereeglise_offensive_ger SAINTE-MÈRE-ÉGLISE OFFENSIVE St. Mere Eglise Offensive Dawn GER
stmereeglise_offensive_us SAINTE-MÈRE-ÉGLISE OFFENSIVE St. Mere Eglise Offensive Day US
stmereeglise_warfare SAINTE-MÈRE-ÉGLISE WARFARE St. Mere Eglise Warfare Day
stmereeglise_warfare_night SAINTE-MÈRE-ÉGLISE WARFARE St. Mere Eglise Warfare Night
utahbeach_offensive_ger UTAH BEACH OFFENSIVE Utah Beach Offensive Day GER
utahbeach_offensive_us UTAH BEACH OFFENSIVE Utah Beach Offensive Day US
utahbeach_warfare UTAH BEACH WARFARE Utah Beach Warfare Day
utahbeach_warfare_night UTAH BEACH WARFARE Utah Beach Warfare Night

* This is how the map appears in the MATCH START and MATCH ENDED log lines.
** Lowercase in the output of the Get Map and Get Gamestate commands.

Available Weapons

TODO: Add U14.8 equipment and tanks

NOTE: The British melee weapon uses a so-called "En Dash" character (–) as opposed to the standard hyphen (-).

Firearms

Category United States (US) Germany (GER) Soviet Union (RUS) Great Britain (GB)
Submachine Guns



M1A1 THOMPSON,
M3 GREASE GUN


MP40



PPSH 41,
PPSH 41 W/DRUM


Sten Gun Mk.II,
Sten Gun Mk.V,
Lanchester,
M1928A1 THOMPSON
Semi-Auto Rifles

M1 GARAND,
M1 CARBINE
GEWEHR 43

SVT40

Bolt-Action Rifles

KARABINER 98K


MOSIN NAGANT 1891,
MOSIN NAGANT 91/30,
MOSIN NAGANT M38
SMLE No.1 Mk III,
Rifle No.4 Mk I,
Rifle No.5 Mk I
Assault Rifles

M1918A2 BAR

STG44,
FG42
Bren Gun

Shotguns M97 TRENCH GUN
Machine Guns

BROWNING M1919

MG34,
MG42
DP-27

Lewis Gun

Sniper Rifles

M1919 SPRINGFIELD

KARABINER 98K x8,
FG42 x4
SCOPED MOSIN NAGANT 91/30,
SCOPED SVT40
Rifle No.4 Mk I Sniper

Pistols

COLT M1911

WALTHER P38,
LUGER P08
NAGANT M1895,
TOKAREV TT33
Webley MK VI

Flamethrowers M2 FLAMETHROWER FLAMMENWERFER 41 FLAMETHROWER
Melee Weapons M3 KNIFE FELDSPATEN MPL-50 SPADE Fairbairn–Sykes
Grenades

MK2 GRENADE

M24 STIELHANDGRANATE,
M43 STIELHANDGRANATE
RG-42 GRENADE,
MOLOTOV
Mills Bomb,
No.82 Grenade
Satchel Charges SATCHEL SATCHEL SATCHEL CHARGE Satchel
Anti-Personnel Mines M2 AP MINE S-MINE POMZ AP MINE A.P. Shrapnel Mine Mk II
Anti-Tank Mines M1A1 AT MINE TELLERMINE 43 TM-35 AT MINE A.T. Mine G.S. Mk V
Anti-Tank Rifles

BAZOOKA

PANZERSCHRECK

PTRS-41,
BAZOOKA
PIAT,
Boys Anti-tank Rifle
Flare Guns FLARE GUN FLARE GUN FLARE GUN No.2 Mk 5 Flare Pistol

Deployables

Category United States (US) Germany (GER) Soviet Union (RUS) Great Britain (GB)
Artillery Guns 155MM HOWITZER [M114] 150MM HOWITZER [sFH 18] 122MM HOWITZER [M1938 (M-30)] QF 25-POUNDER [QF 25-Pounder]
Anti-Tank Guns 57MM CANNON [M1 57mm] 75MM CANNON [PAK 40] 57MM CANNON [ZiS-2] QF 6-POUNDER [QF 6-Pounder]

Vehicles (Roadkills)

Category United States (US) Germany (GER) Soviet Union (RUS) Great Britain (GB)
Recon Vehicles M8 Greyhound Sd.Kfz.234 Puma BA-10 Daimler
Light Tanks Stuart M5A1

Sd.Kfz.121 Luchs

T70

Tetrarch,
M3 Stuart Honey
Medium Tanks Sherman M4A3(75)W

Sd.Kfz.161 Panzer IV

T34/76

Cromwell,
Crusader Mk.III
Heavy Tanks


Sherman M4A3E2,
Sherman M4A3E2(76)

Sd.Kfz.181 Tiger 1,
Sd.Kfz.171 Panther

IS-1


Firefly,
Churchill Mk.III,
Churchill Mk.VII
Half-tracks M3 Half-track Sd.Kfz 251 Half-track M3 Half-track M3 Half-track
Trucks

GMC CCKW 353 (Transport),
GMC CCKW 353 (Supply)
Opel Blitz (Transport),
Opel Blitz (Supply)
ZIS-5 (Transport),
ZIS-5 (Supply)
Bedford OYD (Transport),
Bedford OYD (Supply)
Jeeps Jeep Willys Kubelwagen GAZ-67 Jeep Willys

Vehicles (Armament)

NOTE: If a vehicle gets destroyed, any kills made with said vehicle that get counted after its destruction will have the vehicle name excluded from the weapon name. Eg. "COAXIAL M1919 [M8 Greyhound]" would become "COAXIAL M1919"

M8 Greyhound

Recon Vehicle - United States (US)

Category Name
Main Cannon M6 37mm [M8 Greyhound]
Coaxial Machine Gun COAXIAL M1919 [M8 Greyhound]

Stuart M5A1

Light Tank - United States (US)

Category Name
Main Cannon 37MM CANNON [Stuart M5A1]
Coaxial Machine Gun COAXIAL M1919 [Stuart M5A1]
Hull Machine Gun HULL M1919 [Stuart M5A1]

Sherman M4A3(75)W

Medium Tank - United States (US)

Category Name
Main Cannon 75MM CANNON [Sherman M4A3(75)W]
Coaxial Machine Gun COAXIAL M1919 [Sherman M4A3(75)W]
Hull Machine Gun HULL M1919 [Sherman M4A3(75)W]

Sherman M4A3E2 "75mm"

Heavy Tank - United States (US)

Category Name
Main Cannon 75MM M3 GUN [Sherman M4A3E2]
Coaxial Machine Gun COAXIAL M1919 [Sherman M4A3E2]
Hull Machine Gun HULL M1919 [Sherman M4A3E2]

Sherman M4A3E2 "76mm"

Heavy Tank - United States (US)

Category Name
Main Cannon 76MM M1 GUN [Sherman M4A3E2(76)]
Coaxial Machine Gun COAXIAL M1919 [Sherman M4A3E2(76)]
Hull Machine Gun HULL M1919 [Sherman M4A3E2(76)]

M3 Half-track

Half-track - United States (US), Soviet Union (RUS) & Great Britain (GB)

Category Name
Mounted Machine Gun M2 Browning [M3 Half-track]

Sd.Kfz.234 Puma

Recon Vehicle - Germany (GER)

Category Name
Main Cannon 50mm KwK 39/1 [Sd.Kfz.234 Puma]
Coaxial Machine Gun COAXIAL MG34 [Sd.Kfz.234 Puma]

Sd.Kfz.121 Luchs

Light Tank - Germany (GER)

Category Name
Main Cannon 20MM KWK 30 [Sd.Kfz.121 Luchs]
Coaxial Machine Gun COAXIAL MG34 [Sd.Kfz.121 Luchs]

Sd.Kfz.161 Panzer IV

Medium Tank - Germany (GER)

Category Name
Main Cannon 75MM CANNON [Sd.Kfz.161 Panzer IV]
Coaxial Machine Gun COAXIAL MG34 [Sd.Kfz.161 Panzer IV]
Hull Machine Gun HULL MG34 [Sd.Kfz.161 Panzer IV]

Sd.Kfz.171 Panther

Heavy Tank - Germany (GER)

Category Name
Main Cannon 75MM CANNON [Sd.Kfz.171 Panther]
Coaxial Machine Gun COAXIAL MG34 [Sd.Kfz.171 Panther]
Hull Machine Gun HULL MG34 [Sd.Kfz.171 Panther]

Sd.Kfz.181 Tiger 1

Heavy Tank - Germany (GER)

Category Name
Main Cannon 88 KWK 36 L/56 [Sd.Kfz.181 Tiger 1]
Coaxial Machine Gun COAXIAL MG34 [Sd.Kfz.181 Tiger 1]
Hull Machine Gun HULL MG34 [Sd.Kfz.181 Tiger 1]

Sd.Kfz 251 Half-track

Half-track - Germany (GER)

Category Name
Mounted Machine Gun MG 42 [Sd.Kfz 251 Half-track]

BA-10

Recon Vehicle - Soviet Union (GER)

Category Name
Main Cannon 19-K 45MM [BA-10]
Coaxial Machine Gun COAXIAL DT [BA-10]

T70

Light Tank - Soviet Union (GER)

Category Name
Main Cannon 45MM M1937 [T70]
Coaxial Machine Gun COAXIAL DT [T70]

T34/76

Medium Tank - Soviet Union (GER)

Category Name
Main Cannon 76MM ZiS-5 [T34/76]
Coaxial Machine Gun COAXIAL DT [T34/76]
Hull Machine Gun HULL DT [T34/76]

IS-1

Heavy Tank - Soviet Union (GER)

Category Name
Main Cannon D-5T 85MM [IS-1]
Coaxial Machine Gun COAXIAL DT [IS-1]
Hull Machine Gun HULL DT [IS-1]

Daimler

Recon Vehicle - Great Britain (GER)

Category Name
Main Cannon QF 2-POUNDER [Daimler]
Coaxial Machine Gun COAXIAL BESA [Daimler]

Tetrarch

Light Tank - Great Britain (GER)

Category Name
Main Cannon QF 2-POUNDER [Tetrarch]
Coaxial Machine Gun COAXIAL BESA [Tetrarch]

M3 Stuart Honey

Light Tank - Great Britain (GER)

Category Name
Main Cannon 37MM CANNON [M3 Stuart Honey]
Coaxial Machine Gun COAXIAL M1919 [M3 Stuart Honey]
Hull Machine Gun HULL M1919 [M3 Stuart Honey]

Cromwell

Medium Tank - Great Britain (GER)

Category Name
Main Cannon QF 75MM [Cromwell]
Coaxial Machine Gun COAXIAL BESA [Cromwell]
Hull Machine Gun HULL BESA [Cromwell]

Crusader Mk.III

Medium Tank - Great Britain (GER)

Category Name
Main Cannon OQF 57MM [Crusader Mk.III]
Coaxial Machine Gun COAXIAL BESA [Crusader Mk.III]

Firefly

Heavy Tank - Great Britain (GER)

Category Name
Main Cannon QF 17-POUNDER [Firefly]
Coaxial Machine Gun COAXIAL M1919 [Firefly]

Churchill Mk.III

Heavy Tank - Great Britain (GER)

Category Name
Main Cannon OQF 57MM [Churchill Mk.III]
Coaxial Machine Gun COAXIAL BESA 7.92mm [Churchill Mk.III]
Hull Machine Gun HULL BESA 7.92mm [Churchill Mk.III]

Churchill Mk.VII

Heavy Tank - Great Britain (GER)

Category Name
Main Cannon OQF 57MM [Churchill Mk.VII]
Coaxial Machine Gun COAXIAL BESA 7.92mm [Churchill Mk.VII]
Hull Machine Gun HULL BESA 7.92mm [Churchill Mk.VII]

Commander Abilities

Names are the same across all factions.

Category Name
Bombing Run BOMBING RUN
Strafing Run STRAFING RUN
Precision Strike PRECISION STRIKE
*Katyusha Barrage Unknown

* As in, kills with a Katyusha Barrage actually show up as "Unknown"

Removed Weapons

Name Comment
Lee-Enfield Pattern 1914 Removed in U14.5 in favor of the SMLE No.1 Mk III
Lee-Enfield Pattern 1914 Sniper Removed in U14.8 in favor of the Rifle No.4 Mk I Sniper

Bugged Weapon Names

Name Comment
FireSpot Was seen when a player on RUS team playing as Assault role killed an enemy. Supposedly this is related to the Molotovs you get with one the role's loadouts. What causes it to show up as "FireSpot" and not "MOLOTOV" is unknown and requires further testing. Chances are the same issue can be reproduced with flamethrowers.
UNKNOWN Can be observed when the reference to the killing soldier is lost. This is generally whenever a bleeding out player gives up after the player that downed him was killed or has disconnected.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment