City Resources
ARC Threat Levels
Create Mission
Active Missions
Completed / Failed
Raider Roster
💸 Transfer Credits
Move credits from one Raider to another. Use this to reward players, correct balances, or simulate IC transactions.
ARC Activity Reports
Auto-post SIGINT broadcasts. Reports rotate through ARC unit types and maps, weighted toward high-threat areas.
ARC Probe Landing Events
Auto-post Probe landing alerts. Posted as Shani with location and loot hook — gives players a narrative event between missions.
Surface Condition
Set current Topside weather. Selecting a condition saves it automatically. Hit post to broadcast to Discord.
Tracks the current status of Speranza's five city resources and ARC threat levels across all five Topside maps. Changes here are cosmetic/narrative — they don't auto-affect gameplay unless you use /city-update via slash command.
Click any tier button to update a resource. Four tiers: Critical Low Stable Surplus
Tracks: Food & Seeds, Medicine, Salvage & Materials, Weapons & Ammo, Credits (city pool).
Sets the ARC threat for each Topside map. Four levels: None Elevated High Critical
Threat levels weight the ARC Report auto-posts — high-threat maps appear in broadcasts more often.
/city-status — Posts a Puppeteer-rendered city report image to the channel. Falls back to embed if render fails./city-update [resource] [tier] — GM-only. Updates a resource tier from Discord./threat-update [map] [level] — GM-only. Updates ARC threat level from Discord.Manage the five NPC traders: Celeste, Shani, Tian Wen, Apollo, and Lance. Each trader has a status, a flavor note, and a structured stock inventory that players can browse and purchase from via slash commands.
Status buttons: Open Limited Closed — shown in /trader results.
The Trader Note field is the IC flavor text shown when players use /trader [name]. Update it to reflect what's going on narratively.
Each stock item has a Name, Qty, and Price in Credits. The 5-character code next to the name (e.g. A1B2C) is the item ID players use with /buy.
Edit qty and price inline. When qty hits 0 it shows as out of stock. Use + Add to add new items. Clear All Stock wipes the whole list.
/trader [name] — Shows the trader's status and note. Available to all Raiders./trader-update [name] [status] [note] — GM-only. Updates status and optional note from Discord./stock [trader] — Shows trader inventory with item IDs, prices, and quantities. Leave trader blank to see all./buy [trader] [item-id] [qty] — Deducts credits automatically, reduces stock, notifies GM in #gm-planning.Each approved Raider has a personal credit balance. Credits are awarded by the GM and spent at trader markets. The system is automatic — /buy deducts credits without GM confirmation, but a notification is posted to #gm-planning for every purchase.
In the Roster tab, each Raider has a credit input field. Type a new value and click away to save. This is how you pay Raiders after missions — set the new total manually.
To add credits: check their current balance, add the reward amount, enter the total.
When a player uses /buy: bot checks they have enough credits → deducts → reduces stock qty → posts notification embed to #gm-planning.
If the player can't afford it, the command fails with an error (ephemeral — only they see it). Out-of-stock items also block purchase.
/credits — Shows the player their current credit balance. Ephemeral (only they see it)./buy [trader] [item-id] [qty] — Deducts credits and reduces stock automatically on use.Create, track, and archive Topside missions. Missions created from the dashboard are stored in state only — they don't auto-post to Discord. Use /mission-create from Discord to post directly to #mission-board with a ping.
Fill in Title, NPC Poster, Location, Risk Level, Team Size, Reward, and Briefing. Only Title is required. Click + Create Mission — it appears in Active Missions immediately.
The Briefing field is quoted IC text attributed to the NPC poster — write it in-character.
✓ Complete or ✗ Fail moves the mission to the archive. 🗑 Delete removes it entirely (no recovery).
When completing via /mission-complete on Discord you can optionally tie the outcome to a city resource change (e.g. success → food goes to Stable).
/mission-create [title] [location] [risk] [objective] [reward] [teamsize] — GM-only. Posts formatted mission embed to #mission-board with @Mission Pings./mission-complete [id] [outcome] [resource] [impact] — GM-only. Archives mission, optionally updates a city resource./mission-list — Posts all active missions as an embed. Available to all Raiders.Lists all approved Raiders with their specialty, current status, and credit balance. Characters are added here automatically when you use /approve. New Raiders start with 0 credits and Active status.
Four statuses: Active Shaken Injured Critical
Change via the dropdown — saves immediately. Also posts a status update embed to #status-board when set via /status on Discord.
Injured = out of Topside missions 48–72hr. Critical = permanent consequence, negotiated with player.
Player posts in #character-sheets → bot pings GM in #gm-planning → GM runs /approve @user [specialty] → Newcomer role removed, Raider + Specialty roles assigned, IC channels unlock, welcome posted in #the-streets. Character appears in Roster with 0 cr.
/approve @user [specialty] — GM/Staff. Assigns Raider + Specialty role, removes Newcomer, registers character./status @user [tier] — GM/Staff. Updates character status, posts to #status-board./sheet @user — Pulls character data. Available to all Raiders.Three automated or manually-triggered broadcast systems that post in-character messages to Discord channels to generate narrative atmosphere between sessions.
Posts randomized SIGINT-style alerts about ARC unit activity. Rotates through all ARC unit types and Topside maps — weighted toward maps with higher threat levels. Enable auto-post with an interval (3–24hr), or fire manually with ▶ Post Report Now.
Posts Probe landing alerts voiced as Shani, with location and loot hook. Good for giving players something to react to IC. Set interval (24–72hr) or trigger manually.
Sets current Topside weather. Five conditions: Standard, Snowfall, Hurricane, Heavy Fog, Electrical Storm. Selecting a condition saves it; hit ▶ Post Condition Update to broadcast to Discord. The preview shows the exact text that will be posted.
Each feature has its own channel dropdown. Populated live from Discord. Hit ↻ Refresh Channels if a channel is missing. Selections are saved with the feature settings.
/arc-report — GM-only. Manually posts an ARC activity broadcast to the configured channel./probe-event — GM-only. Manually posts a Probe landing alert./surface-condition [condition] — GM-only. Sets condition and broadcasts it./city-status — Post city report/city-update — Update resource (GM)/threat-update — Update ARC threat (GM)/surface-condition — Set Topside weather (GM)/arc-report — Post SIGINT broadcast (GM)/probe-event — Post probe landing (GM)/trader [name] — Check trader status/trader-update — Update trader (GM)/stock [trader] — View trader inventory/buy [trader] [id] [qty] — Purchase item/credits — Check your balance/approve @user [spec] — Approve sheet (GM/Staff)/status @user [tier] — Update status (GM/Staff)/sheet @user — View character data/mission-create — Post mission (GM)/mission-complete — Archive mission (GM)/mission-list — View active missionsRoleplay (RP) is collaborative storytelling. You create a character, give them a name and a history and a personality, and then you write what they do, say, and feel — in response to what other players write. Think of it like improv theater, or co-writing a novel, or a tabletop RPG without dice.
Nobody controls the whole story. Every player controls their own character and contributes scenes, reactions, and moments. The GM (Game Master) runs the world — NPCs, missions, consequences — but the story belongs to everyone.
You don't need to be a great writer. You need to be present, react honestly to what's happening, and let your character be a real person with wants and flaws. That's it.
IC (In Character) — you are writing as your character. Everything you post in IC channels is your character speaking, acting, and thinking inside the world of Speranza.
OOC (Out of Character) — you, the player, talking to other players. Use #general for OOC chat. If you need to say something OOC inside an IC channel, wrap it in parentheses: (OOC: gonna be offline tonight, feel free to continue without me)
Most RP is written in third person, past tense — like a novel. You describe what your character does and says.
Dialogue goes in quotes. Actions are described in prose. Thoughts are optional but add depth.
"Hey." She stepped in front of him. "Don't walk that off. I've seen that walk before."
You only control your own character. You cannot write what another player's character does, says, feels, or decides — ever, without their permission. You can write your character attempting to grab someone. You cannot write that they succeed.
✅ "Kade reached for her arm — trying to pull her out of the street before someone saw them."
The best RP is responsive. Read what others wrote. Let your character be affected by it. A character who never reacts to anything — never gets scared, surprised, moved — feels hollow. Give people something to work with.
Borrow from improv: when someone introduces something into a scene, accept it and build on it. Don't shut down other players' contributions. Conflict between characters is great. Conflict between players kills servers.
If something goes wrong story-wise, take it to #general or DM the player — not the IC channels.
The busiest channel. The streets of Speranza — crowded, loud, and alive. This is where most casual IC interaction happens: bumping into someone, overhearing news, moving between locations. If your character is in Speranza and not specifically somewhere else, they're probably here.
Good for: first meetings, casual conversation, reactions to city news, arrivals back from Topside, crowd scenes.
The gravity lift shuddered as it descended, and Kade stepped off into the noise of Speranza with two things: a cracked rib and a crate of salvage he didn't want to explain. He kept his head down through the crowd, taking the long way around the market square.
Someone bumped his shoulder. He caught himself on a wall, hissed through his teeth.
"Watch it," he said, before he'd looked up to see who it was.
An old underground hall converted into Speranza's main drinking spot. This is where Raiders go when they're tired and a little desperate. Slower, more intimate than the streets. The best place for meaningful conversations, alliance-building, information exchange, and the kind of honesty that only comes out after the third drink.
Good for: character development, building relationships, sharing backstory, tension between characters, rumors and intel.
Mira had a corner table. She always had a corner table. She was on her second drink when the chair across from her scraped back without her permission.
She looked up, already forming the words to tell whoever it was to find another seat. Then she recognized the jacket.
"You look worse than last time," she said. It wasn't a question.
Kade dropped into the seat like his legs had decided without him. "I'm fine."
"You said that last time too." She pushed her glass toward him. "Drink."
Where goods change hands. The five NPC traders — Celeste, Shani, Tian Wen, Apollo, and Lance — operate here. Use /stock and /buy for mechanical purchases, but you can also roleplay the transaction in the channel. The GM may respond as the traders for flavor.
Good for: buying and selling gear, interacting with traders, player-to-player trade negotiations, bartering scenes.
The stall smelled like machine oil and something chemical underneath it. Apollo didn't look up when Kade approached — just kept cataloguing rounds into a tray with practiced efficiency.
"I need a trauma kit. The good kind." Kade put his credits on the counter. "And I don't want to explain why."
Apollo finally looked at him. At the credits. Back at him. He picked up the stack.
"I never ask," he said, and reached under the counter.
The smell of gun oil and welding sparks. This is where Raiders get ready for Topside — repairing gear, crafting, running diagnostics, testing loadouts. A great channel for showing what your character does when they're not in the field.
Good for: pre-mission preparation, showing character competence, tech-focused interactions, mentoring newer Raiders, quiet solo scenes that establish character.
Mira had the medkit spread across the worktable in pieces. Reorganizing again. She did it before every run — not because it needed reorganizing, but because she needed to know exactly where everything was when her hands were shaking.
She heard boots behind her and didn't turn around.
"If you're here to talk me out of the Dam run, save it."
The quieter corner of Speranza. Personal space, downtime, recovery. Good for introspective scenes — journaling, lying awake at night, processing what happened on the last run. Injured characters often end up here. The slowmode is intentional: this channel has a different energy.
Good for: solo reflection, injury recovery scenes, emotional aftermath, character journaling, private two-person conversations.
She'd been staring at the ceiling long enough that the crack in the concrete had started to look like something. A coastline, maybe. She didn't know what a coastline looked like. She'd been born underground.
The photo in her boot was starting to fade at the edges. She took it out and looked at it in the low light. Four people. None of them here anymore.
Still looking, she thought at them. Still coming.
When a mission is confirmed, the GM creates a dedicated thread off of #mission-board. This is where the Topside RP happens — the actual run. The GM posts environmental details and ARC behavior; players write their characters navigating it. Stakes are real. Consequences apply.
Good for: high-tension action, team coordination, improvised problem-solving, moments of failure and sacrifice, the scenes players remember for months.
📡 [GM] — The filtration plant is quieter than the intel suggested. That's not a good sign. The sealed cache is visible through the broken glass of the control room — roughly forty meters across an open floor. The drones that were supposed to be on a southern sweep are not on a southern sweep. Two Skimmers are circling the building's east side, methodical, close. One of them just changed direction.
Kade dropped to a crouch behind a rusted pump housing, pressed his back against the metal. Forty meters. Open floor. Two drones and a changed pattern.
He looked at Mira. Held up two fingers. Pointed east. Then spread his hands: your call.
You don't have to write a novel for your first post. Two sentences is fine. Drop your character into #the-streets — they just came back from somewhere, or they're looking for someone, or they're just trying to get from one side of Speranza to the other. That's enough. Other players will find you.
A single specific detail is worth more than a paragraph of vague description. "She had the kind of tired that food doesn't fix" tells you more about a character than three sentences about what she was wearing.
If a scene is already happening, you can write your character into it — just be natural about it. Don't teleport in. Your character was nearby, or they heard something, or they just happened to walk past. Give a brief in-world reason they're there, and then react to what's happening rather than redirecting it.
If you're unsure whether a scene is open, a quick OOC note in the channel — (mind if I jump in?) — is always welcome.
Every character should sound like themselves. A gruff ex-soldier speaks differently than a nervous engineer. You don't have to maintain this perfectly — just think about how your character would actually say something before you write their dialogue.
Your character's flaw is your best tool. A character who can't leave an injured person behind has already written half their story for you. Lean into it.
Match the energy of the scene. Fast action gets short posts — punchy, reactive. Quiet emotional scenes can breathe more. You don't need to respond immediately to every post; a thoughtful reply an hour later is better than a rushed one in five minutes.
If you're going to be away for a while, a quick OOC note keeps things moving. Nobody expects you to be online 24/7 — just communicate.
Speranza runs gritty and grounded. It's not grimdark for its own sake, but it's not a power fantasy either. Characters are competent but not invincible. The world is genuinely hostile. Stakes mean something because consequences are real.
The best writing here tends to live in the small human moments — the conversation before the mission, the silence after it. The ARC can wait. The character can't always.
This server is medium-structure: enough framework to keep things consistent, light enough to just write. The GM doesn't need to approve every IC action — just the things with mechanical weight (missions, status changes, major lore additions).
If you want to introduce something big — a new faction, a piece of lore, something that would affect the whole server — check in with the GM first. For everything else, write it.
The best players don't wait for the GM to give them something to do. They create situations. They make things complicated for themselves and others. They ask questions that don't have easy answers. They leave hooks in their posts that other players can grab.
If your character is in the Undercroft with nothing happening, make something happen. Start a rumor. Pick a fight. Owe someone a debt. The GM notices players who generate story.
Permanent character death is always opt-in — that's your call, not anyone else's. But Shaken, Injured, and Critical are real and matter. An Injured character who can't go Topside for 72 hours has story potential. Don't treat consequences as setbacks — treat them as material.
The best moments in servers like this come from the runs that went wrong. Lean into failure. It's more interesting than winning.
Credits are Speranza's currency. They're earned by completing missions and spent at the trader markets. The economy is real within the story — your balance is tracked by the bot, and purchases are automatic.
The GM awards credits after missions. The payout reflects the risk — a routine salvage run pays less than a high-threat deep-zone extraction. Credits can also be transferred between Raiders: tip the medic who kept you alive, pay someone for a favor, settle a debt.
Use /credits anytime to check your current balance. Only you can see the result.
Use /stock to browse what a trader has available. Each item shows its price and stock quantity. Use /buy [trader] [item-id] to purchase — credits are deducted automatically and the GM is notified.
If you can't afford something or it's out of stock, the command fails quietly (only you see the error). No need to ask the GM — just use the commands.
/credits — Check your balance. Ephemeral — only you see it./stock — Browse all trader inventories. Add a trader name to filter: /stock celeste/buy [trader] [item-id] — Purchase an item. Deducts credits and reduces stock automatically./transfer @raider [amount] — Send credits to another Raider. Both balances update immediately.Your gear is part of your character. The notable equipment listed on your character sheet defines how others see your Raider — what they carry says something about who they are and what they've been through.
Your sheet lists your Notable Gear — the 3–5 items that matter most. This isn't an exhaustive inventory list, it's the stuff your character would reach for first. Update it in #character-sheets when your loadout changes significantly (you found something important, lost something critical, or bought a major upgrade).
Minor consumables and small purchases don't need to go on your sheet. Use your judgment — would this item come up in a scene?
When you buy gear from a trader using /buy, it's yours IC. Update your character sheet to reflect it if it's significant. The GM tracks purchases in the background — if you show up to a mission with something new and it matters, the GM may reference it.
Traders restock over time. If something is out, check back or ask Shani IC if she's heard of any supply runs.