permissions & security.

understanding how havoc secures your server.

what the invite grants

the standard invite asks for basic chat, embeds, reactions, message history, application commands and voice access. it does not ask for administrator. moderation, channel management and role management need additional, action-specific permissions before you use those modules.

warningadministrator bypasses channel overwrites

administrator is broad by design. if your policy depends on a private channel overwrite denying the bot, do not grant administrator; give explicit permissions and test the bot’s effective access in that channel.

a narrower permission set

the exact set depends on the actions you expose. read and send access are needed anywhere havoc must receive a prefix command or post a result. add the following discord permissions only for modules you use.

module permission map
commandwhat it doesneeds
/moderationban members, kick members, moderate members, manage messages, and manage nicknames for the matching actionsaction-specific
/jail and managed rolescreate or apply roles and establish the jail channel overwritesmanage roles, manage channels
/channels and cleanuplock, hide, rename, slow, or purge channels and messagesmanage channels, manage messages
/voicemove, disconnect, server-mute, or server-deafen membersmove, mute, or deafen members
/logging and automodconfigure routes and filters; enforcement also needs the chosen punishment permissionmanage server plus action-specific
/rolesgrant, remove, restore, or schedule rolesmanage roles
/musicenter a voice channel and play audioview, connect, speak
/information and economyread and reply in the command channelview channel, send messages

configuration commands frequently require manage server or administrator from the person running them. that check is separate from havoc’s own ability to carry out the resulting action.

checks on the person running a command

every command carries its own required discord permissions in the live registry. havoc checks the member’s effective permissions in the channel where the command runs. administrator satisfies discord permission checks, but does not bypass server-owner-only rules or role hierarchy.

,help ban
,help purge
,help config
::ban members
required for ban-family actions; it does not imply manage server.
::manage messages
used for purge, snipe-cache controls, embeds, and sending exact text.
::manage server
used by module configuration and command restrictions.
::administrator
required by the core config family and server-prefix changes.
::server owner
required in addition to administrator for the antinuke administrator list.

,help <command> reports the current requirement. use it before creating a staff role rather than granting administrator to solve one denied command.

role hierarchy

permissions authorize an action; hierarchy decides which target is reachable. havoc cannot moderate a member whose highest role is at or above havoc’s highest role. except for the server owner, a moderator also cannot target themselves or anyone whose highest role is at or above their own.

role commands reject the default role, managed integration roles, roles at or above havoc, and roles at or above the acting member. the server owner and havoc itself are never moderation targets. move havoc’s role above every role it should manage, but keep it below trusted administrator roles.

warninga permission does not override hierarchy

granting ban members or manage roles will not fix a target above the actor or the bot. reorder roles first; repeatedly retrying the command cannot change discord’s hierarchy decision.

channel overwrites

without administrator, channel and category overwrites affect havoc just like any member. it needs view channel to receive commands, send messages to answer, read message history for lookups and reply targeting, and manage messages for deletion. logging destinations must allow havoc to view and send there even if ordinary members cannot.

staff permissions are also evaluated in the current channel. a role may have manage messages at server level and still be denied where an overwrite removes it. run a diagnostic command in the same channel where the real action fails, then inspect both the member’s and havoc’s effective channel permissions.

role gates

command restrictions add role membership on top of discord permissions. they are useful when several teams share the same discord permission but only one should use a particular havoc command. a parent restriction covers its subcommands, and satisfying the role gate never grants the command’s underlying permission.

role gates commands
commandwhat it doesneeds
/restrictcommand add <command> <role>attach an allowed role to one command pathmanage server
/restrictcommand remove <command> <role>remove one allowed rolemanage server
/restrictcommand listreview all command-to-role gatesmanage server
/restrictcommand resetclear every stored gatemanage server
,restrictcommand add ban @moderator
,restrictcommand add "config view" @administrator
,restrictcommand list

who may change configuration

setup is a read-only guide available to server members. the core config family and server-prefix changes require administrator from the person running them. the antinuke list additionally requires the server owner. module configuration commonly requires manage server; setupmuterequires manage server and manage channels. these checks do not grant havoc the bot permissions needed for those actions.

the web dashboard first requires that the signed-in discord account can manage the server. the bot API then performs action-specific permission and hierarchy checks again. see web dashboard for the implemented browser surfaces.

private input and replies

most prefix replies are ordinary channel messages, and most slash replies are visible to the channel. a small set of self-serve or diagnostic commands, including help and the confirmation from say, uses an ephemeral slash response. commands whose typed input is marked private attempt to delete the prefix invocation before checking or processing it; if deletion fails, the handler is told not to leak the content farther.

dangerchoose the channel before typing sensitive text

do not assume every command response is private. use slash commands when an ephemeral response is documented, and keep reports, reasons, ids, and configuration output in staff-only channels. havoc cannot erase a prefix invocation without manage messages in that channel.