
Revenue Share. Earn 80% of the revenue your adventure generates by publishing it on The Wudlands — 20% goes to the platform. This is voluntary, not guaranteed, and may change at any time; see the GTC for full terms.
Get inspired by the story guidelines and romance traditions, follow the sections below to find everything needed to build your story. They define the minimal, essential architecture: how to write scenes and choices, how to integrate images, and how to structure a complete addon—from your first scene to your final ending. Let's build an engine that powers the Wudlands.

The Wudlands is a dark, story-driven fantasy adventure rooted in the tradition of Fighting Fantasy gamebooks and old-school dungeon crawling. It is a world of desperate choices, hidden dangers, and hard-earned survival. Anyone can contribute an adventure addon — a self-contained story that players can enter, explore, and struggle through. Addon creators are free to shape their own corner of the Wudlands: invent monsters, ancient ruins, secret factions, forbidden magic, cursed artefacts, weather-battered wilderness, and whatever strange wonders or horrors they imagine. The only rule is that everything must serve the story. In the future we will add more content like Sci-Fi, Cthulhu 1920 horror, and more, but for now we are focused on the core fantasy experience.

The Wudlands is not a sandbox. There is no base-building, no permanent home, no safe corner of the world to retreat to. Temporary shelters, makeshift camps, collapsed forts, and story-driven structures are allowed when the narrative calls for them — a cave to weather a storm, a barricaded inn to hold against the night, a ruined tower that becomes a brief refuge. These places exist within the story, not as persistent player-owned properties. Survival systems such as hunger, thirst, exhaustion, wounds, disease, and harsh weather are welcome additions as long as they create tension, push decisions, and deepen the sense of danger rather than functioning as mechanical busywork disconnected from the plot.
Stories in the Wudlands do not have to be linear. Addon creators are encouraged to build branching paths, narrative loops, and N:M relationships between scenes and outcomes. A single choice may open into several possible scenes. Several entirely different choices may converge back to the same location, encounter, or conclusion. Players may revisit places, retrace steps, or circle back through the world in ways that feel natural rather than forced. What matters is that the story remains clear and playable at every point — no dead ends, no broken loops, no scenes that leave the player stranded without any path forward.
Adventures in The Wudlands can depend on one another. An addon creator may declare that their adventure requires one or more other adventures to have been completed first — and that completing a given adventure opens the way to one specific continuation or branches into several, depending on how the player reached the end. This means a player may need to finish an earlier story before a later one becomes accessible to them. Creators are responsible for declaring these dependencies clearly when submitting their addon. Where an adventure requires a prerequisite, that prerequisite must be reasonably completable on its own terms — it cannot exist solely as a gate. The chain of adventures should feel like a natural progression through the world, not an artificial lock. Dependencies between addons are resolved by the platform and presented to players before they begin.
Every addon must include at least one ending and an escape route. This is not optional. When a player is overwhelmed, badly wounded, out of resources, or simply lost, there must always be a valid path they can take to retreat, recover, or reach some form of conclusion. This fallback path should work as a short, complete adventure on its own — not a punishment for failure, but an honest exit that respects the player's experience. A story without an escape route is an incomplete story.
The engine that runs addon stories is built to handle missing or undefined scenes gracefully. If a requested node, scene, or encounter cannot be found in the addon data, the system will not crash or break the session. Instead it falls back to the addon's emergency_exit scene — a dedicated error-recovery scene that ends the story. The description of the emergency scene should contain a description of something unusual, unforeseen, blocking the way forward — a collapsed tunnel, a sudden rockfall, an ambush by bandits, a magical trap, or any other narrative obstacle that fits the tone of the story. Addon creators are responsible for defining this scene and ensuring a smooth narrative end. A play through only counts against the limit of 3 replays, if any scene with ending: true was encountered. Several endings should be available.
Being redirected to the emergency_exit does not count as a playthrough, and does not consume one of the three replays.
| Topic | Guideline |
|---|---|
| Game Style | Dark, choice-based fantasy adventure with an old-school dungeon crawling feel. Atmosphere and tension come first. |
| Core Focus | Every addon must center on a clear, driven storyline. Open sandboxes without narrative direction are not accepted. |
| Player Experience | Dangerous, immersive, and sometimes deadly — but always meaningful. Failure should feel earned, not arbitrary. |
| Choices Matter | Every significant decision must lead to real consequences. Choices that change nothing undermine the experience. |
| Fame | The adventurer's reputation — famed heroes earn trust and open doors, while infamous wanderers earn darker renown. Use fame to shape how VIP and NPCs react, what they know, and what stories follow the adventurer. |
| Notoriety | How far the adventurer's reputation has travelled. Low notoriety means renown is local; high notoriety means even distant lands have heard the tales. Creators use this to determine what NPCs already know. |
| Story Structure | Branching paths, loops, and various scene relationships are allowed and encouraged. Stories do not need to be linear. |
| Adventure Dependencies | Addons may require other adventures to be completed first. Finishing one adventure can unlock one or more others, as declared by the creator. |
| Combat Scenes | In all combat scenes the escape route remains available by default, though the author may impose consequences — injury, lost items, narrative fallout — for choosing to flee. The escape route may be disabled when the story has clearly forewarned the player of the danger through warnings, environmental cues, or an explicit threat of ambush. The player must always have a fair opportunity to prepare or withdraw before the fight begins. |
| Default Entry | The default_entry is the scene id where every new session begins. It also acts as the non-error fallback when a requested scene cannot be resolved under normal conditions. It must exist in the scene map and must provide a path toward the escape route. |
| Escape Route | The default_exit is the primary retreat ending. It must be marked "ending": true. Players must always have a path to escape or recover. Warn in the current scene if the next scene disables the escape button. |
| Missing Scene Fallback | If a scene cannot be found, the engine redirects to the addon's emergency_exit scene. It must be marked "ending": false. |
| Survival | Hunger, thirst, exhaustion, wounds, disease, and harsh weather may be used to deepen tension. They must serve the story. |
| Addon Freedom | Creators may invent anything — monsters, factions, magic systems, strange worlds — as long as it serves the adventure. |
| Rule of Thumb | If it does not strengthen the story, the tension, or the atmosphere, it should not be in the contribution. |
The Wudlands draws deep inspiration from the fantasy literature and interactive fiction of the 1980s and 1990s — an era defined by the pulp paperbacks of Fighting Fantasy, the early Dungeons & Dragons modules, and the illustrated gamebooks that shaped a generation of adventurers. That tradition is vivid, atmospheric, and full of imagination. It is also a product of its time. The storytelling conventions of that era carried with them the gender roles, social assumptions, and romantic archetypes that were commonplace in popular fiction of the period. Players returning to this style of adventure will recognise them. They are part of what makes the experience feel authentic to its roots.

Central to medieval fantasy — and to the literature that inspired it — is the concept of Minne: the courtly love tradition of the German-speaking world, rooted in the poetry of the Minnesingers and the chivalric romances of the high Middle Ages. In this tradition, a knight or wandering hero pledges his service and devotion to a noble lady — often unattainable, often of higher station — and undertakes trials, quests, and feats of courage in her name. The lady holds power not through force but through honour, favour, and the withholding or granting of affection. This dynamic — the devoted wanderer and the compelling, unreachable figure — recurs throughout The Wudlands in NPC relationships, quest structures, and story rewards. It is intended as atmosphere, not instruction.
Some content in The Wudlands and its addons can reflect the gender dynamics, stereotypes, and romantic conventions common to 80s and 90s fantasy fiction. Female characters may be depicted as mysterious, seductive, or as objects of chivalric pursuit. Male characters may be portrayed through the lens of the classic lone adventurer archetype. Power imbalances rooted in social class, beauty, or magical allure may appear as narrative devices. These elements can be presented as vintage atmosphere — the deliberate aesthetic of a genre that carries both charm and the limitations of its era. They do not reflect the personal values of The Wudlands team, nor are they intended as endorsements of real-world attitudes toward gender, relationships, or social hierarchy.
Romantic storylines in addons may include flirtation, seduction, courtly intrigue, jealousy, unrequited devotion, and morally ambiguous power dynamics between characters — all common tropes of the genre. These may appear in text, dialogue, and branching choices. In adult-flagged addons, romantic storylines may extend into explicit erotic territory under the rules described in Section Content Standards of the GTCs. Where romance is present, creators are encouraged to give it weight and consequence within the story — a kiss earned through three nights of danger means more than one handed out freely. Romantic and erotic elements should feel like part of the world, not tacked-on rewards.
Writers who prefer to avoid romantic or courtly love storylines entirely are free to do so — no addon is required to contain them. If a specific story carries significant romantic themes, creators are asked to indicate this clearly in the addon description so players can make informed choices before entering.
Every addon submitted to The Wudlands is made up of two core elements: JSON file that defines the structure and flow of the story, images that give scenes a visual presence. Those addons will be listed as unapproved until they meet the platform requirements and pass the validation checks. Once approved, they become available to players worldwide. Below are the detailed specifications for each element, along with an example of a complete addon at the end.
The story itself is defined in a single JSON file. This file describes every scene, every choice, every connection between scenes, and the metadata the engine needs to run the addon correctly. The file must be valid JSON and must pass the platform schema validation before it can be published. Below is the full structure with all available fields.
A few rules that apply across the whole file: the default_entry scene must exist in scenes and must have at least one choice that eventually leads to the escape_route. The escape_route scene must be marked "ending": true. The emergency_exit scene must be provided to recover from errors, it must lead to the escape_route. Every to value in a choice must reference a valid scene id within the same addon — cross-addon jumps are handled through unlocks, not through choices. Scene ids must be lowercase and may only contain letters, digits, and hyphens.
Each scene in your addon may reference one image. Images are not required for every scene and can be used for several scenes, but they strongly reinforce atmosphere and help players orient themselves within the world. The image is displayed above the scene text when the player enters that scene.
The aspect ratio of your image directly affects how much space remains on the screen for story text, choices, and interactive buttons. Choose your image dimensions strategically based on the pacing and focus of each scene.
Landscape images (16:9, 3:2) are best for deep immersion and longer narrative passages. The wide frame lets you display substantial story text, complex choice sets, and detailed descriptions. Use landscape dimensions when you just want to give a glimpse or overland journeys, vast vistas, establishing moments.
Portrait images (1:1 Square, 2:3, 4:5) prioritize the image itself. Portrait dimensions leave less room for story text and choice buttons, so the visual impression carries more weight. Use portrait dimensions for character moments, close-ups, intimate encounters, or when the image is the focal point and text is secondary.
Vary your aspect ratios throughout your addon to pace the visual and narrative rhythm — wide scenes create a sense of wonder and exploration, narrow scenes draw focus to character and emotion.
Images must be submitted as .jpg or .webp files, at a minimum resolution of 600 × 340 px (16:9 landscape). Portrait or square crops are accepted but landscape is preferred as it fills the scene frame without letterboxing. File size should not exceed 400 KB per image — compress before submitting. Name each file after its scene id, for example ruined-gate.jpg for a scene with id ruined-gate. This makes the link between scene and image unambiguous.
Images should match the tone of the world: dark, painterly, atmospheric. Avoid bright, saturated modern renders or photographs. Pencil illustrations, oil-style digital paintings, and desaturated fantasy art all work well. The platform applies a subtle grayscale pulse and vignette overlay to all scene images at runtime, so images that already lean dark and moody will read best. Avoid images with embedded text — all text is handled by the scene content, not the image.
| Type | Value | Notes |
|---|---|---|
| Format | .jpg / .webp / .gif | Other types not supported |
| Min res. | 600 × 340 px | 16:9 landscape |
| Max res. | 1000 × 1250 px | 4:5 portrait |
| Max file size | 400 KB | Compress before submitting |
| Naming | scene.jpg / id.jpg | Must match the scene / id in your JSON. |
| Style | Dark fantasy art | Painterly, desaturated, atmospheric |
| Required | No | Images are optional per scene but at least one is strongly recommended. |
The following gallery shows all available image_style presets applied to a sample set of scene images. Click any image to enlarge it. Click again to close. Use the images filters below sparingly and intentionally to create mood and tone. A well-chosen image can make a scene memorable, while a poorly chosen one can feel out of place or even break immersion.
Below is a complete minimal addon with three scenes. It demonstrates a starting scene with two choices, a deeper scene that leads either forward or back, and an escape route marked as a terminal ending. This structure is the smallest valid addon the platform will accept.
This example is intentionally spare. A published addon will typically contain between sixty and five hundred scenes, with multiple branching paths, several dead ends that loop back to earlier scenes, and at least two or three distinct endings depending on the choices the player made. The escape route will always be reachable from any scene. The escape route might be a short story in itself.
Here you find optional elements to enrich your stories. Only the active elements (marked with the
wax seal) are available for use in stories.
















Every decision leaves a mark that shapes how the world reads you. Your stats are not numbers on a sheet — they are the reputation players build, the bonds they forge, and the enemies they make. Every choice in your adventure leaves a mark that is permanently recorded. These marks are stored and carried forward into every adventure that follows, accumulating into social forces that allow you aboard a pirate ship or deny entry. The stats come with an opposing force: push too hard in one direction and the other diminishes into shadow.
| Stat | Description | In-story Use |
|---|---|---|
| Fame | Known as a hero — trusted, admired, celebrated | Nobility welcomes you with honor, strangers offer aid |
| Infamy | Feared by the powerful — a weapon in the shadows | Noble houses employ you for dark deeds, finest vintage wines flow freely |
| Faith | Devoted to a god or cosmic force, earning divine favour | Temples offer shelter, clergy grant healing, holy orders call on you |
| Heresy | Denounced by the faithful, touched by forbidden powers | Inquisitors hunt you, holy temples bar entry, but dark shrines grant power to the condemned |
| Notoriety | Bards sing your legend in every tavern and kingdom | Doors open without asking, nobles and merchants gift you gold |
| Obscurity | Unknown, hidden, forgotten, walking unseen through the world | Slip past guards unnoticed, enemies cannot find you |
| Loyality | Bonds of loyalty and deep romance | Allies risk their lives for you, secret aid flows freely |
| Treachery | Scorned lovers and betrayed allies | Ambushed by those who once knew you, reputation poisoned |
| Honor | Esteemed by peers for integrity and strength | Duels avoided through reputation, lead honor guard |
| Disdain | Scorned and disrespected by worthy foes | Challenged constantly, betrayed by allies |
| Persuasion | Words that sway hearts and minds | Enemies lay down arms, merchants offer discounts |
| Intimidation | Rule through fear and force of will | Enemies flee in terror, merchants comply quickly |
| Wealth | Gold, treasures, and assets accumulated | Buy out rivals, commission grand works |
| Debt | Owe gold or favors to powerful forces | Creditors demand payment in blood |
| Manipulation | Master of deception and cunning schemes | Turn enemies against each other, blackmail nobles |
| Sincerity | Known for truth and unwavering honor | Enemies trust your word, easier treaties |
Stats are moved by attaching the stat key straight to a choice, alongside its text and to. A positive value raises the stat, a negative value lowers it; since each stat has an opposing force, raising one gently pulls its opposite down. You are not required to touch a stat on every choice — only mark the ones where the decision should leave a lasting impression. The gap between two opposing stats is the measure of your reputation in that domain. A player with a high Fame and low Infamy is widely celebrated, while a player with low Fame and high Infamy is feared and revered.
Stats can also steer the story itself. A scene's text can branch on a stat threshold, so the same location reads differently depending on what the player has built. A choice can likewise be gated behind show_if, so it only appears once the player has earned — or sunk to — the reputation it requires.
A leading ◆ marks any line of text or any choice that only appears because of a stat — always visible, no hover needed. A grey ◆ in the corner means other options exist here too, hidden until your stats qualify for them.

The gate guards eye you like any other traveler and ask to pay a toll before entering the city.
Every true relationship your character builds persists across adventures. When your story introduces an important character — a pauper, lord, sorceress, a villain, a temptress, a betrayer that might reappear in the future, you create them specifically. The platform will reach back into the player's history. If they have already charmed, scorned, saved, or wronged someone of that standing, those old feelings carry forward into your story, they arrive with a relationship already written. If none is found the new proposed person is added to the player's history and will be available for future stories.
Use this deliberately. A powerful figure who adores the player may offer shelter that should not exist, whisper secrets that change the shape of a scene, or step into danger on their behalf. One who despises them may close doors before they are reached, poison reputations, or arrive at the worst possible moment. If you want your story to feel connected to the broader world, lean on generic roles and let the player's history do the work. If you want a clean slate with no inherited baggage, name your character.
Allowing a person from a previous adventure to be reused is done by defining small matching requirements — a set of criteria the known person must satisfy before the platform considers them a valid match. Each criterion can be stated as a requirement (Standing: Legendary means the character must know someone of exactly that level) or as an exclusion (!Shadow means that affiliation is ruled out, so the match may be Spiritual or Power but not Shadow). You decide how many criteria must fit and how strict each one is. The more requirements you define, the more specific the match — the fewer, the broader the net. Any criterion left undefined accepts all values. A role with no requirements at all will match the first relevant person in the character's history regardless of their standing, affiliation, or faith. If no match is found, the role is treated as a new person and added to the character's list — ready to carry weight in adventures that follow.
| Topic | Levels |
|---|---|
| Relationship | Love — romantic devotion; shapes decisions through emotion and personal connection. Magic — arcane knowledge and mystical power; rare, potent, and transformative in action. Warfare — martial skill and combat proficiency; earned through shared battles and tested valor. Economic — money moves mountains; convert riches into influence and exclusive paths. Bloodline — family ties and hereditary bonds; legacy and blood obligation run deeper than choice. Prophecy — bound by fate itself; a shared prophecy or mystical connection ties your futures together. Knowledge — information, secrets, and insight; shapes decisions through understanding and foresight. |
| Gender | Male — chivalric rivalry, martial honour, political alliance through strength. Female — courtly love, inheritance intrigue, social manipulation. Other — ambiguous, magical, or outside convention; the world does not read them easily. |
| Race | The bloodline that defines your character. Choose Common, Mystical, Mixed, or Giants — or specify a particular race like Tiefling, Human, Goliath or Lizardfolk. Explore the full range in Races on the Characters page. |
| Morality | Corrupt — love and hate are tools; acts only when it profits them. Pragmatic — the feeling is real but so is caution; acts when the moment is right. Bound — feeling translates directly into action; driven by code, oath, or unbreakable conviction. |
| Wealth | Poor — no material leverage; harm or help is personal and direct. Comfortable — coin, shelter, skilled allies, minor bribes. Rich — funds enemies, buys witnesses, hires soldiers, changes the player's circumstances entirely. |
| Standing | Commoner — local reach only. Notable — guild officer, merchant, local lord; leverage across a town or province. Legendary — noble, warlord, high clergy, royalty; their word reshapes the world. |
| Affiliation | Spiritual — church, arcane order, cult; wields faith and sacred authority. Power — court, military, crown; commands soldiers, law, and political favour. Shadow — guild, merchant network, criminal fraternity; controls trade, information, and coin. |
| Faith | Secular — religion plays no part in how they love or hate. Observant — faith shapes judgement; doctrine justifies the feeling. Fanatical — faith defines everything; can grant absolution or call for trial, exile, and holy war. |
Below is a complete example of a VIP defined in JSON. Lady Isolde represents a Minne courtly love — a noble woman whose affection must be earned through deeds, not words. Her matching requirements ensure she only appears to players who have not previously encountered a notable female noble, creating continuity across adventures. 'new' parameters will be used in case no match is found in the character history. Allowing her to enter as a new person in the history of the player. Visual description are optional, but recommended to give the player a sense of her appearance and presence in the world. When {vip.id-isolde.formal} is used, one of the formal sentences is selected randomly and displayed to the player. Options in { x | y | z } vary each time.
To reference a VIP in your story scenes, use the VIP's identifier in your scene text or choices. The platform will look up the VIP definition, apply matching criteria, and display the appropriate visuals and relationship state.

As the first light touches the camp, her eyes open. She sees you watching and rises slowly, Lady Isolde of Ashenvale expression shifting from vulnerability to something deeper.
She moves closer, and for a moment, the world holds still.