Fabula Ultima TTRPG Companion Bot • v2.2 • 90 Slash Commands
Commands for creating, viewing, editing, switching, and deleting characters. Every player can have multiple characters, but only one is active at a time.
/charactermancer โ Interactive Creation Wizard PlayerLaunches a multi-step interactive wizard that walks you through attribute selection, class choice, skill learning, and spell acquisition. This is the recommended way to create a character.
| Parameter | Type | Description |
|---|---|---|
| name required | Text | Your character's name. Must be unique in your roster. |
| identity required | Text | Who the character is (e.g. "Rebellious Knight", "Travelling Merchant") |
| theme required | Text | Driving ideal or goal (e.g. "Justice", "Revenge", "Discovery") |
| origin required | Text | Homeland or background (e.g. "Arcanopolis", "The Northern Wastes") |
Wizard Flow:
/register โ Quick Character Creation PlayerQuick-create a character without the wizard. PCs require all fields; NPCs only need a name. Creates a Level 1 character with default d8 attributes and 40 HP / 20 MP.
| Parameter | Type | Description |
|---|---|---|
| name required | Text | Character name (must be unique) |
| char_type required | Choice | PC (Player Character) or NPC (Non-Player Character) |
| class_id optional* | Autocomplete | Starting class (*required for PCs) |
| identity optional* | Text | Character identity (*required for PCs) |
| theme optional* | Text | Character theme (*required for PCs) |
| origin optional* | Text | Character origin (*required for PCs) |
/charactermancer for proper attribute distribution and 500 Zenit./sheet โ View Character Sheet PlayerDisplays a comprehensive, paginated character sheet for your active character. Page 1 shows core info, traits, vitals, attributes, and equipment. Page 2 shows skills, spells, bonds, and notes. Use the โ Previous / Next โถ buttons to navigate.
/switch โ Switch Active Character PlayerSwitch which character is currently active. All commands that reference "your character" use the active character.
| Parameter | Type | Description |
|---|---|---|
| character_name required | Autocomplete | Select from your roster |
/edit_character โ Edit Character Traits PlayerUpdate your active character's name, identity, theme, or origin. All fields are optional โ only provide what you want to change.
| Parameter | Type | Description |
|---|---|---|
| rename optional | Text | New character name |
| identity optional | Text | New identity string |
| theme optional | Text | New theme string |
| origin optional | Text | New origin string |
/unregister โ Delete a Character PlayerPermanently deletes a character from your roster and the database. If you delete your active character, the bot switches to another character in your roster (or clears active if none remain).
| Parameter | Type | Description |
|---|---|---|
| name required | Autocomplete | Character to delete (lists your roster) |
/resources โ Resource Dashboard PlayerQuick overview of HP, MP, Fabula/Ultima Points, Zenit, XP, and IP with visual progress bars. Shows Fabula Points for PCs and Ultima Points for NPCs.
Commands used during combat encounters. Attacks use your equipped weapon's accuracy and damage formulas from the Fabula Ultima rulebook.
/attack โ Weapon Attack PlayerPerform a weapon attack. Rolls accuracy using the weapon's two attributes, calculates damage as High Roll + weapon bonus. Status effects (Slow, Weak, Dazed, Shaken, Enraged) automatically reduce the relevant die sizes.
| Parameter | Type | Description |
|---|---|---|
| attack_with required | Autocomplete | Shows your equipped main-hand weapon, off-hand weapon (if weapon type), and Unarmed Strike |
| target optional | Text | Name of the enemy for display purposes |
Damage Formula: High Roll (max of two dice) + Weapon Damage Bonus = Total Damage
/defend โ Guard Action PlayerTake the Guard action. Displays your current Defense and Magic Defense (calculated from equipped armor and shields). Optionally name an ally you're protecting.
| Parameter | Type | Description |
|---|---|---|
| ally optional | Text | Name of the ally you are protecting |
fixed_def replaces DEX instead of adding to it./inflict โ Inflict Status Effect PlayerApply a status effect to your own active character. Cannot stack โ if already afflicted, you'll be notified.
/cleanse โ Remove Status Effect PlayerRemove a status effect from your active character.
/active_statuses โ View Current Statuses PlayerLists all status effects currently affecting your character with their descriptions.
/initiative โ Roll Initiative PlayerRolls initiative using DEX + INS dice, with status penalties applied (Slow, Dazed, Enraged). Adds equipment initiative modifiers from armor/shields.
/roll โ Dice Roller PlayerFlexible dice roller supporting standard notation and attribute names.
| Parameter | Type | Description |
|---|---|---|
| expression required | Text | Dice expression (see examples below) |
/roll expression:2d6+5 โ Roll 2d6 and add 5/roll expression:might+dex โ Roll using your character's MIG and DEX dice/roll expression:1d20 โ Classic d20 roll/roll expression:ins+wlp+3 โ Attribute dice plus a flat bonus/damage โ Take Damage PlayerRecord HP damage. Shows before/after with a health bar. Warns when reaching 0 HP (Surrender or Sacrifice).
/heal โ Recover HP PlayerRecover Hit Points. Capped at your maximum HP.
Quick commands for adjusting HP, MP, IP, Zenit, and XP. Each uses Add (+) or Sub (-) mode.
/hp โ Modify Hit PointsAdd or subtract HP. Clamped to 0โMax. Triggers crisis warning when below 50% and incapacitation warning at 0.
/mp โ Modify Mind Points/ip โ Modify Inventory Points/zenit โ Modify Zenit/xp โ Modify Experience/rest โ Full RecoveryRestores HP, MP, and IP to their maximum values. Use during travel rest phases.
/set โ Set Any Stat DirectlyDirectly set a stat to a specific value. The stat autocomplete changes based on your selected category.
| Category | Available Stats | Notes |
|---|---|---|
| Max Vitals | hp, mp, ip | Sets the maximum cap. Current value is clamped if it exceeds the new max. |
| Current | hp, mp, ip, xp, zenit, fabula, ultima | Sets the current value directly. |
| Attribute | mig, dex, ins, wlp | Value must be 6, 8, 10, or 12 (valid die sizes). |
/add โ Add Resources or ItemsAdd Zenit, XP, Fabula Points, Ultima Points, or Items to your character for free (no cost deducted).
/remove โ Remove Resources or ItemsRemove resources or items from your character. For items, searches your inventory by name.
/buy โ Purchase ItemBuy from the game codex. Deducts Zenit and adds the item to your inventory. Items without a price cannot be bought.
/sell โ Sell ItemSell an inventory item for half its codex Zenit value (rounded down).
/use โ Use ItemUse a consumable (auto-spends IP and removes from inventory) or view/activate a non-consumable inventory item. Autocomplete shows codex consumables plus all items in your inventory.
/view_my_items โ Browse InventoryBrowse your equipped gear and inventory items. With no item specified, shows an overview. With an item selected, shows full details.
/equip_main โ Equip Main HandEquip a weapon or shield in your main hand. Shields here work with the Dual Shieldbearer skill.
/equip_off โ Equip Off HandEquip a weapon or shield in your off hand.
/equip_armor โ Equip ArmorEquip armor or clothing in your armor slot.
/unequip โ Unequip GearRemove an equipped item and move it to inventory. Main hand defaults back to Unarmed Strike; Armor defaults to Travel Garb.
/hire โ Hire Service/TransportDisplay a service or transport entry with its cost and whether you can afford it.
/level_up โ Level UpLevel up in a class. Increments character level, class level, +1 Max HP, +1 Max MP, fully restores vitals. Shows the class's free benefit on first level or as a reminder on subsequent levels.
/delevel โ Remove a LevelReverse a level-up. Reduces level, -1 Max HP, -1 Max MP. If the class reaches 0 levels, it is removed from your class list entirely. Shows lost class benefit.
/acquire_skill โ Learn SkillLearn a skill. The skill autocomplete filters based on the selected class. Skill rank increments if already known.
/unacquire_skill โ Forget SkillRemove a skill from your character. Autocomplete shows only your owned skills.
/acquire_spell โ Learn SpellLearn a spell. First pick the spell class (Elementalist/Entropist/Spiritist), then choose a specific spell.
/unacquire_spell โ Forget Spell/perform_skill โ Use a SkillActivate a skill. Auto-deducts MP if the skill has a cost_mp or cost_mp_per_sl field. Checks for sufficient MP before spending.
/perform_spell โ Cast a SpellCast a spell. Parses the MP cost from the spell's cost field and auto-deducts. Shows insufficient MP warning if needed.
/validate_skill โ Skill LookupLook up any skill. Shows description, max level, MP cost, which class teaches it, and whether your character owns it.
/my_skills / /my_spells โ View OwnedList all skills or spells your character has learned, with class source and rank/cost info.
/view_all โ Browse Game CompendiumBrowse the full game compendium including official and homebrew content. Categories: Items, Weapons, Armor, Shields, Skills, Spells, Classes, Heroic Skills, Actions, Rituals, Services, Transport, Statuses, Allies, NPCs, Arcana. The entry autocomplete filters based on category. Optional source filter narrows by supplement.
/perform_action โ Standard Action Lookup/perform_ritual โ Ritual LookupView ritual requirements including attribute check, skill requirement, MP cost, and time.
/perform_service โ Service LookupView a service's cost and whether you can afford it.
/status_info โ Status Effect LookupDetailed information about a status effect: duration, mechanical effects, and what it reduces.
Bonds represent your character's relationships. Each bond has a target (person, place, or thing), up to 3 emotions, and a strength equal to the number of emotions. There are 6 emotions in 3 opposing pairs โ a bond can only have one emotion per pair.
All bond commands are grouped under /bond:
/bond view โ View All BondsDisplays all bonds with their emotions, strength, and total count. Empty bonds show "No bonds yet."
/bond add โ Create BondCreate a new bond. Requires the target name and an initial emotion. Fails if you've reached your bond limit or already have a bond with that target.
/bond emotion โ Add/Replace EmotionAdd an emotion to an existing bond. If the bond already has the opposing emotion from that pair (e.g., adding Admiration when Inferiority exists), it replaces the old one. Max 3 emotions per bond (one per pair).
/bond remove_emotion โ Remove EmotionRemove a specific emotion from a bond, lowering its strength.
/bond remove โ Erase BondCompletely remove a bond and all its emotions.
/bond invoke โ Invoke BondDisplay the bond's strength for Check bonuses. Per the rulebook, bond strength can add bonuses to checks related to the bond target.
/bond max โ Set Bond LimitSet the maximum number of bonds allowed (1โ999). Default is 6.
All commands in this section require a GM role: Gamemaster, Game Master, GM, Dungeonmaster, Dungeon Master, DM, Storyteller, Story Teller, ST, or Guild Leader. The bot owner bypasses all role checks.
/gm_mod โ Modify Stats & Equipment Overrides GM OnlySet a stat on any character, or apply temporary equipment overrides to their equipped weapon or armor. Equipment overrides are stored on the character sheet copy of the item โ they reset automatically when the item is unequipped or swapped.
| Parameter | Type | Description |
|---|---|---|
| character required | Autocomplete | Target character in this guild |
| stat required | Choice | See stat list below |
| value optional | Integer | New value (not needed for Weapon Accuracy Attrs) |
| attr1 optional | Text | First accuracy attribute โ only for Weapon Accuracy Attrs: mig, dex, ins, or wlp |
| attr2 optional | Text | Second accuracy attribute โ only for Weapon Accuracy Attrs |
| Stat Choice | Effect |
|---|---|
| Current HP | Sets vitals_current.hp |
| Current MP | Sets vitals_current.mp |
| Max HP | Sets vitals_max.hp |
| Max MP | Sets vitals_max.mp |
| Zenit | Sets Zenit directly |
| XP | Sets XP directly |
| Fabula Points | Sets Fabula Points |
| Ultima Points | Sets Ultima Points |
These modify the currently equipped main-hand weapon only. If the weapon is unequipped or changed, all overrides reset to codex defaults. Unarmed Strike cannot be modified โ equip Iron Knuckles (or any weapon) first.
| Stat Choice | What It Does | Example |
|---|---|---|
| Weapon Damage Bonus | Replaces the weapon's damage_bonus value used in /attack | /gm_mod character:Ryu stat:Weapon Damage Bonus value:20 โ Sets the equipped weapon's damage bonus to 20 |
| Weapon Accuracy Bonus | Adds a flat bonus to the accuracy roll total (after dice) | /gm_mod character:Ryu stat:Weapon Accuracy Bonus value:3 โ Adds +3 to every accuracy check |
| Weapon Accuracy Attrs | Changes which two attributes the weapon uses for accuracy. Uses attr1 and attr2 params instead of value. | /gm_mod character:Ryu stat:Weapon Accuracy Attrs attr1:mig attr2:mig โ Makes the weapon roll [MIG+MIG] |
/gm_equip character:Dragon slot:Main Hand item:iron_knuckles/gm_mod character:Dragon stat:Weapon Damage Bonus value:18/gm_mod character:Dragon stat:Weapon Accuracy Attrs attr1:mig attr2:mig/gm_mod character:Dragon stat:Weapon Accuracy Bonus value:2These modify the currently equipped armor only. If armor is unequipped or changed, overrides reset. An armor or clothing item must be equipped โ the command will error if the armor slot is empty.
| Stat Choice | What It Does | Example |
|---|---|---|
| Armor Defense | Replaces the armor's entire DEF contribution (overrides both fixed_def and def_mod) | /gm_mod character:Ryu stat:Armor Defense value:15 โ Armor now sets DEF to 15 (shields still stack on top) |
| Armor Magic Defense | Replaces the armor's entire MDEF contribution | /gm_mod character:Ryu stat:Armor Magic Defense value:8 |
/gm_add โ Give ResourcesGive items, Zenit, XP, or Fabula Points to any character. For items, use type_filter to narrow the autocomplete.
/gm_remove โ Remove Resources/gm_equip โ Force Equip/gm_notes โ Edit NotesOverwrite a character's notes field entirely.
/gm_level_up โ Force Level Up/gm_delevel โ Remove Level/gm_acquire_skill / /gm_acquire_spell โ Grant Knowledge/gm_inflict / /gm_cleanseInflict or remove status effects on any character across the guild.
/gm_switch โ Switch Characters (Self or Other)Three-tier filtered switching. Without a target_player, switches your own active character. With a target_player, force-switches theirs. Bestiary type pulls from the official NPC database with source filtering, creates a temporary roster entry, and auto-deletes the previous bestiary entry on switch.
/gm_set_guild โ Fix Guild BindingUpdates a character's guild_id to the current server. Fixes characters that were created in DMs or moved between servers.
/gm_assign_ownership โ Clone CharacterCopy a character to another player's roster.
Clocks track narrative progress using a 6-segment visual circle (per the rulebook, page 52). The clock renders as an image with filled/empty segments.
/gm_clock clock โ Create ClockCreates a new 6-segment clock at 0/6. Posts an image with interactive buttons: Advance (+1), Retrocede (-1), and Delete. Each button updates the image in-place.
/gm_clock clock_reshow โ Repost ClockReposts a clock to the bottom of chat with fresh buttons. Autocomplete shows clocks you created in this guild.
/gm_clock clock_list โ List ClocksShows all your active clocks in this server with their progress.
/gm_clock clock_delete โ Delete ClockDelete a clock by its name or ID (shown in /gm_clock clock_list).
Full combat turn-order management with support for PCs, NPCs, Bestiary creatures, and custom entries.
/gm_initiative โ Create TrackerCreates a new combat tracker. After creation, use the setup buttons to add combatants (PCs, NPCs, Bestiary, Custom). Posts an interactive embed with turn tracking.
Tracker Buttons:
/gm_initiative_list โ List TrackersList all active trackers in this guild.
/gm_initiative_recall โ Repost TrackerRepost a tracker with fresh interactive buttons.
/gm_initiative_edit โ Reorder CombatantsOpens a modal to reorder combatants by editing a numbered list.
/gm_initiative_add โ Add Combatant Mid-Combat/gm_initiative_drop โ Remove Combatant/gm_initiative_remove โ Delete TrackerPermanently deletes a tracker.
Random generators from the GM Toolkit booklet. All use the /gm_generator group prefix.
/gm_generator encounter โ Encounter TemplateGenerate a balanced encounter template with recommended villain level and soldier/elite/champion counts based on party size and level.
/gm_generator npc โ Quick NPC Stat BlockGenerate a random NPC with level, attributes, skills, affinities, and equipment suggestions.
/gm_generator quality โ Random Item QualityRoll a d6 for a random item quality by origin (GM Toolkit pg 31โ35).
/gm_generator gimmick โ Boss GimmickRoll d8+d10 for a random boss gimmick (GM Toolkit pg 22โ23).
/gm_generator skill โ Random NPC SkillGenerate a random NPC combat skill (GM Toolkit pg 24โ25).
/gm_generator danger โ Travel DangerRoll a d20 for a random travel danger (GM Toolkit pg 26โ27).
/gm_generator discovery โ Travel DiscoveryRoll a d20 for a random travel discovery (GM Toolkit pg 28โ29).
/gm_content roll_ally โ Random Unexpected AllyRandomly select an ally from the codex (Load Game ReLoaded supplement). Includes guild homebrew allies.
The homebrew system lets you create custom game content via JSON files. There are two scopes: GM Content (server-wide, stored in Supabase, visible to all players) and User Content (personal library, stored as a local file on the bot, only usable by you).
/gm_content) GM OnlyServer-wide homebrew visible to all players in autocomplete, /view_all, and the charactermancer. Stored in Supabase (guild_content table). Core content always takes priority over homebrew on key collisions.
/gm_content upload โ Upload Homebrew JSONUpload a .json file. Entries are upserted โ existing entries with the same data_key are overwritten. The data_key is auto-generated from the item's name field (lowercased, spaces โ underscores, hyphens โ underscores, apostrophes removed).
/gm_content list โ View Guild ContentLists all entries in this guild's homebrew, grouped by category, with a count per category.
/gm_content remove โ Delete EntryDelete a single homebrew entry from the guild. Autocomplete shows all entries with their category.
/gm_content roll_ally โ Roll Random AllyRandomly selects from both official and guild-uploaded allies.
/user_content) PlayerPersonal homebrew library. Your uploads are saved as {user_id}_content.json on the bot's filesystem. Only you can see and use them.
/user_content help โ Show InstructionsDisplays formatting instructions and category list.
/user_content upload โ Upload JSONUpload your personal homebrew. Merges with existing content (overwrites by name).
/user_content view โ Browse LibraryBrowse all items in your personal library by category.
/user_content info โ View Entry Details/user_content remove โ Delete Entry/user_content acquire โ Add to CharacterCopy an item from your personal library onto your active character's inventory or skill/spell list. Only works with acquirable categories (not NPCs, allies, services, etc.).
Every homebrew file is a JSON object where keys are category names and values are arrays of item objects. Each item must have a "name" field.
{
"category_name": [
{ "name": "Item Name", ...fields... },
{ "name": "Another Item", ...fields... }
],
"another_category": [
{ "name": "More Content", ...fields... }
]
}
weapons, armor, shields, items, services, transport, skills, spells, actions, classes, heroic_skills, arcana, npcs, alliesKeys starting with _ (e.g. "_meta") are ignored by the validator and can store notes.
"weapon""might", "dexterity", "insight", or "willpower""physical", "fire", "ice", "bolt", "dark", "light", "earth", "wind", "water", "poison"{
"weapons": [
{
"name": "Volcanic Cleaver",
"type": "weapon",
"cost": 400,
"hands": 2,
"category": "heavy",
"attr1": "might",
"attr2": "might",
"damage_bonus": 14,
"damage_type": "fire",
"text": "A massive blade forged in magma. Martial (E). Two-handed."
},
{
"name": "Trickster's Dagger",
"type": "weapon",
"cost": 200,
"hands": 1,
"category": "dagger",
"attr1": "dexterity",
"attr2": "insight",
"damage_bonus": 6,
"damage_type": "physical",
"text": "A blade that shifts in moonlight. Accuracy: [DEX+INS]."
}
]
}
"armor" or "clothing"def_mod."shield"{
"armor": [
{
"name": "Wyrmscale Plate",
"type": "armor",
"cost": 350,
"fixed_def": 12,
"mdef_mod": 1,
"init": -2,
"text": "Heavy armor crafted from dragon scales. Martial (E)."
}
],
"shields": [
{
"name": "Aegis of Dawn",
"type": "shield",
"cost": 250,
"def_mod": 2,
"mdef_mod": 3,
"init": 0,
"text": "A radiant shield that repels dark magic."
}
]
}
{
"skills": [
{
"name": "Dragon's Breath",
"max_level": 4,
"text": "Deal [SL x 5] fire damage to all enemies. Cost: [SL x 10] MP.",
"cost_mp_per_sl": 10
},
{
"name": "Iron Wall",
"max_level": 1,
"text": "Until end of scene, your Defense increases by 2.",
"cost_mp": 5
}
]
}
"Elementalist", "Entropist", or "Spiritist""10 MP", "5 x T MP")["ins","wlp"]{
"spells": [
{
"name": "Starburst",
"class": "Elementalist",
"cost": "20 MP",
"attr": ["ins", "wlp"],
"target": "Up to three creatures (M.DEF)",
"text": "Deal [HR + 20] Light damage. Opportunity: Targets suffer Dazed."
}
]
}
{
"classes": [
{
"name": "Beastmaster",
"free-benefit": "Permanently increase your maximum Hit Points or Mind Points by 5 (your choice).",
"skills": [
"wild_companion",
"pack_tactics",
"feral_instinct",
"beast_form",
"natures_wrath"
]
}
]
}
"skills" array must match the data_key of skills in the database. If you're creating a homebrew class, upload the skills first, then reference them by their auto-generated key (name lowercased, spacesโunderscores)."consumable", "gadget", "accessory", or "item"{
"items": [
{
"name": "Starlight Draught",
"type": "consumable",
"cost": 100,
"cost_ip": 2,
"text": "Recover 40 HP and cure Poisoned."
},
{
"name": "Ring of Shadows",
"type": "accessory",
"cost": 500,
"text": "Grants +2 to M.DEF while equipped."
}
]
}
{
"npcs": [
{
"name": "Shadow Drake",
"level": 20,
"source": "Homebrew Campaign",
"text": "A drake wreathed in darkness. Immune to Dark damage."
}
],
"allies": [
{
"name": "The Wandering Sage",
"text": "An ancient scholar appears! All allies recover 20 MP and gain +2 to their next Insight check.",
"source": "Homebrew Campaign"
}
]
}
{
"services": [
{
"name": "Dragon Taxi",
"cost": 200,
"text": "A tamed wyvern flies you to any city in the region. Travel time: 1 day."
}
],
"transport": [
{
"name": "Sand Skimmer",
"cost": 150,
"text": "A desert hovercraft. Seats 4. Speed: Fast. Fuel: Wind crystals."
}
]
}
A single file can contain multiple categories. This example shows a complete homebrew pack:
{
"_meta": "Desert Expansion Pack v1.0 โ Custom content for the Sandstone campaign.",
"weapons": [
{
"name": "Scorpion Stinger",
"type": "weapon",
"cost": 300,
"hands": 1,
"category": "dagger",
"attr1": "dexterity",
"attr2": "insight",
"damage_bonus": 8,
"damage_type": "poison",
"text": "A curved blade coated in scorpion venom. Accuracy: [DEX+INS]."
}
],
"armor": [
{
"name": "Sandstone Mail",
"type": "armor",
"cost": 200,
"fixed_def": 10,
"mdef_mod": 1,
"init": -1,
"text": "Light desert armor. Martial (E). DEF is 10."
}
],
"skills": [
{
"name": "Desert Mirage",
"max_level": 3,
"text": "When targeted by an attack, you may spend [SL x 5] MP to force a reroll.",
"cost_mp_per_sl": 5
}
],
"spells": [
{
"name": "Sandstorm",
"class": "Elementalist",
"cost": "15 MP",
"attr": ["ins", "wlp"],
"target": "All enemies (M.DEF)",
"text": "Deal [HR + 10] Earth damage. Opportunity: Targets suffer Slow."
}
],
"classes": [
{
"name": "Sand Dancer",
"free-benefit": "Permanently increase your maximum Hit Points or Mind Points by 5 (your choice).",
"skills": ["desert_mirage", "sand_step", "dune_walker", "heat_haze", "oasis_blessing"]
}
],
"allies": [
{
"name": "The Sand Djinn",
"text": "A benevolent djinn grants a wish! One ally fully recovers HP and MP.",
"source": "Desert Expansion"
}
],
"items": [
{
"name": "Cactus Water",
"type": "consumable",
"cost": 30,
"cost_ip": 1,
"text": "Recover 20 HP. Refreshing desert hydration."
}
]
}