troubleshooting.

what to check when something does not work.

start with the symptom

test the smallest read-only command in the same channel before changing configuration. prefix commands and slash commands reach the same handlers, but Discord publishes and caches the slash tree separately. write down the exact reply: “you need” identifies the member’s permission, while “discord denied that action” points to havoc’s permissions or role position.

  1. 01

    prove the bot is reachable

    run ,ping, then ,help. no reply to either means the bot is offline, cannot see or send in the channel, or the prefix is different.

  2. 02

    inspect the live command

    run ,help command with the command’s real name. this shows its current syntax and the permission checked for the member.

  3. 03

    inspect configuration

    an administrator can run ,config view, then the module’s status or list command below. do not reset data just to see whether it helps.

,ping
,help ticket setup
,config view

missing, stale or silent commands

::slash commands are missing or stale

if prefix commands work, the running bot and command registry are healthy. the invite needs the application-command scope, the operator must sync the tree, and Discord may still cache a global update. use ,help meanwhile. economy entries never appear as slash commands because the live registry marks them prefix-only.

::a prefix command answers nothing

unknown prefix text is intentionally ignored. run ,prefix with the known default comma, and verify the path with ,help. if even ,ping is silent, check view channel, send messages and whether havoc is online. a blocked user or server can also be refused by the operator.

::the command says your roles cannot use it

this is a configured role restriction, not a Discord permission failure. a member with manage server can inspect ,restrictcommand list and remove the relevant rule with ,restrictcommand remove command role.

hierarchy and permission errors

“their highest role is at or above yours” refers to the staff member. “at or above mine” refers to havoc. move roles rather than granting unrelated permissions. managed integration roles, the default role, havoc itself and the server owner remain protected targets.

diagnostic commands for access and configuration
commandwhat it doesneeds
/help [category or command]show the invoking member’s required permissionanyone
/config rolesinspect configured server rolesadministrator
/config moderationinspect moderation configurationadministrator
/restrictcommand listlist command role restrictionsmanage server
/ticket statusshow ticket category, staff role, logs and open recordsmanage server
warningcheck both sides of an action

a staff member passing havoc’s command check does not prove the bot can perform the Discord action. havoc needs its own manage roles, moderate members, ban members, manage channels or voice permissions as appropriate, and its role must still outrank the target.

automod or logging is silent

::automod does not fire

run ,automod status. the system itself must be enabled and the relevant links, invites, spam, mentions, caps or words filter must be on or populated. then run ,automod whitelist list: a matching member, role or channel is exempt. havoc ignores bot messages and needs message content access to inspect ordinary messages.

::automod detects a message but cannot punish

inspect ,automod punishment. delete needs message access; warn needs its normal moderation path; timeout, mute, kick and ban need the corresponding Discord permission and hierarchy. test with a non-staff account below havoc rather than the server owner.

::logging sends nothing

run ,log to list routes and ,log ignore list for exclusions. the event must have a route, or use the supported all event. in the destination havoc needs view channel, embed links and manage webhooks. if its webhook was deleted, havoc recreates it on the next event when those permissions remain.

,automod status
,automod whitelist list
,automod punishment
,log
,log ignore list

music will not join or cuts out

::havoc will not join

the requester must already be in a voice channel. check havoc’s view channel, connect and speak permissions there, then try ,music play song name. “couldn’t find anything playable” means the resolver found no usable SoundCloud or YouTube result, not a voice permission problem.

::playback stops or havoc leaves

havoc leaves after the voice channel has no human listeners for three minutes, or after nothing has been queued for five minutes. a stream that can no longer be resolved is skipped. run ,music queue to distinguish an empty queue from a paused or failed track; use ,music resume only when playback is actually paused.

::the queue vanished after downtime

live voice state and the queue are in memory and do not survive a process restart. named playlists do persist; inspect them with ,music playlist list and restore one with ,music playlist play name.

tickets, panels or buttons fail

::a ticket will not open

run ,ticket status. both a category and staff role must exist, the member must be below their configured open-ticket limit and not appear in ,ticket blacklist list. in the category havoc needs view channel, manage channels, manage permissions, send messages and read message history. prefix ticket reasons also require manage messages so havoc can remove the public invocation; use /ticket create if that deletion is unavailable.

::a panel or button is dead after a restart

ticket and giveaway controls are dynamic and are designed to survive restarts. first confirm havoc is online and the original message, ticket category, staff role and stored record still exist. inspect tickets with ,ticket status and giveaways with ,giveaway list or ,giveaway view id. repost a ticket panel only after fixing its category or role.

::ticket setup finds no category

category names must match exactly and a name containing spaces must be quoted in prefix form. using the category id avoids ambiguity. the staff role must be assignable and below havoc’s highest role.

economy or giveaway state looks wrong

::an economy balance or item looks wrong

economy state is per server, so confirm the server before comparing results. use ,balance, ,inventory, ,bank and ,economy stats to inspect stored views; use ,trade list and ,auction list for unsettled market activity. these are prefix-only. do not ask the owner to use a reset command before preserving the ids and observed values.

::a giveaway should have ended while havoc was offline

entries and the deadline are persisted. on reconnect havoc catches up expired draws and retries an outcome that was settled but not announced. check ,giveaway view id for status and entry count. a deleted destination message or missing channel permission can prevent the visible post even when the stored draw is settled.

::a giveaway post count updates slowly

entry presses are retained immediately, but the visible post is refreshed at most every five seconds to avoid Discord edit limits. ,giveaway view id reads the stored record rather than relying on a possibly delayed footer.

dangerdo not repair state with deletion

giveaway delete removes the record and stops its countdown. owner economy reset commands erase balances or the full server economy. collect the giveaway, trade or auction id and report the discrepancy before using either.

the ai assistant refuses or stays quiet

run ,ai status as a member with manage server. mention-command interpretation must be on, and ai chat is restricted to a global whitelist controlled by the bot owner. a server administrator can toggle the feature with ,ai command on, but cannot add themselves to that whitelist.

::it ignores a mention

confirm ai command is on and ask the instance owner whether the member is whitelisted. the message needs actual text after the mention. repeated requests inside four seconds are throttled, and an explicit request receives a slow-down reply.

::it refuses an action

the assistant only selects commands from the live non-owner command catalog. the selected command still runs through normal role restrictions, permissions, hierarchy and confirmation rules. use ,help command to test the same action directly and expose the concrete access error.

::the problem still is not identified

follow the reporting checklist in the faq: exact input, time, server and channel ids, visible reply, and whether direct prefix invocation works. never include provider keys, Discord tokens or private conversation contents.