Skip to content

GM Guide

Glenn Ko edited this page Apr 25, 2019 · 15 revisions

Alpha 1.0 Guide

This is the guide for gamemasters (by default assigned to those that set up the Fecht).

Beginning and ending a Fecht.

Basically, a Fecht can be hosted on any given text channel via the command: !fechtstart. When a fecht is hosted, certain chat functions are locked and the chat channel operates in a special game mode. To stop hosting a fecht under that given channel, use !fechtstop. You can use this approach to restart a new fecht within the same channel as well.

WARNING: I did not lock this command so it's available for everyone/anyone to use. (Be careful/polite not to kill off any game currently in progress unless you get persmission from the GM or something!). To be nice, do not set up a fecht in general chat channel or something. Find an appropiate (and available) channel to do so.

Setting up Sides

This is optional. By default , the !fechtstart creates a new Fecht with 2 default sides named Side A and Side B. To reconfigure the sides available for joining, supply a JSON-parsable (javascript) String array to the !sides command like so:

!sides ["Players", "Monsters"]

You can assign 1 or more sides as you wish, or even set it to any empty array []. It's up to you.

By default, all Sides available for joining by anyone is shown only in the first board entry typically. To re-reveal it, you can use the !sides command standalone.

To hide all other empty Sides for shortened display, use !sides-hide. To also clean up any user character states (invalid users/invalid/mispelled/unused character handles,hidden characters, etc.) in the backend database storage/memory that happens to no longer belong to any listed Sides, you can use !sides-purge. However, some GMs might want to keep characters in hidden (unlisted) sides to act as surprise "enemies" ,etc. or just to save space.

A GM has the ability to force 1 or multiple users to join a given side with a single command. To do so, add any combination of user character mentions (eg. <@User>, <@User>:some-characterhandle) to the !join command, followed by the Name Of Side.

!join <@User> <@User>:servant <@User>:servant2 <@User2> Name Of Side

Setting up Phases

Phases are means of advancing the game through various stages and will be used as a primary means of managing how manuevers (ie. user actions) are resolved based on various settings. The settings/examples is covered in a seperate document here: https://github.com/Glidias/fechtbot/wiki/Phases-Documentation

Essentially, Phases is simply an ordered JSON-parsable array of objects. These make up an entire Round.

eg. Set up command for 3 empty phases using default settings. !phase [{}, {}, {}]

Be warned though, when you reset the phases above in such a manner. the phase counter resets back to zero. Ensure you only do this when it's no one's turn and thus no one is busy!

Advancing the game

The game has a standard counter in the format of:

<Round>.<Phase>:<Step>.<MiscTurn>

Step represents the automatic turn management counter progressing forward via advancing turns forward via the !t command, based on the initaitive settings of the phase/individual characters. So MiscTurn is used instead for multiple turns set up manually by the GM via the !turn command. Once the Round/Phase/Step changes, MiscTurn typically resets back to zero.

Managing initiatives

Refer to the player guide. https://github.com/Glidias/fechtbot/wiki/Player-Guide#initiative-management

The only difference is that the GM is able to set initiatives for other players as well.

Additionally, the GM can use the @everyone / @here mention tags to target everyone in the fecht for initaitive related commands. If @here is included, he'll only target those "visible" characters found in the officially registered Sides of the Fecht (configured via !sides).

Turn management

If initiatives have been set up accordingly for any registered characters that have joined Sides for the Fecht (either via individual registered character initiative values or through phase initiative settings or a combination of both), the GM can advance the turn counter forward into the current phase (or through it) via the !t command for those registered characters.

The GM can also manually trigger custom turns explicitly for specific players using @ mentions. @ mentions can include an additional character-handle to represent a character under the user's control , such as @<User>:some-custom-character-handle.

  • !turn @<User2>
  • !turn @<User2> @<User3>
  • !turn @<User2>:friendly-guy
  • !turn @<User1>:some-custom-handle @<User1:another-character-handle> @<User2> @<User3>

You can set up turns for 1 or multiple users based on the mentions in your message.

Take note that turn management commands are conventionally operated by the GM, but in the event he is not around, players may act as GM with regards to turn management.

Additionally, you can modify the current turn by adding new characters to it via the following commands instead:

  • !turn-add Adds mentioned characters to current turn
  • !turn-in Adds mentioned characters to current turn and removes off the mentioned characters from the initiative ladder if needed (so their turn will no longer come up next in the phase)

...and specify any combination of user mentions (with their :character-handles) if needed accordingly.

To force a turn to end in it's current state, use: !endturnall

To force a turn to be skipped and all turn sayings (!say commands) and manuevers being drafted to be cleared/ignored, use !skipturnall.

Once a turn has finished due to forced-ending or the mentioned players hit the Finish turn button, the GM may advance the game forward by either resolving any stored manuevers !res/!res all, setting up a new custom manual turn !turn, or advancing to the next phase (or to a different phase) !p. Or, if there are still remaining turns available up the initiative ladder, you will have the !t option listed in the menu.

Be warned though, once you proceed to a new phase, all stored manuevers will be deleted off!

Phases navigation

Phase navigation commands can ONLY be used when it's not anyone's turn. eg. These are:

  • !p > Advance the phase a single step forward, or loops back to 1st phase (phase 1) for the next round if you are already at the last phase.
  • !p >> Force-advance forward to next round's "first" phase (phase 1, or phase 0 if no phases are configured). regardless of where you are.(notice the double arrows)
  • !p >3 Advance forward to phase 3. If you are already in phase 3 or higher, this will advance forward to next round's phase 3.
  • !p >>3 Force-advance forward to next round's phase 3 always, regardless of the situation, so long as phase 3 is available. (notice the double arrows)
  • !p 0 Sets the phase to step 0. A "step 0" phase refers to a nameless(default setting) phase that can be used for miscellaneous purposes, and turns are manually set by the GM for such cases or can be used to handle miscellaneous things outside the conventional game loop.

Setting phase to a specific number within the current round

  • !p 4 Sets the phase to step "4". (ie. the the phase) within the current round
  • !p 1 Sets the phase to step "1" (ie. the 1st phase) within the current round

Resolving manuevers

Unexecuted manuevers for players' turn, will be stored in the Fechtboard display. To spill these out and execute them, there are two options:

  1. !res
  2. !res all

First option !res allows you selectively decide what rolls to execute, or edit/modify them. These are known as "resolvables" and they have a ▶ play button icon that the GM can use to execute the manuevers and any dice rolls assigned to them. The "resolvables" are listed in reverse order of stipulated resolution order (depending on the phase settings). Thus, the "first to execute move" is listed bottomost. Typically, the GM clicks the play buttons from the bottom up order to execute the rolls.

Second option !res all will execute all of the stored manuevers in stipulated resolution order. (depending on the phase settings).

Editing resolvable manuevers

Editable manuevers are messages shown with a !e prefix by the Fechtbot, and typically contains the Play button that the GM can use to execute them.

To edit the manuevers, simply copy the entire text from that message entry, for pasting into chat. (On mobile app, you can tap hold on the message, wait for the dialog to appear, and hit on "Copy Text"), then paste it into chat box , adjust the values (be-careful, not to change the slot number!), and hit enter/submit. Voila, the bot should edit the message with the newly updated rolls, assuming your roll expression is valid.

Managing player deaths/skip-turns

  • To kill a player (ie. mark him as "dead"), use the !kill command.

  • To have him be in an "inactive" state, in order to simply skip turns, use the !skip command instead.

  • To restore his status back to "alive", use the !restore command instead.

Examples:

  • !kill @Mentions
  • !kill @Mention:character-handle

You have to use any combination of specific user @Mentions/@Mention:character-handle in order to determine who you want to kill/skip/restore.

Other misc commands

  • !refresh - Refreshes manually the current body Fecht board display post that shows the sides and any stored manuevers.