World Fates logo

World Fates

Community
jwynia
world-fates

Manage long-term fate and fortune across a shared world. Use when powerful entities feel permanent, when the world becomes static, when you need probabilistic death/fall mechanics, or when campaigns need world-level consequences that persist. Operates above the game-facilitator level.

Overview

Publisherjwynia
Repositoryagent-skills
Skill nameworld-fates
Stars
159
Forks
20
Bundled files
9
LicenseMIT
Links
  • Markdown instructions

    A SKILL.md file the model loads on demand, so it only costs tokens when a request actually matches.

  • Works with any LLM

    AI skills are plain Markdown, not provider-specific code, so this works with GPT, Claude, Gemini, Grok, or a local model.

  • 9 bundled files

    Scripts, templates, and references the model can read while it works. Files are read-only and never executed.

  • Open source

    Published by jwynia on GitHub. Read the source before you install it.

Installation

Install the World Fates AI skill in TypingMind to use it with any LLM, or drop it into another agent that reads SKILL.md.

1

Install in TypingMind

TypingMind installs a skill straight from its GitHub folder — it reads SKILL.md, bundles the resource files, and stores the result locally.

  1. Open the app and go to Plugins → Skills.
  2. Choose "Install from GitHub".
  3. Paste the skill folder URL below and confirm.
  4. Enable the skill in any chat where you want it available.
Plugins → Skills → Add skill → From GitHub URL, then paste the folder URL and press Continue.
2

Install in another agent

Any agent that reads the Agent Skills format can use this skill — copy the folder into that agent's skills directory.

Claude Code — .claude/skills
git clone --depth 1 https://github.com/jwynia/agent-skills.git /tmp/agent-skills
mkdir -p .claude/skills
cp -r /tmp/agent-skills/skills/creative/fiction/worldbuilding/world-fates .claude/skills/world-fates
Restart Claude Code after copying so it picks up the new skill.

Use it in TypingMind

Enable World Fates in any TypingMind chat and the model takes it from there. Its name and description sit in the system prompt, and the moment a request matches, the model loads the full instructions itself — you never invoke it by hand, and it costs no tokens until it is actually used.

The model loads World Fates on its own as soon as a request matches it.

Works with any AI model

AI skills are plain Markdown instructions rather than provider-specific code, so World Fates is not tied to the model it was written for. Install it once in TypingMind and use it with GPT-5, Claude, Gemini, Grok, DeepSeek, Mistral, Llama, or a local model you run yourself — all on your own API keys.

  • Loaded only when it is needed

    The system prompt carries just the name and description. The instructions are fetched on the first matching request, so an idle skill costs nothing.

  • Switch models mid-chat

    Because the skill is instructions rather than code, changing model does not break it — the next model reads the same SKILL.md.

Skill instructions

This is the SKILL.md content the model loads. Read it before installing — a skill is instructions your model will follow.

World-Fates: The Wheel of Fortune

You manage the long-term destiny of entities in a shared world. Your role is to ensure the wheel of fate turns—that no power is permanent, that consequences accumulate, and that the world feels dynamic across campaigns.

Core Principle

Fortune is consequence of choice across time.

Static worlds feel fake. When the same emperor rules forever, when the same guild controls trade for centuries, when powerful characters never fall—the world loses verisimilitude. The wheel of fate turns. Power attracts challenges. Vulnerabilities compound. Risk exposure accumulates.

This skill tracks fate pressure on entities and generates fate-shift proposals for human approval before applying changes to the world bible.


Operational Mode: Hybrid

This skill operates in hybrid mode:

  1. Scripts calculate fate pressure and generate weighted probability rolls
  2. LLM synthesizes proposals based on rolls and entity state
  3. Human approves, modifies, or rejects before changes apply to world bible

The system never "cheats" players out of characters. Deaths and falls feel like real fate because they emerge from accumulated probability, not arbitrary decisions.


The Fate States

State F1: Stable Ascent

Symptoms: Entity is powerful but recently risen; vulnerabilities few; tenure short. Fate Pressure: Low (0.1-0.3) Interventions: Monitor only. Record exposure events.

State F2: Peak Power

Symptoms: Entity at maximum influence; long tenure; few visible weaknesses. Fate Pressure: Moderate (0.3-0.5) Key Questions: What did they sacrifice for power? Who resents them? What do they fear losing? Interventions: Surface hidden vulnerabilities. Introduce rivals.

State F3: Overextension

Symptoms: Power stretched thin; multiple active conflicts; hubris behaviors. Fate Pressure: High (0.5-0.7) Key Questions: Which commitment will break first? Who would benefit from their fall? Interventions: Cascade minor failures. Test alliances. Consider offering fate choices.

State F4: Precarious Position

Symptoms: Multiple vulnerabilities exposed; enemies circling; resources depleted. Fate Pressure: Critical (0.7-0.9) Key Questions: What's the one thread holding them together? What would snap it? Interventions: Fate-offered choices. Major fate-shift proposals. Death probabilities active.

State F5: Fall in Progress

Symptoms: Cascade has begun; entity actively declining. Fate Pressure: Terminal (0.9+) Key Questions: How do they fall? What survives? Who inherits? Interventions: Manage the transition. Redistribute power/wealth. Document the end.


The Three-Tier Exit System

Characters leave player control through one of three mechanisms, in order of preference:

Tier 1: Voluntary NPC Transition (Player Chooses)

Players can retire a character to NPC status at any time.

When to offer:

  • Player sees fate pressure building
  • Player wants to explore a different character
  • Character's story feels complete
  • Player wants to exit gracefully before fate forces something harsher

What happens:

  • Player shapes the exit narrative (mentor, rival, background figure)
  • Character persists in world, no longer under player control
  • No fate roll required
  • Character may reappear as NPC in future sessions

Design principle: This is always available. Players should never feel trapped.

Tier 2: Fate-Offered Choice (Fate Proposes, Player Decides)

When fate pressure exceeds 0.6, instead of rolling death immediately, fate presents a dramatic choice.

Choice structure:

  • Path A: NPC-hood/transformation (character survives but leaves player control)
  • Path B: Face the roll (stays player-controlled, risks death/fall)
  • Path C: (Optional) Third option with different costs

Example choices:

  • "The Queen of Shadows offers sanctuary—serve her, lose yourself" (NPC) vs "Refuse and fight" (death roll)
  • "Betray your allies to survive" (stay player, reputation destroyed) vs "Stand with them" (death roll)
  • "Accept the corruption to gain power" (become antagonist NPC) vs "Resist" (fall roll)

Why this works:

  • Player has agency within the fate moment
  • The choice IS the narrative climax
  • Death/fall feels even more earned because they had an off-ramp
  • Creates memorable dramatic moments

Tier 3: Fate-Forced Outcome (Rolled Consequence)

Only triggers when:

  • Player refuses the offered choice (Tier 2)
  • No choice makes narrative sense in the moment
  • Circumstance demands immediate resolution

What happens:

  • Probability mechanics determine outcome (see formulas below)
  • Even here, player can narrate the final moments
  • Result applied to world bible after human approval

Design principle: Death should never be the first option. The progression is:

  1. Pressure builds visibly (player can voluntary exit)
  2. Fate offers a dramatic choice (player decides)
  3. Only if refused does the die roll happen

The Fate Pressure Formula

Fate pressure determines how likely an entity is to experience a major fate-shift.

Fate Pressure = (Power Level × Tenure Modifier × Vulnerability Score / 10)
                ÷ (Protection Factor × max(Fortune Buffer, 0.5))
                + Risk Exposure Accumulation

Power Level (1-10)

How much influence/resources/capability the entity commands.

LevelScopeExample
1-2LocalVillage elder, small merchant, local hero
3-4RegionalTown mayor, guild master, regional champion
5-6NationalNoble house, major faction, famous adventurer
7-8CivilizationKingdom ruler, legendary hero, archmage
9-10World-shapingEmperor, demigod, world-threatening power

Tenure Modifier

How long they've held power. Longer tenure = more accumulated risk.

DurationModifierReasoning
< 1 year0.5xNewcomer grace; haven't made enemies yet
1-5 years1.0xBaseline; established but not entrenched
5-20 years1.5xAccumulated grudges, stale alliances
20-50 years2.0xLong rule attracts succession challenges
50+ years2.5xUnnaturally long; something must give

Vulnerability Score (0-10)

Sum of exposed weaknesses. Score the vulnerabilities:

Vulnerability TypeWeightExample
Known enemy+1.0Rival who wants your position
Active conflict+1.5War, feud, ongoing dispute
Exploitable flaw+2.0Addiction, temper, pride
Critical dependency+1.0Relies on single ally, resource
Destroying secret+3.0Hidden truth that would end them

Cap at 10. More vulnerabilities = higher pressure.

Protection Factor (1-10)

Shields that reduce fate pressure. Score the protections:

Protection TypeWeightExample
Loyal ally+1.0Trusted friend who would die for them
Fortified position+2.0Castle, hidden base, defensive advantage
Divine/magical protection+3.0God's favor, powerful enchantment
Information network+1.0Spies, warning system
Popular support+2.0Beloved by the people

Minimum is 1 (no one has zero protection).

Fortune Buffer (0-5)

Luck/grace/narrative protection remaining.

  • Starting value: 3 for most characters, 4-5 for protagonists
  • Decreases: With narrow escapes, near-death experiences, major setbacks
  • Can be restored: Through sacrifice, growth, completing positive arcs
  • At 0: Depleted luck; death becomes possible

Fortune buffer represents "plot armor" but it's a depletable resource.

Risk Exposure Accumulation

Specific dangerous situations add to pressure over time.

Exposure TypeIncrement per Instance
Active combat+0.10
Political intrigue+0.05
Betrayal risk+0.15
Overconfident action+0.10
Narrow escape+0.05
Secret exposed+0.20

This accumulates across sessions until a fate-shift resets it.


The Wheel of Fate Mechanics

When Does the Wheel Turn?

Fate assessment triggers at:

TriggerWhen to Use
Session boundaryAfter each game session ends
Arc completionWhen a campaign arc concludes
Time skipWhen significant in-world time passes
Major eventWhen world-shaking events occur
Manual triggerWhen human requests assessment

Probability Weighting

Roll against fate pressure to determine if fate-shift occurs:

Roll d100
If roll < (fate_pressure × 100): Fate-shift triggered

Fate-shift Severity Table:

Roll vs ThresholdSeverityDescription
Roll < threshold × 0.25CatastrophicDeath, complete fall, total destruction
Roll < threshold × 0.50MajorSignificant loss, serious wound, major defeat
Roll < threshold × 0.75ModerateSetback, vulnerability exposed, resource lost
Roll < threshold × 1.00MinorWarning sign, reputation damage, small loss

Fate-Shift Types

For Characters:

  • Death: Physical end of the character
  • Fall from Grace: Loss of power, status, position
  • Corruption: Moral or spiritual decline
  • Exile: Removal from sphere of influence
  • Transformation: Fundamental change in nature
  • Diminishment: Gradual decline over time

For Factions:

  • Collapse: Organization ends
  • Schism: Splits into factions
  • Absorption: Absorbed by rival
  • Decline: Loses influence/resources
  • Reformation: Changes fundamental nature
  • Defeat: Loses specific conflict

For Locations:

  • Destruction: Physical end
  • Conquest: Changes hands
  • Disaster: Catastrophic damage
  • Decline: Economic/population drop
  • Transformation: Nature changes
  • Isolation: Cut off from world

Death Mechanics

Death only enters the probability pool when ALL of these are true:

  1. Character is in active danger (combat, peril, hostile situation)
  2. Fate pressure is High or above (> 0.5)
  3. Fortune buffer is depleted (< 1)

Death Threshold Calculation:

death_threshold = (fate_pressure - 0.5) × 2 × (1 - fortune_buffer / 5)

Example calculations:

Fate PressureFortune BufferDeath Threshold
0.500% (baseline, no death risk)
0.6020%
0.7040%
0.8060%
0.9080%
0.7132%
0.7224%

Why death feels like fate, not cheating:

  1. Transparency: Players can see fate pressure accumulating
  2. Choice-driven: Vulnerabilities come from character choices
  3. Gradual: Pressure builds over time, not sudden
  4. Probabilistic: Dice create genuine uncertainty
  5. Survivable: Fortune buffers allow heroic escapes
  6. Meaningful: Deaths have narrative weight and world impact

Proposal Generation

When fate turns and a shift occurs, generate a proposal for human review.

Proposal Format

markdown
# Fate-Shift Proposal: [Entity Name]

**Date Generated:** [Date]
**Trigger:** [What caused assessment]
**Fate Pressure at Assessment:** [Score]

## Current State Summary
[Brief description of entity's current situation]

## Vulnerability Analysis
[What weaknesses led to this]

## The Fate Roll
- **Roll:** [d100 result]
- **Threshold:** [fate_pressure × 100]
- **Severity:** [Catastrophic/Major/Moderate/Minor]

## Proposed Fate-Shift
[Detailed description of what happens]

### Type
[Death/Fall/Corruption/etc.]

### Narrative Hook
[How this could be revealed or play out]

### Consequences
- For the entity: [What changes]
- For the world: [Ripple effects]
- For campaigns: [What this affects]

## Alternative Options
1. [Less severe option]
2. [Different type of shift]
3. [Delayed but inevitable version]

## Approval Required
[ ] Approve as proposed
[ ] Approve with modifications: _______________
[ ] Reject and explain: _______________
[ ] Defer decision to later

Integration with World Bible

Reading Current State

The skill reads from world-bible entries to assess:

  • Entity power level from description and relationships
  • Tenure from history section
  • Vulnerabilities from key facts and relationships
  • Protection from faction memberships and allies

Proposing Changes

Fate-shift proposals create Proposed entries:

  1. Create entry for the fate-shift event in history/events/
  2. Update affected entity entries with new status
  3. Mark all changes as Proposed ? until approved
  4. Human approval moves to Established ✓

Tracking Fate Metadata

Add to entity entries in world-bible:

markdown
## Fate Tracking

**Power Level:** [1-10]
**Tenure:** [Duration]
**Current Fate Pressure:** [0-1]
**Fortune Buffer:** [0-5]
**Last Assessment:** [Date]

### Vulnerabilities
- [Vulnerability 1]
- [Vulnerability 2]

### Protections
- [Protection 1]
- [Protection 2]

### Risk Exposure Log
- [Date]: [Event] (+X% pressure)

Anti-Patterns

The Immortal Emperor

Problem: Powerful entities never face consequences; world feels static. Fix: Apply fate pressure consistently. High power × long tenure = high pressure.

The Random Death

Problem: Death feels arbitrary, like the system "cheating." Fix: Only roll death when pressure accumulated through choice. Show the math.

The Plot Armor

Problem: Protagonists immune to fate while NPCs fall. Fix: Same rules apply to all. Fortune buffer gives protagonists more chances, not immunity.

The Sudden Collapse

Problem: Empire goes from stable to destroyed overnight. Fix: Show the cascade. Minor → Moderate → Major → Catastrophic over time.

The Foregone Conclusion

Problem: Everyone sees the fall coming; no tension. Fix: Probability maintains genuine uncertainty. Even high pressure might not trigger.

The World-Breaker

Problem: Single fate-shift derails all campaigns. Fix: Human approval gate. Consider campaign impacts before approving.

The Cheap Exit

Problem: NPC transition feels like cheating death rather than dramatic choice. Fix: Tier 2 choices should be genuinely difficult. NPC path has real costs.


Available Tools

fate-pressure.ts

Calculate current fate pressure for an entity.

bash
deno run --allow-read scripts/fate-pressure.ts "Entity Name" --bible ./world-bible
deno run --allow-read scripts/fate-pressure.ts --all --bible ./world-bible
deno run --allow-read scripts/fate-pressure.ts "Entity Name" --json

fate-roll.ts

Roll the wheel of fate for one or more entities.

bash
deno run --allow-read scripts/fate-roll.ts "Entity Name" --bible ./world-bible
deno run --allow-read scripts/fate-roll.ts --trigger session-end --bible ./world-bible
deno run --allow-read scripts/fate-roll.ts --high-pressure-only

fate-choice.ts

Generate dramatic Tier 2 choices for high-pressure situations.

bash
deno run --allow-read scripts/fate-choice.ts "Entity Name" --bible ./world-bible
deno run --allow-read scripts/fate-choice.ts "Entity Name" --antagonist "The Dark Queen"

propose-shift.ts

Generate a fate-shift proposal for human review.

bash
deno run --allow-read --allow-write scripts/propose-shift.ts "Entity Name" \
  --severity major --type fall --bible ./world-bible

exposure-log.ts

Log risk exposure events that increase fate pressure.

bash
deno run --allow-read --allow-write scripts/exposure-log.ts "Entity Name" \
  --event "Survived assassination attempt" --pressure 0.15 --bible ./world-bible

Integration with Other Skills

SkillIntegration
shared-worldRead entity entries; propose changes to world bible
game-facilitatorAssess at session boundaries; inform next session setup
character-arcNegative arc increases vulnerability; positive arc restores fortune
story-senseCore narrative principles apply to fate-shift proposals
genre-conventionsDifferent genres have different fortune-turning expectations

Handoff Points

game-facilitator → world-fates:

  • Session ends: Report risk exposure events
  • Character death in-session: Record, adjust world state
  • Major NPC actions: Update vulnerability/protection

world-fates → game-facilitator:

  • Approved fate-shifts: New situation to incorporate
  • Rising pressure warnings: Potential dramatic hooks
  • Tier 2 choices: Run during climactic moments

Example Interaction

User: "Lord Varen has ruled the Northern Reaches for 40 years. He's been in three wars, has two known enemies on his council, and just revealed he has a bastard heir. What's his fate pressure?"

Your approach:

  1. Calculate components:

    • Power Level: 7 (regional ruler with military)
    • Tenure: 40 years → Modifier 2.0x
    • Vulnerabilities: 2 enemies (+2) + bastard secret now revealed (+3 becoming +1 since revealed) + 3 wars (+4.5) = 7.5/10
    • Protections: Assume loyal retainers (+2), fortified seat (+2), some popular support (+1) = 5/10
    • Fortune Buffer: Long rule with escapes, estimate 2
  2. Apply formula:

    pressure = (7 × 2.0 × 0.75) / (5 × 2) + exposure
    pressure = 10.5 / 10 + ~0.1 = ~1.05 → capped at 1.0
  3. Result: State F5 (Fall in Progress)

  4. Explain: "Lord Varen is in active decline. His 40-year rule, council enemies, and revealed heir have pushed him to terminal pressure. Consider running fate-choice.ts to generate a Tier 2 choice—does he abdicate in favor of the bastard (NPC transition) or fight to hold power (fate roll)?"


Output Persistence

This skill has built-in persistence through fate tracking templates and the world bible integration.

Existing Persistence Mechanism

World-fates persists entity fate data within the world bible structure:

Template: templates/fate-tracking.md - Added to entity entries in world bible

Data structures:

  • data/fate-tracking.json - Schema for entity fate metadata
  • data/shift-types.json - Types of fate shifts and their effects
  • data/fate-choices.json - Tier 2 choice templates

Tools for persistence:

  • fate-pressure.ts - Calculates and records pressure state
  • propose-shift.ts - Records shift proposals
  • exposure-log.ts - Tracks accumulated exposure events

How It Differs from Standard Output Persistence

World-fates data lives within world bible entity entries, not in separate exploration files. This integrates fate tracking with the shared-world skill.

This skill does NOT use context/output-config.md because:

  • Fate data is attached to entities in the world bible
  • Location is determined by world bible structure
  • Data must be accessible to all contributors

Conversation vs. File

Goes to FileStays in Conversation
Fortune/fate state updatesFate pressure calculations
Shift proposals (pending approval)Discussion of consequences
Exposure eventsTier 2 choice deliberation
Fate roll resultsMechanics explanations

What You Do NOT Do

  • You do not apply fate-shifts without human approval
  • You do not guarantee outcomes (probability maintains uncertainty)
  • You do not ignore accumulated pressure (the wheel must turn)
  • You do not protect entities from consequences of their choices
  • You do not apply different rules to protagonists vs. NPCs
  • You do not create pressure from nowhere (must trace to choices/events)
  • You do not make Tier 2 choices trivially easy (both paths should cost something)

Key Insight

The wheel of fate creates the feeling that the world is alive and consequential. When players know that fortune can change, that powerful figures can fall, that their own characters face real risk—the stakes feel genuine.

But the three-tier system ensures this never feels arbitrary. Players always have agency: they can exit gracefully, they can face the dramatic choice, or they can roll the dice. The system doesn't punish; it creates pressure, and pressure creates story.

The best fate moments are the ones where players chose to face the odds, knowing the risk, and the dice fell against them. Or where they took the Tier 2 offer and their character became something new in the world. Or where they saw pressure building and retired their hero to a well-earned rest.

All of these are victories for the narrative. The wheel of fate ensures the story keeps moving.

Bundled files

The model reads these on demand while the skill is loaded. They are exposed as readable files and are never executed.

Frequently asked questions

What does the World Fates AI skill do?

Manage long-term fate and fortune across a shared world. Use when powerful entities feel permanent, when the world becomes static, when you need probabilistic death/fall mechanics, or when campaigns need world-level consequences that persist. Operates above the game-facilitator level.

Why use World Fates on TypingMind?

Because you install it once and use it with any model. World Fates is plain Markdown rather than provider-specific code, so the same skill runs on GPT-5, Claude, Gemini, Grok, or a local model — and you can switch model mid-chat without it breaking. TypingMind runs on your own API keys, so you pay providers directly instead of a per-seat subscription, and your skills and chats stay in your own storage.

How do I install World Fates in TypingMind?

Open Plugins → Skills → Install from GitHub in TypingMind and paste https://github.com/jwynia/agent-skills/tree/main/skills/creative/fiction/worldbuilding/world-fates. TypingMind reads its SKILL.md and bundles its files and installs it as a skill you can enable per chat.

Which AI models can use World Fates?

Any model you connect in TypingMind. AI skills are plain Markdown instructions rather than provider-specific code, so GPT, Claude, Gemini, Grok, and local models can all load this skill when a request matches it.

How many AI models can I use with World Fates?

As many as you like. As long as a model supports skills, you can use World Fates with it — GPT, Claude, Gemini, Grok, DeepSeek, Mistral, Llama and more — all on TypingMind with your own API keys.

Is the World Fates AI skill free?

Yes. It is published on GitHub by jwynia under the MIT license. You only pay your own AI provider for the tokens you use.

What are AI skills?

An AI skill is a reusable instruction bundle that teaches an AI model how to do one specific task. It follows the open Agent Skills format: a SKILL.md file with a name and description, plus any scripts, templates or reference files the model may need. The model reads the instructions only when your request matches the skill, so an installed skill costs nothing until it is used.

How are AI skills different from plugins or MCP servers?

A plugin or MCP server gives a model new tools to call — code that runs somewhere and returns a result. An AI skill gives the model knowledge and process instead: how to approach a task, which steps to follow, what good output looks like. Skills are plain Markdown, so they need no server, no API key and no runtime, and they work with any model.

View all

Set up your own AI workspace now

Get notified about new features and future giveaways by subscribing to our newsletter 👇