Fabula Ultima TTRPG Companion Bot • v3.0.1 • 92 Slash Commands
Commands for transferring characters between the Discord bot and the web-based character builder at shinra.cc/abyssal-engine.
/export_json โ Export Character to Website PlayerExports your currently active character as a .json file that can be uploaded to the Fabula Sheet Builder website. The file is sent as a Discord attachment in an ephemeral message (only you can see it).
| Parameter | Type | Description |
|---|---|---|
| No parameters. Uses your active character. | ||
What gets exported:
.json file, then log into shinra.cc/abyssal-engine and use the Import button in the header to upload it./import_json โ Import Character from Website PlayerImports a character from a .json file exported from the Fabula Sheet Builder website. The character is added to your roster and set as your active character.
| Parameter | Type | Description |
|---|---|---|
| file required | Attachment | The .json file exported from the website (use the Export button on your character sheet). |
| overwrite optional | Boolean | If true, overwrites an existing character with the same name. Defaults to false. |
What gets imported:
overwrite is not set to true, the import will fail. This prevents accidental overwrites.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 with full notation support. Handles Fabula Ultima attribute substitution (with status die-size penalties applied automatically), D&D-style advantage via fortune/misfortune, keep/drop, exploding dice, rerolls, success counting, and multi-roll chaining. Indefinite explode and reroll are capped at 20 iterations per die to prevent runaway loops.
| Parameter | Type | Description |
|---|---|---|
| expression required | Text | Dice expression using any combination of the notation below. Spaces are optional. |
| Syntax | Meaning |
|---|---|
NdM | Roll N dice with M sides, e.g. 2d6, 1d20, 4d10 |
d% | Shorthand for d100 (percentile) |
+ - * / | Math on results, e.g. 3d6+5, 2d6*2, 4d4/2 |
might / migdexterity / dexinsight / ins / intwillpower / wlp / will | Substitutes your character's current die for that attribute. Statuses like Slow, Weak, Dazed, Shaken, Enraged, and Poisoned automatically reduce the die size before the roll. |
| Modifier | Meaning | Example |
|---|---|---|
kN or khN | Keep N highest dice | 4d6k3 โ roll 4d6, keep the best 3 (classic ability score) |
klN | Keep N lowest dice | 4d6kl2 โ keep the worst two |
dN or dlN | Drop N lowest dice | 4d6d1 โ drop the single lowest (same as k3 on 4d6) |
dhN | Drop N highest dice | 4d6dh1 โ drop the single highest |
| Modifier | Meaning | Example |
|---|---|---|
eN | Each die that rolls โฅ N adds one extra die (single pass โ the extra die does NOT re-explode) | 5d6e6 โ every 6 adds one more d6 |
e | Same as above, but triggers on the maximum face value | 5d6e โ same as 5d6e6 |
ieN | Explode indefinitely (each new die can also explode). Capped at 20 iterations per starting die. | 5d6ie6 โ chains of 6s keep adding dice |
| Modifier | Meaning | Example |
|---|---|---|
rN | Reroll any die โค N, once per die (kept result even if bad) | 10d6r1 โ any 1s reroll once |
irN | Reroll any die โค N indefinitely. Capped at 20 iterations per die. | 10d6ir2 โ keep rerolling until every die is 3 or higher |
| Modifier | Meaning | Example |
|---|---|---|
tN | Count dice โฅ N as successes. The result becomes the success count, not the sum. | 10d10t7 โ count every result of 7+ as one success |
fN | Count dice โค N as failures. | 10d10f3 โ count every 3 or lower |
bN or b | Count dice โค N as botches. Bare b defaults to b1. | 5d10b1 โ count only natural 1s as botches |
| Keyword | Meaning | Example |
|---|---|---|
fortune | Every single-die group in the expression is rolled twice; the higher result is kept. | /roll d20 fortune โ rolls 2d20, keeps the higher./roll 1d20+5 fortune โ 2d20kh1 + 5. |
misfortune | Same as fortune, but keeps the lower. | /roll d20 misfortune โ 2d20kl1 |
/roll 2d6 fortune leaves the 2d6 alone, because it's already a multi-die pool.| Syntax | Meaning |
|---|---|
; | Separator for running multiple independent rolls in one command. Each sub-expression gets its own Result and Breakdown block. No cap on how many you chain. |
/roll 2d6 โ roll two six-siders/roll 3d6+5 โ roll 3d6 and add 5 (spaces optional: 3d6 + 5)/roll might+dex โ roll your character's MIG and DEX dice together/roll d% + 10 โ percentile roll with a bonus/roll 4d6k3 โ roll four d6, keep highest three (ability score)/roll d20 fortune + 5 โ advantage attack roll with a +5 modifier/roll d20 misfortune - 2 โ disadvantage save with a penalty/roll 10d10t7 โ roll 10d10, count how many come up 7 or higher/roll 5d6e โ 5d6, every 6 adds one more d6 once/roll 10d6ie6 โ 10d6, exploding 6s chain indefinitely (capped at 20)/roll 10d6r1 + 3 โ reroll any 1s once, sum the rest, add 3/roll 2d6 ; 3d8 ; 1d20 โ three separate rolls in one command/roll 10d6 e6 k8 +4 โ roll 10d6, explode 6s, keep top 8, add 4 to the sumroll โ reroll โ explode โ keep/drop โ count/sum โ math. So 10d6 k8 e6 +4 and 10d6 e6 k8 +4 produce the same result.ie) and indefinite reroll (ir) each stop at 20 iterations per starting die, which is astronomically unlikely to matter in practice (a d6 exploding 20 times in a row is roughly 1 in 3.6 quintillion).[ N ] inside the embed. The breakdown lists every die that was rolled, 5 per line, so large pools stay readable./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.
Unified command for adjusting HP, MP, IP, Zenit, and XP.
/resource โ Modify Any ResourceAdd or subtract from the chosen resource. HP triggers crisis warning when below 50% and incapacitation warning at 0.
/rest โ Full RecoveryRestores HP and MP to their maximum values. IP does not restore on rest per core rules.
/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 โ Equip GearEquip a weapon, shield, or armor in the chosen slot. Item list dynamically filters based on slot selection. Shields in main hand work with the Dual Shieldbearer skill.
/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.
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.
/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.
/clock clock_reshow โ Repost ClockReposts a clock to the bottom of chat with fresh buttons. Autocomplete shows clocks you created in this guild.
/clock clock_list โ List ClocksShows all your active clocks in this server with their progress.
/clock clock_delete โ Delete ClockDelete a clock by its name or ID (shown in /clock clock_list).
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.
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."
}
]
}
Playtest variant rules and skills from the upcoming Strategy Guide. Variant rules are table-wide (GM enables them for the whole server). Variant skills are per-character choices that replace existing class skills.
/variant enable โ Enable Variant Rule GM OnlyEnable a variant rule for this server. All players are affected. Rules include Simplified Initiative, Critical Damage Option, Combat Rows, Applause Points, and more.
| Parameter | Type | Description |
|---|---|---|
| rule required | Autocomplete | Select from all available variant rules in the database |
/variant disable โ Disable Variant Rule GM OnlyDisable a previously enabled variant rule. Autocomplete shows only currently enabled rules for this server.
/variant list โ View Configuration PlayerShows all enabled variant rules for the server, your active character's adopted variant skills, and your current Applause Points (if that rule is enabled).
/variant info โ Variant Details PlayerView the full mechanical description of any variant rule or variant skill. Shows requirements, what it replaces, class restrictions, and the complete rules text.
/variant choose โ Adopt Variant Skill PlayerAdopt a variant skill for your active character. Variant skills replace existing class skills (e.g., Spell Buffet replaces Spell Mimic). Your character can have multiple variant skills active.
| Parameter | Type | Description |
|---|---|---|
| skill required | Autocomplete | Shows all variant skills with what they replace |
/variant remove_skill โ Remove Variant Skill PlayerRemove a variant skill from your active character, reverting to the standard version.
An optional rule where players reward each other for memorable moments. Each player starts a session with 1 Applause Point to give away. Received points can be spent in place of Fabula Points (but do not count as spending FP and do not generate XP).
/variant enable applause_points./applause give โ Give Applause PlayerGive your starting Applause Point to another player. You can only give once per session (until the GM resets). The recipient's character gains +1 Applause Point.
| Parameter | Type | Description |
|---|---|---|
| player required | Autocomplete | Select a player in the server (excludes yourself and bots) |
/applause spend โ Spend Applause Point PlayerSpend one of your received Applause Points. Functions like spending a Fabula Point but does not count as spending FP and does not generate XP at session end. You cannot spend your own starting point, only points received from others.
/applause check โ View Points PlayerView your current received Applause Points and whether you've already given away your starting point this session. Ephemeral (only you can see).
/applause reset โ Reset for New Session GM OnlyReset all Applause Points across every character in the server. Clears all received points and restores everyone's starting point. Use at the beginning of each new session.