Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
content-packs:core-rules:software:discord [2026/01/18 02:47] jobcontent-packs:core-rules:software:discord [2026/02/04 19:21] (current) – [GM Commands] job
Line 1: Line 1:
 ====== Discord ====== ====== Discord ======
-[[https://discord.com/|Discord]] is a popular platform for text-based role playing games, and Discord Bot named //Themis// has been created to facilitate playing the No-Dice RPG on Discord.+[[https://discord.com/|Discord]] is a popular platform for text-based role playing games, and two Discord Bots named //Indie// and  //Themis// have been created to facilitate playing the No-Dice RPG on Discord. **Indie** is a collection of commands to help facilitate running the game in Discord, but requires that players understand the rules, because it is less automated but built to be more flexible to continue working as the game rules develop. **Themis** is fancy and automated, but only supports the current core rules with two players
  
 ===== Installation Options ===== ===== Installation Options =====
Line 6: Line 6:
 You can become a member of our [[https://discord.gg/68bbVxdX|No-Dice RPG Discord Server]] to start testing the bot and Playing Hands right away. This option gets you started the fastest, but provides the least control over your game setting, and you must follow our community guidelines or get booted.  You can become a member of our [[https://discord.gg/68bbVxdX|No-Dice RPG Discord Server]] to start testing the bot and Playing Hands right away. This option gets you started the fastest, but provides the least control over your game setting, and you must follow our community guidelines or get booted. 
  
-==== Option 2—Invite the Bot to Your Server==== +==== Option 2—Invite Bot to Your Server==== 
-You can invite the bot that is hosted on a joshuaderoos.com server to your Discord server using [[https://discord.com/oauth2/authorize?client_id=1458046771061194939|this link]]. Inviting the bot to your Discord server is fast and easy, but this option does not allow you to modify the code, and if our server is down, the bot doesn't work. +You can invite bot that is hosted on a joshuaderoos.com server to your Discord server using these links: [[https://discord.com/oauth2/authorize?client_id=1264392613482725387|Indie]], or [[https://discord.com/oauth2/authorize?client_id=1458046771061194939|Themis]]. Inviting bot to your Discord server is fast and easy, but this option does not allow you to modify the code, and if our server is down, the bot doesn't work. 
  
 ==== Option 3—Self Hosted ==== ==== Option 3—Self Hosted ====
-The bot code is available for download from Github to host on your own server. This method is more complex to get running, but allows you to customize the bot code to better suit your game, and to control when it is available.  The bot is written in Python using the [[https://discordpy.readthedocs.io/|Discord.py]] library. +The bot code is available for download from Github to host on your own server. This method is more complex to get running, but allows you to customize the bot code to better suit your game, and to control when it is available.  The bots are written in Python using the [[https://discordpy.readthedocs.io/|Discord.py]] library.  
 + 
 +---- 
 +===== Indie Bot Help ===== 
 +<WRAP center round info 100%> 
 +Stable (Beta version) 
 +</WRAP> 
 +{{ :content-packs:core-rules:software:indie.jpg?nolink&400|}} 
 +The following commands are available to facilitate game play and technical troubleshooting.  
 + 
 +=== /help === 
 +Type //**/help**// [enter] to have the bot send you a link to this web page. 
 + 
 +=== ?ping === 
 +Type //**?ping**// to check if the bot is online.  If it is, it will respond with a message like //Pong! Latency=0.1ms// If it doesn't respond, well, it must be on a drunken bender, better DM the bot admin to fix it... 
 + 
 +---- 
 + 
 +==== Player Commands ===== 
 + 
 +=== /play === 
 +Type //**/play**// to play a card face-down.  A hand must have been created first with the ///hand// command, or you will get an error trying to play a card. 
 +  * //**/play <card name>**// will play the <card name> you typed **face down**, adding it to the hand, but showing only a card back to the channel. If you need help finding the possible card file names, you can view all of them with the ///show list// command. 
 +  * //**/play <card name> up**// will play the exact card file name you typed, like "/play ta-mind", **face up,** add it to the hand, and announce it to the channel.  
 +  * //**/play <card name> on card0**// will play the <card name> you typed **face down**, and add it to the hand **on top of** the first card played in the hand to form a Card Stack. You can see the sequence of cards played so far in the hand with the ///show hand// command. Note that the sequence of cards in a hand starts at 0, not 1. Also note that you cannot play a card on top of a card that was played on top of a card (nesting); instead, there is a base card at the bottom of the Card Stack, and you can play as many cards as you want on top of that base card. 
 +  * //**/play <card name> on card1 up**// will play the <card name> you typed **face up**, and add it to the hand //on top of// the second card played in the hand to form a Card Stack, and show the card face to the channel. Note that the sequence of cards in a hand starts at 0, not 1, and that is why card1 indicates the second card that was played in the hand.  
 + 
 +=== /bid === 
 +Type //**/bid**// to bid stat points on a card you've already played.  
 +  * //**/bid Card2 3WIL 1QUI**// will bid chips **face-down** on Card2 in the hand sequence, sending a message to the channel with the number of chips you have bid, but not what Attribute they are. You can type this command more than once if you made a mistake the first time and want to adjust your prior bid.  Each time this command is run it will send a message to the channel to alert other players what card you've bid on. 
 +  *  //**/bid Card0 3WIL 1QUI up**// will bid three WIL Attribute Points and one Quickness **face up** on the first card that has been played in the hand (card sequences in a hand start with 0, not 1).  
 + 
 +=== /flip === 
 +Type //**/flip**// to reveal to the channel all face down cards, and any Stat Points that have been bid on them. Cards are displayed in a bulleted list, in the order they were played.  Cards played on top of another card will listed right after the base card. The base card will have a solid bullet, and the cards played on it will have hollow bullets.  On a computer with a wider screen, the cards played on another card will be indented.  
 + 
 +=== /chips === 
 +Allows you to manage the chip stacks of your actor: 
 +  * //**/chips dmg Grogan -3str -2ag **// applies 3 STR and 2 AGI damage to the Actor Grogan 
 +  * //**/chips delta Grogan +2kno **// awards 2 KNO chips to Grogan 
 +  * //**/chips reset Grogan**// resets Grogan's chips back to base from Actor sheet. 
 + 
 +=== /show === 
 +  * //**/show actors**// shows the actors names assigned to you in the current //campaign//. If you are the GM, it shows all actors in the current //adventure// plus any //campaign// NPCs. 
 +  * //**/show actor**// shows you the statblock of an Actor assigned to you like __/show actor example-actor__ 
 +  * //**/show bid**// will show you in a private message the sequence of all the cards you've played so far in the hand to help you find the sequence number of the card you want to bid on. 
 +  * //**/show chips <actor_name> **// shows the state of the Actor's chips 
 +  * //**/show config**// will send a private message to you showing all of the current game settings (Campaign, Adventure, Scenario, Scene, Hand, and Actor count) 
 +  * //**/show list**// will show just you a list of all possible card file names. 
 +  * //**/show <card name>**// will send a private message to you showing the card face. Example: “///show ta-mind//“ 
 +  * //**/show hand**// will send you a private message with the name of the current hand, the players participating, and what cards have been played so far, as well as who played them.  Card names and bids that were played face-down will be hidden. Cards played on top of another card will be indented on a computer with a wide screen, or listed with hollow bullets below the card they are played, which will have a solid bullet. 
 + 
 +---- 
 + 
 +==== GM Commands ===== 
 + 
 +=== /hand === 
 +Type //**/hand**// to start a new hand, or save the current one, load the prior one, or show the cards that have been played so far. 
 +  * //**/hand <some name>**// will start a new hand called "some name" in this example, ask you to choose which players will participate, and overwrite any previous hand that was not saved. 
 +  * //**/hand save**// will save the current hand to disk on the server so it can be reloaded later. 
 +  * //**/hand load**// will load the last hand that was saved with the ///hand save// command, overwriting the current hand if there is one. 
 + 
 +=== /config === 
 +This group of commands is for the GM of the active campaign. 
 +  * //**/config campaign**// will update the current campaign name with one you specify like: /config campaign No-Dice RPG, and set that campaign as active (makes you GM of that campaign). 
 +  * //**/config adventure**// will update the current adventure name with one you specify like: /config adventure Sword of Hope and set that name as active.  
 +  * //**/config scenario**// will update the current scenario name with one you specify like: /config scenario Gar Cavern 
 +  * //**/config scene**// will update the current scene name with one you specify like: /config scene Spawn of Circa Guards 
 +  * //**/config hand**// will update the current hand name with one you specify like: /config hand Combat at the Gates 
 +  * //**/config player <@user> <add|remove>**// adds or removes a Discord user to the GM's campaign. 
 +  * //**/config actor <name> <statblock|@user|unassign|delete>**// -- manages actors: 
 +    * __///config actor example-actor R1/1(27/0)-M3(3/3/3)-B3(3/3/3)-S3(3/3/3)//__ -- creates an actor named example-actor with the given statblock as an NPC in the GM's campaign. 
 +    * __///config actor example-actor @user//__ -- assigns the existing actor named example-actor to the Discord user @user.. 
 +    * __///config actor example-actor R1/1(27/0)-M3(3/3/3)-B3(3/3/3)-S3(3/3/3) @User//__ -- creates an actor named example-actor with the given statblock and assigns it to the Discord user @User. 
 +    * __///config actor example-actor unassign//__ -- converts example-actor from being assigned to a player to becoming an NPC. 
 +    * __///config actor example-actor delete//__ -- removes example-actor from the GM's campaign. 
 +  * //**/config cp <list,filename, on|off>**// -- manages game Content Packs: 
 +    *  __///config cp list//__ -- lists all available game Content Packs.  
 +    * __///config cp fantasy.py//__ -- shows a message about what this Content Pack adds. 
 +    * __///config cp fantasy.py on//__ -- turns on this Content Pack 
 +    * __///config cp fantasy.py off//__ -- turns off this Content Pack 
 +  * //**/config ex <list,filename, on|off>**// -- manages game rule Extensions: 
 +    *  __///config ex list//__ -- lists all available game Extensions.  
 +    * __///config ex body_locations.py//__ -- shows a message about what this Extension file changes. 
 +    * __///config ex body_locations.py on//__ -- turns on this Extension 
 +    * __///config ex body_locations.py off//__ -- turns off this Extension 
 + 
 +=== ?sync === 
 +**<wrap em>!Important!</wrap>**: this command only works for the bot developer, and is used to update Discord when new bot commands have been coded. 
 +  * __**?sync**__ this takes all global commands within the CommandTree and sends them to Discord. 
 +  * __**?sync ~**__ this will sync all guild commands for the current context’s guild. 
 +  * __**?sync * **__ This command copies all global commands to the current guild (within the CommandTree) and syncs. 
 +  * __**?sync ^**__ This command will remove all guild commands from the CommandTree and syncs, which effectively removes all commands from the guild. 
 +  * __**?sync -**__ This command will remove all global commands from the CommandTree and sync. 
 +  * __**?sync 123 456 789**__ This command will sync the 3 guild IDs we passed: 123, 456 and 789. Only their guilds and guild-bound commands.
  
 ---- ----
  
 ===== Themis Bot Help ===== ===== Themis Bot Help =====
-{{ content-packs:core-rules:app-icon.png?nolink&400|}}+<WRAP center round info 100%> 
 +Experimental (Alpha version, bugs exist...) 
 +</WRAP> 
 + 
 +{{ content-packs:core-rules:software:themis.png?nolink&400|}}
 The following commands are available to facilitate game play: The following commands are available to facilitate game play:
  
 **__Players:__** **__Players:__**
-**/nd help** shows the bot commands in discord and a link to this page +**/nd help** — shows the bot commands in discord and a link to this page 
-**/nd show hand** shows the current conflict/hand state (privately) +**/nd show actions** — shows a link to the Action Tags page to help you decide what Action card to play (privately) 
-**/nd show actor** shows your current Actor stat block (privately) +**/nd show actor** — shows your current Actor stat block (privately) 
-**/nd show chips** shows your current Actor stat block, damage, and chips won/lost (privately) +**/nd show cards** — shows all of the available card names (for use with /nd show card) (privately) 
-**/nd show trine** shows the Aspects and Attributes of the Trine (privately) +**/nd show card <name>** — shows the card image for the name you entered (privately) 
-**/nd show actions** shows a link to the Action Tags page to help you decide what Action card to play (privately+**/nd show chips** — shows your current Actor stat block, damage, and chips won/lost (privately) 
-**/nd show card <name>** shows the card image for the name you entered (privately) +**/nd show dom**— shows Trine Dominance (TDand Action Dominance (ADrules 
-**/nd show cards** shows all of the available card names (for use with /nd show card) (privately) +**/nd show hand** — shows the current conflict/hand state (privately) 
-**/nd ante <rea|kno|qui|str|fit|agi|wil|pre|int>** TXT mode command to ante a chip +**/nd show trine** — shows the Aspects and Attributes of the Trine (privately) 
-**/nd aspect <mind|body|spirit>** TXT mode command to play an Aspect Card +**/nd ante <rea|kno|qui|str|fit|agi|wil|pre|int>** — TXT mode command to ante a chip 
-**/nd action** <attr> <bid> <justification>[wc yes/no] TXT mode command to play an Action Card +**/nd aspect <mind|body|spirit>** — TXT mode command to play an Aspect Card 
-**/nd dmg** TXT mode command to allocate damage your Actor has sustained after the Action Reveal message.+**/nd action <attr> <bid> <justification>[wc yes/no]** — TXT mode command to play an Action Card 
 +**/nd dmg** — TXT mode command to allocate damage your Actor has sustained after the Action Reveal message.
  
 **__GM:__** **__GM:__**
-**/nd cards_dir <path>** — set the directory containing card .jpg files on the bot server +**/nd claim** — claim the GM role in the current channel for yourself. Saved Actors follow the GM.
-**/nd claim** claim the GM role in the current channel for yourself. Saved Actors follow the GM.+
 **/nd set actor @user actor_name:<name> <statblock>** — add an Actor sheet to the GM's library, or (without specifying a statblock) use to assign existing Actors to Users. **/nd set actor @user actor_name:<name> <statblock>** — add an Actor sheet to the GM's library, or (without specifying a statblock) use to assign existing Actors to Users.
 **/nd set actor_delete <name>** — remove an actor from your library. **/nd set actor_delete <name>** — remove an actor from your library.
-**/nd show actors** — shows the list of Actor names this GM has created+**/nd set actor_alias**—maps an Actor name created on the fly to a statblock in /nd show actors
 **/nd set chips <actor> <statblock>** — override CURRENT chip stacks (carry damage into a new Conflict) **/nd set chips <actor> <statblock>** — override CURRENT chip stacks (carry damage into a new Conflict)
-**/nd hand <name>** → creates a Conflict in the channel + lets you select players +**/nd set dmg**—GM override of damage state of an Actor 
-Allocate damage: +**/nd show actors** — shows the list of Actor names this GM has created 
-**/nd start (mode: ui|txt)** → starts the Hand, antes, sets ES, opens TA commits. Accepts ui or txt mode. UI is for live play and looks nice, but screens timeout. TXT is better for asynchronous play. +**/nd hand <name>** — creates a Conflict in the channel + lets you select players 
-**/nd damage auto** (fast) +**/nd start (mode: ui|txt)** — starts the Hand, accepts ui or txt mode. UI is for live play and looks nice, but screens timeout. TXT is better for asynchronous play. 
-**/nd damage allocate** @target mind|body|spirit <amount> "rea=2 kno=1" (manual) +**/nd next** — TXT mode command to move to the next Hand (continue conflict) 
-**/nd next** TXT mode command to move to the next Hand (continue conflict) +**/nd end** — TXT mode command to end the current Conflict
-**/nd end** TXT mode command to end the current Conflict+
 **/nd save** and **/nd load** — persist / restore Conflict state (Hand, Actors, Chips) **/nd save** and **/nd load** — persist / restore Conflict state (Hand, Actors, Chips)
 **/nd reset <scope: self | actor | all> <mode: hand | conflict | everything>** — resets the bot state (for rapid testing)  **/nd reset <scope: self | actor | all> <mode: hand | conflict | everything>** — resets the bot state (for rapid testing)