Soulmask Server List
SoulmaskServers
ServersPluginSteam
soulmask-serverlist.com
ServersClaim ServerPlugin DocsPrivacySteam Store

© 2026 soulmask-serverlist.com

Not affiliated with Soulmask or CampFire Studio. Server data from public Steam APIs, updated every 30 minutes. IP geolocation by MaxMind GeoLite2.

FIRST OF ITS KIND

The Modding Framework
Soulmask Never Had

Write Lua plugins. Reward voters. Greet players. Build economies. Automate everything. One 5 MB binary, zero dependencies.

Download for Windows
Download for Linux

Free with your claimed server. Requires API key.

What You Can Build

Vote Rewards

Players vote on soulmask-serverlist.com, your server delivers items automatically. Included as a ready-to-use plugin.

Welcome Messages

Greet players when they join. Show server rules, MOTD, or a personalized welcome. Included.

Teleport Homes

Let players set homes and teleport back with chat commands like /sethome and /home.

Economy & Shops

Build an in-game economy with currency, trading, and NPC shops driven by chat commands.

Scheduled Events

Double XP weekends, raid nights, automatic restarts, timed broadcasts — all on a schedule.

Admin Tools

Permission-based commands, player management, server config changes — all scriptable.

How It Works

1

Drop In

Extract to your server folder. One binary, no installs.

2

Add API Key

Paste your key from the dashboard into config.yaml.

3

Start

Double-click start.bat. Plugins load, RCON connects, done.

Write Plugins in Lua

Drop a .lua file into the plugins/ folder. The framework loads it automatically. No compilation, no build steps. Edit, save, reload.

-- plugins/welcome.lua

plugin = {
    name = "Welcome",
    version = "1.0.0",
    description = "Greets players when they join"
}

function OnPlayerJoined(steamId, name)
    server.broadcast("Welcome " .. name .. "! Enjoy your stay.")
    log.info("Welcomed " .. name)
end

function OnChatCommand(steamId, name, cmd, args)
    if cmd == "rules" then
        server.broadcast("1. No griefing  2. Be respectful  3. Have fun")
    end
end

Plugin API

Every plugin gets access to the full server through a clean, documented API.

Server
server.broadcast(msg)Send message to all players
server.giveItem(steamId, item, qty, quality)Give item to player
server.teleport(steamId, x, y, z)Teleport player
server.setConfig(key, value)Change server settings live
server.save()Save the world
server.shutdown(seconds)Graceful shutdown with countdown
server.rcon(command)Execute any RCON command
server.isOnline(steamId)Check if player is online
server.getPlayers()Get all online players with positions
Permissions
permission.has(steamId, perm)Check if player has permission
permission.grant(steamId, perm)Grant permission
permission.addToGroup(steamId, group)Add player to group
Data
data.get(key, default)Read persistent plugin data
data.set(key, value)Write persistent plugin data
Logging
log.info(msg)Log to framework console

Event Hooks

Define functions matching event names. The framework calls them automatically.

HookWhen
OnPlayerJoined(steamId, name)Player connects to server
OnPlayerLeft(steamId, name)Player disconnects
OnChatMessage(steamId, name, channel, msg)Chat message sent
OnChatCommand(steamId, name, cmd, args)/command in chat
OnVoteReceived(steamId, playerName)Player voted on serverlist
OnServerStarted()Server finished loading
OnServerSaving()World save triggered
OnPluginLoaded()This plugin was loaded
OnConfigReloaded()Server config changed

Included Plugins

INCLUDED

vote-reward.lua

Rewards players when they vote on soulmask-serverlist.com. Queues rewards for offline voters and delivers them on next login. Fully configurable reward commands.

INCLUDED

welcome.lua

Broadcasts a welcome message when players join and a farewell when they leave. Simple starting point for writing your own plugins.

Under the Hood

Binary size5-10 MB (Windows/Linux)
LanguageRust (compiled, no runtime dependencies)
Plugin languageLua 5.4 (embedded VM, one per plugin)
Server connectionRCON protocol on port 19000 (auto-reconnect)
Player detectionPolls player list every 15 seconds
Chat eventsParsed from server log in real-time
Data persistenceJSON files per plugin (auto-saved)
PermissionsYAML-based groups and per-player grants
Vote webhooksHMAC-SHA256 signed, built-in HTTP server
PlatformsWindows x64, Linux x64

Configuration

# config.yaml

webhook:
  api_key: "smsl_your_key_here"   # from soulmask-serverlist.com/dashboard
  port: 7585                       # open this port in your firewall

rcon:
  host: "127.0.0.1"
  port: 19000
  password: ""

log_watcher:
  path: "../WS/Saved/Logs/WS.log"
  enable_chat_logging: true

player_tracker:
  poll_interval_secs: 15

FAQ

Do I need to install anything?

No. The framework is a single binary. Extract the ZIP, edit config.yaml, start. No Node.js, no Python, no runtime.

Does it modify the game server?

No. It runs alongside the server as a separate process and communicates through RCON. Your server files are untouched.

Will it break on game updates?

No. The framework uses the official RCON interface, not internal hooks. Game updates don't affect it.

Can I write my own plugins?

Yes. Create a .lua file in the plugins/ folder. The framework loads it on startup. See the API reference above.

How does it detect player joins?

It polls the online player list every 15 seconds and detects changes. No game modification needed.

Is the source code available?

The framework is distributed as a compiled binary. Plugin source code (Lua) is fully open and editable.

What if the game doesn't have RCON?

Soulmask dedicated servers have a built-in RCON interface on port 19000. It's always active, no setup required.

Ready to mod your server?

Claim your server, grab your API key, and start building. Your first plugin is 10 lines of Lua.

Claim Your Server
Download Framework