# Trpg Module Prep

> 用于TRPG 备团准备，而不是正式跑团主持。根据模组正文、章节文本、世界设定、规则资料或角色信息，提炼出当前章节/场景可供 DM 使用的备团内容，包括：核心事件、剧情推进条件、NPC 动机与关系、可交互点、可能发生的战斗与遭遇、线索与伏笔、地图/插图使用时机、资源压力、节奏分段，以及需要特别注意的规则或判定。适用于开团前准备、章节开始前整理、复盘后更新下一章节备团资料。触发场景包括：备团、章节整理、模组提炼、DM 准备、跑团前总结、遭遇设计、NPC 整理、地图使用规划。触发词：备团、模组备团、章节备团、TRPG备团、DND备团、COC备团、DM准备、开团前整理、剧情提炼、章节简报、module prep、session prep、dm prep.

- Skill: `emiya2030-kun/trpg-module-prep` (Agent Skill, multi-file: 74 files)
- Install (CLI): `npx skillmds@latest add emiya2030-kun/trpg-module-prep`
- Raw SKILL.md: https://api.skillmd.com/api/skills/emiya2030-kun/trpg-module-prep/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: emiya2030-kun (https://skillmd.com/u/emiya2030-kun)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/emiya2030-kun/trpg-module-prep

---


# 第一部分：如何备团

## 1.1 备团文件结构

```
trpg-module-prep/dnd_campaigns/<module name 根据模组分开管理>
├── module/  
│   ├── prep/
│   │   ├── chapter_01_prep.md    ← 之前章节
│   │   ├── chapter_02_prep.md    ← 目前的章节
│   │   └── event_triggers.md     ← 事件图片触发注册表
│   ├── maps/
│   │   └── *.jpg                 ← 地图
│   ├── monsters/
│   │   └── part1_monsters.md     ← 怪物数据（集中管理）
│   └── npcs/
│   │   └── npc_xxx.md            ← NPC档案（纯剧情，不含战斗数据）
│   └── companions/
│       └── xxx.md                ← 同伴NPC
└────── <module name>.pdf         ← 模组设定集
│   
├── session_notes/
│   ├── session_progress.md       ← 当前位置
│   └── s01.md                    ← 会话记录
├── state/
│   ├── world_state.md            ← 世界发生了什么
│   ├── quest_state.md            ← 任务追踪
│   ├── npc_relationships.md      ← NPC关系
│   └── loot_registry.md          ← 战利品追踪
└── README.md
```

## 1.2 备团资料怎么写

备团资料是你的**剧情圣经**，必须包含以下内容：

### 备团流程（8步）

在 `/module/prep/chapter_0x_prep.md` 生成当前章节的备团文档。

```
① 去state/目录查询当前剧情已经发生了什么（世界状态/任务/NPC关系/战利品），建立上下文
② 读PDF/模组资料 → 提取本章内容
③ 写备团资料 → 结合当前 state/目录中的剧情进度与模组章节内容，生成本次会话可直接使用的备团资料。内容应包括：
   1. 准备关键 NPC 动机、秘密和反应，不要只准备台词。->结合module/npcs state/npc_relationships.md的目录下的该章节会出现的npc的背景内容
   2. 所有剧情信息都要区分为：DM内部信息 / 玩家可见表述。
   3. 每个关键推进点至少准备两个可替代入口，避免单线索卡死。
   4.规则术语、DC、检定、豁免、隐藏机制只保留在DM内部备注中；玩家表述必须写成世界内可感知的信息。
④ 写战斗遭遇资料 → 向玩家索取本章所有战斗地图后，读PDF内容按“区域”分析遭遇。
⑤ 写主持资料文件 → 整理本章可直接使用的主持文本，包括：场景初见描述、关键 NPC 的说话风格与示例台词、重要事件的触发分支、以及必要时可直接朗读的文本片段。不得将整章写成固定剧本，不得预设玩家唯一行动路线。
⑥ 创建/更新单独的NPC档案->目录位置<module name>/npcs → 属性/背景/战斗策略
⑦ 创建该章节的monster档案->目录位置<module name>/monsters → 属性/背景/战斗行为
⑧ 更新event_triggers.md → 按剧情推进顺序列出事件触发节点
⑧ 该章节结束时更新state/目录 → session_progress.md + world_state.md + quest_state.md
```

### ⚠️ 剧本完整性检查（强制）

写完剧本后，必须确认以下内容全部存在：

| 检查项 | 有没有？ |
|--------|---------|
| DM朗读文本（开场白/场景描述原文） | ❌/✅ |
| NPC台词（每个关键NPC至少1句对话） | ❌/✅ |
| 背景故事（为什么这里会发生这些事） | ❌/✅ |
| 玩家选择+后果分支 | ❌/✅ |
| 发展分支（被打败/逃跑/谈判成功怎么办） | ❌/✅ |
| 氛围描写（气味/声音/光线/触感） | ❌/✅ |
| 战斗数据（AC/HP/伤害/DC） | ❌/✅ |
| **防剧透处理**（隐藏信息需调查/交涉才能获取） | ❌/✅ |

**8项全✅才算备团完成。只有战斗数据=不合格。**

### 必备章节

```markdown
# [模组名] 备团文档

## 一、当前队伍状态
| 角色 | 种族 | 职业 | AC | HP | 状态 | 备注 |
|------|------|------|-----|-----|------|------|

## 二、当前场景
[这次开场时，玩家正处于什么局面，眼前有什么，马上会面对什么。]

## 三、NPC导航指引
[哪些NPC能带路？各有什么目的？]

## 四、旅行规则
[步调、时间、导航、觅食、遭遇设定]

## 五、预设遭遇
### 遭遇1：[名称]
- 触发条件
- 敌人数据
- 宝藏
- RP提示

## 六、资源追踪
[食物、饮水、光源、金币、法术位]
```

### 备团铁律

1. **所有敌人必须有数据支撑**——AC、HP、攻击、豁免
2. **预设遭遇必须有触发条件**——不是想打就打
3. **宝藏必须预先设计**——不能临时编造

## 1.2b 按章节备团法

### 章节结构

每章备团资料开头加一段**上章梗概**（给新会话/会话压缩后快速恢复上下文）：

```markdown
## 上章梗概
- 队伍从[地点]出发，经历了[关键事件]
- 重要决策：[玩家做了什么选择]
- NPC状态变化：[谁的状态变了，变成什么样]
- 当前目标：[队伍要去哪/做什么]
```

### NPC核心记忆更新

每章结束时，更新每个重要NPC档案的**核心记忆**部分：

```markdown
## 核心记忆
- 与PC的关系：信任/中立/怀疑/敌对
- 记住的关键事件：[TA目睹了什么]
- 当前动机：[TA现在想做什么]
- 隐藏状态：[感染/疯狂/秘密有没有变化]
```

### 线路预备表

**每章开始前，提前列出玩家可以走的所有线路**（防止即兴编造）：

```markdown
## 本章可选线路

| 线路 | 触发条件 | 主要内容 | 难度 | 关键NPC | 预设遭遇 |
|------|---------|---------|------|---------|---------|
| A线路 | 选择去X地 | 描述... | 内部评估 | NPC名 | 遭遇1→遭遇2 |
| B线路 | 选择去Y地 | 描述... | 内部评估 | NPC名 | 遭遇3→遭遇4 |
| C线路 | 说服Z NPC | 描述... | 内部评估 | NPC名 | 遭遇5 |

⚠️ 即兴发挥时，只能在本表线路范围内扩展，不能编造新线路。


### 图片清单（地图+NPC图片）

向玩家索取本章所有地图和NPC图片后，建立对应关系：

```markdown
## 📐 图片清单

| 图片 | 类型 | 对应事件/NPC | 发送时机 |
|------|------|-------------|---------|
| goblin_cave.jpg | 地图 | 遭遇1：地精巢穴 | 发现洞穴入口时 |
| blacksmith.jpg | NPC | 铁匠老托比 | 第一次对话时 |
| boss_room.jpg | 地图 | BOSS战 | 进入最终房间时 |
| npc_villain.jpg | NPC | 反派XXX | 揭露真面目时 |

⚠️ 发送规则：
1. 不要提前发——等触发条件满足才发
2. 先口述环境，再发地图
3. NPC图片在首次描述外貌时发送
```

## 战斗遭遇图片
向玩家索取本章所有战斗地图后，读取pdf建立对应关系：

### DM版本
每个区域单独写：
#### Area X：名称
- 当前情境：
- 玩家初见描述：
- 敌人 / NPC：
- 环境要素：
- 隐藏信息：
- 触发事件：
- 相邻区域联动：
- 战斗战术备注：

1.这里当前的情境、玩家初见描述。
2.敌人/NPC及其当前行为、可直接互动或影响战局的环境元素、
3.需要隐藏的情报、可能触发的事件，
4.以及与相邻区域的反应关系（警报、支援、追击、封锁、撤退）。
5.若战斗爆发，额外备注该区域的战术特点与敌人常见反应。

### 玩家版本
| 区域 | 名称       | 连接的区域 | 当前认知 | 危险度 | 探索状态 | 备注 |
|------|------------|------------|----------|--------|----------|------|
| Area 1 | 困境       | 2, 4, 5    | 小队从裂缝进入，这里是目前已知入口 | 低 | 已经过 | 返回路线 |
| Area 2 | 滴落的死亡 | 3          | 曾遭遇灰泥怪，现已清除，但环境仍令人不安 | 中 | 已清理 | 可安全通过 |
| Area 3 | 格拉巴古   | 2          | 这里有格拉巴古（胶质方块 NPC），目前正在此处停留 | 未知 | 进行中 | 当前所在区域 |



### 玩家决策记录

每章结束时，在备团资料末尾记录玩家的实际选择，同时更新 `state/world_state.md`：

```markdown
## 玩家决策记录（本章）

| 时间 | 决策 | 结果 | 影响 |
|------|------|------|------|
| 第1次会话 | 选择走北边山路 | 遇到豺狼人，战斗 | NPC-A受伤 |
| 第2次会话 | 说服商人指路 | 成功，节省2天 | 商人记住队伍，可能告密 |
| 第3次会话 | 不去拯救村民 | 村民死亡 | NPC-B对队伍失去信任 |

### 下章备团参考
- 本章未触发的遭遇：[列表]
- NPC关系变化：[列表]
- 玩家可能的下一步：[预测]
```

> 决策影响同步更新到 `state/world_state.md`、`state/quest_state.md`、`state/npc_relationships.md`。

## 1.3 NPC管理

### NPC档案位置

所有NPC档案存放在 `module/npcs/` 目录下，战斗数据统一在 `module/monsters/`，NPC文件只保留剧情内容（性格/背景/对话/动机）。

### NPC档案格式

```markdown
# [NPC名称]

## 基本信息
- 种族/身份
- AC/HP（如果有战斗数据）
- 阵营
- 性格关键词

## 属性值（简表）
| 力量 | 敏捷 | 体质 | 智力 | 感知 | 魅力 |
|------|------|------|------|------|------|
| +x | +x | +x | +x | +x | +x |

## 背景
[详细背景]

## 战斗行为
[遇到战斗时怎么行动]

## 目前举动
- [日期] 发生了什么
```

### NPC更新规则

**当以下情况发生时，必须更新NPC档案：**
- 性格或行为模式改变
- 重大事件经历（战斗、对话、决策）
- 隐藏秘密被揭露
- 与PC的关系变化
- 战斗状态变化（受伤、死亡、装备变更）

### NPC互动铁律

1. **怪物遭遇必须骰隐匿/察觉**
   - 进入有怪物的区域时，必须骰隐匿检定（vs 怪物被动察觉）
   - 隐匿失败或未骰隐匿 → 必定触发战斗/敌对反应
   - 不允许无骰跳过怪物遭遇

2. **NPC之间必须有互动对话**
   - 每次剧情推进至少包含1-2句NPC之间的对话
   - NPC会主动与其他NPC聊天、争论、开玩笑、表达情绪

3. **NPC有独立行动**
   - NPC会主动做决定、表达意见、推动剧情
   - 不是被动等待PC指令的花瓶

## 1.4 剧情更新

### 会话进度文件

每次跑团必须维护 `session_progress.md`：

```markdown
# [模组名] — 会话进度

## 当前位置
- 区域：[玩家在哪]
- 队伍：[谁在队伍里]
- 旅行状态：[步行/宿营/遭遇]

## 已完成的预设遭遇
- [x] 遭遇1
- [ ] 遭遇2 — 待触发

## 下一个预设遭遇
[下一次应该发生什么]

## 资源状态
- 食物：x
- 饮水：x
- 光源：x
- 治疗药水：x

## NPC状态
- NPC1：当前状态
- NPC2：当前状态
```

### 更新时机

- **每次会话结束时**：更新当前位置和状态
- **每次重大事件后**：更新NPC状态、剧情进展
- **会话压缩后**：重新读取并确认进度

## 1.5 地图与事件对应

### 地图文件夹结构

```
maps/
├── encounter1.jpg    ← 遭遇1的地图
├── encounter2.jpg    ← 遭遇2的地图
└── encounter3.jpg    ← 遭遇3的地图
```

### 在备团资料中标注发送时机

```markdown
### 遭遇1：地精巢穴
**📐 地图**：`maps/goblin_cave.jpg`
**发送时机**：玩家发现洞穴入口时
```

### 地图发送规则

1. **不要提前发地图**——等玩家进入该区域才发
2. **发送时机要自然**——在描述完环境后再发
3. **配合描述**——先口述环境，再发地图让玩家看
4. **战斗时使用combat_manager渲染**——不要用原图代替战斗网格

