Permissions & Voting

How the Discord bot's permission system and voting work — roles, server access, and votes.

Permissions & Voting

The bot makes no security decisions itself — every permission is checked server-side by RespawnHost. That keeps control safe.

Core principle: default is “denied”

Nobody may do anything until it’s explicitly allowed (default-deny). The server owner — whoever registered the server with /server add — may always do everything, including console commands.

Two levels

  1. Role permissions (/perm) — apply to an entire Discord role in this server.
  2. Server access (/access) — fine-grained: individual users or roles for a specific server.

Actions

Possible actions are start, stop, restart, kill, status, and all.

Voting

A permission can require a vote. The command then starts a vote instead of running immediately:

  1. A member runs e.g. /stop → the bot posts a vote embed with 👍/👎.
  2. Only roles allowed to vote (canvote) may cast a vote.
  3. When the yes-votes reach the threshold (threshold), the action runs.
  4. When the time (timeout) runs out, the vote expires with no action.

The embed updates live with the current tally. This lets the owner be away while trusted members handle start/stop by majority.

Parameters when setting a permission

ParameterMeaningDefault
voteRequire a vote?no
thresholdrequired yes-votes1
timeoutvote duration in seconds300
canvotemay this role vote?yes

Example

/perm set role:@Moderator action:stop vote:true threshold:2 timeout:300 canvote:true

Moderators can start a server stop; it needs 2 yes-votes within 5 minutes, otherwise the vote expires.

Live status panels

With /panel create you post a message that updates automatically (status, CPU, RAM, players). Use /panel list to see all active panels and /panel remove <id> to remove one.

Security

  • Console commands (/command) are reserved exclusively for the server owner — never via vote.
  • Every action is re-checked for permissions at the moment of execution.
  • A Discord guild belongs to exactly one owner — servers of other accounts cannot be added or affected.
  • /unlink removes the link and deactivates the associated API key immediately.