RPG 玩法
这一页讲六个让故事更像一场游戏的内置插件:骰子判定、开局配点、任务、背包、好感度和隐藏事件。每个插件下面写了你会看到什么、什么时候启用、能调什么,以及世界作者可以预置什么。
| 插件 | 一句话 |
|---|---|
骰子判定(dice-check) | 有风险的行动先掷骰子,再按结果写故事 |
跑团规则(tabletop-rules) | 开局给主角分配属性点,也能由玩家主动发起检定 |
任务日志(core-quest) | 自动记下任务、目标和报酬 |
行囊(inventory) | 自动记下得到、失去和装备的物品 |
好感度(affinity) | 记录你和每个 NPC 的关系有多近 |
隐藏事件(story-events) | 世界作者埋好的剧情,条件到了才会发生 |
这六个都是可选插件,不会自动启用。哪些世界默认带上它们,见页末的总览。
骰子判定和跑团规则:有什么不同
两个插件都和掷骰有关,但分工不同,可以只用一个,也可以一起用。
dice-check | tabletop-rules | |
|---|---|---|
| 管什么 | 游玩中的风险行动 | 开局配点,以及玩家主动发起的检定 |
| 谁来触发 | 故事里主角做了有风险的事,模型自动判断 | 玩家点右侧面板的按钮 |
| 谁决定属性和难度 | 模型 | 玩家 |
| 骰子 | 每回合先掷好三个 d20,模型只能按顺序取用 | 玩家提交后当场结算 |
| 开局有表单吗 | 没有 | 有,一张配点表单 |
一起用时:
- 开局,
tabletop-rules让你给属性分点。 - 游玩中,普通的风险行动由
dice-check自动判定。 - 你在“属性检定”面板主动发起的检定,由
tabletop-rules结算。这一回合dice-check会让出来,不会再判一次。
完整的搭建步骤见开局配点和掷骰判定。
骰子判定(dice-check)
主角做有失败风险的事,比如撬锁、翻墙、说服守卫,结果不由模型随口决定。每回合在故事动笔之前,骰子已经掷好。模型只能按规则读取结果,写出来的成败必须和骰子一致,对不上会被退回重写。没有风险的行动不掷骰。
检定修正读取本次行动角色的属性,没有行动角色时取主座位的当前角色。
你会看到什么
- 故事正文里出现一个判定块:行动、算式和成败,例如
14 + 4 = 18 vs DC 12。大成功和大失败会有强调。 - 右侧有“判定记录”面板,列出每一次判定,写明是第几回合、用的哪个属性(用世界里的属性名)。面板上有“掷 d20”和“掷 2d6”两个快速按钮。
- 输入框里输入
/roll可以自己掷骰。/roll 2d6掷两个六面骰,不写骰式就掷1d20。/r是简写。骰式写成NdM,一次 1 到 100 颗,每颗 2 到 1000 面。
自己掷的骰子只是显示结果,不会影响故事里的判定。
难度
模型从四档难度里选一档,对应的目标值(DC)是:
| 难度 | 目标值 |
|---|---|
| easy | 8 |
| normal | 12 |
| hard | 16 |
| extreme | 20 |
d20 加上属性修正,达到目标值就成功。自然 20 是大成功,自然 1 是大失败。
主角分类为 abilities 的数值属性如果有上下限,插件按比例把它换算成 0 到 +10 的修正,列给叙事选用。生命、信任这类 stats、social 数值不拿来检定。所以检定用的属性要放在 abilities,并写好 min 和 max。没有可用的有量程能力属性或缺少角色数据时,仍正常掷骰,修正取 0,结果不显示属性标签。
什么时候启用
可选插件。内置玩法包里没有它,世界要自己带上它。
| 世界 | 带它的方式 |
|---|---|
lantern-barrow | “经典跑团”玩法包,默认启用 |
emberback | “Emberback Rescue”玩法包,默认启用 |
其他世界可以在会话准备页手动勾选,或者由世界作者写进 pluginPolicy,见开局配点和掷骰判定。
没有可调的设置。
世界作者可以预置什么
不接收世界数据。能做的是把主角的数值属性定义好,写清每个属性的 description,模型靠它判断用哪个属性。
搭配
- 要换成 d100 之类的别的判定系统,可以用另一个提供同类功能的插件替换它。普通玩家不用管这一点。
- 玩法包里的叙事插件(如
narrator)会读取判定结果。没有叙事插件,判定不会生效。
跑团规则(tabletop-rules)
在创建角色之后追加一步:给主角分配属性点。游玩中,你还可以主动发起一次属性检定,自己选行动、属性和难度。
配点和检定跟随本次行动的角色,没有行动角色时取主座位的当前角色。
你会看到什么
- 创建角色之后弹出“开局配点:分配 N 点”表单。每个可配的属性有起始值和上限,点数必须正好用完,再点“完成配点”。填错了表单会告诉你哪里不对,可以直接改。
- 右侧有“属性检定”面板。点“发起属性检定”,填“尝试的行动”,选“属性”和“难度”,再点“进行检定”。结果带有骰子记录,重试或重启不会重掷。
- 普通回合不会弹出这张检定表单。
世界里没有可配点的属性时(比如纯对话的世界),会跳过配点。面板上的按钮会提示这个世界不能检定。
什么时候启用
可选插件,不会自动启用。
| 世界 | 带它的方式 |
|---|---|
lantern-barrow | “经典跑团”玩法包,默认启用 |
其他世界在会话准备页勾选即可。
NOTE
游戏中途才启用时,已有的主角不会被重建,也不再补问配点表单,只是后面可以发起检定。启用后先继续一个回合,让插件完成初始化,再点检定。
没有可调的设置。
世界作者可以预置什么
| 数据 | 文件 | 说明 |
|---|---|---|
| 开局配点规则 | data/tabletop-rules.json | 总点数 budget,以及每个属性的起始值 base 和上限 max |
不写这个文件时,插件把世界里所有数字属性(分类是 abilities,有 min 和 max)拿来配点,额外给 4 点。健康、体力这类资源不会被自动纳入。
属性 id 必须和 world.yaml 里定义的一致。写错时,pnpm validate:world 会指出不符合要求的属性;会话导入也会检查。规则怎么写、怎么校验,见开局配点和掷骰判定,数据怎么进世界包见世界数据。
任务日志(core-quest)
故事里出现明确的委托或目标时,自动登记成任务。目标完成、任务完结或失败时自动更新。你不用手动记。
你会看到什么
- 右侧“任务日志”面板。可以搜索,也可以按“全部”“进行中”“已完成”“已失败”筛选。每个任务显示目标、委托人和报酬,状态徽标与筛选页签使用同一套本地化名称。
- 任务有变化的那一回合,正文里出现一个“任务日志”块,标明“新任务”“推进”“完成”或“失败”。没有变化时显示“本回合没有任务变更”。
- 会话摘要里也会带上任务的概况。
什么时候启用
可选插件,不会自动启用。
| 世界 | 带它的方式 |
|---|---|
lantern-barrow | “经典跑团”玩法包,默认启用 |
emberback | “Emberback Rescue”玩法包,默认启用 |
没有可调的设置。
世界作者可以预置什么
| 数据 | 文件 | 说明 |
|---|---|---|
| 初始任务 | data/quests.yaml | 主线任务,加上最多几个支线。status 是 active、completed 或 failed,每个目标有 text 和 done |
任务靠名字来推进,所以任务名和委托人名要和设定里写的一致。写法见预置开局内容。
行囊(inventory)
故事里明确得到、失去或装备的物品,会自动记进背包。随时可以在右侧查看。
物品结算只采纳本次行动角色持有的物品变化,没有行动角色时取主座位的当前角色;其他玩家角色的物品变化不计入行囊。
你会看到什么
- 右侧“行囊”面板,分“已装备”和“背包”两块。物品上有“装备”“卸下”“丢弃”按钮。
- 物品有变化的那一回合,正文里出现一个“行囊变化”块,标明“获得”“失去”“装备”或“卸下”。
- 输入
/bag(也可以输入/inventory)查看当前背包并打开面板。 - 会话摘要里会写“行囊中有 N 项物品”。
购买、交易或赠送时,叙事可以先变更行囊再写正文。钱不够的购买会被拒绝。暂存的变化在保存回合时无法应用,会显示提示,故事仍保存。如果购买失败,同回合的其他行囊变化也可能跳过。工具已经处理的物品变化,不会再从故事里重复记账。
只有故事里明确发生的物品变化才会被记录。保存回合时会检查行囊数据集中的记录;记录不合规时,跳过本轮这一步记账,故事照常保存。
什么时候启用
可选插件,不会自动启用。
| 世界 | 带它的方式 |
|---|---|
lantern-barrow | “经典跑团”玩法包,默认启用 |
emberback | “Emberback Rescue”玩法包,默认启用 |
没有可调的设置。
世界作者可以预置什么
预置物品需要通过数据集的 set 与记录 schema 校验;同步允许删除权威来源已移除的预置物品。
| 数据 | 文件 | 说明 |
|---|---|---|
| 开局物品 | data/items.yaml | 开局携带的东西。quantity 是数字;标签会显示给玩家,用世界的语言写,货币加一个表示货币的标签;穿戴中的写 equipped: true |
列表保持简短,游玩中得到的物品会自动记录。写法见预置开局内容。
搭配
叙事(narrator)和对话叙事(chat-mode-narrator)都会在行囊启用时使用查询和变更工具;不启用行囊仍照常讲故事。
好感度(affinity)
记录你和每个 NPC 的关系。你和某个 NPC 有了明确的互动,比如聊天、送礼、帮忙、冲突或背叛,他的分数就会变。
你会看到什么
- 右侧“好感度”面板,每个 NPC 一行,显示分数和档位。分数范围是 -100 到 100,0 是中立。
- 分数变化的那一回合,正文里出现“好感变化”提示。
保存回合时会检查好感数据集中的记录;记录不合规时,跳过本轮这一步记账,故事照常保存。
叙事可以直接读取已提交的当前分数,预置记录尚无档位时也可读取;这次读取不额外调用模型。分数与档位不是恋爱路线阶段,未列出的 NPC 不按 0 分处理。关闭插件后也不再提供这份上下文。
档位按分数划分:
| 分数 | 档位 |
|---|---|
| -100 到 -60 | 敌视 |
| -59 到 -20 | 冷淡 |
| -19 到 19 | 中立 |
| 20 到 59 | 友好 |
| 60 到 84 | 亲密 |
| 85 到 100 | 挚爱 |
世界可以预置初始好感;游玩中只为有名字、且和你真的互动过的 NPC 新建记录。路人和只是在场的人不算。日常互动一次加减 1 到 5,重大事件最多加减 20。
什么时候启用
可选插件,不会自动启用。
| 世界 | 带它的方式 |
|---|---|
lantern-barrow | “经典跑团”玩法包,默认启用 |
emberback | “Emberback Rescue”玩法包,默认启用 |
haruka-academy | “学园恋爱 · 视觉小说”玩法包,默认启用 |
NOTE
它每回合要多调用一次模型来判断分数,所以会多花一点费用和时间。想省钱可以不启用它。
没有可调的设置。
世界作者可以预置什么
预置好感需要通过数据集的 set 与记录 schema 校验;同步允许删除权威来源已移除的预置好感。
| 数据 | 文件 | 说明 |
|---|---|---|
| 初始好感 | data/affinity.yaml | 玩家一开始就有关系的关键 NPC。score 是 -100 到 100 的整数,notes 用一两句话解释这个分数 |
id 和 name 要和该 NPC 的角色设定一致,后面的更新靠名字匹配。写法见预置开局内容。
隐藏事件(story-events)
世界作者可以埋一些“条件满足才发生”的剧情。条件没到之前,模型和玩家都看不到它的内容。条件到了的那一回合,叙事会把它自然地写进故事里。
你会看到什么
没有专门的面板。你只会在故事里碰到这些事,像是故事自己发生的转折。
如果叙事漏写了,下一回合会再提醒一次。每个事件只提醒这一次。
什么时候启用
可选插件,不会自动启用。
| 世界 | 带它的方式 |
|---|---|
lantern-barrow | “经典跑团”玩法包,默认启用 |
emberback | “Emberback Rescue”玩法包,默认启用 |
mistport | “雾港调查剧”玩法包,默认启用 |
haruka-academy | “学园恋爱 · 视觉小说”玩法包,默认启用 |
世界里没有隐藏事件数据时,启用它也什么都不会发生。
可以调什么
| 设置 | 作用 | 默认 |
|---|---|---|
剧情策划(planner) | 每 3 回合调用一次模型,根据剧情在幕后埋下之后才会发生的隐藏事件 | 关 |
打开它会多花模型调用。lantern-barrow、emberback 和 mistport 的世界已经替你打开了。
世界作者可以预置什么
| 数据 | 文件 | 说明 |
|---|---|---|
| 隐藏剧情事件 | data/hidden/story-events.yaml | 每个事件有触发条件 when 和给叙事的简要提示 payload |
这份数据必须作为隐藏数据导入,否则玩家也能看到。条件可以检查维度、世界时间、另一个事件是否发生,或回合数,也可以用 all、any、not 组合。payload 写成给叙事的简要提示,不要写成成品文字,也不要剧透后面的事件。数据怎么导入见世界数据。
条件里写错的维度 ID、维度里的路径,或 equals / notEquals / in 中不符合维度 schema 的候选值,都会报成 dimension-reference 错误。pnpm validate:world 和会话导入都检查这些内容,详见世界数据。
什么时候启用的总览
| 插件 | lantern-barrow | emberback | mistport | haruka-academy |
|---|---|---|---|---|
dice-check | 有 | 有 | ||
tabletop-rules | 有 | |||
core-quest | 有 | 有 | ||
inventory | 有 | 有 | ||
affinity | 有 | 有 | 有 | |
story-events | 有 | 有 | 有 | 有 |
三个通用玩法包(传统故事模式、对话模式、低成本)都不带这六个插件。在别的世界里要用,在会话准备页手动勾选。