Links
🧐

How it works?

This page is intended to help developers learn how to integrate currently unsupported games with StaffWatch by creating custom integration packages.

What is StaffWatch?

StaffWatch is a moderation platform built to allow community owners to manage the players in their community-game server. The platform stores data about players and their actions (chat/commands/etc) and also gives server moderators the ability to commend, warn, kick, and ban players from the server.
If you have never used StaffWatch, this video may help you understand what it looks like for staff members!

The Game Must Support

  • Community Servers: The game must allow community-ran servers with support for plugins. A game such as Rocket League would make no sense to integrate, since it does not offer community servers.
  • Requires Moderation: Game servers must require moderation. A game that would not benefit from warnings, kicks, and bans would be useless when integrated unless the only goal was to store player data/logs.
  • Custom Resources: The game server must allow custom resources or plugins, or obviously there would be no way to integrate it with StaffWatch.
  • RCON or Recurring Requests: The game must support either RCON requests, or at least be able to ping an endpoint on a recurring schedule to receive commands.
  • Client/Server-Sided Code: The game must support both client-sided and server-sided code bases to achieve full functionality. At the very least, server-sided must available.
  • Supports API Requests: The game must support GET/POST requests in order for the integration to work at all. Almost every function of StaffWatch uses API requests to function.
  • Supports Ban Player Check: The game must be able to verify a player is not banned before allowing them into the game. This will be done with a POST request.
  • Primary Identifier: The game must have some sort of static identifier that is unique to each player. Other identifiers can be provided for logging purposes, but one must be the primary identifier and it must be unique to every single player. Example would be a Steam64 ID.

Integration Goals

  • Collect and send relevant user identifiers (Discord/UUID/Steam64/etc)
  • Support commendations, warnings, kicks, and bans.
    • Receive action data via RCON or web-based command queue.
    • Announce these actions in game, and remove player from server is action is kick or ban.
  • Support in-game commands.
    • /commend -> Commends a user in the panel.
    • /warn -> Warns a user in the panel.
    • /kick -> Kicks a user in the panel.
    • /ban -> Bans a user in the panel.
    • /report -> Players can report other players specifying a reason.
    • /trustscore -> View player's trust-score in StaffWatch.
    • /profile -> Provides access key that can be used to view StaffWatch profile.
  • Send server and event logging data to StaffWatch
    • Event Logs: Generally includes data such as player deaths, money transactions, etc.
    • Server Logs: Provides logging for player chat messages and commands.
    • Note: Necessary level of logging integration greatly depends on the game!
  • Periodically update StaffWatch with current players on the server.
  • Keep track of what players are staff. Use the API endpoint to check.
  • Reject connection when banned players attempt to join.

API Endpoints

In order to make any integration package, you will need to understand the API endpoints you have access to and how to use them. Click below to learn more.

Examples

The easiest way to gain an understanding of how StaffWatch works is by reading the code from integration packages that already exist. Click below to view existing packages.