Skip to content
Randal edited this page Jul 1, 2024 · 1 revision

Welcome to the RPG Sage Wiki.

RPG Sage is a Play-by-Post Discord bot designed to evoke the feel of a JRPG by using dialog boxes that include character profile pictures to help keep the game focused on the characters you are portraying.

Simple GM and PC Example

First time? Get started with Invite RPG Sage, Command Prefix, Admin Tiers, and Direct Messages.

Still new? Check out Feature Guide, Quick Start, and Essence 20 Demo.


Table of Contents

Channel Management

Character Management

Color Management

Dialog Commands

Dice Commands

Emoji Management

Game Management

Map Management (prototype)

Pathfinder / Starfinder Commands

Server Management

User Management

Weather Generator


Channel Management

These commands let a Server Owner or "SageAdmin" manage channels. These commands also let a "GameAdmin" or GameMaster manage game channels.

View Channel Details

This command displays information about the the current Channel. It lists things like the Channel type, the Game it is a part of, dice settings, search settings, and more.

Example:

sage! channel details

Update a Channel

This command allows you to change a Channel's settings. You only need to include the settings you want to change. You are also able to unset a setting to return it to the default. Channel Options are detailed here.

Examples:

sage! channel update type="ooc"
sage! channel update diceoutput="xxl" dicesecret="unset"

Channel Options

These options are used during Channel Management.

Note: multiple options can be set at the same time


dialogPost=""


This determines how RPG Sage's dialog posts are handled.

Valid dialogPost values:

  • EMBED uses an embed that includes the character's avatar on the right. (default)
  • POST uses a simple message post some screen readers cannot read Discord embeds.
  • UNSET uses the dialogPost method inherited from either the User, Game, or Server.

Examples:

sage! channel update dialogPost="post"
sage! channel update dialogPost="unset"

diceCrit="" (DnD5e and PF2e only)


This sets how Critical Hit damage is calculated.

Valid diceCrit values:

  • TIMESTWO rolls the dice and multiplies the results x2. (default)
  • ROLLTWICE rolls the damage twice and adds the results together.
  • ADDMAX rolls the dice once and then adds max damage to the result. (RPG Sage House Rule)
  • UNSET uses the diceCrit method inherited from either the Game or the Server.

Examples:

sage! channel update diceCrit="addmax"
sage! channel update diceCrit="unset"

diceOutput=""


This determines how compact or verbose the dice results are displayed. Read more about Dice Output here.

Valid diceOutput values:

  • XXS, XS, S
  • M (default)
  • L, XL, XXL
  • ROLLEM uses the diceoutput method that most closely emulates what Rollem uses.
  • UNSET uses the diceoutput method inherited from either the Game or the Server.

Examples:

sage! channel update diceoutput="xxl"
sage! channel update diceoutput="rollem"
sage! channel update diceoutput="unset"

dicePost=""


This determines how RPG Sage posts dice results.

Valid dicePost valus:

  • POST will output dice results in a simple post.
  • EMBED will output dice results in an embed in a post. (default)
  • UNSET uses the dicepost method inherited from either the Game or the Server.

Examples:

sage! channel update dicepost="post"
sage! channel update dicepost="unset"

diceSecret=""


This determines how RPG Sage reacts to dice with the word "secret" in them.

Valid diceSecret values:

  • DM tells Sage to find the first available GM and send the dice results to them as a DM.
  • GM tells Sage to find a GM channel and send the dice results there. If no GM channel exists, this is treated as DM.
  • HIDE tells Sage to hide/redact the results using spoiler tags.
  • IGNORE simply ignores them. (default)
  • UNSET uses the dicesecret method inherited from either the Game or Server.

Examples:

sage! channel update dicesecret="ignore"
sage! channel update dicesecret="unset"

diceTo=""


This tells RPG Sage to send the results of any Dice rolled to the given Channel instead of the Channel they were rolled in. Secret Dice will still adhere to the settings of diceSecret (if set) and go to the appropriate GM channel if configured to do so.

Example:

sage! channel update diceTo=" #Dice-Only "

gameSystem="" (Non-Game Channels only)


This is the Game System, which determines how RPG Sage handles certain features, such as Dice and Search.

Valid gameSystem values:

  • CNC Coyote & Crow
  • DND5E Dungeons & Dragons 5e
  • E20 Essence 20 system (G.I. Joe, Power Rangers, Transformers, etc.)
  • PF1E Pathfinder RPG
  • PF2E Pathfinder 2e
  • QUEST Quest RPG
  • SF1E Starfinder
  • VTM5E Vampire: The Masquerade (5e)
  • NONE (default)

Examples:

sage! channel update gameSystem="vtm5e"
sage! channel update gameSystem="pf2e"

type=""


This sets the type of channel, which determines how RPG Sage handles certain features, such as Dialog and Dice.

Valid type values:

  • IC (In Character) only Dialog and Dice are allowed for GMs and Players
  • OOC (Out of Character) all Sage commands are allowed for GMs and Players
  • GM (Game Master) all Sage commands are allowed for GMs
  • DICE (Dice) only Dice commands are allowed for GMs and Players
  • MISC (Miscellaneous) all Sage commands are allowed for GMs and Players
  • UNSET tells Sage that this isn't a specific channel type

Note: A GM only channel is where secret dice rolls are sent!

Examples:

sage! channel update type="ooc"
sage! channel update type="gm"

Character Management

These commands allow you to create, manage, and delete Characters. Some of these commands function return slightly different results when used within a Game than they do when used outside a Game. "Used within a Game" simply means the command was used in a Channel that belongs to a Game.

Player Characters (aka PCs) and their Companions can be created inside or outside of a Game. Once created, though, PCs in Games cannot be used outside their Game of origin and PCs outside of Games cannot be used in a Game. Non-Player Characters (aka NPCs) and their Minions can only be created inside a Game, and only by a Game Master. Once created, they only exist and can only be used within that Game. Inside a Game, there is a special built-in NPC called "Game Master" that can be configured as if it were an NPC.

These commands differ in name to distinguish what you are managing (pc, npc, companion, minion, and gm) but they function the same otherwise.

Character Lifecycle

These commands are used to create, view, update, and delete a Character.

Create a Character


Creating a Character requires a name. If you are creating a Companion or Minion, it also requires a charName to identify the parent character. All other settings are optional and are set using the argument format of option="value". Character Options are detailed here.

Examples:

sage! pc create name="Bob the Fighter"
sage! companion create charName="Bob the Fighter" name="Stan the Squire"
sage! npc create name="Gobbo the Goblin"
sage! minion create charName="Gobbo the Goblin" name="Sluggo"

View Character Details


This command displays information about the named Character. This information includes name, alias, Player (for PCs/Companions), Companions/Minions, color, Auto Dialog channels, and stats (if any). Players in a Game can only get details on their own PC/Companions. Game Masters can get details on all Characters in the Game.

Examples:

sage! pc details name="Bob the Fighter"
sage! companion details charname="Bob the Fighter" name="Stan the Squire"
sage! npc details name="Gobbo the Goblin"
sage! minion details charName="Gobbo the Goblin" name="Sluggo"

Note: In a Game, where a Player can have only 1 PC, they do not have to provide the name when viewing their PC's details.

Examples:

sage! pc details
sage! companion details name="Stan the Squire"

Update a Character


This command allows you to change the named Character's settings. Much like creating a Character, you only need to include the settings you want to change. Character Options are detailed here.

Examples:

sage! pc update name="Bob the Fighter" color="#01AB99"
sage! npc update name="Gobbo the Goblin" alias="GG"

Note: In a Game, where a Player can have only 1 PC, they do not have to provide the name when viewing their PC's details.

Example:

sage! pc update alias="BoB"

Delete a Character


This command lets you delete the named Character. This deletes them forever and cannot be undone.

Examples:

sage! companion delete charName="Bob the Fighter" name="Stan the Squire"
sage! pc delete name="Bob the Fighter"
sage! npc delete name="Gobbo the Goblin"

Character Auto Dialog

These commands allow you to turn Auto Dialog on and off.

Auto Dialog On

This command turns on Auto Dialog for the given Character in the given Channel (or the current Channel if one isn't given). You can specify more than one Channel. You can specify dialogPostType= if you wish.

Valid dialogPostType values:

  • Post
  • Embed

Examples:

sage! pc auto on
sage! pc auto on dialogPostType="Post"
sage! npc auto on name="Gobbo the Goblin" #goblin-campfire
sage! gm auto on #main-ic #lore-dump

Auto Dialog Off

This command turns off Auto Dialog for the given Character in the given Channel (or the current Channel if one isn't given). You can specify more than one Channel.

Examples:

sage! pc auto off
sage! npc auto off name="Gobbo the Goblin" #goblin-campfire
sage! gm auto off #main-ic #lore-dump

Character Stats

In addition to the basic settings, you can track stats and other information on your Character using the Stats command. Manual Stats are detailed here.

Examples:

sage! pc stats name="Bob the Fighter" init="+1"
sage! pc stats name="Bob the Fighter" conditions="unconscious"

Importing Characters

In addition to creating your characters stats manually, you might be able to import your character. Currently, this feature is in early stages and limited in what you can import, but it will continue to expand over time.

This command currently only works with:

  • Pathbuilder 2e Export to JSON
  • Essence 20 form fillable PDF downloaded from Renegade Game Studios

Slash Command:

/sage-import pathbuilder-2e id:
/sage-import essence20 pdf:

Options:

/sage-import pathbuilder-2e id: pin: attach:
/sage-import essence20 pdf: pin: attach:

pin (optional)
If this value is set to true then the imported character will be pinned in the channel.

attach (optional)
If this value is set to true then the imported character will be attached as a markdown formatted .txt file instead of being posted as an interactive character sheet.

Reimporting Characters

You can update an imported character sheet by replying to it with the id or pdf you wish to replace it with.

Pathbuilder 2e Example:

sage! reimport id="123456"

Essence 20 Example:

sage! reimport pdf="https://url_to_updated_character.pdf"

Character Lists

These commands allow you to list characters of the given type.

Player Character Lists

When used in a Game, this lists all the PCs in the Game. Otherwise, it lists all of your non-Game PCs.

Example:

sage! pc list

Companion Lists

This lists the Companions of the named Player Character.

Example:

sage! companion list charName="Bob the Fighter"

Non-Player Character Lists

When used in a Game, this lists all the NPCs in the Game, and is usable only by the Game Master.

Example:

sage! npc list

Minion Lists

This lists the Minions of the named Non-Player Character.

Example:

sage! minion list charName="Gobbo the Goblin"

Character Options

These options are used during Character Management.

Note: multiple options can be set at the same time


alias=""


This value is a short name used for accessing the character without needing to type their entire name. An alias is often a nickname, or sometimes just a short code. Whatever you use for the alias, it can only contain letters and numbers.

Examples:

sage! pc create name="Bob the Fighter" alias="bob"
sage! npc update name="Super Awesome Powerful Wizard" alias="sapw"

avatar=""


This value is the url for the image on the right side of Dialog when using an embeds to display Dialog.

Example:

sage! pc create name="Mal" avatar="https://img.rpgsage.io/253330271678627841/characters/mal/mal.png"

charName=""


This is used to link the Companion or Minion to a parent Character. The name must be for a Character accessible by the User.

Examples:

sage! companion create name="Stan the Squire" charName="Bob the Fighter"
sage! minion create name="Sluggo" charName="Gobbo the Goblin"

color=""


This value sets the color on the left side of the embed when Character Dialog is displayed using an Embed. Valid colors use the hexidecimal formats 0xAA00FF or #AA00FF.

Examples:

sage! pc create name="Bob the Fighter" color="#0000ff"
sage! companion create charName="Bob the Fighter" name="Squire Stan" color="#ff0000"

name=""


This sets the name of the Character.

Examples:

sage! pc create name="Bob the Fighter"
sage! npc create name="Gobbo the Goblin"

newName="" and oldName=""


These two options are required when renaming a Character.

Examples:

sage! pc update oldName="Stan the Squire" newName="Squire Stan"
sage! minion update char="Gobbo the Goblin oldName="Sluggo" newName="Sluggy"

newUser=""


This option allows a GM to reassign a Character to a different Player. It can be a User Mention or the full ID of a User. Note: If using a User Mention, it is best to add a space after the first " and before the @.

Examples:

sage! pc update name="Mal" newUser=" @Randal "
sage! pc update name="Mal" newUser="253330271678627841"

token=""


This value is the url for the image on the left side of Dialog. It is also the image used for maps.

Examples:

sage! pc create name="Mal" token="https://img.rpgsage.io/253330271678627841/characters/mal/mal-token.png"

Manual Stats

When managing your Character, you can save pretty much any information you want as a "stat" by using the pc stats command. These stats are visible when you view your character details. They are also accessible in your dice rolls (and most importantly, macros).

Basic Example

Stats are set using the format key="value".

  • key can only have letters, numbers and periods
  • value can be anything, as long as it is quoted

Mobile devices often use curly quotes and it can be easy to get mismatched quote characters.

Common Examples:

sage! pc stats name="Bardok" level="2"
sage! pc stats name="Bardok" hp="10" maxHp="20"
sage! pc stats name="Bardok" mod.dex="+3" dexterity="16"
sage! pc stats name="Bardok" prof.Stealth="+2" proficiency.Stealth="Trained"

Removing / Unsetting a Stat is done by setting the stat to an empty value. Unset Example:

sage! pc stats name="Bardok" level=""
sage! pc stats name="Bardok" proficiency.Stealth=""

Simple Dice Example: Initiative

sage! pc stats name="Bob the Fighter" init="+1"

You can now roll init with:

[1d20 + {pc::init}]

... which becomes ...

[1d20 + 1]

Simple Macro Example: Intiative

You can now build an init macro with:

sage! macro set name="init" dice="[1d20 + {pc::init} init]"

You can now roll init with:

[init]

... which becomes ...

[1d20 + {pc::init}]

... which becomes ...

[1d20 + 1]

Note: Fun With Macros

By default, your Macros are global to you, meaning you can access them on any server using RPG Sage. By creating the above init macro that specifically targets pc, you have made a single macro that you can use to roll initiative for every single one of your characters on every single server you play on ... assuming you set their init value using sage! pc stats ...


Manual Stats vs Pathbuilder Stats

What happens if you link a Pathbuilder character and have or want manual stats? What happens if you set a manual stat with the same name as a Pathbuilder stat? ... They play nice together! (generally)

When accessing a stat from your character, RPG Sage first checks your manual stats for the "key" you are using. If it doesn't find it, then it will check to see if you have a linked Pathbuilder character. If so, it will try to get the value from there. If nothing is found, then the whole entry {pc::key} will wind up in your dice roll to show you that it wasn't found.

You can read more about Pathbuilder Stats here.


Nested Stats

Yup, you read that right.

We will expand on this topic later, but for now, know that you can do things like:

sage! pc stats name="Rogue" dex="+4" level="3" prof.simple="+2" mod.dagger="{Rogue::dex}+{Rogue::level}+{Rogue::prof.simple}"

... and roll ...

[1d20 + {Rogue::mod.dagger} dagger atk]

... to get ...

[1d20 + 9 dagger atk]

Hidden Stats

When setting your character's stats, you may want to keep values hidden. For instance, the AC of an NPC. Well, surprise! RPG Sage will allow you to add spoilers to stats!

Note: This feature was intended for AC values of DnD / Pathfinder and their clones. It should work for any dice test, but it might get weird if you spoiler other stats.

Example:

sage! npc stats name="Gobbo" ac="||15||"

Usage:

[1d20 + 5 ac="{Gobbo::ac}"]

When displaying the Dice results, the success/failure should be displayed as normal. Instead of showing the AC, however, the results will include ?? where the AC should otherwise be.

Pathbuilder Stats

When using a linked Pathbuilder import, you can get a bunch of info. Some of it is direct from the imported character, some from the sheet, and some you can manually set/override.

Stats and Prefixes

When using most stats, such as Perception, lores, saving throws, and skills ... referencing the name will return the total modifier (which should include level, proficiency, and stat mods). If you want other info, you can use the following prefixes: dc, mod, prof, proficiency


dc


(adds 10 to the modifier)

Example: for a character with +12 Reflex

[1d20 dc {char::dc.reflex}]

... becomes ...

[1d20 dc 22]

mod


(basic modifier to a roll for skills, lores, and saving throws)

Example: for a character with +7 Medicine

[1d20 + {char::mod.medicine}]

... same as ...

[1d20 + {char::medicine}]

... becomes ...

[1d20 + 7]

prof


(uses only the proficiency modifier)

Example: for a character trained in Medicine

[1d20 + {char::prof.medicine}]

... becomes ...

[1d20 + 2]

proficiency


(returns the string value of the proficiency for descriptions)

Example: for a level 3 character trained in Medicine (+3 Wis)

[1d20 + {char::medicine} Medicine ({char::proficiency.medicine})]

... becomes ...

[1d20 + 8 Medicine (Trained)]

Saving Throws

Saving throws can be accessed by their name to get the total modifier or using prefixes as outlined above.

Fortitude

  • fortitude or fort

Reflex

  • reflex or ref

Will

  • will

Ability Scores

Ability scores work a little differently than the other stats. The value returned normally is the fully ability score, while the mod and dc values are based on the modifier. Prof and Proficiency don't return anything. You can access an ability score with its' full name or the three letter abbreviation.

Basic Example using Strength 14

[1d20 + {char::strength}]

... same as ...

[1d20 + {char::str}]

... becomes ...

[1d20 + 14]

dc Example using Strength 14

[1d20 dc {char::dc.str}]

... becomes ...

[1d20 dc 12]

mod Example using Strength 14

[1d20 + {char::mod.str}]

... becomes ...

[1d20 + 2]

Note About Ability Scores

Changes in Pathfinder 2e Remaster have made us realize we should address the consistency in accessing ability scores and ability score modifiers. Using strength and str to get the full value while requiring the mod prefix against either strength or str to get the modifier will likely lead to confusion we weren't expecting when we originally wrote this. Therefore, it is highly suggested that you access ability scores in the following way so that a future change doesn't break your dice.

Full name will get the full ability score:

[1d20 + {char::strength}]

... becomes ...

[1d20 + 14]

Three letter abbreviation will get the ability modifier:

[1d20 + {char::str}]

... becomes ...

[1d20 + 2]

dc will add 10 to whichever value is returned:

[1d20 dc {char::dc.strength}]

... becomes ...

[1d20 dc 24]

... while ...

[1d20 dc {char::dc.str}]

... becomes ...

[1d20 dc 12]

Extended Pathbuilder Stats

Beyond the basics of Perception, Saving Throws (Fortitude, Reflex, Will), Ability Scores (Str, Dex, Con, Int, Will, Cha), and all the skill and lore options, you can also access the following "stats". Please note that while you can access these values by name, currently the prefix options for these will not "math" correctly (as of v1.6.1).

Class DC

classDC
The proficiency modifier for your character's class. You will want to combine this with level and ability score to get a true DC. We suggest setting classStat="" and then dc.class="{char::level}+{char::classDC}+{char::classStat}" so that you can access dc.class (which is likely what we will make an automated stat for in the future).

Casting Proficiency Modifiers

  • castingArcane
  • castingDivine
  • castingOccult
  • castingPrimal

Armor Proficiency Modifiers

  • heavy
  • medium
  • light
  • unarmored

Weapon Proficiency Modifiers

  • advanced
  • martial
  • simple
  • unarmed

Other Character Sheet Info Available in Dice

name
The name of the character. (For all you macro junkies out there.)


activeExploration
The exploration mode, as set by the character sheet dropdown.


initSkill
The name of the skill used for initiative, as set by the character sheet dropdown.


level
The character's level


maxHp
The character's Max HP


ac
The character's total AC


prof.ac
just the proficiency bonus for ac

Stats in Dice Syntax

[1d20 + {character::statkey:default}]

character

The character you are trying to get the stat for

statkey

The "key", or "name" that the stat is stored as in the character data

default

(optional) a default value to use if one is not found

Character

You can refer to a character with one of the following:

name

Looks up the character by name.
If the name has spaces, must be quoted, as in: {"bob the wizard"::level}

alias

Looks up the character by alias.
Can be quoted, but please avoid spaces in aliases

pc

grabs your pc

alt

grabs your PC's first companion

Character Notes

If you are using a Sage Game the character must exist in the game, otherwise you can only use your own characters.

Stat Key

Refers to the stat/data you are trying to grab. Examples:

  • level
  • ac
  • hp
  • maxhp

Default Value

If the value isn't found, your {char::stat} will show up in your roll as part of the description. Setting a default value of 0 will avoid that. Ex: {char::stat:0}

Color Management

RPG Sage uses Discord embeds for a lot of its replies and interactions. Discord embeds include a color bar on their left side. RPG Sage is able to set the color of that bar when posting a message.

RPG Sage has default colors it uses for each type of message it can post. Each Server that uses RPG Sage is able to override these color choices for all messages on their Server. Each Game that uses RPG Sage is able to override these color choices for all messages in that Game. Thus, RPG Sage checks the Game (if one exists) for the needed Color before checking the Server before using the default Color. There are other ways to change the embed Color further, such as Character Dialog.

When the commands below are used inside a Game Channel, they are accessing the Game's colors. When the commands are used outside a Game Channel, they are accessing the Server's colors.

To see the entire list of Colors used by RPG Sage, simply use the color list command below.

Some Common Color Types:

  • Dice for dice results
  • GameMaster for dialog posted using gm::
  • NonPlayerCharacter for dialog posted using npc::
  • PlayerCharacter for dialog posted using pc::

Color values are expected to be in hexidecimal format, such as #FF00AA.

Get Color

Example:

sage! color get type="Dice"

Set Color

Example:

sage! color set type="GameMaster" color="#FF00FF"

Unset (Reset) Color

Example:

sage! color unset type="GameMaster"

List All Colors

Example:

sage! color list

Sync (Reset) All Colors

Example:

sage! color sync

Dialog Commands

Dialog Basics

RPG Sage allows you to post content using a character's name and image, instead of your own. This process is often called "proxying", but we just refer to it as "posting Dialog".

The most simple Dialog commands include the type of character, the name of the character, and the content you wish to post as that character.

The examples here assume you already have your Character created and ready. You can read more about Character Management here.

Some examples refer to being "in a Game" or "outside a Game". You can read more about Game Management here.

Player Character

Because RPG Sage limits a Player to a single Player Character per Game, the Player is be able to post dialog as Bardok by simply starting their message with pc::.

Example:

pc::Bob rushes into the room and shouts "For Honor!".

Outside of a Game, you are allowed to use any of your PCs, but you must include their name in your command.

Example::

pc::Bob the Fighter::Bob rushes into the room and shouts "For Honor!".

Companions

Because a PC can have multiple companions, you need to call them out by name.

Examples:

companion::Stan the Squire::I am a companion.

The following companion variants can be used to change the color of embedded dialog for Companions: alt, familiar, and hireling.

Examples:

alt::Masked Avenger::"I am here to save the day!"
familiar::Batty::*flaps*
hireling::Butler::"Your cape, master."

Non-Player Character

Non-Player Characters are only available in a Game, and only accessible by the Game Master. NPC dialog requires the Game Master to include character's name when posting with npc::.

Example:

npc::Gobbo the Goblin::"You shall find no honor here, Bob!"

The following npc variants can be used to change the color of embedded dialog for NPCs: ally, boss, enemy.

Examples:

ally::Gobbo the Goblin::"Let's be friends!"
enemy::Gobbo the Goblin::"Let's be enemies!"
boss::Gobbo the Goblin::"Foolish, mortals, witness my true form!"

Minions

Because NPCs need friends, too, you can give them Minions. They are functionally identical to a PC's Companions.

Example:

minion::Sluggo::"Yes boss!"

Game Master

The special "Game Master" NPC can be used by the Game Master in the same way that a PC is used by a Player.

Example:

gm::Bob defeated Gobbo and had honor aplenty.

Advanced Dialog

All Dialog commands are made up of the following parts: type, name, display name, color, avatar, content

These parts are combined in Dialog commands in the following format:

type::name::(display name)::color::avatar::content

type

Character type: gm, npc, enemy, ally, pc, alt, companion, hireling

name

The name of the character to post as.

  • optional for gm::
  • optional for pc:: in a game

display name (optional)

the name to post as, instead of the character's name

  • defaults to character name or 'Game Master' for GM
  • requires parentheses, ex: (Voice from the Darkness)

color (optional)

The color to override the Dialog embed color with.

  • expects hex value 0x000000 or #FFFFFF

avatar (optional)

A url to override the avatar image in the embed.

content

The content you want to post as your dialog.

  • accepts normal discord/markup as well as custom Sage markup

Editing Dialog

You can edit Dialog that RPG Sage posted for you, by replying to the message and starting your new content with edit::.

Example:

edit::updated dialog content

You can alter additional parts of your original message, such as display name or color by including them in your reply as you would a normal Dialog command.

Examples:

edit::#ff00ff::updated content

edit::https://img.rpgsage.io/253330271678627841/characters/mal/mal.png::updated content

Deleting Dialog

You can delete a dialog message you posted by reacting to it with ❌. A Game Master can delete any message from RPG Sage in a channel in their Game by reacting to it with ❌.

Note: This emoji can be changed by changing the emoji used for CommandDelete. See Emoji Management for more information on changing emoji.

Pinning a Post

You can pin a message in a channel in a Game you are a GM or Player of by reacting to it with 📌. Removing the reaction will unpin the message as long as nobody else has pinned it.

Note: This emoji can be changed by changing the emoji used for CommandPin. See Emoji Management for more information on changing emoji.

Dialog Macros

These commands are for managing Advanced Dialog commands, known as Dialog Macros, that make repeat Dialog easier to use.

Dialog Macros allow you to take a long Dialog command and shorten it. Any valid Dialog is valid when creating an Dialog Macro ... meaning in addition to requiring the type (npc, pc, enemy, familiar) and name, you can include any part of a Dialog Post Command in a Dialog Macro, even content!

Dialog Macros were originally created as RPG Sage's first form of alias. Dialog Macros have expanded in functionality and aliases have been added directly to characters. An upcoming update will change these commands from their current alias to something more fitting.

Management Examples:

sage! alias delete name="AngryBob"
sage! alias details name="AngryBob"
sage! alias list
sage! alias set name="AngryBob" value="enemy::Farmer Bob::"
sage! alias set name="HappyBob" value="ally::Farmer Bob::"

Usage Examples:

angrybob::"Why are you adventurer's always riding through my field!?"

happybob::"Won't you come in for dinner?"

Dice Commands

Dice Basics

Simple Rolls

[1d20]
[1d8]
[3d4]

Rolls w/ Modifiers

[1d20 + 4]
[1d8 + 2]
[3d4 + 3]

Rolls w/ Descriptions

[1d20 + 4 attack]
[1d8 + 2 damage]
[3d4 + 3 magic missile]
[1d20 + 7 secret stealth]

Note: Any Dice with the word "secret" (with or without quotes) in the description will be flagged by RPG Sage. If the Channel or Game has rules on how to treat "secret" rolls, then this flagged "secret" roll will be processed accordingly.

Rolls w/ Multiple Dice Types

[1d4 dagger + 1d6 sneak]
[1d8 sword + 1d6 holy]
[2d8 fire + 2d8 ice + 2d8 holy]

Multiple Rolls

[6#3d6 stat]
[2#1d20 attack]
[3#1d4 + 1 missile]

Dice Tests

RPG Sage can test your dice results for 5 conditions:

  • = equal to
  • > greater than
  • >= greater than or equal to
  • < less than
  • <= less than or equal to

Examples:

[1d2 = 1]
[1d20 > 10]
[1d20 >= 11]
[1d20 + 5 < 15]
[1d100 <= 25]

Because it can be annoying trying to find the =, >, < characters on mobile keyboards, RPG Sage will allow the following text equivalents:

Test Text Equivalent
= eq
> gt
>= gteq or gte
< lt
<= lteq or lte

Examples:

[1d2 eq 1]
[1d20 gt 10]
[1d20 gteq 11]
[1d20 + 5 lt 15]
[1d100 lteq 25]

Success and Failure

When rolling a test, the output will include an emoji to indicate success or failure. By default, these are 👍 and 👎.


Dice Groups

Simple Groups

[1d20 attack; 1d8 damage]
[1d20 + 5 attack; 1d8 + 2 slashing]
[1d20 + 2 attack; 1d4 dagger + 2d6 sneak]

(Both sets of dice will be rolled and their results will be listed together.)

Tested Groups

[1d20 >= 15 attack; 1d8 damage]
[1d20 + 5 >= 10 medicine check; 2d8 healing]
[1d20 > 5 conceal; 1d20 >= 10 attack; 1d4 damage]

(Each test must succeed before the next group is rolled.)

Success and Failure

When rolling a test, the output will include an emoji to indicate success or failure. By default, these are 👍 and 👎.


Dice Overrides

Because you can set different Dice options at different levels (Server, Game, Channel), RPG Sage has the ability to override these settings as you roll.

Game System Examples:

[dnd5e 1d20 ac 10 attack]
[pf2e 1d20 dc 10 check]

You can read more about Dice options by Game System here.

Dice Output Examples:

[xxs 1d20 ac 10 attack]
[xxl 1d20 dc 10 check]

You can read more about Dice options by Dice Output here.

Combination Examples:

[xxs pf2e 1d20 dc 10 check]
[xxl dnd5e 1d20 ac 10 attack]

Dice Manipulation

RPG Sage has many ways you can modify or manipulate the dice you roll.

Drop / Keep

This feature allows you to drop or keep the rolls that are the highest or lowest of your results, using the dh, dl, kh, kl syntax in your roll. You can also specify how many to keep.

Examples:

Disadvantage / Misfortune by Dropping Highest
[2d20dh]

Advantage / Fortune by Dropping Lowest
[2d20dl]

Advantage / Fortune by Keeping Highest
[2d20kh]

Disadvantage or Misfortune by Keeping Lowest
[2d20kl]

Roll 4 times and Keep the Highest 3
[4d6kh3]

Fixed Results

Sometimes, you already know the result of one or more of the dice you are going to roll. We call those rolls "fixed". To tell RPG Sage the value(s) of these "fixed" rolls, you add them at the start of your dice, in parentheses and separate multiple values by commas, ex (1,2). You still tell it how many and what size to roll.

Examples:

Unnatural 20
[(20)1d20]

The first two rolls are 1 and 6, the other 4 are rolled normally
[(1,6)6d6]

No Sort

Normally, die rolls are sorted from lowest to highest when displayed. If you instead need to see the dice in the order they were rolled, then the ns feature is for you!

Example:

[8d10ns]

Dice Tester

If you ever get a bad string of dice results and want to see how RPG Sage's Dice perform across thousands of rolls ... try this!

Valid die values: 2, 3, 4, 6, 8, 10, 12, 20

Examples:

sage! dice test die="6"
sage! dice test die="20"

Table Roller

RPG Sage can roll on tables in one of two ways:

  • Embedded: Your table is embedded in your macro
  • External: You provide a url to a TSV formatted table
    (This is most often a Google Sheet using "publish to web" set to TSV.)

The Table roller expects each possible result to be on its own line, with the following values:

  • Die roll or range
  • Text of the result

Table Example:

1 Only on a roll of 1
2-3 On a roll of 2 or 3
4-5 On a roll of 4 or 5
6 Only on a roll of 6

Embedded tables need each item on its own line and uses spaces between the number(s) and the text.

Embedded Table Syntax:

[1 Only on a roll of 1
2-3 On a roll of 2 or 3
4-5 On a roll of 4 or 5
6 Only on a roll of 6]

Random Selection

Another feature of RPG Sage's dice engine is its ability to select items from a list. This was built mostly to alleviate the GM's constant need to select which PC a baddie targets, but we are sure it has many other uses as well.

Note: Currently this feature relies on commas to separate the items in the list, so be careful of putting fancy names in your lists!

Simple Selection

[Fighter, Wizard, Rogue]

Multiple Selections

[2#Fighter, Wizard, Rogue]

The results will be listed in the order they were selected.

Multiple Selections, Sorted

[2s#Fighter, Wizard, Rogue]

The results will be sorted alphabetically.

Multiple Selections, Unique

[2u#Fighter, Wizard, Rogue]

The results will be listed in the order they were selected.

Secret Selection

[gm#Fighter, Wizard, Rogue]

This treats the roll as a "secret" roll and is handled by the Channel's or Game's settings accordingly.

Note: The Multiple, Sorted, Unique, and Secret flags can be mixed and matched in any combination.


Simple Math

In addition to rolling dice and selecting things from a list, RPG Sage's dice engine can also do simple math that doesn't involve dice. This is intended to be a simple, but helpful, addition for folks that want or need to do math in their games.

[1+2]
[1+2*3]
[1+2(3-8)]

Dice Output

RPG Sage's Dice can be configured to be as concise or verbose as you want. These settings can be set at the Channel, Game, or even Server level.

Output Types

The output types are: XXS, XS, S, M, L, XL, XXL, and ROLLEM.

The small and medium types all use a single line for any given dice "group" (a single []) while the large types use multiple lines. The ROLLEM type is for users that are familiar/comfortable with the way Rollem's output looks.

Default Type

When rolling dice, RPG Sage will check the current Channel for output type. If it doesn't find it at the Channel level, it will use the type from the Game (if a Game exists and has a default set). If it still doesn't a type, it will use the default for the Server (if one is set). If it hasn't found an output type by that point, it defaults to M.

Examples by Type

Let us consider the following dice roll for each of the output types:

[1d20 conceal; 1d20+8 attack; 1d10 slashing +1d6 fire +2d6 holy]

Let us assume the following rolls:

  • conceal: 5
  • attack: 8
  • slashing: 10
  • fire: 3
  • holy: 1 and 1

These rolls bring us the following totals:

  • conceal: 5
  • attack: 16
  • damage: 15

Output Type: XXS

5; 16; 15

Output Type: XS

5 `conceal`; 16 `attack`; 15 `slashing`

Output Type: S

5 `conceal` ⟵ [5]; 16 `attack` ⟵ [8] + 8; 15 `slashing` ⟵ [10] + [3] fire + [1,1] holy

Output Type: M (default)

5 `conceal` ⟵ [5]1d20; 16 `attack` ⟵ [8]1d20 + 8; 15 `slashing` ⟵ [10]1d10 + [3]1d6 fire + [1,1]2d6 holy

Output Type: L

5 `conceal` ⟵ [5]
16 `attack` ⟵ [8] + 8
15 `slashing` ⟵ [10] + [3] fire + [1,1] holy

Output Type: XL

5 `conceal` ⟵ [5]1d20
16 `attack` ⟵ [8]1d20 + 8
15 `slashing` ⟵ [10]1d10 + [3]1d6 fire + [1,1]2d6 holy

Output Type: XXL

[1d20 conceal; 1d20+8 attack; 1d10 slashing +1d6 fire +2d6 holy]
5 `conceal` ⟵ [5]1d20
16 `attack` ⟵ [8]1d20 + 8
15 `slashing` ⟵ [10]1d10 + [3]1d6 fire + [1,1]2d6 holy

Output Type: ROLLEM

'conceal', ` 5 ` ⟵ [5] 1d20
'attack', ` 16 ` ⟵ [8] 1d20 + 8
'slashing', ` 18 ` ⟵ [3] 1d10 + [4] 1d6 fire + [5, 6] 2d6 holy

Game Specific Dice

While you can use the basic dice engine for any system (all you need is to roll and maybe test results), you are likely used to seeing certain syntax in your rolls. Additionally, there are a number of tests and other bits of math that are performed with almost every roll of many games. With RPG Sage, when you set your Channel, Game, or Server to a specific Game (such as Pathfinder 2e), the Dice engine will know to perform many of these actions for you. We plan to continue adding more games as well as expanding the things we can do within each game.

Dungeons & Dragons 5e

Armor Class (AC)

This shortcut tells the dice to do a test to see if the roll meets or exceeds (the "ac" is treated as ">=") the value given.

[1d20 + 5 ac 10]

Difficulty Class (DC)

This shortcut tells the dice to do a test to see if the roll meets or exceeds (the "dc" is treated as ">=") the value given.

[1d20 + 5 dc 10]

Critical Damage

If your attack roll has a target AC and your result is a critical hit, RPG Sage will adjust your damage accordingly. By default this is simply x2 damage, but RPG Sage has multiple methods of determining critical hit damage.

Advantage and Disadvantage (+/-)

If your roll has Advantage, you may roll [+2d20] to tell RPG Sage to roll twice and take the higher of the two dice. Likewise, if you have Disadvantage, you may use [-2d20] to roll twice and take the lower of the two dice.

Graded Success and Failure

When playing DnD 5e, a Natural 20 is a Critical Success and Natural 1 is a Critical Failure. RPG Sage takes this into account when you roll using AC or DC and changes the emoji used accordingly. Additionally, when you roll an attack/damage combo [1d20 ac 10; 1d6 damage] RPG Sage will know to double the damage if your success was critical.

Essence 20

Versus (VS)

This shortcut tells the dice to do a test to see if the roll meets or exceeds (the "vs" is treated as ">=") the value given.

[1d20 + 5 vs 10]

Skill Test (+)

[+d4]

Difficulty (DIF)

[+d2 dif 10]

Upshift / Downshift (UP/DN)

[+d4up2]
[+d6dn1]

(Currently known bug: do not leave spaces surrounding up/dn)

Specialization (*)

[+d4*]
[+d6*]

All of these may be combined!

[+d4*up2 dif 5 simple test]

(Currently known bug: do not leave spaces surrounding up/dn)

Pathfinder 2e

Armor Class (AC)

This shortcut tells the dice to do a test to see if the roll meets or exceeds (the "ac" is treated as ">=") the value given.

[1d20 + 5 ac 10]

Difficulty Class (DC)

This shortcut tells the dice to do a test to see if the roll meets or exceeds (the "dc" is treated as ">=") the value given.

[1d20 + 5 dc 10]

Critical Damage

If your attack roll has a target AC and your result is a critical hit, RPG Sage will adjust your damage accordingly. By default this is simply x2 damage, but RPG Sage has multiple methods of determining critical hit damage.

Fortune and Misfortune (+/-)

If your roll has Fortune, you may roll [+2d20] to tell RPG Sage to roll twice and take the higher of the two dice. Likewise, if you have Misfortune, you may use [-2d20] to roll twice and take the lower of the two dice.

Multi Attack Penalty (MAP)

If you are rolling the same attack multiple times, you can simplify your roll by combining the multiple roll modifier 2# with MAP-5. You can, of course, roll more than twice and change the MAP to another value (most likely 4).

[2MAP-5#1d20 ac 10; 1d6 damage]
[3MAP-4#1d20 ac 10; 1d6 damage]

Graded Success and Failure

When playing Pathfinder 2e, a Success of 10 or more is a Critical Success, while a Failure of 10 or more is a Critical Failure. Additionally, a natural 1 lowers your success grade by 1 while a natural 20 increases your success grade by 1. RPG Sage takes this into account when you roll using AC or DC and changes the emoji used accordingly. Additionally, when you roll an attack/damage combo [1d20 ac 10; 1d6 damage] RPG Sage will know to double the damage if your success was critical.

Striking, Greater Striking, Deadly, and Fatal

When playing Pathfinder 2e, there is some extra math involved in critical hits when you have striking, deadly, and fatal weapons. RPG Sage looks at the input of your dice to see if it can find any of these when calculating your critical damage.

[1d20 + 10 ac 10 pick (fatal d10); 1d6 piercing]
[1d20 + 10 ac 10 longbow (deadly d10); 1d8 piercing]
[1d20 + 10 ac 10 striking longsword; 1d8 slashing]
[1d20 + 10 ac 10 greater striking longsword; 1d8 slashing]
[1d20 + 10 ac 10 major striking longsword; 1d8 slashing]

Quest RPG

Versus (VS)

This shortcut tells the dice to do a test to see if the roll meets or exceeds (the "vs" is treated as ">=") the value given.

[1d20 + 5 vs 10]

Dice Macros

Dice Macro Management

Dice Macro Categories are helpful in grouping related macros together, but they also serve a special function for Pathfinder 2e players using imported characters. Macros with the same category name as an imported Pathfinder 2e character name will show up in the imported character's sheet so that you can select then and roll them with the click of a button. Read more about Importing Characters here.

Note: Dice Macros are set on you, as a User of RPG Sage. Therefore they are usable by you on any Server you are on, in any Game or Channel you might be in. They cannot be used by anybody else. Future updates will drastically change accessbility of Dice Macros.

Dice Macro Lifecycle

These commands are used to create, view, update, and delete a Dice Macro.

Setting a Dice Macro


Creating a Dice Macro requires a name. If your macro simply rolls dice, then it also requires dice. If your macro is rolling on a table, then if instead requires table. Any Dice Macro can optionally have a cat (short for category).

Examples:

sage! macro set name="BobScythe" dice="[1d20+3 atk; 1d10 S dmg]"
sage! macro set name="BobScythe" cat="Bob the Farmer" dice="[1d20+3 atk; 1d10 S dmg]"
sage! macro set name="TableRoll" table="https://url_to_tsv_table_content"

Usage:

[BobScythe]

Dice Macros allow for the use of arguments, making your rolls more dynamic. See more about Dice Arguments here.

Example:

sage! macro set name="BobDagger" category="Bob the Farmer" [1d20+2 {ac} atk; 1d4 {type:P} dmg]

Usage:

[BobDagger ac=10]
[BobDagger type=S]
[BobDagger ac=10 type=S]

View a Dice Macro


Example:

sage! macro details name="BobScythe"

Moving a Dice Macro


This changes the Dice Macro's category.

Example:

sage! macro move name="BobScythe" category="Bob the Farmer"

Deleting Dice Macros


You can delete one by name, multiple by category, or all completely.

Examples:

sage! macro delete all
sage! macro delete category="Bob the Farmer"
sage! macro delete name="BobScythe"

Listing Dice Macros

You can list all your Dice Macros, grouped by category, or you can list all the Dice Macros in a given category.

Examples:

sage! macro list
sage! macro list category="Bob the Farmer"

Dice Macro Arguments

Dice Macros allow arguments, making them very flexible but also easy to overcomplicate. Arguments are indicated with curly braces: { and }

The two primary types of arguments are: indexed and named.

Note: If you use an argument more than once in your macro, it will be replaced every time.


Indexed arguments start with 0 go up

Valid Values: {0}, {1}, {2}, etc

Example Create:

sage! macro set name="attack" dice="[1d20 {0} atk; 1d6 {1} dmg]"

Example Usage:

[attack "+1" "+2"]

... results in ...

[1d20 +1 atk; 1d6 +2 dmg]

Named arguments should can only letters, numbers, and underscores

Valid Example: {bless_bonus}

Example Create:

sage! macro set name="attack" dice="[1d20 {bless_bonus} atk; 1d6 {bless_bonus} dmg]"

Example Usage:

[attack bless_bonus="+1"]

... results in ...

[1d20 +1 atk; 1d6 +1 dmg]

Arguments can have default values

Valid Default Examples: {atk_bonus:+0}, {dmg_type:P}

Example Create:

sage! macro set name="dagger" dice="[1d20 {atk_bonus:+0} atk; 1d4 {dmg_type:P} dmg]"

Example Usage:

[dagger]

... results in ...

[1d20 atk; 1d4 P dmg]

Example Usage:

[dagger atk_bonus="+1"]

... results in ...

[1d20 +1 atk; 1d4 P dmg]

Example Usage:

[dagger atk_bonus="+2" dmg_type="S"]

... results in ...

[1d20 +2 atk; 1d4 S dmg]

Note: A default value of 0 (or +0) will NOT be shown in the final dice roll

Special Argument Types

VS aka {vs}

VS is a convenience for setting the roll's target success value in d20 style games; AC, DC, and VS are all acceptable as {ac}, {dc}, or {vs}

Example Create:

sage! macro set name="attack" dice="[1d20 {ac} atk; 1d6 dmg]"

Example Usage:

[attack ac=10]

... results in ...

[1d20 ac 10 atk; 1d6 dmg]

Remaining aka {...}

Remaining is more advanced- it takes every indexed argument that wasn't explicitly used in your macro and adds them all with spaces between them.

Example Create:

sage! macro set name="extras" dice="[1d20 {0} atk; 1d6 {1} {...} dmg]"

Example Usage:

[extras +1 +3 "+1d6 sneak" "+1d4 fire" "+1 holy"]

... results in ...

[1d20 +1 atk; 1d6 +3 +1d6 sneak +1d4 fire +1 holy dmg]

Note: If you have more than one "remaining" arg in your macro, they will all get the same set of values.

Emoji Management

RPG Sage uses emoji to react to a lot of interactions, such as 👍 on a successful command or 👎 on a failed command. Emoji are also used when showing Dice results with a value test.

RPG Sage has default emoji it uses for each type of interation. Each Server that uses RPG Sage is able to override these emoji choices for their Server. Each Game that uses RPG Sage is able to override these emoji choices for that Game. Thus, RPG Sage checks the Game (if one exists) for the needed Emoji before checking the Server before using the default Emoji.

When the commands below are used inside a Game Channel, they are accessing the Game's emoji. When the commands are used outside a Game Channel, they are accessing the Server's emoji.

To see the entire list of Emohi used by RPG Sage, simply use the emoji list command below.

Some Common Emoji Types:

  • DieSuccess for dice test results
  • DieFailure for dice test results

Emoji values can be raw emoji characters as well as discord custom emoji.

Get Emoji

Example:

sage! emoji get type="DieSuccess"

Set Emoji

Example:

sage! emoji set type="DieFailure" emoji="😭"

Unset (Reset) Emoji

Example:

sage! emoji unset type="DieFailure"

List All Emoji

Example:

sage! emoji list

Sync (Reset) All Emoji

Example:

sage! emoji sync

Game Management

These commands let a Server Owner, "SageAdmin", or "Game Admin" manage games. Once a user is added to a Game as a Game Master, they are allowed to manage their own game.

Note: These commands do not work in an IC (in-character) channel, as those channels are designed to avoid clutter by only responding to Dialog and Dice commands.

Note: When creating, updated, or viewing a Game, RPG Sage will also attempt to confirm it has all the Discord Permissions it needs to perform its tasks correctly. You may get a prompt asking if you want it to fix these permissions, and upon clicking Yes you may get a notification that it failed. In that case, you will need to get an admin in your Discord Server to help you out. Similarly, Sage detects when some other bots are present in the Game Channels and may ask if you want them blocked.


Game Lifecycle

These commands are used to create, view, update, and archive a Game.

Create a Game

Creating a Game requires a name. If a channel is not provided, the current channel will be added to the game. All other settings are optional and are set using the argument format of option="value". Game Options are detailed here.

Examples:

sage! game create name="Dragon Saga: Questbound!"

sage! game create name="Dragon Saga" gameSystem="dnd5e"

sage! game create name="Questbound!" gameSystem="pf2e" diceSecret="gm"

sage! game create name="Questbound, 2e!" gameSystem="pf2e" ic=" #qb-2e-ic " ooc=" #qb-2e-ooc " gms=" @Randal " players=" @QuestboundPlayers "

View Game Details

This command displays information about the Game the current channel is a part of. It lists things like the Game's name, channels (and their types), and the users in the Game. Users are listed as either Game Masters or Players (and PCs are listed if a Player has one).

Example:

sage! game details

Update a Game

This command allows you to change a Game's settings. Much like creating a Game, you only need to include the settings you want to change. You are also able to unset a setting to return it to the default. Game Options are detailed here.

Examples:

sage! game update name="Oops, all bards!"
sage! game update gameSystem="pf2e" dicesecret="unset"

Archive a Game

This command lets you archive a Game. Archiving a Game tells RPG Sage that you are done with the Game, but it does not delete the Game from the system. This frees up the channels to be used for other Games, but keeps the information about the Game for later reference.

Example:

sage! game archive

Channels

These commands are used to add or remove a Channel.

Add a Channel

This command allows you to add a Channel to a Game. You should see the 👍 if successful, or 👎 if not.

Examples:

sage! game update gm=" #gm-only "
sage! game update ooc=" #player-chat "

Remove a Channel

This command removes the referenced Channel(s) from its current Game. You should see the 👍 if successful, or 👎 if not.

Examples:

sage! game update remove=" #player-chat "
sage! game update remove=" #player-chat #peanut-gallery "

Game Masters

These commands let you add or remove Game Masters.

Add a Game Master

This command adds the referenced Users to the current Game as Game Masters. You should see the 👍 if successful, or 👎 if not.

Examples:

sage! game update gms=" @forever-gm "
sage! game update gms=" @dunge @onmaster "

Remove a Game Master

This command removes the mentioned Game Master(s) from the current Game. You should see the 👍 if successful, or 👎 if not.

Examples:

sage! game update remove=" @forever-gm "
sage! game update remove=" @dunge @onmaster "

Players

These commands let you add or remove Players.

Add a Player

This command adds the referenced Users to the current Game as Players. You should see the 👍 if successful, or 👎 if not.

Examples:

sage! game update players=" @bob-villa "
sage! game update players=" @ren @stimpy "

Remove a Player

This command removes the mentioned Player(s)from the current Game. You should see the 👍 if successful, or 👎 if not.

Examples:

sage! game update remove=" @bob-villa "
sage! game update remove=" @ren @stimpy "

Characters

When Character Management commands are used within a Game, they only affect characters within that Game. Characters created in a Game cannot be accessed outside that Game. Characters created outside a Game cannot be accessed from within one. "Used within a Game" simply means the command was used in a Channel that belongs to a Game. You can read about Character Management here.


Dice Notifications (aka Pings)

By default, RPG Sage will ping (@Mention you) when it responds to your dice commands. If you wish, you can toggle this notification on or off.

Example:

sage! game toggle dice ping

Game Options

These options are used during Game Management.

Note: multiple options can be set at the same time


dialogPost=""


This determines how RPG Sage's dialog posts are handled.

Valid dialogPost values:

  • EMBED uses an embed that includes the character's avatar on the right. (default)
  • POST uses a simple message post some screen readers cannot read Discord embeds.
  • UNSET uses the dialogPost method inherited from either the User, Game, or Server.

Examples:

sage! game update dialogPost="post"
sage! game update dialogPost="unset"

dialogTo=""


This is the Channel you want all Dialog in the Game to be posted to, regardless of where you post it from.

Example:

sage! game update dialogTo=" #dialog-only "

diceCrit="" (DnD5e and PF2e only)


This sets how Critical Hit damage is calculated.

Valid diceCrit values:

  • TIMESTWO rolls the dice and multiplies the results x2. (default)
  • ROLLTWICE rolls the damage twice and adds the results together.
  • ADDMAX rolls the dice once and then adds max damage to the result. (RPG Sage House Rule)
  • UNSET uses the diceCrit method inherited from either the Game or the Server.

Examples:

sage! game update diceCrit="addmax"
sage! game update diceCrit="unset"

diceOutput=""


This determines how compact or verbose the dice results are displayed. Read more about Dice Output here.

Valid diceOutput values:

  • XXS, XS, S
  • M (default)
  • L, XL, XXL
  • ROLLEM uses the diceoutput method that most closely emulates what Rollem uses.
  • UNSET uses the diceoutput method inherited from either the Game or the Server.

Examples:

sage! game update diceoutput="xxl"
sage! game update diceoutput="rollem"
sage! game update diceoutput="unset"

dicePost=""


This determines how RPG Sage posts dice results.

Valid dicePost valus:

  • POST will output dice results in a simple post.
  • EMBED will output dice results in an embed in a post. (default)
  • UNSET uses the dicepost method inherited from either the Game or the Server.

Examples:

sage! game update dicepost="post"
sage! game update dicepost="unset"

diceSecret=""


This determines how RPG Sage reacts to dice with the word "secret" in them.

Valid diceSecret values:

  • DM tells Sage to find the first available GM and send the dice results to them as a DM.
  • GM tells Sage to find a GM channel and send the dice results there. If no GM channel exists, this is treated as DM.
  • HIDE tells Sage to hide/redact the results using spoiler tags.
  • IGNORE simply ignores them. (default)
  • UNSET uses the diceSecret method inherited from either the Game or Server.

Examples:

sage! game update dicesecret="ignore"
sage! game update dicesecret="unset"

gmCharName=""


This sets the diplay name of the Game Master special NPC used by the gm:: Dialog.

Example:

sage! game update gmCharName="Narrator"

gameSystem=""


This is the Game System, which determines how RPG Sage handles certain features, such as Dice and Search.

Valid gameSystem values:

  • CNC Coyote & Crow
  • DND5E Dungeons & Dragons 5e
  • E20 Essence 20 system (G.I. Joe, Power Rangers, Transformers, etc.)
  • PF1E Pathfinder RPG
  • PF2E Pathfinder 2e
  • QUEST Quest RPG
  • SF1E Starfinder
  • VTM5E Vampire: The Masquerade (5e)
  • NONE (default)

Examples:

sage! game update gameSystem="vtm5e"
sage! game update gameSystem="pf2e"

gm=""


This adds the User mentioned as a Game Master of the new Game.

Example:

sage! game create name="Dragon Saga" gm=" @Randal "

gms=""


This adds the Users as Game Masters of the Game. If a Role is given, the Role's Users are added as a Game Masters of the Game.

Examples:

sage! game create name="Dragon Saga" gms=" @GameMaster "
sage! game create name="Dragon Saga" gms=" @DragonSagaGameMasters "

ic=""


This adds the Channel referenced as an In-Character Channel of the Game.

Examples:

sage! game create name="Dragon Saga" ic=" #dragon-saga-ic "

name=""


This sets the name of the Game.

Examples:

sage! game create name="Dragon Saga"
sage! game update name="Questbound"

ooc=""


This adds the Channel referenced as an Out-of-Character Channel of the Game.

Examples:

sage! game create name="Dragon Saga" ooc=" #dragon-saga-ooc "

players=""


This adds the Users as Players of the Game. If a Role is given, the Role's Users are added as a Players of the Game.

Examples:

sage! game create name="Dragon Saga" players=" @Player1 @Player2 "
sage! game create name="Dragon Saga" players=" @DragonSagaPlayers "

remove="" (update only)


When updating a Game, any Players, Game Masters, or Channels mentioned or referenced in the remove command will be removed from the Game.

Examples:

sage! game update remove=" #old-ic #old-ooc "
sage! game update remove=" @RemovedPlayer @RemovedGameMaster "

Maps (prototype)

Yes, you heard that right, we can do maps! All you have to do is create a metadata text file that has a name ending in .map.txt and then drop the file in the channel you want your map. Sage will take it from there!

Note about prototype.

This feature is still a prototype, perhaps consider it an alpha release. The interface and feedback aren't as clean as we want and the execution of features is a tad clumsy. But, we assure you that we already have planned improvements that will make it much better!

Note about image storage.

RPG Sage doesn't store any images used in the creation of maps. Therefore, you will need to make sure that they are all public urls that will be available until you are no longer using the map. The simplest way to do this is to post the image(s) into a discord channel and then grab the url from the uploaded image(s).

Importing a Map

RPG Sage has the ability to render maps and allow GMs and Players to move tokens on that map. The images must be publicly available on the internet via url (http/https). You can build a map using our Map Builder and export the file needed to import your map. By posting that file as an attachment, RPG Sage will attempt to import and render your map.

Map Controls

Movement Arrows (left side)

Move your active token (or terrain if GM) one square in the direction indicated.

Gear

Disabled; saved for future use.

Mountain

GM uses this button to cycle through the terrain images to select the active terrain.

Yellow Circle

Cycle through aura images (for the active token) to select the active aura. A token can have any number of auras configured, but only one can be active at a time. (This limit of active auras also applies to terrain for GMs.)

Person

Cycle through token images to select the active token. Players can only cycle through tokens assigned to them. GMs cycle through all tokens. If you are using RPG Sage's Game feature, a PC's token (along with familiars/companions) should be added automatically to the map when trying to select their token. (There is a known bug in the current code that will likely spawn a PC's token even if you already assigned them a token when making the map.)

Up and Down Arrows (right side)

GMs can use this to reorder (alter the z-index) of the terrain and tokens.

Red X

GM uses this button to delete terrain / tokens. The thought was you import a map for an encounter with all baddies and delete them as they are removed from play.

Moving Tokens

Moving Tokens by Posting Compass Directions

This command allows you to move your token more than one square at a time. The compass directions are read from brackets, in order, separated by spaces. Before moving your token, you will get a confirmation prompt that lists movement by using arrows to point in the directions you indicated.

Valid Compass Direction Values:

  • NW, N, NE, W, E, SW, S, SE

Arrow Character Equivalents:

  • ↖, ⬆, ↗, ⬅, ➡, ↙, ⬇, ↘

Movement Examples:
(you must reply to the map's message for Sage to know which map you are moving on)

sage! map move [S S S SE]
sage! map move [N NE E NE E]

Map File Contents

A map file consists of "blocks" that detail each image you want on the map. The four types of block are: map (the map's background image), terrain (a moveable piece of terrain/trap/hazard), aura (a toggleable aura that moves with a token/terrain), token (a pc/npc). The layers are drawn from the bottom to top (map, terrain, aura, token) and initially drawn in the order listed in the file within each layer (you can change their draw order later via the interface). Only the first map layer will be drawn. Each block must have the url to the image and the name of the image (in the case of the [map] block, this is the name of the map that RPG Sage will display).

[map] (background image/layer)

  • url the url to the image
  • name the name of the map
  • grid this number of columns (first) and rows (second), ex: 24x11
  • spawn = the column (left) and row (right) where where new tokens appear, ex: 2,1

[terrain] (bottom layer)

  • url the url to the image
  • name the name of the terrain or object
  • size the width (first) and height (second) of terrain, ex: 1x1
  • position the starting column (left) and row (right) on the map, ex: 3,2

(Only a GM can move an object of this layer)

[aura] (middle layer)

  • url the url to the image (yes, it requires images for now)
  • name the name of the aura
  • anchor the name of the token (or terrain) to anchor the aura to
  • opacity how transparent the image is (0% - 100%), ex: 50%
  • size the width (first) and height (second) of aura, ex: 1x1
  • position the column (left) and row (right) on the map relative to anchor
    • A 5 ft. emanation from a 1x1 token would have an anchor, size=3x3, and position=-1,-1
    • (Auras will change greatly in the next iteration.)

[token] top layer

  • url the url to the image
  • name the name of the PC or NPC
  • size the width (first) and height (second) of token, ex: 1x1
  • scale the image scaling factor, ex: 1.5
  • position the starting column (left) and row (right) on the map, ex: 3,2
  • user the Discord handle of the User to assign ownership of the token (PCs only): @PlayerName#1234

Map File Example

[map]
https://rpgsage.io/images/docs/map/example/ForgedFacadeReveal.png
name=Forged Facade Reveal
grid=7x10
spawn=4,1

[token]
https://rpgsage.io/images/docs/map/example/Hoobla.png
name=Hoobla
size=1x1
position=4,7
user=@Randal#7243

[token]
https://rpgsage.io/images/docs/map/example/BaltaramToken.png
name=Baltaram
size=1x1
position=4,2

[token]
https://rpgsage.io/images/games/ftp-756/YellowCircle.png
name=Bodyguard (Yellow)
size=1x1
position=3,2

[token]
https://rpgsage.io/images/games/ftp-756/BlueCircle.png
name=Bodyguard (Blue)
size=1x1
position=4,3

[token]
https://rpgsage.io/images/games/ftp-756/PurpleCircle.png
name=Bodyguard (Purple)
size=1x1
position=5,2

Pathfinder / Starfinder

These commands are for Paizo's Pathfinder and Starfinder Games.

Coin Counter

RPG Sage has a basic understanding of adding and subtracting Pathfinder game currency (copper, silver, gold, platinum).

Example:

sage! 3,000cp +100sp +9cp +200gp -1,000sp

Calendar Commands

These commands involve the calendar and dates of Pathfinder and Starfinder

Calendar

This command lists information about the calendars used in Pathfinder and Starfinder, such as names of days and months and number of days in each month.

Example:

sage! finder calendar

Slash Command:

/sage-finder calendar

Date

This command accepts a date (YYYY-MM-DD) and returns that date as it would be on Golarion in Pathfinder and Absalom Station in Starfinder. If a point of origin is given, then the dates will be relative to that location's calendar instead of being based off the Earth calendar.

Valid origin values:

  • Earth
  • Golarion
  • Absalom Station

Examples:

sage! finder date date="1980-01-31"
sage! finder date date="4300-03-01" origin="Golarion"
sage! finder date date="0427-01-01" origin="Absalom Station"

Notes: Year must be 4 digits, including a leading zero for some years if needed.

Slash Command:

/sage-finder date

Today

A shortcut for the date command above that uses the current date.

Example:

sage! finder today

Notes: Date used is from Pacific timezone

Find / Search

These commands will search content loaded by RPG Sage as well as Archives of Nethys and return the top 10 hits (as well as a count of total hits). Results that RPG Sage can display directly in the channel will hae a numeric emoji that you can react with to see the item. Results that have an AoN url will have an AoN Icon as well as a link to the page with the results. There will also be a link at the bottom of the list that takes you to the AoN search page with your query loaded so that you can see the full results.

Note: This command only works in channels set to use one of the PF/SF games.

Find

The Find command only searches item names. It was meant to be a quick way to load an item, like a spell, that you know the name of. If your search returns only one item with an exact name match, RPG Sage will skip the results list and show the item.

Find Examples:

sage?! telekinetic projectile
sage?! shortsword

Search

The Search command searches item names as well as content.

Search Examples:

sage? dying
sage? recovery
sage? orc ax
sage? magic missile staff

Pathfinder 2e

These commands are for Paizo's Pathfinder 2e Game.

Difficulty Classes

These commands return DC information for Pathfinder 2e. You can get a Simple DC by proficiency, DCs listed by level, as well as a DC by level or spell level.

Valid proficiency values:

  • U or Untrained
  • T or Trained
  • E or Expert
  • M or Master
  • L or Legendary

Simple DC Examples:

sage! simple dcs
sage! simple dc t
sage! simple dc trained

DCs by Level Examples:

sage! dcs by level
sage! dc by level 5

DC by Spell Level Example:

sage! dc by spell level 2

Slash Command:

/sage-pf2e dcs

Lists

These commands are meant to provide a quick way to see a list of various things in Pathfinder 2e.

List Gods by Domain

This command lets you list gods that have the given Domain.

Examples:

sage! list gods by domain family
sage! list gods by domain sun

List by Trait

These commands let you list weapons, armor, and spells that have the given Trait.

Examples:

sage! list weapons by trait agile
sage! list armor by trait clumsy
sage! list spells by trait fire

Note: The data is legacy and only includes Core, APG, and Secrets of Magic

Spells by Tradition and Level

This command let you list spells by tradition and level.

Valid Tradition Values:

  • arcane, divine, occult, primal

Valid Level Values:

  • cantrip, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10

Note: RPG Sage understands plural cantrips as well as level "names" such as 1st, 2nd, 3rd, etc.

Examples:

sage! spells arcane 1
sage! spells divine 3
sage! spells occult cantrip
sage! spells primal cantrips
sage! spells arcane 3rd

For convenience, there is a cantrips command as well.

Example:

sage! arcane cantrips

Note: The data is legacy and only includes Core, APG, and Secrets of Magic

There is an advanced variation of this command that will let you create a "custom" spell list by mixing/matching/excluding traditions. To add spells of a tradition to your custom list, you use + (ex: +arcane). To remove spells of a tradition to your list, you use - (ex: -divine). Likewise, & adds spells that exist in both the list before and after the & while | adds spells that exist in either list.

1st Level; Arcane Spells and Divine Spells:

sage! spells 1st arcane +divine

1st Level; Arcane Spells that are not Divine Spells:

sage! spells 1 arcane -divine

1st Level; Spells that are Arcane and Divine Spells:

sage! spells 1 arcane &divine

Note: The command is progressive/additive, so you need to be careful.

3rd Level; Spells that are Arcane and Primal, without spells that are Occult

sage! spells 3 arcane &primal -occult

Focus Spells Lists

This command lets you list focus spells by archetype, class, domain.

Archetype Example:

sage! focus spells shadowdancer

Class Example:

sage! focus spells bard

Domain Example:

sage! focus spells fire

Note: The data is legacy and only includes Core, APG, and Secrets of Magic

Starting Wealth

This command will show you the Starting Wealth table (Table 10-10 in the original Core Rulebook) for Pathfinder 2e. If you also provide the level, it will show only the values for that level.

Examples:

sage! starting wealth
sage! starting wealth 1st
sage! starting wealth 12

Income Earned

This command will show you the values from the Income Earned Table (Table 4-2 in the original Core Rulebook) for Pathfinder 2e. If you also provide a task level and proficiency, the results will be narrowed down accordingly.

Valid Task Level Values:

  • Numbers from 1 to 30

Valid Proficiency Values:

  • t or trained
  • e or expert
  • m or master
  • l or legendary

Basic Example:

sage! income earned

Task Level Examples:

sage! income earned 3
sage! income earned 15

Task Level and Proficiency Examples:

sage! income earned 3 e
sage! income earned 15 legendary

Pathfinder Society (PF2e)

Join the Organized Play program here!

Downtime Rolls

Rolling downtime uses the following format:

sage! pfs income pcLevel skillProficiency skillModifier daysOfDowntime

pcLevel

The level of your PC.

skillProficiency

One of the following: U, T, E, M, L

skillModifier

The positive or negative modifier for the roll, ex: +7 or -1

daysOfDowntime (optional)

How many days of downtime to roll if don't want the default results.

Examples:

sage! pfs income 1 T +7
sage! pfs income 1 T +7 8

Scenario Randomizers

We started experimenting with providing some randomization for Society Scenarios. In addition to randomizing the different options, it will calculate the proper Tier of play. The only one currently available, is for S1-01.

To use the command, include the level of each PC present, up to 7 PCs. (PFS Guidelines now recommend against 7 player tables.)

Examples:

sage! pfs s1-01 1, 2, 1, 3
sage! pfs s1-01 1, 1, 1, 1, 2, 2, 2

Tier Calculator

This command uses the given mininum level, maximum level, and player levels to provide the resulting Tier of play. (This was written early in PFS 2e, and may not be valid for current play.)

Format:

sage! pfs tier minLevel-maxLevel pcLevel, pcLevel, pcLevel, pcLevel, pcLevel, pcLevel

Examples:

sage! pfs tier 1-4 1, 2, 2, 2
sage! pfs tier 3-6 3, 3, 5, 5, 6, 6

Server Management

These commands let a Server Owner or "SageAdmin" manage servers.

Server Lifecycle

These commands are used to view and update a Server's settings.

View Server Details

This command displays information about the Server, specifically the default settings.

Example:

sage! server details

Update a Server

This command allows you to change a Server's default settings. All settings are optional and are set using the argument format of option="value". You are also able to unset a setting to return it to the default. Server Options are detailed here.

Examples:

sage! server update gameSystem="pf2e" diceCrit="rolltwice"
sage! server update diceoutput="L" dicepost="post"

Server Options

These options are used during Server Management.

Note: multiple options can be set at the same time


dialogPost=""


This determines how RPG Sage's dialog posts are handled.

Valid dialogPost values:

  • EMBED uses an embed that includes the character's avatar on the right. (default)
  • POST uses a simple message post some screen readers cannot read Discord embeds.
  • UNSET uses the dialogPost method inherited from either the User, Game, or Server.

Examples:

sage! server update dialogPost="post"
sage! server update dialogPost="unset"

diceCrit="" (DnD5e and PF2e only)


This sets how Critical Hit damage is calculated.

Valid diceCrit values:

  • TIMESTWO rolls the dice and multiplies the results x2. (default)
  • ROLLTWICE rolls the damage twice and adds the results together.
  • ADDMAX rolls the dice once and then adds max damage to the result. (RPG Sage House Rule)
  • UNSET uses the diceCrit method inherited from either the Game or the Server.

Examples:

sage! server update diceCrit="addmax"
sage! server update diceCrit="unset"

diceOutput=""


This determines how compact or verbose the dice results are displayed. Read more about Dice Output here.

Valid diceOutput values:

  • XXS, XS, S
  • M (default)
  • L, XL, XXL
  • ROLLEM uses the diceoutput method that most closely emulates what Rollem uses.
  • UNSET uses the diceoutput method inherited from either the Game or the Server.

Examples:

sage! server update diceoutput="xxl"
sage! server update diceoutput="rollem"
sage! server update diceoutput="unset"

dicePost=""


This determines how RPG Sage posts dice results.

Valid dicePost valus:

  • POST will output dice results in a simple post.
  • EMBED will output dice results in an embed in a post. (default)
  • UNSET uses the dicepost method inherited from either the Game or the Server.

Examples:

sage! server update dicepost="post"
sage! server update dicepost="unset"

diceSecret=""


This determines how RPG Sage reacts to dice with the word "secret" in them.

Valid diceSecret values:

  • DM tells Sage to find the first available GM and send the dice results to them as a DM.
  • GM tells Sage to find a GM channel and send the dice results there. If no GM channel exists, this is treated as DM.
  • HIDE tells Sage to hide/redact the results using spoiler tags.
  • IGNORE simply ignores them. (default)
  • UNSET uses the diceSecret method inherited from either the Game or Server.

Examples:

sage! server update dicesecret="ignore"
sage! server update dicesecret="unset"

gameSystem=""


This is the Game System, which determines how RPG Sage handles certain features, such as Dice and Search.

Valid gameSystem values:

  • CNC Coyote & Crow
  • DND5E Dungeons & Dragons 5e
  • E20 Essence 20 system (G.I. Joe, Power Rangers, Transformers, etc.)
  • PF1E Pathfinder RPG
  • PF2E Pathfinder 2e
  • QUEST Quest RPG
  • SF1E Starfinder
  • VTM5E Vampire: The Masquerade (5e)
  • NONE (default)

Examples:

sage! server update gameSystem="vtm5e"
sage! server update gameSystem="pf2e"

User Management

These commands let a User mnaage their personal settings.

User Lifecycle

These commands are used to view and update a User's settings.

View User Details

This command displays information about the User, specifically their settings overrides.

Example:

sage! user details

Update a User

This command allows you to change your User settings overrides. All settings are optional and are set using the argument format of option="value". You are also able to unset a setting to return it to the default. User Options are detailed here.

Example:

sage! user update dialogPostType="post"
sage! user update sagePostType="embed"

User Options

These options are used during User Management.

Note: multiple options can be set at the same time


dialogPostType=""


This determines how RPG Sage's dialog posts are handled.

Valid dialogPostType values:

  • EMBED uses an embed that includes the character's avatar on the right. (default)
  • POST uses a simple message post some screen readers cannot read Discord embeds.
  • UNSET uses the dialogPostType method inherited from either the User, Game, or Server.

Examples:

sage! user update dialogPostType="post"
sage! user update dialogPostType="unset"

sagePostType=""


This determines how RPG Sage's command posts are handled.

Valid sagePostType values:

  • EMBED uses an embed. (default)
  • POST uses a simple message post (some screen readers cannot read Discord embeds).
  • UNSET uses the sagePostType method inherited from either the Game, or Server.

Examples:

sage! user update sagePostType="post"
sage! user update sagePostType="unset"

orgPlayId=""


This stores your Paizo Organized Play Id.

Example:

sage! user update orgPlayId="123456"

Note: This is currently a convenience, but also will be linked to characters that you give a PFS char number to in the future to help GMs with reporting.

Weather Generator

RPG Sage has a "weather generator" command for quickly generating weather reports for your RPG Games. The weather report includes: climate, temperature, season, high and low temperatures, cloud cover, precipitation, and wind.

The command accepts up to 3 values: climate, elevation, and season. If any of the three are missing their default value is used (as indicated below; the default Season is based on the current time of year in the Northern Hemisphere).

This command was inspired by the weather tables in Pathfinder's Ultimate Wilderness.

Valid Climate Values:

  • Cold
  • Temperate (default)
  • Tropical

Valid Elevation Values:

  • SeaLevel
  • Lowland (default)
  • Highland

Valid Season Values (Cold/Temperate Climate):

  • Winter
  • Spring
  • Summer
  • Fall

Valid Season Values (Tropical Climate):

  • Wet
  • Dry

Examples:

sage! weather
sage! weather elevation="highland"
sage! weather season="summer"
sage! weather climate="tropical" season="wet"
sage! weather climate=cold elevation=sealevel season=winter

Slash Command:

/sag-weather climate: elevation: season:
Clone this wiki locally