// guide / engagement

02

Engaging your members

Member-facing tools for your community.

01

Fun tools

The fun tools are exactly what they sound like. Light, instant, no setup required. They exist to give members easy ways to break a tie, settle a bet, or post a quick reaction. None of them touch the moderation or AI-access layers; any member who can use slash commands in your guild can use these.

  1. Flip a coin when you need a random binary decision:
    /fun coinflip
    The bot replies with heads or tails. The randomness is real (Node's crypto-grade PRNG), not a weighted pick. Both outcomes are equally likely.
  2. Pick from a list of options when "heads or tails" is not enough:
    /fun pick options:"option 1, option 2, option 3"
    The command takes a single options parameter containing a comma-separated list of choices. The bot splits on commas, picks one of the supplied options at random, and announces it. Useful for "what should we play tonight?" or "who buys the next round?". Add as many comma-separated entries as you like inside the one string.

None of these tools require permissions beyond the default member ability to use slash commands. None of them store any state. The bot does not remember what coin flips were heads or what options were picked. They are pure stateless utilities by design.

If your guild has channels where casual tools should not be runnable (an announcements channel, say, or a serious-discussion channel), restrict slash-command usage to specific channels using Discord's built-in Integrations settings under server settings. The bot does not need to enforce that itself; Discord's permission system handles it.

02

Custom lists and random picks

Custom lists are named, reusable pick-lists your server saves once and draws from whenever. Think map pools, game-mode rotations, a roster to draw a winner from, or anything else you would otherwise re-type into /fun pick every time. Mods curate the lists; anyone can pick from them.

  1. Create or replace a list (Manage Messages):
    /list set name:"maps" items:"Ilios, Lijiang, Oasis, Nepal, Busan"
    Items are comma-separated and de-duplicated. Edit a list in place with /list add name:maps items:"Antarctica" and /list remove name:maps items:"oasis" (matching is case-insensitive), or drop it entirely with /list delete name:maps.
  2. Pick from a list (anyone):
    /list pick name:maps
    /list pick name:maps count:3
    The bot draws count distinct items at random (1–25, default 1). Handy for "what map next?" or drawing names without re-typing the pool.
  3. Browse what exists:
    /list show name:maps
    /list all
    /list show prints one list's items; /list all lists every saved list with its item count. The name field autocompletes from existing lists everywhere it appears.

Lists are case-insensitive by name and shared across the guild, capped at 25 lists of up to 100 items each. Editing is gated to Manage Messages so a shared map pool cannot be wiped by just anyone; picking and viewing are open to all. For a one-off pick you do not want to save, /fun pick still takes a comma-separated list inline.

04

Meme tools

The clip-to-GIF tool is a member-facing utility for turning content into a shareable format. It is not a moderation tool and it does not require any per-guild setup. Any member with slash-command access can run it. It exists because turning a 30-second video clip into a GIF used to require leaving Discord and using a separate app. The bot does it inline.

Extract a GIF from a video tweet when someone posts a Twitter/X URL with embedded video and you want to reuse the clip. The command lives in the /fun group, not /util:

/fun gif url:https://x.com/SomeAccount/status/1234567890

The bot fetches the video, transcodes the first few seconds (or the full clip if it is short enough) into a GIF, and posts the result as a Discord attachment. The conversion runs server-side via ffmpeg, so the member does not need to install anything. The output is a true GIF (not an MP4), so you can right-click it and add it to your Discord favorites.

The tool enforces the file-size limit set by your guild's Discord upload cap. Free guilds cap attachments at 10 MB; boosted guilds get higher caps depending on the boost level. If a video tweet is longer than the GIF conversion can fit inside your cap, the bot automatically steps down the resolution and frame rate until it fits, and only returns an error if even the lowest-quality pass is still too large. It never posts a partial result.

The tool also has an implicit timeout. Transcoding a video to GIF can take several seconds for longer clips, and Discord's slash-command interaction has a fixed deadline. The bot uses a "thinking" placeholder to extend the deadline, but if the conversion still does not finish in time, the bot returns a timeout error. Re-running on a shorter source clip usually resolves it.

If your guild does not want the clip-to-GIF tool enabled in specific channels (an announcements channel, for example), deny the bot send-attachment permission in that channel. The slash command will still show, but the result of the conversion will not post.

05

Translation utility

The translate tool is a one-shot text translator. Paste content, get back the same content in another language. Backed by a fast, low-cost AI model. The default target is English, which is what you want most of the time when something lands in your guild that nobody can read. You can pick a different target language with the target option.

  1. Translate any text to English by passing it as content:
    /util translate content:"some text"
    The bot auto-detects the source language and replies with the English translation. No source-language flag required.
  2. Pick a different target language with a two-letter language code:
    /util translate content:"some text" target:fr
    Common targets: en, es, fr, ja, de, pt. Any ISO 639-1 code the translator recognises works.
  3. Drop in an X (Twitter) URL and the tool routes through fxtwitter instead of trying to scrape the page itself:
    /util translate content:https://x.com/someone/status/1234567890
    The bot fetches the tweet text via fxtwitter, then runs the same AI translation pass. This is how you handle "what does this tweet say?" without copy-pasting the body yourself.

Translation used to auto-fire on every tweet linked in a channel. That behaviour was removed because it misbehaved intermittently. The current model is explicit: you ask, the bot translates. That covers the same use case without the noise.

06

Other utility tools

The /util group also ships two small conveniences that come up often enough in technical guilds to be worth a slash command. Neither does anything magical; they are just faster than the alternatives.

  1. Pretty-print JSON when someone pastes a wall of minified output and you want to read it:
    /util json content:"<paste>"
    The bot reformats the input with indentation and posts it back in a code block. Useful for API responses, config files, and "is this even valid JSON?" sanity checks.
  2. Check the current time across timezones:
    /util time
    The bot replies with the current UTC time and, if your Discord locale is set, your local time alongside it. Quick way to confirm "is it actually 2am for the person I am pinging?" before sending a non-urgent message.

07

Hero pickers and favorites

For pre-match decisions, the bot has a hero randomizer. /ow hero leans on your saved favorites if you've set any. These commands are stateless conveniences, useful when nobody at the keyboard wants to make the call.

  1. Pick one random hero. Optionally filter by role.
    /ow hero
    /ow hero role:Tank
    /ow hero favorites_only:true
    With favorites_only:true, the picker chooses only from heroes you've previously marked as favorites for that role.
  2. Roll Deadlock heroes. /deadlock hero rolls 6 different random Deadlock heroes as a ranked list (if a teammate already took #1, take #2, and so on).
  3. Draw ranked fallbacks. Ask for up to three heroes per role, ranked, so a ban doesn't send you back to the picker.
    /ow hero all_roles:true picks:2
    /ow hero all_roles:true picks:2 favorites_only:true
  4. Manage your favorites per role:
    /ow favorites show
    /ow favorites add-tank hero:Reinhardt
    /ow favorites add-damage hero:Genji
    /ow favorites add-support hero:Ana
    /ow favorites remove hero:Reinhardt
    /ow favorites clear
    Favorites are per-user and follow you across guilds; /ow favorites clear wipes all of them in one shot.

08

Send feedback to the bot owner

The feedback command is the one-way channel from you to the bot owner. Use it for bug reports, feature requests, or anything in the "this thing broke" bucket. There is no inbox you read back; submissions go to a private log the owner sees, and any follow-up happens out of band. Treat it as fire-and-forget.

  1. Submit feedback from any channel the bot can see:
    /feedback message:"<text>"
    The bot acknowledges in the channel with a short confirmation and writes your message to the owner's feedback log along with your user ID and the guild it came from.
  2. Pick the right tool for the right report. Use feedback for bot issues: a tool that returned the wrong answer, a feature you wish existed, a confusing reply you did not expect. Do not use it for guild moderation issues; those are local to your guild and the bot owner cannot help with them.
  3. Do not expect a reply through Discord. The bot does not accept direct messages, and there is no per-feedback response thread. If your report needs follow-up, the owner reaches out through whichever channel they normally use (the support guild, GitHub issues, or whatever is configured).

Continue your tour