Squadmin is an administrative tool for Squad servers, providing integrations, automation, logging, and easy web-based administration. If you are already familiar with administrating Squad servers, think of Squadmin as a new, hosted SquadJS with an easy-to-use web user interface and integrations that play nice with your existing tooling.
Squadmin entered open beta on 24 January, 2025! All communities are welcome to sign up and try out Squadmin! For more details join our Discord and see this post in announcements.
Organizations Subscribed
26
Servers Tracked
29
Players Online
356
Squadmin establishes an RCON connection to your server, providing up-to-date information about your server and allowing modules to take administrative action on your behalf.
Squadmin can connect remotely to your squad server to follow and ingest log information. When you give Squadmin access to logs, it combines this information with your RCON information in realtime, providing enriched data to your admins and modules.
Squadmin uses Discord role-based authentication and authorization everywhere. Admins don't need to make a Squadmin account, they just log in with discord.
Squadmin integrates with 3rd party services such as Squad Whitelister and Battlemetrics. Squadmin can use squad whitelister to automagically give your admins permissions to modules, as well as allow modules to interact with Battlemetrics. Want more integrations? Request them in our Discord.
Squadmin provides a dashboard where you can view the current state of your server. Squadmin also provides a view of different logs, from chat messages and team kills to which player entered which vehicle when. This information is available to your admins and the modules you install.
Developers who join our closed beta developer program can write custom modules for Squadmin in luau. Use the modules Squadmin provides, or write your own. Developers can also publish their modules so other communities can use them with a push of a button!
When you first connect your Squad server to Squadmin nothing happens. You will see a list of modules other Squadmin users have created and published, and you can pick-and-choose which modules to install. You click a button to install a module, click a button to enable the module, and now you have additional fancy features for your Squad server.
Know a competent programmer and want more features? Squadmin modules are written in lua, specifically luau, the same programming language that powers Roblox. You can write and deploy your own custom modules. All of the hard stuff is already done for you!
Examples of existing modules deployed in production now are:
Take a look at a simple module which kicks a player and adds a note to their Battlemetrics profile triggered on !kick playerName a kick message:
local MODULE = {}
---@param chat_message SquadChatMessage
function MODULE.on_chat_message(chat_message)
local sender = chat_message.steam_id:squad_player()
if sender == nil then
return
end
local name, message = string.match(chat_message.message, "^!kick (%g+) (.+)")
if name ~= nil then
-- Make sure the user who sent this message has the warn permission
if not sender:has_permission(KICK_PERMISSION) then
sender:warn("You do not have permission to do that")
return
end
local target_player = SERVER:match_player_name(name, sender)
if target_player == nil then
return
end
target_player:kick(message)
local battlemetrics_user = target_player:battlemetrics_user()
local note = string.format(
"%s kicked player with the following reason:\n%s",
chat_message.name,
message
)
battlemetrics_user:add_note(note)
sender:warn(
"Player was kicked and a note was added to their battlemetrics profile"
)
local audit_message = string.format(
"%s kicked %s with message %s",
chat_message.name, target_player.name, message
)
SERVER:audit_log(audit_message, {
sender:player(),
target_player:player()
})
end
end
KICK_PERMISSION = ModuleDefinedPermission.new(
"In-Game Kick Permissions",
"Users with this permission can use the in-game !kick command"
)
MODULE.permissions = {
KICK_PERMISSION
}
return MODULE