Results Report — Event System Development Session

Library note (2026-07-19): This report is the output of a development session. The file was added to the library as 13_Olay_Sistemi_5e.md (10→13 renumbering, see Rev 005). The 10_... references in the report reflect that session's naming.

Compendium file 10 · 10_Olay_Sistemi_5e.md · 4 revisions


1. Overview

In this session, a location-based event system (file 10) was designed from scratch for the D&D 5e (2024) homebrew compendium, matured through four revisions, and fully integrated into the compendium's existing monster pool (09a–09g). The system lets the DM generate random but structured events based on the party's location (tavern, market, forest, mountain…); events scale with the region's danger, and combats auto-generate compositions from existing monsters.

Final size: 907 lines · 13 table groups · 288 events · complete generation algorithm · calibration guide.


2. Revision history and results

RevTopicResult
001Initial version (v1)12 tables, 160 events, 4 bands + ⏱ Event Clock. Basic skeleton.
002Chance die structure (v1→v2)Single d100 + TD bands; expansion to 288 events; Opportunity type + Fate List added.
003Encounter Generation AlgorithmRegion CR × Danger multiplier → XP budget → d10 template → habitat filter → alarm.
004Calibration + table toolsNumerical validation, tuning knobs, Region Card, session flow.

3. Design decisions and rationale

3.1 Chance die distribution — S-curve (Rev 002)

Three candidates (Linear / Exponential / S-curve) were tested against six criteria. The S-curve won 6/6:

  • Atmosphere stays ≥ 15% even at TD 5 (so pacing doesn't collapse) ✔
  • Opportunity never drops below 5% ✔
  • Encounter rate increases 3–4x across TD 0→5 ✔
  • Each TD step creates a ≥ 4-point difference ✔
  • Encounter rate ≤ 45% at TD 5 ✔

Linear didn't feel impactful enough; exponential turned the most dangerous regions into a monotonous combat slog.

3.2 TD ⊥ CR distinction (Rev 002)

A region has two independent values: TD (0–5) controls the tone/frequency of events, and Region CR (1–30) controls encounter power. This distinction makes regions like "a peaceful village in a dragon's shadow" (TD 1, CR 22) possible. It's the system's strongest idea — but also its most fragile point (see the signal rule).

3.3 Encounter algorithm (Rev 003)

  • XP budget: 5 danger tiers — Easy ×0.5 / Medium ×1.0 / Normal ×1.5 / Hard ×2.0 / Deadly ×3.5.
  • 10 templates (d10): 6/8/10/12 were tested; the solo→mob spectrum gap dropped from 0.30→0.20 going 8→10, and stayed flat 10→12. 10 is the smallest set that covers the spectrum without gaps.
  • Habitat filter (3 groups): Primary / Adjacent / Restricted. An Adjacent-habitat monster behaves like a "third party" — it's there for its own reasons, and it becomes a scene.
  • Alarm mechanic: Turns repetition into story instead of banning it. The same template back-to-back → danger escalates ("they were waiting" → "they called for reinforcements"). Turns a monotonous habitat into a tension advantage.

3.4 Natural 20 = Fate List (Rev 002)

In every subtable, a natural 20 redirects to the global 20-entry Fate List: 15 pure rewards + 5 double-edged powers (a sentient item, a prophecy, a god's gaze…).


4. Numerical validation results (Rev 004)

Python simulation assuming ~5 location entries per session:

MetricResultAssessment
Combats/session (TD 0→5)~0.6 → ~2.0Healthy range
P(≥3 combats) at TD 533%⚠ Fatigue risk — fix added
Fate frequency1 in ~5.3 sessionsHealthy; hits the "unforgettable moment" sweet spot
Fate events in a 10-session arc~1.9Ideal

The one real risk (pacing) was solved: the "2-combat cap" house rule — after 2 encounters in one session, the 3rd automatically falls through to a Complication. It cuts fatigue without breaking the math (a band-narrowing alternative was also documented, but it's secondary since it changes the character of the system).


5. Coverage

CategoryCountDetail
Settlement location4Tavern, Market, Street, Village — 27 events each
Habitat8Road, Forest, Mountain, Desert, Arctic, Underground, Coast/Underwater, Volcanic — 20 events each
Fate List120 events
Total13 groups288 events

Compendium integration: 20+ monsters were tied to events (09a base, 09e special, 09f role-based, 09g gap-filler set). In every serious/special encounter, the relevant monster's key (win condition) is embedded in the event text.


6. File status

  • Updated: 10_Olay_Sistemi_5e.md (new file — added to the compendium)
  • Unchanged: The other 34 files (00–09g) were not edited in this session; only the monster pool was read (habitat/role/CR tags were validated as algorithm input).
  • Archive: 10_Olay_Sistemi_5e_v1.md (first version, kept for comparison)

7. Open items / next steps

  1. Playtest: the "2-combat cap" and ±15% XP tolerance need 3–4 sessions of table testing.
  2. Hook expansion: in regions where the party lingers, d6 hook tables could be expanded to d8 (with region-specific writing).
  3. Monster generation automation: the algorithm is currently a procedure the DM runs by hand; it could be turned into a script/tool if desired.
  4. Remaining compendium files: 00–09g were not touched in this session; similar revisions/expansions could be done in the future.