Skip to main content

Polls

Poll system with buttons, timers, and real-time vote counting.

Commands

/poll

Creates a new poll in the current channel with voting buttons.

ParameterTypeRequiredDescription
questionstringYesPoll question (max 256 characters)
option1stringYesFirst option
option2stringYesSecond option
option3stringNoThird option
option4stringNoFourth option
option5stringNoFifth option
option6stringNoSixth option
option7stringNoSeventh option
option8stringNoEighth option
option9stringNoNinth option
option10stringNoTenth option
durationstringNoDuration (e.g., 30m, 1h, 24h, 7d, 2w). Default from configuration.
anonymousbooleanNoHide poll author (overrides default setting)
multiplebooleanNoAllow multiple votes (overrides default setting)

Permissions: Configurable (everyone / moderation_roles / custom)

Example: /poll question:What language do you prefer? option1:Polish option2:English option3:Both duration:24h

Success:

  • Sends embed with question, options, and buttons to the channel (visible to all)
  • Ephemeral confirmation for the creator
  • Log in "polls" module

Errors:

  • Missing permissions to create polls
  • Invalid duration format
Time Formats

Supported formats: 30m (minutes), 1h (hours), 7d (days), 2w (weeks).


/polls

Displays a list of active (open) polls on the server.

ParameterTypeRequiredDescription
(none)

Permissions: Everyone

Example: /polls

Success: Ephemeral embed with a list of up to 10 active polls (question, channel, number of options, expiration time)
Errors:

  • No active polls (info message)

Voting

Voting is done by clicking buttons under the poll:

Single-vote mode (default)

  • Clicking an option → casts a vote
  • Clicking the same option again → retracts the vote
  • Clicking a different option → changes the vote (old vote removed)

Multiple-vote mode

  • Clicking an option → adds/retracts vote (toggle)
  • Can vote on multiple options simultaneously

After each vote, the embed is automatically updated with new vote counts and percentages.


Auto-closing

Polls with a set duration are automatically closed after expiration:

  1. Every 60 seconds the bot checks expires_at of all open polls
  2. After expiration:
    • Embed gets the prefix "📊 POLL CLOSED" and changes color to gray
    • A visual bar chart with results is added
    • Buttons are disabled
    • Log in "polls" module

Configuration

OptionDescriptionDefault Value
colorPoll embed color (hex)#5865F2
default_durationDefault durationnone (no limit)
default_anonymousAnonymous by defaultfalse
default_multipleMultiple votes by defaultfalse
create_permissionWho can create pollseveryone
create_rolesRoles for custom permissionnone
Anonymous Polls

When a poll is anonymous, the embed doesn't show the author (no "Author" section). The footer shows "Anonymous". Votes are still assigned to users in the database (for deduplication purposes), but are not publicly visible.