DiscordのキャラシBot:RPGのキャラクターシートをサーバーで管理する方法
Discordサーバーでキャラクターシートを管理するいちばん簡単な方法は、キャラクター1人につき1行のテーブルを作り、プレイヤーがスラッシュコマンドで更新することです。そうすれば能力値は、ピン留めしたメッセージや共有ドキュメントや誰かの記憶ではなく、セッションが行われているチャンネルに置かれます。戦闘中にHPが減り、セッションのあとにレベルが上がり、誰でもDiscordから離れずにキャラクターを確認できます。
チャンネルに貼るシートが欲しいだけなら、無料のキャラシテンプレート作成ツールで、D&D 5e、ロールプレイ、ファンタジー、SF向けのコピペ用シートを、記入済みでも空欄でも作れます。このガイドの残りは、全プレイヤーのシートを検索できる一か所にまとめたい人向けです。
このガイドでは、私たちが開発しているCordBaseで設定します。5分ほどで終わり、列は自分で決めるので、D&DでもPathfinderでも自作システムでも使えます。
完成するもの
add、query、view、update、delete、leaderboardの操作を備えた/character-sheetコマンド。- キャラクター1人につき1行:名前、クラス、レベル、HP、筋力、メモ。あるいはシステムに必要な項目。
- GMがすべてのシートを一度に見て編集できるWebのテーブル。
ステップ1:CordBaseを追加してテンプレートをインストールする
- cordbase.ggにDiscordでログインし、サーバーを選びます。
- ダッシュボードに案内されたら、Botをサーバーに追加します。
- テンプレートライブラリを開いてキャラクターシートをインストールします。name(テキスト、必須)、class(選択肢:Warrior、Mage、Rogue、Cleric、Ranger、Bard、必須)、level(数値、必須)、HP、strength、notesの列が入っています。
使っているシステムのクラスや能力値はおそらく違うはずです。ダッシュボードでテーブルを開いて列を編集してください。クラスの選択肢を変えたり、strengthの名前を変えたり、敏捷力、アーマークラス、所持金を追加したりできます。1テーブルには最大25列まで持てて、各列は自動的にコマンドのオプションになります。
ステップ2:誰が編集できるかを決める
権限は行単位ではなくテーブル単位で働きます。テーブルを更新できる人は、その中のどのキャラクターでも更新できます。これはシートの運用に実際に影響します。
- グループ内で信頼し合えているなら、プレイヤーのロールに編集を与えます。全員が自分のキャラクターを更新できます(理屈の上では、ほかの人のキャラクターも)。
- 数値を変えるのはGMだけにしたいなら、プレイヤーには閲覧、GMには編集を与えます。プレイヤーはシートを確認し、変更はGMに頼みます。
テーブルにロールをひとつでも設定すると、それらのロールを持たないメンバーはテーブルをまったく使えなくなります。Discordの「管理者」権限を持つ人は、どちらの場合でもすべての操作ができます。
ステップ3:キャラクターを作る
/character-sheet add name:Mara class:Mage level:3 hp:18 strength:8 notes:Owes the guild 50 gold
Discordは各列をオプションとして表示し、classはメニューから選べるので、誰かが「Wizzard」と打ち間違えることはありません。
ステップ4:プレイ中に更新する
rowオプションに入力し始めて、リストからキャラクターを選びます。数値をどう変えるかは_modeオプションで決まります。
- 減算は現在の値から引きます。
/character-sheet update row:Mara hp:5 _mode:DecrementでHPが5減ります。 - 加算は足します。
/character-sheet update row:Mara level:1 _mode:Incrementでレベルアップです。 - デフォルトの設定は値を置き換えます。
/character-sheet update row:Mara hp:18で全回復です。
2人が同時にHPを変えても、両方の変更が反映されます。Botは前に読み取った数値で上書きするのではなく、保存されている値に変更を適用するからです。
ステップ5:確認する
/character-sheet view row:Maraは1人分のシートをすべて表示します。/character-sheet query class:MageはMageをすべて一覧表示します。/character-sheet query level:5は指定したレベルのキャラクターを探します。/character-sheet leaderboard column:levelはパーティーをレベル順に並べます。
ほかのツールのほうが向いている場合
CordBaseは値を保存するだけです。ダイスを振る、修正値を計算する、呪文スロットを管理する、ルールを適用する、といったことはしません。Botにルール処理をさせたいなら、AvraeのようなTRPG向けBotを使うか、完全なシートが必要ならFoundryやRoll20のようなオンラインセッションツールを使ってください。テーブルが向いているのは、Discordで誰でも見られる軽くて共有しやすい記録が欲しいときです。パーティーの名簿、West Marches形式のキャラクター一覧、既製のツールがない自作システムなどです。
知っておきたい上限
- Free:テーブル2個、それぞれ100行まで。大きなキャンペーンでも足ります。Pro($8/月)ではテーブル無制限、1テーブルあたり10,000行になります。CSV・JSONエクスポートはすべてのプランで使えます。
- 1テーブルあたり最大25列。
- テーブルはWebで設計します。プレイヤーがDiscordから新しいテーブルを作ることはできません。
- 現時点ではCSVインポートがないので、既存のシートは
addかダッシュボードで入力します。
よくある質問
Botでダイスを振ったり修正値を計算したりできますか?
できません。CordBaseは値を記録して更新するだけです。ダイスやルールの自動処理には、AvraeのようなTRPG向けBotを使ってください。
プレイヤーが自分のキャラクターだけを編集できるようにできますか?
権限としてはできません。権限はテーブル単位なので、テーブルを更新できる人はどの行でも更新できます。グループを信頼して任せるか、編集権限をGMだけに与えてください。
D&D以外のシステムでも使えますか?
使えます。キャラクターシートテンプレートは出発点です。どんなシステムでも、列の名前を変えたり、列を追加したり、クラスの選択肢を変えたりできます。