ルールセットのキャラクタービルダー
このページでは、種族とクラスから評価値、習熟、呪文、装備まで、ステップを踏んでキャラクターを作成するガイド付きビルダーを追加します。ルールセットの作者向けのページです。始める前に、Game Modeのルールセットを作成するを読んでください。
シートはsheet.builderを宣言できます(Capability API 1.86)。すると、キャラクターエディターとペルソナエディター、およびゲームのEdit sheet(シートを編集)にあるシートエディターは、完全なフォームであるAll fields(すべての項目)と並ぶGuided(ガイド付き)表示で開きます。上部にステップが並び、それぞれまだ待っている選択の数を示すバッジが付きます。Back(戻る)とNext(次へ)は操作を妨げることがなく(プレイヤーは選択を後回しにできます)、その横に現在のキャラクターが表示されます。ステップが書いたもの、能力値、gm.sheetSummaryが指定する値(アーマークラス、習熟ボーナス)、習熟したセーヴとスキルです。
"builder": {
"tier": "proficient",
"steps": [
{ "id": "race", "label": "Race", "kind": "catalog", "catalog": "races", "field": "race" },
{ "id": "subrace", "label": "Subrace", "kind": "catalog", "catalog": "races", "min": 0,
"within": { "step": "race", "filter": "parent" } },
{ "id": "class", "label": "Class", "kind": "catalog", "catalog": "classes", "field": "class" },
{ "id": "level", "label": "Level", "kind": "fields", "fields": ["level", "background"] },
{ "id": "scores", "label": "Ability Scores", "kind": "abilities", "methods": {
"pointBuy": { "budget": 27, "costs": [[8, 0], [9, 1], [10, 2], [11, 3], [12, 4], [13, 5], [14, 7], [15, 9]] },
"standardArray": [15, 14, 13, 12, 10, 8],
"roll": { "count": 4, "sides": 6, "keep": 3 },
"manual": true } },
{ "id": "skills", "label": "Proficiencies", "kind": "trained" },
{ "id": "gear", "label": "Equipment", "kind": "startingGear" }
]
}ステップは、32個までで、それぞれ{ id, label, kind, ... }です。16個を超えるパッケージはCapability API 1.112を、24個を超えるパッケージはCapability API 1.768を宣言します。
catalog: 行のカタログのエントリーで、カードとして表示され、そのsummaryはInfo(情報)の裏にあります。min(デフォルト: 1)はステップが求める数、max(デフォルト: 1)は受け付ける最大数です。maxについては、1なら新しい選択が古い選択を置き換えます。どちらも、60まで指定できます。20を超えるものがあるパッケージはCapability API 1.110を、40を超えるものがあるパッケージはCapability API 1.768を宣言します(20レベルのウィザードの呪文書の呪文数: 44個)。fieldは、選んだラベルを書き込むテキストか列挙型のフィールドを指定します(列挙型フィールドは、エントリーのIDかラベルのうち、その値のいずれかであるものを受け取ります)。filtersはカタログのフィルターの値を固定し、within: { step, filter }は、亜種族が種族を指定するように、filterがその前のステップで選んだエントリーを指定するエントリーだけを提示します。種族の選択を外すと、その亜種族は何にも数えられません。upTo: { filter, value }(Capability API 1.87)は、数値のfilterがvalue以下のエントリーだけを提示します。これは現在のシートから読む値で、キャラクターのレベルまでの特性などです({ "filter": "level", "value": { "derived": "level" } })。フィルターを持たないエントリーは常に提示され、その後シートの値が下回った選択は何にも数えられませんが保持されます。読む値を変える選択(レベルを設定するクラス)は同じ変更の中で決着し、All fieldsで変えた値も同じです(そこでレベルを下げると、それより上の特性が与えたものを即座に取り戻します)。countFrom(Capability API 1.90)は、同じようにシートから読む値で、minとmaxの両方を表します。ステップが求める数と受け付ける最大数で、切り捨て、maxを超えません。キャラクターのレベルでクラスが知っている呪文の数などです({ "derived": "spells_known" })。それを超える選択は保持されますが、数が再び増えるまで何にも数えられません。
カタログのステップはstamp(Capability API 1.108)も持てます。追加するすべての行に書き込む列の値(1~4個)で、ウィザードの呪文のステップの"stamp": { "class": "wizard" }や、クレリックの"stamp": { "class": "cleric" }などです。各キーは、カタログが供給するすべてのリストの列である必要があり、値は文字列、数値、真偽値です。スタンプはカタログの初期値を置き換えます。既存の行と、後でAll fieldsで行った編集はプレイヤーのものです。Capability API 1.130では、スタンプの値を、fromWithinが"id"、"label"、または親カタログが宣言したフィルターIDであるオブジェクトにもできます。選択順で最初に一致する親を読み、行の追加時に文字列か数値を一度書き込みます。一致する親がないか、そのフィルターがないか配列の場合は、その列にスタンプしません。
{
"id": "spells",
"label": "Spells",
"kind": "catalog",
"catalog": "spells",
"within": { "step": "class", "filter": "class_ids" },
"stamp": { "class": { "fromWithin": "label" } }
}fields: 名前付きフィールドの短いフォームです。バッジは、optionalに列挙したもの(後のレベルで選ぶサブクラス)を除き、まだ空のものを数えます。shownWhen: { "field_id": { "field": "level" } }(Capability API 1.107)は、ステップの名前付きフィールドを、その値参照が現在のシートで0より大きい間だけ表示して数えます。隠れたフィールドは値を保ちます。total: { "fields": ["level_bard", "level_other"], "max": 20 }(1.107)は、ステップの少なくとも2つの数値フィールドを合計の上限(1~1000の整数)に収め、各入力の最大値をほかの現在値の分だけ、それ自身の最小値を下回らない範囲で下げ、合計が上限を超えるとバッジに1を加えます。Nextは引き続き使えます。abilities: 能力値(abilities。省略するとすべて)で、methodsのいずれかで設定します。pointBuy(すべての能力値を最大まで購入するコストを超えないbudgetと、全能力値の開始値である最低値から1つずつ上げたときの各値のコストです。手で入力した能力値は表で最も近い値から始まります)、standardArray(各能力値に1つの値)、roll(sides面のダイスをcount個振って上位keep個を採用します。Engine自身のダイスで能力値ごとに1回振り、配列と同じく割り振ります)、manualです。manual: trueは既存の能力値の範囲を保ちます。manual: { min, max }(Capability API 1.110)は、付与の前に入力した基本能力値をその整数の範囲に収めます。minは-100以上、maxは1000以下で、minはmax以下です。各能力値自身の範囲は引き続き合計に適用されます。default(1.87)は、ビルダーが白紙のシートから始めるキャラクターが最初に使う方法です(後でルールセットのデフォルトが変わっても保ちます)。そのため初心者は、たとえば別の方法を選ぶまでポイント購入を見ます。描写から作ったキャラクターはこれを使わず、描写後にプレイヤーが方法を選ぶまで能力値はそのままです。Manual entry(手動入力)は範囲内での入力による編集のままで、All fieldsはいつでも使えます。選択が加えるものは上乗せされ、ステップは基本値、ボーナス、合計、修正値を示します。abilitiesのステップは最大1つです。allocate(Capability API 1.152): 優先度の割り当てやグループの予算を使って、段階的にドットを振り分けます。後述します。trained: 選択が提示するスキルとセーヴの選択と、ステップ自身のchoose: [{ "what": "skills", "count": 2, "from": [...] }]です(fromを省略するとすべてが対象です)。startingGear: ルールセットの初期装備を一覧にします。装備はいつもどおり、ゲーム中にインベントリーから受け取ります。choices(Capability API 1.91):catalogで行のカタログを指定します。選択がそのカタログから与える項目(後述のgrants.entries)を選ぶステップで、好きな言語1つなどがこれにあたります。
初期装備のステップは"strict": trueを持てます(Capability API 1.109)。デフォルトの合法のみのモードでは、ライブ状態なしの現在のシートでfitsが真になる装備と、fitsを持たない装備だけを提示し、その他の装備の一覧はありません。5eでは、Wizardのキットにfits: { "value": { "field": "wizard_level" }, "atLeast": 1 }を、ほかの各クラスのキットに対応するクラスレベルのフィールドを付けてください。Acolyteのキットにはfitsを付けず、誰にでも合うようにします。自由編集では再びすべてのキットを提示します。インベントリーの選択画面は、クラスの変更や自由編集の終了で合わなくなった選択を外して理由を示し、装備を受け取る前にも適合を確認します。合う装備がなければステップは空の状態を表示し、Nextは引き続き使えます。strictのないステップは、引き続きすべてのキットを提示します。このモードは各画面に固有で、保存したビルドとともに記録されたり、サーバーへ送られたりしません。
選択が与えるものはその項目のgrantsで、ビルダーだけが読みます。
{
"id": "half-elf",
"label": "Half-Elf",
"grants": {
"abilities": { "add": { "cha": 2 }, "choose": [{ "count": 2, "amount": 1, "except": ["cha"] }] },
"trained": { "skills": [], "saves": [], "choose": [{ "what": "skills", "count": 2 }] },
"sets": { "speed": 30 }
}
}abilities.addは能力値に加えます。abilities.chooseは、プレイヤーがcount個の能力値(同じものを二度は選べず、exceptのものも選べません)を選び、それぞれにamountを与えます。"repeat": true(Capability API 1.93)なら同じ能力値を複数回選べ、そのたびにamountを与えるため、{ "count": 2, "amount": 1, "repeat": true }は能力値上昇の、一つの能力値に+2か二つに+1です。ステップは能力値の横にマイナスを表示し、一つ戻せます。どちらの場合も、能力値はmaxを超えません。upTo(Capability API 1.96)は、ほかのすべての付与が加えた後で、選択自体が能力値を上げられる上限です。{ "count": 2, "amount": 1, "repeat": true, "upTo": 20 }は、「20を超える能力値には上げられない」SRDの能力値上昇です。ステップはその値に達した能力値を無効にします。選択はabilitiesのステップに表示され、それがなければエントリーを選んだ場所に表示されます。trainedはスキルとセーヴを習熟させ、選択を提示します。最初のtrainedのステップか、エントリーを選んだ場所に表示されます。付与のtier、なければビルダーのtier、なければシートがスキルやセーヴに提示する未習熟より上の最初の段階まで習熟させます。選択は、選んだものがすでにその段階以上に習熟させているもの(直接、または以前の選択を通じて)を決して提示しません(Capability API 1.104)。Insightを習熟させる背景があれば、SRDが求めるとおり、クラスのスキルの選択はほかのものから選びます。そのように取られる前に保存された選択は何にも数えられないため、ステップは別のものを求め、提示するものが何も残っていない選択は表示されません。選択は"held": "<tier>"を指定できます(Capability API 1.105)。選んだものがその段階以上に習熟させているもの、または自身の段階より下の選択がそこで保持しているものだけを提示します。5eのExpertiseが習熟している二つのスキルであるのと同じで、{ "tier": "expertise", "choose": [{ "what": "skills", "count": 2, "held": "proficient" }] }です。heldは、選択が習熟させる段階より下の段階です。setsはフィールドの値を書き込みます。クラスのヒット・ダイスや呪文発動能力値などです。- カタログのエントリーは、ビルダーのステップがそれを提示する条件を示せます。
offeredWhen(Capability API 1.99)は現在のシートから読む値で、エントリーは、その値が正(0より大きい)の間だけ提示されます。5eがマルチクラスの前提条件を満たしたときだけ二つ目のクラスを提示するのと同じです(クラスごとの派生値)。後で、0になった選択は、upToのものと同じく、何にも数えられませんが保持されます。自身の選択がofferedWhenの読む値を変えるエントリー(上げる能力値、設定するフィールド、習熟させるスキル、書き込むリスト。直接でも派生値を通じてでも)は、自身を提示し、取り消し、再び提示することになるため拒否されます。exclusiveのグループを持つエントリーは、ステップがそのグループに保存したすべての選択を除いたシートで読みます(Capability API 1.100)。それを選ぶとそれらは外れるためです。能力値上昇の代わりに取る、Strength 13を条件とする特技は、その上昇が与えたStrengthでは提示されません。エントリーが与える選択(grants.entries.choose)も、同じくその選択肢をofferedWhenに従わせます(Capability API 1.106)。All fieldsのカタログの選択画面は、いつもどおりすべてのエントリーを提示します。 - カタログのエントリーは
exclusiveのグループを指定できます(Capability API 1.94)。ビルダーのステップは各グループの選択を一つだけ保つため、一つを選ぶとステップのそのグループのほかの選択は外れ、最新のものだけが数えられます。能力値上昇の代わりに取る特技は、それとグループを共有します。"exclusive": "fighter-asi-4"のように書きます。"exclusiveDefault": true(Capability API 1.772)を指定すると、提示するものをすべて取得するステップが、プレイヤーがほかのものを選ぶまで、そのグループから取得するエントリーになります。 entries(Capability API 1.91)は、別の行のカタログのエントリーを選択肢として提示します。{ "choose": [{ "catalog": "languages", "count": 1 }] }のように書き、選択は最大六つです。filtersはそのカタログのフィルターの値を固定し、idsは提示する唯一のエントリーを列挙します({ "catalog": "tools", "count": 1, "ids": ["smiths-tools", "brewers-supplies", "masons-tools"] })。それらは、そのカタログに対するビルダーのchoicesステップで選びます(それがないカタログを指定する付与は拒否されます)。行を書き込むエントリーだけが提示され、その行がシートに追加されます。ある付与で選んだエントリーは、別の付与には提示されません。それら自身の付与は適用されません。- 選択はエントリーの
rowsも一度書き込みます。エントリーはgrantsを持ち、rowsをまったく持たないこともできます(特性が別のカタログから来るクラス)。すべてのエントリーが付与するだけのカタログにはfeedsは不要で、カタログの選択画面はそのようなエントリーを決して提示しません。
選択を外すと、その選択が与えたものだけを取り戻します。上昇(能力値の範囲内で上げた分)、習熟、フィールドの値、行です。シートにすでにあったプレイヤー自身のもの(手で習熟させたスキル、カタログの選択画面から追加した行)はプレイヤーのままで、All fieldsで行った編集は、その値に対するビルダー自身の答えが変わるまで残ります。1つのカタログに対する2つのステップで選んだ項目は1回だけ付与し、ゲームのレイヤーが隠す項目も、与えたものについては引き続き数えられます。選択がsetsするフィールドは、まだ空であるか、ビルダーがすでにそれに答えている間だけ書き込まれるため、手で入力したレベルが上書きされることはありません。ビルダーが答える値をプレイヤーが自身のfieldsステップで変えた場合は、ビルダーのものとして残り、後の選択がそれを求めなくなると消えます。プレイヤーの選択はシートと並べて保持されるため、後でステップを開き直せます。
段階的な評価値の割り振り(Capability API 1.152)。 allocateステップは、独自の予算と作成時の上限で、1ポイントにつき1ドットを購入します。単一のabilitiesステップの方法や保存した回答は変えません。能力値、美徳、後のフリービーには別々のステップを使ってください。
{
"id": "attributes",
"label": "Attributes",
"kind": "allocate",
"priorities": [7, 5, 3],
"annotations": true,
"groups": [
{
"id": "physical",
"label": "Physical",
"targets": [{ "ability": "strength" }, { "ability": "dexterity" }, { "ability": "stamina" }],
"base": 1,
"min": 1,
"max": 5
},
{
"id": "social",
"label": "Social",
"targets": [{ "ability": "charisma" }, { "ability": "manipulation" }, { "ability": "appearance" }],
"base": 1,
"min": 1,
"max": 5
},
{
"id": "mental",
"label": "Mental",
"targets": [{ "ability": "perception" }, { "ability": "intelligence" }, { "ability": "wits" }],
"base": 1,
"min": 1,
"max": 5
}
]
}グループは1~12個で、それぞれ安定したid、label、1~120個の対象を持ちます。対象はステップ全体で重複できません。対象は、既存の{ ability }、数値の{ field }、{ skill }、{ save }、{ bonus }のちょうど1つを指定します。bonusは、既存のスキルやセーヴに対する数値のbuild.bonuses項目です。グループの予算方式はちょうど1つです。prioritiesがグループごとに0以上の整数の割り当てを1つずつ持つ(重複可)か、すべてのグループがbudget: Refを宣言します。優先度の枠は明示的に割り当て、埋まっている枠を割り当てるとグループが入れ替わります。配列の順序は、第1、第2、第3、その後は番号付きの優先度を表します。それらの名前を大きさの順にしたい場合は、大きい割り当てを先に置いてください。予算は最大1,200,000ポイントです。
baseは任意で、minとmaxは必須です。それぞれ整数か、{ "derived": "archetype_floor" }のようなライブでないRefを受け付けます。評価値は0~10,000の整数に解決され、対象の保存範囲や段階のマップに収まる必要があります。最初のbaseは空の対象のデフォルトを置き換え、既存の方法による能力値と付与は保ちます。後のbaseは前の段階に対する下限です。baseがなければ、段階は既存の評価値から始まります。minとmaxが等しいと作成時の値が固定されます。base: 0, min: 0, max: 0は固定のAppearanceを表します。最小値でドットが自動的に購入されることはありません。予算と範囲には既存の派生演算子を使えますが、このステップや後のステップが変える対象は、派生値を通じても読めません。無料の付与の条件も、それが変えられる割り振りグループ(ほかの段階の関連するグループを含みます)の評価値は読めません。式による価格には対応しておらず、支払う増加分はすべて1ポイントです。解決できないか無効な出所はnot configuredと表示されます。
スキルとセーヴの対象には、対象ごとにsheet.builder.ratingTiersが必要です。
"ratingTiers": [
{ "target": { "skill": "athletics" }, "tiers": ["none", "trained", "expert"] },
{ "target": { "save": "will" }, "tiers": ["none", "trained"] }
]配列のインデックスが数値の評価値です。マップは、ルールセットの未習熟の段階から始まる、既存で昇順の、提示する段階IDを1~12個持ちます。段階のボーナスから推測されることはありません。対象ごとに別のマップを使えます。作成時の上限が異なる対象は、別々のグループに入れてください。
カタログのgrants.ratingsは、すべての支払い段階の前に無料のドットを与えます。
"ratings": [
{ "target": { "skill": "athletics" }, "add": 1 },
{ "target": { "save": "will" }, "set": 1 }
]各付与は正のaddか0以上のsetのどちらか一方を持ち、両方は持ちません。すべてのsetの付与は下限です。最も高いものが採用され、その後すべてのaddが重なり、対象の保存上限で止まります。そのため2つの無料のランクのaddでランク2になり、支払いの予算は消費しません。既存の習熟とフィールドや能力値の付与は、これらの評価値の付与の前に合成されます。項目の選択は引き続き行を書き込むだけで、選んだ項目の付与を再帰的に適用することはありません。
UIは、基本値/前の段階、無料、購入分、合計の評価値、作成時の範囲、残りの予算を表示します。上限に達したとき、予算がないとき、無効な購入や手動の上書きに対応が必要なときは、プラスが無効になります。使い残し、達成できない最小値、上書きにはバッジが付きます。BackとNextは引き続き使えます。優先度を割り当て直しても、グループの保存済みの増加分は保たれます。予算を超えたグループは全体が無効になり、対象の上限を超える購入はその対象について無効になります。それらの回答を減らすか消去して直すか、以前の割り当てに戻して再び有効にしてください。後の段階は、前の段階の作成時の上限を超えられます。All fieldsは引き続き自由編集で、上書きは作成の規則に合わせて収めずに、明示的に表示されます。
保存されたbuilder.allocations[stepId]は、グループIDごとの優先度の枠のインデックス、支払ったboughtの増加分、安定したkind/idの対象キー(たとえばability/strength)ごとの任意のnotesを保持します。annotations: trueは、出自の説明や専門のために、対象ごとに最大1,000文字を提供します。ビルダーはその文章を判断しません。適用した増加分は段階ごとに別々に保持します。開き直しても付与を再び与えたりリソースを補充したりすることはなく、既存のシートを描写すると、描写の終了時も含め、シートを書き換えずに選択を記録します。選択を外すと、手動の差分を保ちながら、無料の評価値と支払い段階を再計算します。
共有の予算と価格付きの購入(Capability API 1.153)。 sheet.builder.poolsで最大12個の作成用プールを宣言します。複数のspendステップが1つのプールを使えます。プールを分けると、職業と個人的関心のポイントを独立させられます。予算はライブでない値参照で、既存のsum、scale、multiply、min、max、stepTable、enumTable、listSumの計算も使えます。解決した値は有限で、0~100,000である必要があります。出所がなければ「not configured」です。
{
"pools": [
{ "id": "occupation", "label": "Occupation", "budget": { "derived": "occupation_points" }, "creditLimit": 0 },
{ "id": "interest", "label": "Personal interest", "budget": { "derived": "interest_points" } }
],
"steps": [
{
"id": "occupation_skills",
"label": "Occupation skills",
"kind": "spend",
"pool": "occupation",
"offers": [
{
"id": "accounting",
"label": "Accounting",
"target": { "field": "accounting_value" },
"cost": { "flat": 1 },
"min": 5,
"max": 99
}
]
}
]
}各ステップは、安定したidとlabelを持つ最大120個の提示を持ちます。対象は、割り振りの段階と同じく、ability、数値のfield、マップのあるskill/save、bonusのちょうど1つを指定する取り決めを使います。リストの行の購入は行の識別機能(F4)のために予約されています。このAPIは配列の位置で行を識別しません。範囲は対象の保存範囲に収まる必要があります。開始時の評価値と無料の付与は保たれ、再び課金されることはありません。無料の2ドットと支払った5ドットを持つBackgroundは7です。
コストは次のちょうど1つです。
{ "flat": 1 }: 評価値の増加1ごとに1ポイントです。{ "perRank": 5 }: 次のランクの5倍で、2から3に上げると15です。{ "table": [[5, 0], [5.25, 5], [5.5, 12]] }: 昇順の評価値での累積価格です。次の購入は隣の評価値に移り、その差額がかかります(ここでは5、次に7)。小数の評価値には整数でない数値フィールドが必要で、表には提示の両方の範囲を含めます。
任意のoverrides: [{ "when": { "derived": "career_affinity" }, "cost": { "perRank": 2 } }]は最大12項目です。最初に正になる条件が採用されます。条件は購入前のシートを読み、一致しなければ基本価格を使います。予算と条件は、派生値を通じても、購入した対象を読めず、後の選択にも依存できません。無料の付与と割り振りの段階は、価格付きの購入の前に適用されます。
明示的に宣言したクレジットを除き、価格は正の増分を持ちます。評価値が上がる欠点には"credit": true, "cost": { "flat": -1 }を使います。宣言した基準値からの減少には"credit": true, "baseline": 10, "min": 6, "max": 10, "cost": { "flat": 1 }を使います。購入で10が9に下がり、1ポイントのクレジットを記録します。開始値は基準値と一致する必要があります。クレジットの対象はビルダー全体で1つの提示しか持たないため、購入とクレジットの循環を防げます。
プールのクレジットはデフォルトで0です。creditLimitにクレジットの合計の最大値を設定し、任意で最大12個のcaps: [{ "filter": "flaw", "maxCredit": 2 }]を加えます。フィルターは提示のtags: ["flaw"]を指定するため、欠点と不利のクレジットに別々の上限を設けられます。上限は、正の消費とは無関係に、クレジットの総額を数えます。異なる癖の数は、引き続き選択や行の制約です。
数える行と一致する行(Capability API 1.205)。 listSumは、セルが値に等しい行だけを読むwhere: { "column", "equals" }(空のセルは列のデフォルトとして読みます)と、列を合計する代わりに行を数える、columnの代わりのcount: trueを持てます。Genesysのタレント・ピラミッドは、2つの派生値の数と作成時の規則です。
{
"id": "tier2",
"label": "Tier 2 talents",
"op": "sum",
"of": [{ "listSum": { "list": "talents", "count": true, "where": { "column": "tier", "equals": 2 } } }]
}これに、valueがtier2を読み、maxがtier 1の数から1を引いた値を読む規則を加えます。
行ごとに計算する行の価格(Capability API 1.206)。 rowsステップのオブジェクトのcostは、columnをtimes倍してaddを加えられるため、{ "column": "tier", "times": 5 }はGenesysのタレントをtierごとに5 XPと価格付けします。addだけなら、オブジェクトで書いた固定価格です。overrides(最大4個)は、接頭辞と行自身のセルで指定した派生値がシートで0より大きいときに代わりに使う価格です。{ "add": 5, "overrides": [{ "derived": { "prefix": "affinity_", "cell": "ability" }, "cost": 4 }] }は、affinity_<its Ability>が0より大きいときに、ExaltedのCharmを4 Bonus Pointsと価格付けします。列挙型のセルは、取り得るすべての値について派生値を持つ必要があります。
価格のない提示(Capability API 1.207)。 spendの提示(またはオーバーライド)のcostは、出所が価格を示していない間、{ "unpriced": true }にできます。提示は注記付きで表示され、プールから何も差し引かず、決して購入されません。後で価格がなくなった価格で保存された購入は無効になり、修正のために保持されます。
より多くのフィールド(Capability API 1.208)。 シートは最大240個のフィールドを宣言できます。1.208より前の上限は160です。Rolemasterのスキルランク、カテゴリーランク、潜在値、合計にはこの余地が必要です。
能力値に書き込むロール(Capability API 1.209)。 rollステップのロールは、fieldの代わりにabilityを指定できます(2つのうちちょうど1つ)。結果は能力値自身の範囲に収められます。gainがあれば、能力値に対して判定を振り、それを上回った結果だけが上昇分を加え、ビルダーはそれを上昇として保ちます。能力値を振り直すか購入し直しても、改善は上乗せされたままです。gainがなければ、結果は入力した能力値と同じく書き込まれ、その能力値に対するビルダー自身の答えが変わるまで保たれます。計算で求める能力値は振れず、各能力値はステップごとに最大1回振ります。
計算で求めるリストの列(Capability API 1.210)。 数値列はsumを指定できます。同じ行のほかの数値列を最大6つ合計し(空のセルは列のデフォルトとして読みます)、列のminとmaxに収めます。セルは読み取り専用で表示され、保存したシートを読むたびに埋められ、合計、行の判定などあらゆるものから、入力したセルと同じく読まれます。計算で求める列はロールせず、ほかの計算で求める列を合計することもありません。CoCの専門分野の評価値は"sum": ["base", "occupation", "interest"]です。
部分的な能力値上昇(Capability API 1.211)。 付与のabilities.chooseはpartialFromを指定できます。選択の時点ですでにその値以上の能力値は部分的な上昇を受け、部分的な上昇2つでamountを1回与えます。選択は、すべての完全な上昇の後に、ビルダーが行う順に数えるため、Pathfinder 2eの後のブーストは"amount": 1, "partialFrom": 4です。+4の修正値を+5にするにはブーストが2つ必要です。upToと組み合わせられます。
構えでの行の判定(Capability API 1.212)。 リストのchecks[]項目は、ダイスプールのresolution.stancesの1つであるstanceを指定できます。すると、構えが列挙するスキルと同じく、すべての行の判定がその構えになります。Stewpotのpursuitsは、STILLNESSの方法でダイスを数えます。GMへのリマインダーは、その構えのスキルとともに行を示します。
能力値の専門分野(Capability API 1.213)。 リストのcontextualは"abilities": trueを設定できます。すると、そのskillのセルにはスキルのほかに能力値も(ID、ラベル、略称で)指定でき、行はその能力値で振るあらゆる判定に適用されます。素の能力値判定、その能力値を自身の能力値とするスキル、with=でその能力値に切り替えたスキルです。World of Darknessの能力値の専門分野「Strength: lifting」は、「lifting」という名前で、スキルのセルが「Strength」である行です。
相殺の無効化(Capability API 1.214)。 文脈依存のcheck(リストのcontextualか項目のmechanics.contextualにあるもの)は"cancel": falseを設定できます。それを適用したロールでは、resolution.cancel.upTo以下の面が成功を減らしません。クリティカル失敗では引き続きそれを読みます。ルールセットには、無効にするresolution.cancelが必要です。
携帯せずに使えるアイテム(Capability API 1.215)。 カタログの項目のgrants.itemAccessは、ルールセットのアイテムを最大48個(<catalog>/<entry>。サービスは不可)列挙します。ガイド付きビルダーでその項目を選ぶと、それらがキャラクターに開放されます。シートとGMのシートブロックはそれらを携帯していないものとして列挙し、袋には何も入りません。Bladesのキャラクターがスコアの開始時に荷重を宣言するように、GMは使われたときにそれをインベントリーに加えます。
作成時の行のドット(Capability API 1.216)。 allocateのグループは、最大4つの{list, column}の組であるrowsを指定できます。リストの行全体にわたるその数値列のドットは、対象と並んでグループの予算に数えられます。行はリストで編集し、予算を超える行のドットを持つグループはプレイヤーを待ちます。rowsステップのコストのオーバーライドは、固定のcostの代わりに、コスト列の単位あたりの率であるtimesを与えられます。ExaltedのCraftの行は「dots」を28のAbilityのドットに数え、「bought」のドットをtimes: 2と価格付けし、affinity_<ability>が設定されている場合はtimes: 1に上書きします。計算で求める評価値の列(1.210)が2つを合計します。
最良の評価値(Capability API 1.217)。 文脈依存のcheckは"best": trueを設定できます。それを適用したスキル判定は、求められたものより高い場合に、キャラクターの最良のスキル評価値で振ります。dice-highestルールセットは、これだけを行う文脈依存の判定を使えます。ほかのすべての判定効果には引き続きダイスプールが必要です。BladesのRook's Gambitは"check": {"best": true}を持つ特殊能力の行で、名前で適用します。
トラックに印を付けるコスト(Capability API 1.218)。 文脈依存のcostの項目は、{"pool", "amount"}のほかに{"track": "<id>", "by": N}にもできます。行や項目を適用すると、その普通のライブのトラックに、範囲が許す限りNの印を付けます(負傷トラックにはこの方法で印は付きません)。リストのcontextualもcostを持てます。BladesのRook's Gambitは、"check": {"best": true}と"cost": [{"track": "stress", "by": 2}]を持つ行です。apply=で適用する名前は、カーリーとストレートのアポストロフィーや引用符を同じものとして読みます。
借用するカタログ(Capability API 1.220)。 カタログは、自身の項目を持つ代わりに、インストール済みの別のルールセットのカタログを借用できます。{ "id": "creatures", "label": "Creatures", "holds": "creatures", "from": { "ruleset": "5e-2014", "catalog": "creatures" } }のように書きます。貸し手はIDで見つけ、そのままのIDでもコミュニティの名前空間の下でもかまいません。その項目は借り手のルールセットに照らして読まれるため、借り手が宣言していないもの(状態、脅威段階、感覚)を指定する項目は除外されてログに記録され、残りは取り込まれます。fromと並べたentriesは借用した項目に加わるか、同じIDのものを置き換えます。これらはルールセットを読むときに検査されるため、ヘッダーはそれらが持つfiltersを指定します(何も指定しないヘッダーは貸し手のものを使います)。シートとして書かれた借用クリーチャーは貸し手のIDを使います。from.sheetは、それを借り手でどう読むかを示します。fieldsはフィールドを別のIDに対応付け(除外するにはnull)、valuesはフィールドの値を対応付け、tiersは習熟段階(クリーチャーのものと、項目が付与するか求めるもの)を対応付けます。"sheet": { "fields": { "ac": "ac_typed", "size": null }, "values": { "hp_method": { "by_hand": "manual" } }, "tiers": { "proficient": "trained" } }のように書きます。アイテムを含むどの借用項目も、さらに2つを取れます。refsは貸し手の派生値を借り手の値の1つとして読み("refs": { "prof_martial_weapons": { "field": "martial_weapons" }, "armor_speed_strength": { "abilityScore": "str" } })、slotsはアイテムのスロットを借り手の名前の下に置きます("slots": { "body": "armor" })。カタログは、自身のルールセットからも、さらに借用するカタログからも借用できません。借用したクリーチャーのアートは、貸し手のものとして照合します(クリーチャーパックの5e-2014/creatures/<id>)。借用したカタログへの参照(クリーチャーの呪文など)は、ルールセットではなくカタログを読むときに検査されます。
より長い成長のリスト(Capability API 1.219)。 sheet.advancement.fieldsは最大64個のフィールドを取れます(以前は24個)。そのため、すべての呪文レベルのスロットや習熟のリストのように、レベルで多くのフィールドが上がるゲームでも、GMがそのすべてを上げられます。24個を超えるリストには1.219が必要です。
双方向、所有、交換の購入(Capability API 1.164)。 "direction": "both"は、1つの提示で評価値を開始値から上げ下げできるようにします(宣言した場合、そのbaselineはシートと一致する必要があります)。1段階上げるごとに曲線の価格がかかり、開始値を下回って1段階下げるごとにそれがクレジットとして戻り、プールのcreditLimitと上限に収められます。台帳は常に一方向にしか進まないため、購入した評価値を下げると最後の購入を支払った価格で取り消し、下げた評価値を上げるとそのクレジットを返します。購入して下げてもクレジットは生まれません。このような対象はビルダー全体で1つの提示を持ちます。GURPSのSTは{ "target": { "ability": "st" }, "direction": "both", "baseline": 10, "min": 7, "max": 14, "cost": { "flat": 10 } }で、表のコストはBasic Speedのような小数の段階に価格を付けます。"direction": "increase"と"decrease"は一方向の提示を明示します("decrease"は前述の減少で、基準値とクレジットを伴います)。
"effect": "ownership"は、提示をそのbaseline(またはmin)から上の独自の段階で価格付けし、シートはそれ自身の値と購入したレベルの高い方を保ちます。GURPSの1ポイントのfamiliarityは、デフォルトの方がすでに良くても支払われて記載され、払い戻してもシートには何の影響もありません。
"exchange": { "from": <rating>, "units": 2, "gain": 1, "floor": 9 }は、提示を閉じた作成時の交換にします。各購入はfromをunitsだけ下げ、対象をgain(デフォルト1)だけ上げます。fromをfloor未満にしたり、対象をmaxより上にしたりはしません。プールからは何も消費しないため、costは省きます。交換したポイントがさらに交換されることはありません。交換で評価値が上がると、ほかの交換はそれを下げず、交換で評価値が下がると、ほかの交換はそれを上げません。クラスが取れない交換(when)は、同じ評価値を逆向きに指定できます。払い戻すと両方の評価値が戻ります。OSEの主要能力値の交換は、下げる能力値ごとに1つの提示です。
{
"id": "wis_to_int",
"label": "Lower Wisdom to raise Intelligence",
"target": { "ability": "int" },
"exchange": { "from": { "ability": "wis" }, "units": 2, "floor": 9 },
"min": 3,
"max": 18
}ビルダーは、符号付きの支払った差分と元の価格を、安定したステップ/提示のIDの下に保存し、1つの提示につき最大1,000行の購入を記録します。払い戻しは最新の行を取り除き、クレジットの削除も含め、その寄与と記録された価格を正確に戻します。無料の評価値を払い戻すことはありません。ライブのXP、インベントリー、通貨、パーティーのリソースは消費しません。
職業、無料の付与、予算の出所を変えても台帳は保たれます。無効な購入は無効状態になり、プールは元の消費と、超過時の負の残りポイントと、新たに提案される価格を表示します。共有の対象は、ほかのプールの依存する購入も一時停止します。Reprice saved purchases(保存した購入の価格を更新)は、プールの合法な新しい価格を明示的に受け入れます。そうしない場合は、行を払い戻して直してください。購入が黙って削除されたり売却されたりすることはありません。使っていないポイントは情報表示です。Back/Nextは引き続き使え、All fieldsはスキーマの範囲内で、表示される手動の上書きを保ちます。既存のキャラクターを描写しても、保存した選択を開き直しても、ドットを再び与えることはありません。
名前付きの行(Capability API 1.154)。 rowsステップでは、作成中にプレイヤーがシートのリストの1つで自分の行を追加、編集、削除できます。従者、知人、儀式とその材料など、カタログに載っていないものです。
{
"id": "retainers",
"label": "Retainers",
"kind": "rows",
"list": "retainers",
"columns": ["name", "role", "loyalty"],
"required": ["name"],
"min": 1,
"max": 4,
"defaults": { "role": "Hireling" }
}columnsはステップが編集するリストの列の一部です(省略するとすべて)。requiredは、行が数えられるために埋める必要がある列を指定します。バッジは、min(0~20)に足りない行全体の数と、必須のセルが空のすべての行を数えるため、書きかけの材料は未解決のままです。maxはAdd a row(行を追加)を止め、リストのmaxItemsを超えることはありません。新しい行は列自身のデフォルトから始まり、次にdefaultsを適用します。これは各列に合う必要があります。
ステップは各行の位置でリストを編集するため、同じ名前の2人の従者は2行のままで、1つを削除してももう1つは残ります。カタログの選択が書いた行は「Added by a pick」の注記付きで読み取り専用で表示され、選択とともに現れたり消えたりします。All fieldsはこれまでどおりすべての行を編集します。
行のステップは、countFrom(Capability API 1.799)で求める行数を指定できます。これはシートから読み取る値で、5eのヒットポイントのダイスを振る際に、1レベルを過ぎてからレベルごとに一回行う処理などに使います。ステップが表示されると、ビルダーは、プレイヤー自身の行がその数に達するまで、Add a row(行を追加)と同じ方法で行を追加します。maxやリストのmaxItemsを超えることはありません。行を削除することはなく、その場で削除した行は、ステップが再び表示されるまで削除されたままです。現状を説明中のキャラクターには、ステップを見ても行は追加されません。その後、ステップはminの場合と同じく、その数の記入済みの行がそろうのを待ち、両方を指定した場合は大きい方を使い、同じ「M個中N個」の数を表示します。これを使うルールセットにはCapability API 1.799が必要です。
{
"id": "hit_point_rolls",
"label": "Hit point rolls",
"kind": "rows",
"list": "hp_rolls",
"required": ["die", "roll"],
"countFrom": { "derived": "hp_rolls_due" }
}条件付きの提示、シートから読む範囲、作成時の規則(Capability API 1.155)。 spendの提示は次のものも持てます。
when: Ref: 購入前のシートで0より大きい間だけ提示します。職業自身のスキルや、部族が取れるBackgroundなどです。一度も購入されない提示はプールをそのままにし、キャラクターがもう取れない提示での保存済みの購入は、修正のために無効状態のまま残ります。minFrom: RefとmaxFrom: Ref: シートから読む下限と上限で、minとmaxの内側に収めます。Credit Ratingは職業の範囲を取り、DodgeはDEXで止まります。下限未満の評価値は、1回の購入で下限まで買い上げます。allowedRatings: number[]: 購入で到達できる唯一の評価値です。1、3、5ドットで売るMeritなどです。各購入は、曲線の価格で次の許可された評価値へ直接進みます。
予算やオーバーライドと同じく、これらは購入した対象を読めません。onDuplicate: "replace"を持つ習熟の選択はreplacementFromを指定できます。重複を置き換えられるスキル(またはセーヴ)で、シートが持つすべてのものの代わりです。表示、保存、適用されるものに適用されます。
sheet.builder.constraintsは最大40個の作成時の規則を持ちます。それぞれ、バッジにその規則を示すstepと、失敗している間そこに表示するlabel、任意のwhen: Ref、そして次のちょうど1つを指定します。
minとmaxの一方または両方(それぞれ数値かRef)を持つvalue: Refです。minとmaxの一方または両方を持つrows: { list, filter?, sum? }です。filter({ column, equals?, below?, above? })が残す行について、リストの行の数か、数値列sumの合計です。distinct: { list, column }: 2つの行が同じ入力済みの値を共有しません(大文字と小文字、空白は無視します)。approved: fieldId: オンである必要がある真偽値フィールドで、Storytellerの承認などです。
{
"constraints": [
{
"id": "disadvantage_cap",
"label": "Disadvantages give at most 50 points.",
"step": "traits",
"rows": { "list": "traits", "filter": { "column": "cost", "below": 0 }, "sum": "cost" },
"min": -50
}
]
}失敗した規則がBack、Next、All fieldsを妨げることはありません。
計算で求める能力値と、1回のロールに適用する効果(Capability API 1.156)。 能力値はvalue: Ref[](1~8個)を持てます。その能力値はそれらの合計で、minとmaxに収められ、読み取り専用で表示されます。Bladesの属性は、印を付けたアクションの合計です。GURPSのPerceptionは[{ "abilityScore": "iq" }, { "field": "perception_bought" }]で、それで振るスキルは購入したものに従います。派生値、上限、スキルは計算で求める能力値を読めますが、計算で求める能力値同士は、派生値を通じても互いを読めません。ビルダーがそれを設定することはなく、それに保存されたものは無視されます。
リストはcontextualを宣言でき、GMが行を指定したときにその行をロールに適用します。
{
"id": "stunts",
"label": "Stunts",
"maxItems": 10,
"columns": [
{ "id": "name", "label": "Name", "type": "text", "maxLength": 80 },
{ "id": "skill", "label": "Skill", "type": "text", "maxLength": 40 },
{ "id": "bonus", "label": "Bonus", "type": "number", "min": -5, "max": 5, "default": 2 }
],
"contextual": { "name": "name", "skill": "skill", "bonus": "bonus" }
}nameはGMが行を指定するときに使う列です。skill(任意)は行を適用するスキルをIDかラベルで持ち、空のセルはどの判定にも適用されます。bonus(数値列)とdice(ダイス列)は判定に加え、プールのルールセットではダイスとして加えます。to: "saves"は代わりにセーヴに行を適用します。プールのルールセットでは、check: { dice?, successes?, double?, explode? }が、適用されるすべての行にプールへの同じ効果を与えます。10が爆発する専門分野などです。
カタログの項目は、effects(own-checks-advantageやほかの判定とセーヴの効果)、checksかsavesへのmodifiers、絞り込むskillsとsaves、プールのcheckの効果、適用したロールで1回支払うcost: [{ "pool": "...", "amount": 1 }]を持つmechanics.contextualを持てます。GMは判定にapply="Strong Back; Quick Eye"(最大4つの名前)と書きます。その判定に適用される名前だけが判定を変えます。別のスキルの行、2つの行が共有する名前、プールで賄えないコストは何も変えません。行を持っているだけでロールが変わることはありません。記録は適用されたものをfromに列挙します。
ロールで決める、またはシートから読む初期の硬貨(Capability API 1.157)。 初期装備の硬貨の行は、countの代わりにroll("2d6"のようなダイス)かcountFrom(持ち主のシートから読むRef)を持てます。両方は持てません。times(1~10000)はどちらにも掛けます。
{ "coins": "gold", "roll": "5d4", "times": 10 }選択画面はダイスを表示します(「5d4 gold, rolled when taken」)。ロールは、グループや持ち主がパッケージを受け取るときに1回だけ行われるため、選択画面を開き直しても振り直せません。countFromは持ち主自身のシートを読みます。Credit Ratingのフィールドなどです。シートのない持ち主は拒否され、量が0なら何も加えません。アイテムの行は固定のcountのままです。
一度だけ設定する開始値(Capability API 1.158)。 kind: "initialize"のビルダーのステップは、プレイヤーが確定したときに開始値を書き込み、その後自ら書き込むことはありません。
{
"id": "start",
"label": "Starting values",
"kind": "initialize",
"writes": [
{ "field": "san_start", "value": { "abilityScore": "pow" } },
{ "field": "xp", "remaining": "creation" }
]
}各書き込みはシートのフィールドと、value(固定値か、数値フィールドならRef)かremaining(ビルダーのプールで使われずに残った分)のどちらかを指定します。ステップは各フィールドの現在の値と設定される値を示し、バッジはプレイヤーが設定するまで待ちます。書き込んだ値はビルダーとともに保存されるため、開き直しても、キャラクターをインポートしても、後でPOWを変えても、再び書き込まれることはありません。その後シートが変わった場合、ステップは設定し直すと何が置き換わるかを示し、プレイヤーのSet again(もう一度設定)だけがそれを行います。現状のままに描写されているキャラクターに書き込むことはありません。
ライブのプールはstartFrom: Refを宣言でき、満タンや空ではなくシートから読む値から始まり、0と最大値の範囲に収められます。普通のトラックはdefaultの代わりにstartFromを宣言できます。initializeステップが書き込んだフィールドを指すと、SANは設定元のPOWから始まり、プレイが残した値に留まります。保存されたライブの値は、プールの開始値より常に優先されます。
価格付きの選択と行(Capability API 1.159)。 カタログのステップやrowsステップは、ビルダーのpoolとcostを指定できるため、プレイヤーが選ぶものや書くものは、spendステップと同じプールから支払われます。カタログのステップのコストは数値か、項目自身の数値フィルターである{ "filter": "tier" }です。rowsステップのコストは数値か、各行から読む{ "column": "cost" }です。負の価格はクレジットで、プールのcreditLimitに収められるため、欠点が特徴の資金になります。rowsステップはfromも指定できます。そのリストに供給する行のカタログで、プレイヤーは項目の行のコピーを好きなだけ追加でき、各コピーはそれぞれ独立した自分の行として価格付けされ、取り除かれます。
{
"id": "charms",
"label": "Charms",
"kind": "rows",
"list": "charms",
"pool": "bonus",
"cost": { "column": "cost" },
"from": "charm_book"
}プールで支払えない選択は提示されません。価格付きの選択と行は最初に支払われ、プレイヤーのために売却されることはありません。欠点を外してプールが予算超過になると、プレイヤーが直すまでspendステップの購入は適用されなくなり、価格付きの各ステップのバッジは修正を数えます。列が超えてはならない合計(Riteのレベル)は、rows.sumとmaxを持つ作成時の規則(1.155)です。
作成プロファイルと前の段階(Capability API 1.160)。 sheet.builder.profiles(最大16個)により、キャラクターの種類、職業、パッケージが独自のステップと予算を持てます。
"profiles": [
{ "id": "dragon", "label": "Dragon-Blooded", "when": { "field": "dragon" },
"steps": ["aspect_gifts"], "budgets": { "bonus": { "const": 15 } } },
{ "id": "lunar", "label": "Lunar", "when": { "field": "lunar" },
"steps": ["moon_gifts"], "budgets": { "bonus": { "const": 18 } } }
]whenが0より大きい最初のプロファイルがキャラクターのもので、ビルダーはどれかを示します。いずれかのプロファイルが列挙するステップは、それを列挙するプロファイルがキャラクターのものである間だけ表示されます。隠れている間も回答は保たれますが、何も付与しません。プロファイルのbudgetsはそれらのプールの予算を置き換えるため、種類を切り替えて別の種類の予算が残ることはありません。もう賄えない購入は、プレイヤーが直すまで適用されなくなります。
カタログのステップやinitializeステップはreads: { "before": "step_id" }を宣言できます。すると、その項目のofferedWhenとupTo(またはinitializeステップの値)は、そのステップより前のステップが作るとおりのシートを読みます。後のステップが選んだもの、付与したもの、購入したものはすべて取り戻され、プレイヤーが入力したものは保たれます。マルチクラスのステップは、このレベルの上昇の前の能力値を読みます。Humanityのスナップショットは、プレイヤーがステップ間をどのように行き来しても、フリービーの前の美徳を読みます。
それ自体が判定になる行(Capability API 1.161)。 リストは最大4つのchecksを宣言でき、プレイヤーが書く各行は、GMが名前で求められる判定になります。
"checks": [{ "id": "science", "name": "name", "rating": "rating", "ability": "edu" }]nameは行を呼ぶテキスト列で、ratingはその評価値である数値列です。ability(任意)は、スキルの能力値と同じように加えます。Science (Physics)とScience (Biology)は2つの行で2つの判定で、それぞれ独自の評価値を持ちます。1つのリストの2つの判定は、1つの評価値に基づく2つの構えで、それぞれGMが行の名前の後に言うlabelを持ちます。「Fire stew (bold)」と「Fire stew (careful)」です。シート自身のスキル、セーヴ、能力値が先に照合されます。2つの行が共有する名前は、一方の名前が変わるまで判定になりません。削除した行の判定はそれとともに消えます。GMのシートブロックはすべての行の判定をその数値とともに列挙し、with=はスキルと同じく機能します。評価値の列で価格付けしたrowsステップ(1.159)は、作成用プールから評価値を購入します。
ダイスとともに保持する作成時のロール(Capability API 1.162)。 作成時のダイスは{ "count", "sides", "keep"?, "add"?, "multiplier"? }です。上位keep個の面にaddを加え、multiplierを掛けるため、CoCの(2d6+6) x 5は{ "count": 2, "sides": 6, "add": 6, "multiplier": 5 }です。
abilitiesステップのmethods.rollsは、すべての能力値を順に、それぞれのグループのダイスで振り、ロールを別の能力値に移すことはできません(方法は"rolls")。
"rolls": [
{ "abilities": ["str", "con", "dex", "app", "pow"], "dice": { "count": 3, "sides": 6, "multiplier": 5 } },
{ "abilities": ["siz", "int", "edu"], "dice": { "count": 2, "sides": 6, "add": 6, "multiplier": 5 } }
]kind: "roll"のステップは、それぞれ数値のfieldに書き込む最大12個のrollsを列挙します。Luck、ヒットポイント、初期資金などです。best(2か3)はその回数振って最良のものを採用します。floor(数値かRef)は結果の最小値で、1ヒットポイントや、能力値を決して下回らない潜在値などです。gainは代わりに上昇判定にし、フィールドに対して振り、ロールがそれを上回ったときだけgainを加えます。CoCのEDUの上昇と同じです。すべてのロールは面とともに保持され、面とともに表示されます。すでに行ったロールは確定し、ビルダーを開き直しても振り直すことはありません。振り直しを提示するのはretry: trueを持つステップだけです。描写しているキャラクターのために振ることはありません。
数える選択と作成時の制約(Capability API 1.151)。 どのステップもwhen: Ref(ライブでないシートの値が0より大きい間だけ表示して適用する)とrequiredWhen: Ref(0より大きい間だけ、未完了の選択をバッジで数える)を持てます。隠れたステップは保存した回答を保ちます。選択が未完了や無効でも、NextとBackは引き続き使え、All fieldsは引き続き自由編集です。
カタログのステップは最大12個のquotasを宣言でき、それぞれカタログの型付きフィルターの1つを使います。
{
"id": "ratings",
"label": "Skill ratings",
"kind": "catalog",
"catalog": "ratings",
"min": 10,
"max": 10,
"distinctBy": "skill",
"quotas": [
{ "filter": "rating", "value": 4, "min": 1, "max": 1 },
{ "filter": "rating", "value": 3, "min": 2, "max": 2 },
{ "filter": "rating", "value": 2, "min": 3, "max": 3 },
{ "filter": "rating", "value": 1, "min": 4, "max": 4 }
]
}カタログが各スキルを各評価値で提示する場合、これはFate風のピラミッドです。項目は明示的な習熟段階IDで習熟の付与を宣言し、数値のフィルター値が段階の対応を作り出すことはありません。割り当ては0 <= min <= max <=ステップの最大値です。最小値はバッジに影響し、最大値はそれ以上の一致する選択を無効にします。distinctByは既存のフィルターを指定し、選択はその値(タグのフィルターならどのタグも)を共有できず、そのフィルターを持たない項目は数えられません。それ以外の場合、重複の判定は項目IDで行います。quotaBelow: { "filter": "tier" }は、1より大きい正の整数のtierについて、tier nよりtier n−1の有効な選択が厳密に多いことを求めます。tier 1が基礎です。支える選択を外すと、超過した上位の選択は無効になり、修正のために回答は保ちつつ、その付与を取り戻します。
abilities.choose、trained.choose、trainedステップのchoose、entries.chooseの枠は、次のものを受け付けます。
id: 安定したシートのIDです。新しい枠はこれを使ってください。すると、保存した回答は並べ替えても残ります。IDのない古い枠は位置によるキーを保ちます。IDは、元のステップが提示するすべての選択で一意です。- 明示的な
max(1~20、能力値なら最大6)を伴うcountFrom: Refです。countFromがない場合は、countが引き続き固定の数です。動的な数は切り捨てられ、0からmaxの範囲に収められます。既存の派生演算子を読み、実行可能な式は決して読みません。 excludeChoices: ["background/restricted"]: 同じ種類の前の選択のIDで、source_step/choice_idと書きます。これらは、置き換えを含め、前の選択の有効な回答を除外します。参照は、定義内か同じカタログファイル内で検証できる必要があります。そのため、インラインの前の付与の選択や明示的なtrainedステップは後のカタログファイルに供給できますが、別の外部カタログファイルへの参照は拒否されます。1つのステップの別の項目の間でも、選択のIDは一意である必要があります。
能力値の選択はさらにfromを受け付け、シートの能力値とexceptとの共通部分を取ります。PF2eの異なるブーストには、restrictedの選択で["str", "dex"]を提示し、続いてbackground/restrictedを除外するfree_boostの選択を置けます。項目の選択は、カタログのステップと同じquotas、distinctBy、quotaBelowを受け付け、maxかcountの範囲に収められます。引き続き、選んだ項目自身の付与を適用せずに行を書き込みます。
習熟の選択はさらに、tier(未習熟より上の提示する段階で、付与やビルダーの段階を上書きします)、only: "any" | "trained" | "untrained"、onDuplicate: "replace"を受け付けます。対象かどうかは、手動の習熟と前の有効な付与を読み、ビルダー自身の以前の書き込みは除外します。それらの出所ですでに習熟しているスキルを選ぶと、同じ種類の未習熟のスキルの中から選ぶ別の置き換えの枠が開き、元の回答は保たれます。置き換えは選択の除外と段階に従います。保存されるキーは、元の枠のキーに/replacementを加えたものです。Humanの職業外のランクは、前の職業の選択を除外してonly: "untrained"を使えます。職業を変えても、無効になった後の回答は保たれます。
条件と新しい枠の数は、前のステップが変えた値しか読めないため、自身を有効にする付与や循環する付与は防がれます。後の外部カタログファイルがシートの値を変え得る場合、枠の数はそれを読めません。その元のステップを前に移すか、そのカタログをインラインにしてください。条件は既存の派生値のenumTableを使い、亜種族のステップを1つの祖先だけで必須にできます。requiredWhenはバッジにだけ影響し、有効なライブでない値ならどれでも読めます。新しい制約付きの選択は、対象となる内容がない場合、「not configured」の説明付きで未解決のままです。利用できる内容に合わせて必須の数を黙って下げることはありません。シートの手動の編集と描写したキャラクターには、ビルダーの既存の所有の規則が適用されます。
ビルダーを使わずに作ったキャラクター(白紙ではなく、まだビルダーの選択がないシート)はdescribed(描写済み)の状態で開きます。選択はキャラクターの現状を記録し(種族の上昇はすでに能力値に含まれているものとみなします)、プレイヤーがDone: let picks change the sheet(完了: 選択でシートを変更)を選ぶまで、シートは何も変わりません。それ以降は、選択を変えると、描写された選択が与えたものを取り戻します。
tierがなければ、習熟はシートが提示する未習熟より上の最初の段階になります。半分の段階を提示するシート(5eのスキルのように)は"tier": "proficient"を設定します。