Skip to main content

One-Word Story

Collaborative storytelling game where each member adds exactly one word at a time.

One-Word Story
Collaborative storytelling: each user adds one word at a time
Early Access - unlocked with the ScootKit Membership perk.
This module is storing data in your bot's database.
This module creates one top-level Slash-Command on your server.
This module has 2 configuration files.
This module is being actively used on over 100 other servers on SCNX.
This module is included for free in every plan. Learn more about prices.

Features

  • Designate one or more channels as story channels where members build a story together, one word per message.
  • Configurable success reaction added to every accepted word, with optional auto-removal after 5 seconds.
  • Anti-double-post protection: by default, a user cannot add two words in a row.
  • Deletion protection: if the user who posted the most recent word deletes their message, the bot reposts the last accepted word so the story stays readable.
  • Optional cap on maximum story length: once the cap is reached, no more words are accepted until a moderator ends the round.
  • Optional idle hint that pings the moderator role once after a configurable number of hours of inactivity, suggesting the round be ended.
  • Optional channel topic that updates after every accepted word with the latest word and total word count.
  • Optional strike system that can restrict access for users who repeatedly post invalid messages.
  • Milestones that reward users with roles or messages after contributing a configurable number of words to a single story.
  • Archive channel: when a moderator ends a round, the finished story is posted (and pinned) in a separate archive channel together with a contributor list.

Setup

  1. Enable the module in your SCNX dashboard.
  2. In the configuration, add at least one channel to the "Channels" list.
  3. The bot needs the "Send Messages", "Add Reactions", "Manage Messages", and "Manage Channels" permissions in the configured channels (the last one is required for the channel topic feature). If you configure an archive channel, the bot also needs "Send Messages" and "Manage Messages" (for pinning) there.
  4. Optionally configure a moderator role - members with this role (or with the "Manage Messages" permission, if no role is set) can run the mod-only commands.

Usage

In a configured story channel, members send messages containing exactly one word. The bot reacts with the configured success emoji to confirm the word was accepted, and optionally updates the channel topic. Invalid messages (more than one word, special characters, double-post by the same user, ...) are removed and the user is shown a brief hint that auto-deletes after 8 seconds.

When a moderator decides the round is done, they run /word-story end. The full story is rendered into an embed with all contributors and (if configured) posted to the archive channel before the channel state is reset.

Commands

Understand the documentation
In these docs, name:<Type> is an option of a slash-command with name name and the type Type. Options that not required, are described as [name:<Type>]. If the action of a command is vastly different between required and not-required options, we might list them separately.
Examples
  • /moderate ban user:<Member>: This command (/moderate ban) has an required option with the name "user" that only accepts one member as a value.
  • /moderate ban victim:<Member> reason:<Text>: This command (/moderate ban) has an required option with the name "victim" that only accepts one member as a value and another required option with the name "reason" that accepts any text as an value.
  • /moderate ban victim:<Member> reason:<Text> [proof:<Attachment>]: This command (/moderate ban) has an required option with the name "victim" that only accepts one member as a value, another required option with the name "reason" that accepts any text as an value and a not-required option with the name "proof" which allows one attachment as its value.
CommandDescription
/word-story statusShows the current word count and the last 30 words of the story (ephemeral).
/word-story fullShows the full current story in an ephemeral embed.
/word-story statsShows a top-15 contributor leaderboard for the active story (ephemeral).
/word-story end [title:<Text>]Moderator-only. Ends the active round, posts the finished story to the archive channel (if configured), and resets the channel for a new round.
/word-story new [opening:<Word>]Moderator-only. Starts a fresh round in an empty channel. Optionally seeds the story with a single opening word.

Configuration

In this configuration file, you can configure the One-Word Story game. Open it in your dashboard.

FieldDescription
ChannelsChannels in which the One-Word Story game runs.
Archive channelChannel where finished stories are posted (and pinned) when a moderator runs /word-story end. Leave empty to disable archiving.
Moderator roleRole required to run mod-only commands (/word-story end, /word-story new). Leave empty to require the "Manage Messages" permission.
Success-ReactionThe emoji the bot reacts with when a word is accepted.
Remove reactions after 5 seconds?If enabled, the success reaction is removed after 5 seconds to keep the channel clean.
Only one continuous message per userIf enabled, users cannot contribute two words in a row.
Message on wrong inputThe message sent when a user provides invalid input (auto-deleted after 8 seconds).
Protect against users deleting the last word?If enabled, the bot reposts the last accepted word if its message gets deleted.
Deletion protection messageOnly visible if deletion protection is enabled. The message sent when a user deletes the last accepted word.
Cap maximum story length?If enabled, no further words are accepted once the story reaches the configured length. A moderator must run /word-story end to start a new round.
Maximum story lengthOnly visible if the cap is enabled. Number of words at which the round automatically locks.
Message when story reaches the capOnly visible if the cap is enabled. Sent the first time the cap is hit in a round. Subsequent over-cap messages are deleted silently.
Send idle hint to moderators?If enabled, the moderator role is pinged once after a configurable number of hours without a new word, suggesting the round be ended.
Idle hint after X hoursOnly visible if the idle hint is enabled. Hours of inactivity before the moderator role is pinged.
Idle hint messageOnly visible if the idle hint is enabled. The message used for the idle ping.
Restrict users who repeatedly post invalid messages?If enabled, users who reach the configured threshold of wrong messages are restricted (either by removing their "Send Messages" permission or by adding a strike role).
Amount of wrong messages to trigger actionOnly visible if strikes are enabled. Wrong messages a user has to send to trigger restriction.
Give role on action, instead of removing permissionOnly visible if strikes are enabled. If enabled, the strike role is added to the user instead of removing their "Send Messages" permission.
Role given when strike threshold reachedOnly visible if the option above is enabled. The role given to users when they reach the strike threshold.
Message when user gets actionedOnly visible if strikes are enabled. The message sent when a user reaches the configured strike count.
Channel topic template (leave blank to disable)Channel topic set after each accepted word. Available placeholders: %lastword%, %firstword%, %count%.

Milestones

In this configuration file, you can set up milestones to reward users for contributing words to a single story. Open it in your dashboard.

FieldDescription
Word countThe number of accepted words a user must contribute in a single story to reach this milestone.
RolesRoles given to the user when they reach this milestone (optional).
MessageA congratulatory message sent when the user reaches this milestone (auto-deleted after 10 seconds).

Troubleshooting

The bot is not reacting to messages in the story channel
  • Make sure the channel is added to the "Channels" list in the configuration.
  • Make sure the bot has the "Add Reactions", "Send Messages", and "Manage Messages" permissions in the channel.
The channel topic is not updating
  • Make sure the bot has the "Manage Channels" permission in the story channel.
  • Discord rate-limits channel topic edits aggressively - it may take a moment for the topic to update after a flurry of words.
Finished stories are not being archived
  • Make sure an archive channel is configured.
  • Make sure the bot has "Send Messages" and "Manage Messages" (for pinning) permissions in the archive channel.

Stored data

The following data is being stored about every story channel:

  • The channel ID
  • The list of accepted words, each with the contributing user ID and message ID
  • A count of accepted words per contributing user
  • The ID of the user who posted the most recent word
  • Timestamps for when the round started and when the last word was added
  • Internal flags used for cap warnings and idle hints

To remove all data stored by this module, purge the module database.

Need more help?
Can't find what you're looking for? Our team is happy to help.