feat: add the-ballad-of-chalk campaign
Cloud Empress campaign for 弗莱格, a sellsword obsessed with chalk. Ships the brief, PC sheet, state files, a starting location, and the session 0001 log. The opening hook and hidden truth live in gm/.
This commit is contained in:
@@ -0,0 +1,39 @@
|
||||
---
|
||||
name: the-ballad-of-chalk
|
||||
game: cloud-empress
|
||||
created: 2026-09-13
|
||||
---
|
||||
|
||||
# 白垩之歌 The Ballad of Chalk
|
||||
|
||||
## 前提 Premise
|
||||
|
||||
弗莱格(绰号「酸的」)是个靠悬赏吃饭的佣兵,怀里始终揣着一根白垩。他痴迷白垩——
|
||||
骨皮工艺留下的那种白,能改写现实的那种白——想真正精通它,好让父母终于肯正眼看他
|
||||
一眼。可他的心灵迟钝得可怜,偏偏施法靠的就是心灵。在这个巨蝉苏醒、云城朽坏的余世
|
||||
里,他要用一根粉笔和一把左轮,写一首证明自己的歌。
|
||||
|
||||
## 基调与主题 Tone & themes
|
||||
|
||||
- 生态科学奇幻 + 生存恐怖。世界很美,但致命的毒素看不见。
|
||||
- 暴力又快又丑,能避则避;活下来靠谨慎、运气和同伴,不靠英雄主义。
|
||||
- 个人执念对一个无动于衷的世界:一个人的执念究竟值不值,又究竟需不需要被看见。
|
||||
- 主题问题:你想向谁证明?如果那个人永远不会承认,你还练吗?
|
||||
|
||||
## 边界 Boundaries
|
||||
|
||||
- 采用游戏自带的内容警告:巨型昆虫、精神疾病、流血、截肢、军事占领、枪支暴力。
|
||||
- 对儿童的直接伤害默认留在幕后(只做侧面描写),除非玩家明确要求搬到台前。
|
||||
- 玩家可随时喊停、快进或要求跳过任何内容;新出现的限制会追加到这里。
|
||||
- 这一节由玩家随时修改。
|
||||
|
||||
## 开场 Starting situation
|
||||
|
||||
低地边缘,盐碱荒原。天上是滑界涟漪——周围的现实正在扭曲。弗莱格独自走在干涸的盐
|
||||
脊道上,行囊里那根白垩被他的拇指摩过一遍又一遍。就在这时,一个浑身涂满湿泥的孩子
|
||||
从荒地里走出来,站在路当中,说自己是村庄唯一的幸存者。
|
||||
|
||||
## 备注
|
||||
|
||||
- 游戏:`cloud-empress`,调用时用 `--campaign the-ballad-of-chalk`。
|
||||
- 本战役的规则覆盖写在 `house-rules.md`(暂为空,即按游戏原样运行)。
|
||||
@@ -0,0 +1,18 @@
|
||||
---
|
||||
name:
|
||||
game:
|
||||
stats: {}
|
||||
tracks: {}
|
||||
conditions: []
|
||||
inventory: []
|
||||
---
|
||||
|
||||
#
|
||||
|
||||
## Description
|
||||
|
||||
## Background
|
||||
|
||||
## Relationships
|
||||
|
||||
## Notes
|
||||
@@ -0,0 +1,70 @@
|
||||
---
|
||||
name: 弗莱格(酸的)
|
||||
game: cloud-empress
|
||||
stats:
|
||||
心智: 31
|
||||
心灵: 18
|
||||
力量: 33
|
||||
速度: 58
|
||||
saves:
|
||||
现实: 26
|
||||
恐惧: 23
|
||||
躯体: 54
|
||||
age: 成年
|
||||
background: 佣兵
|
||||
stress: 0
|
||||
tracks:
|
||||
harm: { value: 0, max: 10 }
|
||||
wounds: { value: 0, max: 3 }
|
||||
conditions: []
|
||||
inventory:
|
||||
- 帆布披风(0 护甲值)
|
||||
- 布满灰尘的战斗护甲(5 护甲值)
|
||||
- 左轮手枪(1d10 伤害,近处,3 发弹药)
|
||||
- 肩套
|
||||
- 粘土烟斗与一袋玉米烟叶
|
||||
- 悬赏令宾果卡
|
||||
- 一根白垩
|
||||
- 熏驼鸽肉干(2 人份)
|
||||
- 法术残篇:隐形
|
||||
---
|
||||
|
||||
# 弗莱格(酸的)
|
||||
|
||||
## 描述
|
||||
|
||||
一个沉默、瘦削、手指被白垩磨得发白的中年佣兵。走路时左手总在腰侧,右手则时不时
|
||||
探进夹克,摸一摸那根白垩。别人以为他在数子弹。
|
||||
|
||||
## 背景
|
||||
|
||||
之前在沙漠里替人追捕逃犯——循着悬赏令和脚印跑,开枪,领赏,再往北。那段日子给了
|
||||
他一双好眼、一把左轮、一张喝过太多茶的胃,以及一个从死人身上捡来的习惯:收集白垩。
|
||||
|
||||
## 执念:白垩
|
||||
|
||||
他要精通白垩。骨皮工艺的残片能把一个人的意志按进现实里,那是他见过最像「被认可」
|
||||
的东西。可他的心灵(18)是全卡最弱的一项——施法、纹章、感受异界,全都要过心灵。
|
||||
他比谁都刻苦,也比谁都容易当众出丑。他把这当作一场必须打赢的仗,因为输给白垩,就
|
||||
等于向父母承认:他们当初看轻他是对的。
|
||||
|
||||
## 技能
|
||||
|
||||
- 火器(职业赋予;他身上是那把左轮)
|
||||
- 街头智慧(职业赋予)
|
||||
- 施法(自选 1,为契合白垩执念)
|
||||
- 白垩收集(自选 2,为契合白垩执念)
|
||||
|
||||
> 自选的两项技能按「白垩执念」挑选;想换随时说。
|
||||
|
||||
## 随身物
|
||||
|
||||
- 一只疲惫的老驴蟹(随身物,不占格)。它又踢又咬,还不断地乞讨食物。
|
||||
|
||||
## 关系
|
||||
|
||||
- 父母:弗莱格口中反复出现的两个人。他们的样子、住处、是否还活着,都还没定。
|
||||
|
||||
## 职业状态
|
||||
|
||||
当你附近的盟友看到你恐慌时,他们必须进行恐惧豁免,否则也会恐慌。
|
||||
@@ -0,0 +1,24 @@
|
||||
# GM only
|
||||
|
||||
Truth the PC has not learned: hidden motives, unrevealed identities, off-screen
|
||||
events, and what is really going on.
|
||||
|
||||
**Not player-facing.** The player may read anything else in the campaign, so a
|
||||
secret must never be written outside `gm/`. Nothing here may appear in a session
|
||||
log or in chat until the PC observes it or is told.
|
||||
|
||||
Keep `../state/knowledge.md` as the PC's counterpart: what they know, believe,
|
||||
and suspect. When the two disagree, `knowledge.md` is what the PC currently
|
||||
thinks — narrate from it, not from here.
|
||||
|
||||
## Retconning
|
||||
|
||||
You may change a fact here after the fact, but only in the layer the PC has not
|
||||
perceived. The test is perception: if every session-log entry and everything in
|
||||
`state/knowledge.md` still reads exactly as before, the retcon is invisible and
|
||||
allowed. What the PC saw, heard, or was told stays fixed; the cause behind it
|
||||
may change.
|
||||
|
||||
Use it to repair a plot that cannot otherwise be made to work. Do not use it
|
||||
liberally, and never to dodge a consequence the fiction already earned. Record
|
||||
each one in `retcons.md`.
|
||||
@@ -0,0 +1,26 @@
|
||||
# 幕后真相(GM only)
|
||||
|
||||
**不可出现在会话日志或对话中**,直到弗莱格亲眼看见或被人告知。
|
||||
|
||||
## 泥巴孩子
|
||||
|
||||
- 神谕:`Q: 孩子的村庄是被巨蝉毁灭的吗? d6=3 → No, but…`
|
||||
村庄**不是**毁于巨蝉。真实原因**尚未确立**——留给神谕在合适时机决定。
|
||||
- 同一次神谕的转折:`某个同行者一直在撒谎,你此刻才看见破绽。`
|
||||
有人在撒谎,而破绽此刻已经在场。
|
||||
- 已确定的破绽:孩子浑身是**湿泥**,但这一带是盐碱荒原,最近的水源是灰喉井,
|
||||
方向也对不上。孩子自称从荒地深处走来——说不通。
|
||||
- 「我是村庄唯一的幸存者」这句话可能为假。
|
||||
- 撒谎者未必要是孩子本人;也可能是弗莱格随后遇到的某个同行者。但破绽现在就在场。
|
||||
|
||||
## 白垩
|
||||
|
||||
- 弗莱格对白垩的执念是他自己的事,**不是**世界秘密。
|
||||
- 他的父母是否真的需要「被证明」、他们现在何处、是否还活着——**尚未确立**。
|
||||
用 `journal oracle` 决定,不要凭空编。
|
||||
|
||||
## 待定(用神谕或火花表确立,别硬编)
|
||||
|
||||
- 村庄真正的遭遇。
|
||||
- 孩子是否知道真相,以及她在隐瞒什么。
|
||||
- 白垩坡这个地名是否真实存在。
|
||||
@@ -0,0 +1,12 @@
|
||||
# Retcons
|
||||
|
||||
A log of facts changed after the fact. Each entry records what changed and why,
|
||||
so the change is not quietly contradicted later.
|
||||
|
||||
A retcon is only allowed in the layer the PC has not perceived: every session
|
||||
log entry and every line of `../state/knowledge.md` must still read exactly as
|
||||
before. See `README.md`.
|
||||
|
||||
| Session | What changed | Why |
|
||||
|---------|--------------|-----|
|
||||
| | | |
|
||||
@@ -0,0 +1,5 @@
|
||||
# House rules
|
||||
|
||||
This campaign's overrides and additions to the game's rules. The game package
|
||||
is authoritative; anything written here takes precedence for this campaign
|
||||
only. Leave it empty if the game runs as written.
|
||||
@@ -0,0 +1,15 @@
|
||||
# Session 0001 — 泥巴孩子
|
||||
|
||||
- **Campaign:** the-ballad-of-chalk
|
||||
- **Game:** cloud-empress
|
||||
- **Date:** 2026-09-13
|
||||
- **PC:** 弗莱格(酸的)
|
||||
|
||||
## Scene 1 — 盐脊道上
|
||||
|
||||
`spark roll 20 → "一个浑身涂满泥巴的孩子,说自己是村庄唯一的幸存者。" [npc, child]`
|
||||
`weather roll 7 → "滑界涟漪——周围的现实被扭曲。" [slip]`
|
||||
|
||||
**Scene:** 低地边缘,盐碱荒原。天是滑界涟漪,云层像被谁用手指抹开,现实的边缘在弗莱格
|
||||
眼角余光里微微走样。风里全是盐味。他一个人走在干涸的盐脊道上,行囊里那根白垩又被
|
||||
拇指摩过一遍。就在前面路当中,站着一个浑身涂满湿泥的孩子,一动不动地看着他。
|
||||
@@ -0,0 +1,4 @@
|
||||
# Sessions
|
||||
|
||||
One file per session, named `NNNN-slug.md` (zero-padded, e.g. `0001-the-ash-gate.md`).
|
||||
Session logs are append-only; see `AGENTS.md` for the format.
|
||||
@@ -0,0 +1,8 @@
|
||||
# Clocks
|
||||
|
||||
Ticking pressures. Fill a segment whenever the fiction advances the clock.
|
||||
|
||||
| Clock | Segments | Filled | Notes |
|
||||
|-------|----------|--------|-------|
|
||||
| 巨蝉苏醒 | 6 | 0 | 夏天一到,巨蝉便从地下醒来。每过一段时日填一格。 |
|
||||
| 村庄的真相 | 4 | 0 | 每当弗莱格逼近孩子谎言的破绽,填一格;填满则真相浮出。 |
|
||||
@@ -0,0 +1,32 @@
|
||||
# What the PC knows
|
||||
|
||||
The PC's working picture of the world — not the world itself. Narration may draw
|
||||
on these entries and on what the PC perceives now; anything the PC has not
|
||||
learned belongs in `../gm/`.
|
||||
|
||||
Update this file whenever a scene reveals something, confirms a suspicion, or
|
||||
overturns a belief. A mistaken belief stays here under Suspected until the PC
|
||||
learns better, even after the GM knows the truth.
|
||||
|
||||
## Known
|
||||
|
||||
| Fact | Learned |
|
||||
|------|---------|
|
||||
| 巨蝉在夏天苏醒,吞噬死者与白垩。 | 常识 |
|
||||
| 第 29 次远征军涌进低地,寻找失踪的云之女帝。 | 常识 |
|
||||
| 白垩能驱动纹章与法术;要用它,得先付代价。 | 常识 |
|
||||
| 低地边缘最近的水源是灰喉井。 | 走这条道的人都知道 |
|
||||
|
||||
## Suspected
|
||||
|
||||
| Belief | Basis |
|
||||
|--------|-------|
|
||||
| 父母从来没有真正看得起他。 | 他离开家时他们说的话 |
|
||||
| 只要精通白垩,他们就会承认他。 | 他自己的推断,未经检验 |
|
||||
| 心灵迟钝可以靠苦功弥补。 | 他不肯承认的另一半可能是错的 |
|
||||
|
||||
## Open questions
|
||||
|
||||
- 我到底能不能学会白垩魔法?
|
||||
- 我的父母现在在哪里?他们要我拿出什么才肯正眼看我?
|
||||
- 那个满身泥的孩子说的是真的吗?
|
||||
@@ -0,0 +1,9 @@
|
||||
# Threads
|
||||
|
||||
Open questions and unresolved goals. Status is one of: open, resolved, abandoned.
|
||||
|
||||
| Thread | Status | Notes |
|
||||
|--------|--------|-------|
|
||||
| 精通白垩,向父母证明自己 | open | 弗莱格的执念;心灵 18 是他最大的障碍。 |
|
||||
| 那个泥巴孩子是不是唯一幸存者 | open | 她自称村庄唯一的幸存者。 |
|
||||
| 白垩从何而来、父母身在何处 | open | 出身与执念的源头,尚未打捞。 |
|
||||
@@ -0,0 +1,13 @@
|
||||
# Campaign tables
|
||||
|
||||
Tables placed here belong to this campaign and override the game's tables when
|
||||
names collide. The lookup order for `journal roll <name>` is:
|
||||
|
||||
1. `campaigns/<name>/tables/<name>.csv`
|
||||
2. `games/<game>/tables/<name>.csv`
|
||||
|
||||
Use this directory for tables specific to this campaign's setting or cast. The
|
||||
game's own tables do not need to be copied here.
|
||||
|
||||
Format: a CSV with a `min,max,text` header and an optional `tags` column. See
|
||||
`docs/oracle.md`.
|
||||
@@ -0,0 +1,24 @@
|
||||
# Factions
|
||||
|
||||
One file per faction, named `kebab-case.md`.
|
||||
|
||||
These files are player-facing: record what the PC has observed or been told. A
|
||||
hidden agenda or an off-screen plan belongs in `../../gm/`.
|
||||
|
||||
```markdown
|
||||
---
|
||||
name:
|
||||
goal:
|
||||
disposition: friendly | neutral | hostile | unknown
|
||||
---
|
||||
|
||||
# <name>
|
||||
|
||||
## Description
|
||||
|
||||
## Members
|
||||
|
||||
## Resources
|
||||
|
||||
## History
|
||||
```
|
||||
@@ -0,0 +1,26 @@
|
||||
# Locations
|
||||
|
||||
One file per location, named `kebab-case.md`. Keep the frontmatter stable so
|
||||
the agent can update it in place.
|
||||
|
||||
These files are player-facing: record what the PC has observed or could observe.
|
||||
A hidden truth the PC has not yet learned belongs in `../../gm/`.
|
||||
|
||||
```markdown
|
||||
---
|
||||
name:
|
||||
type:
|
||||
region:
|
||||
status: visited | known | rumored
|
||||
---
|
||||
|
||||
# <name>
|
||||
|
||||
## Description
|
||||
|
||||
## Notable features
|
||||
|
||||
## Inhabitants
|
||||
|
||||
## History
|
||||
```
|
||||
@@ -0,0 +1,27 @@
|
||||
---
|
||||
name: 灰喉井
|
||||
type: 水站 / 驿站
|
||||
region: 低地边缘,盐碱荒原
|
||||
status: known
|
||||
---
|
||||
|
||||
# 灰喉井
|
||||
|
||||
## Description
|
||||
|
||||
盐脊道上唯一还出水的井。井水发苦,烧开后有白霜浮在表面,据说那就是被冲淡的白垩。
|
||||
几间土坯房挤在井边,一面褪色的远征军旗子钉在最高的那间屋顶上,风一吹就哗啦响。
|
||||
|
||||
## Notable features
|
||||
|
||||
- 一口深井,水苦,但方圆几十里内没有第二处水源。
|
||||
- 来往的悬赏猎人、驮鸽商队和云裔的信使在此歇脚。
|
||||
- 墙上钉满悬赏令,很多已经褪成空白。
|
||||
|
||||
## Inhabitants
|
||||
|
||||
守井的老两口,姓什么没人记得。还有几只不肯离开的驮鸽。
|
||||
|
||||
## History
|
||||
|
||||
据说是第 29 次远征军东进时打下的第一口井。远征军走了,井留下了。
|
||||
@@ -0,0 +1,26 @@
|
||||
# NPCs
|
||||
|
||||
One file per NPC, named `kebab-case.md`.
|
||||
|
||||
These files are player-facing: record what the PC has observed or been told. A
|
||||
hidden motive or an unrevealed identity belongs in `../../gm/`.
|
||||
|
||||
```markdown
|
||||
---
|
||||
name:
|
||||
role:
|
||||
location:
|
||||
status: alive | dead | missing | unknown
|
||||
disposition: friendly | neutral | hostile | unknown
|
||||
---
|
||||
|
||||
# <name>
|
||||
|
||||
## Description
|
||||
|
||||
## Wants
|
||||
|
||||
## Relationships
|
||||
|
||||
## History
|
||||
```
|
||||
Reference in New Issue
Block a user