Framework
How do you run factions in a sandbox campaign?
Running factions in a sandbox means giving each one a goal, a resource it defends, a rival it is losing ground to, and a scheduled move it makes whether or not the party is watching, then surfacing that move through a visible consequence the players can react to. Treat every faction as a clock that keeps advancing between sessions rather than a paragraph of static lore, and the sandbox starts to feel like it moves on its own.
Static lore does not push back
A faction write-up that lists a founder, a symbol and a motto tells you nothing about what happens if the party ignores it for three sessions. The test of a faction meant to run in a sandbox is whether it changes the world on its own schedule, not whether it has enough backstory to justify existing.
Most factions stall on the page because the GM treats them as an answer to 'who lives here' rather than as something that keeps moving after the scene ends. A faction that only reacts when the party walks into its scene is furniture. A faction that acts on a schedule, gains or loses ground, and leaves evidence behind is pressure the players have to respond to.
Four things every active faction needs
Skip the founding myth and the heraldry until the faction has these on file:
- A goal specific enough to finish Not 'gain power', but 'seize the grain contract before the first frost'. A goal you cannot tell has succeeded or failed is a mood, not a goal.
- A resource worth losing Territory, coin, an informant network, a monopoly on river tolls. Name the thing the party can actually take from the faction, or nothing is at stake when they interfere.
- A rival it is losing ground to A faction with no rival has no reason to move this week rather than next year. The rival supplies urgency: the clock is ticking because someone else is reaching for the same resource.
- A scheduled move Write down what the faction does at the next milestone (end of the week, the next full moon, the harvest) if nobody interferes. This is the line that turns a description into a countdown.
Example
Worked example: the same guild, two ways
A wharf guild controls loading rights on the only working dock in a river town. Compare how it plays out as static lore against how it plays out as an active faction.
- The static lore version
- The GM's notes describe the guild's founding charter, its guildmaster's family history, and its ceremonial barge. None of it changes unless the party visits the dock and asks. Six sessions pass with the guild untouched, because nothing forces it onto the table.
- The active pressure version
- The guild's goal is to force out an independent boatwright undercutting its rates; its resource is the loading queue it controls; its rival is the boatwright's growing customer list; its scheduled move is to petition the harbourmaster for exclusive rights at the autumn assize. If the party does nothing, the petition succeeds: prices at the dock rise, the boatwright is barred from the water, and a dispossessed crew starts looking for anyone willing to hire them.
- Why it works
- The consequence is visible without a cutscene: higher prices, a barred boatwright, unemployed sailors looking for work. Players who never spoke to the guild directly still feel the outcome, which gives them a reason to go back and intervene next time.
Make the move visible without announcing it
A scheduled move only works if the players can notice it happened. Resist the urge to deliver it as a briefing. Let it arrive as a price change, a new patrol route, a rumour at the tavern, a guard checking papers who was not checking them last week. The players should be able to piece together what a faction did from the evidence it left, the same way they would piece together a burglary from an open window.
Keep the bookkeeping light. A faction turn does not need a spreadsheet: a single line per faction (goal, resource, rival, next move, and what happened last time) is enough to run several factions in parallel without it becoming accounting work between sessions.
Before you bring a faction to the table
Confirm each active faction has an answer to all five:
- A goal specific enough that you could tell someone whether it succeeded.
- A resource the party could plausibly take, block, or destroy.
- A named rival it is currently losing ground to.
- A scheduled move written down before the session, not improvised during it.
- A visible consequence planned for if that move goes unopposed.
Keeping faction pressure straight across a sandbox
The moment a sandbox has three or four factions each running their own schedule, tracking goals, rivals and outstanding moves in prose notes stops working. Codex Cryptica's campaign graph holds each faction as an entity with real connections to the resources it controls, the rivals it opposes and the NPCs it employs, so a scheduled move shows up as a change to those connections rather than a line you have to remember to reread.
The faction generator is a fast way to get the goal, resource and rival on the page when you are starting from nothing; the collision with your other factions and the consequence when the move lands are still yours to write.
Try the faction generatorRelated
Tools
- Faction generator Free, no login. Produces a goal, an obstacle and a method you can edit into shape.
- Council vote generator Turns a faction's next move into a scene: who votes which way, and what changes their mind.
- Quest hook generator Turns a faction's scheduled move into a hook the party can pick up before or after it lands.