Soulmask Server Permissions

Server access permissions can be managed via console commands, which in turn saves files in the WS/Saved directory of the server.

Console Commands

These are commands you can enter using the in-game console.

EnableServerPermissionList InPermissionType[int] InEnable[int]

Enable or disable the usage of the specified permission type.

  • InPermissionType: The ID of the permission list
  • InEnable: Whether to enable or disable the permission list
    • 0: Disable the permission list
    • 1: Enable the permission list

NOTE: The effects of this command will be lost after a server restart. You must add the -serverpm command line argument (described below) if you want persistence.

Example command usage. The following will enable the account blacklist (ban list).

gm EnableServerPermissionList 1 1

AddServerPermissionList InPermissionType[int] InSteamID[string]

Add a player or IP to the list for the specified permission type.

  • InPermissionType: The ID of the permission list
  • InSteamID: The Steam ID of the player to add to the list if it is an account list, or the IP address to add if it is an IP list.

Example command usage. The following will add a player with the Steam ID 76561100000000000 to the account blacklist (ban list).

gm AddServerPermissionList 1 76561100000000000

The following will add the IP address 12.34.56.78 to the IP blacklist (ban list).

gm AddServerPermissionList 3 12.34.56.78

RemoveServerPermissionList InPermissionType[int] InSteamID[string]

Remove a player or IP from the list for the specified permission type.

  • InPermissionType: The ID of the permission list
  • InSteamID: The Steam ID of the player to remove from the list if it is an account list, or the IP address to remove if it is an IP list.

Example command usage. The following will remove a player with the Steam ID 76561100000000000 from the account whitelist (allow list).

gm RemoveServerPermissionList 2 76561100000000000

ShowServerPermissionDetails

Prints the current status of server permissions to the console.

Example command usage.

gm ShowServerPermissionDetails

Command Line

These arguments can be passed to the server on startup.

-serverpm mask[int]

Sets which permissions are enabled via a bitmask. To calculate the mask value, add up the values from the "Mask" column in the table below for the lists that you want to have enabled.

NOTE: You must specify this command line option in order for the permission state to persist after a server restart. If this option is missing from the command line, all permission lists will be disabled on server start.

Permission List Files

Each permission list saves to a file in the WS/Saved directory on the server. Each line in these files is a single Steam ID or IP address. These lists can be manually edited if the server is offline, but while the server is running, you should use the admin console commands described above.

Permission Types

There are 5 permission types which can be enabled or disabled, each with a list of player Steam IDs assigned to it.

ID Type Description Mask Associated File
0 Account Whitelist

If enabled, only players on the list may enter the server. Players are identified by Steam ID.

If you try to connect from an account that is not whitelisted, you will receive the message “Server is still self-testing!”

1 WhiteAccountList.txt
1 Account Blacklist

If enabled, players on the list may not enter the server. Players are identified by Steam ID.

Adding a player to this list will immediately kick them from the server regardless whether the blacklist is enabled or not. They will receive the message “Account banned by the admin.”

If you try to connect with an IP that is blacklisted, you will receive the message “Your account has been banned from accessing and logging into the server!”

2 BlackAccountList.txt
2 IP Whitelist

If enabled, the server will only accept connections from the listed IP addresses.

To whitelist your local network, you usually will need to whitelist the IP of your router rather than the private IPs of individual clients.

If you try to connect from an IP that is not whitelisted, you will receive the message “Server is still self-testing!”

4 WhiteIPList.txt
3 IP Blacklist

If enabled, the server will reject connections from the listed IP addresses.

Adding an IP to this list will NOT kick players currently connected from that IP.

If you try to connect from a blacklisted IP, you will receive the message “Your IP address has been banned from the server. Cannot log in!”

8 BlackIPList.txt
4 Mute list If enabled, listed players will be muted in game (unable to send chat messages to any channel). Players are identified by Steam ID. 16 BanSpeek.txt

Example: Ban a Player

Here is an example of how to ban a player from your server. You can use similar methods to edit other permission lists as well.

Enable Ban List

In order for a player ban to work, you first need to enable the account blacklist. To enable this on a permanent basis, you will need to add the following to your server startup command.

-serverpm=2

The value 2 is the "mask" value from the table above. If you want to enable more than just the ban lists, add their mask values and use the total here instead of 2.

NOTE: You need access to your server startup script to make this change. If your server is remotely hosted, there is a decent chance that the host has the account blacklist enabled by default. But if not, check if they offer the option in their control panel, or contact them to ask them to enable it. You can check whether the account blacklist is enabled in-game using the ShowServerPermissionDetails console command.

What if I need to enable the blacklist while the server is running?

If you find yourself in this situation, you can use the following admin command from within the game to enable the account blacklist.

gm EnableServerPermissionList 1 1

Note that this will only enable the list until the server is restarted. You still need to add the startup parameter if you want it to remain enabled after a server restart.

Find Steam ID

You will need to locate the Steam ID of the player you wish to ban. You cannot ban someone by name.

NOTE: The number that appears by player's names in game is the last 6 digits of their Steam ID. You will need their full Steam ID to ban them, but you can use this 6-digit number to confirm that you found the correct Steam ID in case you have multiple players with the same name.

Option 1: Server Log

Currently, the easiest way to locate a player's Steam ID seems to be the server log. This can be found within your server directory at WS/Saved/Logs/WS.log. If your server is remotely hosted, your provider should provide either a way to view the log or a way to download it via FTP or a file manager.

Within the server log, search for the name of the player you want to ban. Any time a player connects to the server, it will log a line that looks like this.

logStoreGamemode: player ready. Addr:1.2.3.4, Netuid:76561101234567890, Name:Sara

This line tells you their IP address, Steam ID and player name.

Option 2: Console Commands

If you do not have access to your log file for some reason (such as if you are not the server owner), there is another method for locating a player's Steam ID using in-game console commands.

  1. Make sure you have admin privileges enabled on the server via the gm key password command.
  2. Make sure the player you want to ban is loaded for you in the game. You will either need to be nearby the player, or use the WeiSui/Follow_Player_view to remotely view the player.
  3. Run the following console commands. (Do not use the "gm" prefix because that would send the output to the server log instead of your game console.)
    • GetAll HPlayerState PlayerName
    • GetAll HPlayerState UniqueID
  4. Examine the output of these commands. Here is an example.
    >>> GetAll HPlayerState PlayerName <<<
    0) HPlayerState /Game/Maps/Level01/Level01_Main.Level01_Main:PersistentLevel.HPlayerState_2147453922.PlayerName = Sara
    1) HPlayerState /Game/Maps/Level01/Level01_Main.Level01_Main:PersistentLevel.HPlayerState_2144100789.PlayerName = Crystal
    
    >>> GetAll HPlayerState UniqueID <<<
    0) HPlayerState /Game/Maps/Level01/Level01_Main.Level01_Main:PersistentLevel.HPlayerState_2147453922.UniqueId = 76561101234567890
    1) HPlayerState /Game/Maps/Level01/Level01_Main.Level01_Main:PersistentLevel.HPlayerState_2144100789.UniqueId = 76561109876543210
    
  5. Match up the actor IDs from each command to determine which player is which. In the above example, you can see that the player named "Sara" has the Steam ID 76561101234567890 because they share the same actor ID HPlayerState_2147453922. Make sure to match using the actor ID, and not the index printed at the start of the line. There is no guarantee that the lists will be in the same order.

TIP: You cannot copy text directly from the in-game console. However, the console output also prints in your local game log where you can copy it. You can find that log at %LocalAppData%\WS\Saved\Logs\WS.log.

Ban Player

There are different ways to ban a player, depending on whether the server is currently running.

Server is Running

If the server is currently running, you will need to connect to the server and use the in-game console to ban a player.

First, ensure you have admin privileges enabled via the gm key password command.

Enter the following console command to ban a player. Replace steamid with the player's Steam ID.

gm AddServerPermissionList 1 steamid

Example

gm AddServerPermissionList 1 76561101234567890

This will instantly kick the player from the server and ban them.

  • If they are not kicked, then you likely entered the wrong Steam ID.
  • If they are kicked, but then log back in, that means your account blacklist is not enabled. After enabling the list, you can kick them again using the command gm KickPlayer steamid, replacing steamid with the player's Steam ID.
Unbanning

If you want to unban someone from your server, the process is nearly identical to banning them. The only difference is that you use RemoveServerPermissionList instead of AddServerPermissionList

Example

gm RemoveServerPermissionList 1 76561101234567890
Server is Not Running

If you want to ban or unban people while the server is not running, you can directly edit the account blacklist file on the server, located at WS/Saved/BlackAccountList.txt.

Each line in the file represents a Steam ID of a banned player. You can add or remove lines to ban or unban players. Here is an example file where two players are banned.

76561101234567890
76561109876543210

NOTE: Editing the file while the server is running will not have an effect. You need to use the in-game console commands if the server is running.