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
- Role permissions (
/perm) — apply to an entire Discord role in this server. - 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:
- A member runs e.g.
/stop→ the bot posts a vote embed with 👍/👎. - Only roles allowed to vote (
canvote) may cast a vote. - When the yes-votes reach the threshold (
threshold), the action runs. - 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
| Parameter | Meaning | Default |
|---|---|---|
vote | Require a vote? | no |
threshold | required yes-votes | 1 |
timeout | vote duration in seconds | 300 |
canvote | may 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.
/unlinkremoves the link and deactivates the associated API key immediately.