FORGE WORLD TERMINAL v1.0 [ONLINE]
4. Balance principles

Balance principles

Balance is what separates a memorable event from a forgettable one. Get it right and players agonize over choices. Get it wrong and they click the obviously best option without thinking. This chapter covers how vanilla Stellaris balances its events, how Forge World builds on that system, and the concrete numbers you need to make your events feel fair.

How vanilla Stellaris scales rewards

Stellaris uses a tiered multiplier system where rewards scale with empire production. The base values come from scripted variables in the game files, and each tier applies a larger multiplier.

Material rewards (energy, minerals, alloys)

Tier Multiplier Min Max Typical usage
1 6× 100 500 Minor discoveries
2 12× 150 1,000 Standard anomalies
3 18× 250 1,500 Notable finds
4 24× 350 2,000 Major discoveries
5 48× 700 4,000 Rare events

Research rewards

Tier Multiplier Min Max Typical usage
1 6× 60 150 Small boost
2 12× 90 250 Standard anomaly
3 18× 120 350 Good discovery
4 24× 150 500 Major breakthrough
5 48× 300 1,000 Exceptional find

Unity and influence

Unity follows the same scale as materials. Influence is much more constrained — it's the most precious resource in Stellaris, and even tier-5 influence rewards cap at 600.

Concrete vanilla examples

These come from actual vanilla event files:

Context Effect Value
Hidden event reward add_minerals 325
Dialog option reward add_minerals 750
Electroshock event add_energy 1,000
Accepting exiles energy cost -500
Accepting exiles rare_crystals cost -50

The scaling problem

Flat resource amounts have a fundamental problem: they become trivial as empires grow. Getting 200 energy in year 10 matters. Getting 200 energy in year 100 is meaningless. Vanilla Stellaris partially addresses this with add_monthly_resource_mult, which scales rewards based on monthly production.

Forge World takes this further with scaled resources (resource_gain_scaled). Instead of flat amounts, you specify a percentage of the empire's current stockpile:

- category: resource_gain_scaled
  resource: energy
  percent_of_stockpile: -0.10

A 10% stockpile hit feels meaningful at every game stage. The mod reads the stockpile when the option is picked and takes exactly that share.

Rule of thumb: always use resource_gain_scaled for standard resources (energy, minerals, alloys, unity, influence, consumer goods). Use flat resource_gain only for strategic resources (minor artifacts, exotic gases, volatile motes, rare crystals) where stockpiles are small and fixed amounts matter.

Value equivalence

To design balanced tradeoffs, you need a common unit of comparison. Forge World uses energy-equivalent values:

Resource Value per unit Notes
Energy (per 100) 50 Baseline
Minerals (per 100) 50 Same as energy
Alloys (per 100) 100 2× more valuable
Consumer goods (per 100) 75
Unity (per 100) 75
Influence (per 10) 100 Very precious
Minor artifacts (each) 200 Rare
Exotic resources (each) 150 Gases, crystals, motes

Research progress is especially valuable:

Type Value per unit Notes
Research progress (per 1%) 125 Scales with tech cost
Research speed modifier (per 1%/year) 400 Compounds over time
Resource production modifier (per 1%/year) 300
Unity production modifier (per 1%/year) 200

This means 5% research progress (value ~625) should cost roughly 600 energy to feel balanced. If you give research for free, it dominates every other reward type.

Reward ranges

Research progress

Size Range Energy cost to match
Small 3–5% 400–700
Medium 5–8% 700–1,100
Large 8–12% 1,000–1,600

Research percentage is deceptively powerful late-game. 5% of a 50,000-point tech equals 2,500 research points. Keep percentages modest and ensure costs hurt proportionally.

Flat resources

Size Amount Alloy cost equivalent
Small 200–400 75–150
Medium 400–700 150–300
Large 700–1,200 —

Strategic resources

Resource Small event Medium event Large event
Minor artifacts 1–2 3–5 5–10
Exotic gases 1–3 3–5 5–8
Volatile motes 1–3 3–5 5–8
Rare crystals 1–3 3–5 5–8
Living metal 0–1 1–2 2–3
Zro 0–1 1–2 2–3
Dark matter 0–1 1–2 2–3

Scope multipliers

Every event has a reward_scope that scales all values up or down:

Scope Multiplier Variance When to use
Modest 0.7× Tighter Safe, small nudges
Normal 1.0× Standard Most events
Extravagant 1.4× Slightly wider Big swings with real tradeoffs
Wild 1.8× High Strange, high-variance outcomes

A "large" research reward (8–12%) at "extravagant" scope becomes 11–17%. At "modest" scope it becomes 5.6–8.4%. This lets you reuse the same reward templates while varying intensity by event weight.

Option set patterns

Forge World uses six standard patterns for option sets. Each pattern ensures meaningful choice without requiring hand-tuned balance for every event.

Pattern Description When to use
different_rewards All options good, pick what you need Discoveries, windfalls
choose_your_poison All options hurt, pick least painful Crises, consequences
tradeoff_trio Each option gains AND loses something Standard decisions
risk_spectrum Safe/medium/risky with scaled rewards Mysteries, exploration
time_horizon Immediate vs. long-term investment Opportunities
story_branch Different narrative paths First contact, encounters

The system rolls balanced numbers from config_balance.yaml while the AI writes narrative flavor. This separation keeps balance consistent even as event content varies.

Modifier durations

Category Duration When to use
Short 360–720 days (1–2 years) Most modifiers — narrative flavor
Medium 720–1,080 days (2–3 years) Major discoveries
Long 1,080–1,800 days (3–5 years) Use sparingly
Permanent — Never — wrong for a flavor mod

This mod is about storytelling, not gameplay overhaul. Keep modifiers short enough that they feel like narrative moments, not permanent build decisions.

Key design principles

  1. Every option has a cost. No obviously correct choices. If an option gives something, it must cost something — resources, risk, opportunity, or time.

  2. Research costs hurt. Percentage progress is extremely valuable late-game. Always pair research rewards with proportional costs.

  3. Costs match gains. Use the energy-equivalent value table to verify that rewards and costs are in the same ballpark.

  4. Scaled resources by default. Always use resource_gain_scaled for standard resources. Flat amounts are trivial mid-game.

  5. Max two effects per option. Keeps tooltips readable and prevents reward stacking.

  6. One premium reward per option. At most one of: tech unlock, follow-up event, or strong modifier (≥10%). Never stack two premium types.

  7. Follow-ups are gambles, not bonuses. A follow-up event might reward or punish. When only one option has a follow-up, it's the risky choice.

  8. Modifiers match their names. "Debt" means negative. "Inspiration" means positive. The validator catches mismatches.

Putting it all together

When designing a balanced event:

  1. Decide the reward_scope (modest, normal, extravagant, wild)
  2. Pick an option set pattern (tradeoff trio, risk spectrum, etc.)
  3. For each option, choose rewards from the appropriate size range
  4. Apply the scope multiplier
  5. Calculate energy-equivalent value of each option's rewards
  6. Add costs that roughly match the reward value
  7. Verify no option dominates — check that each has a genuine downside
  8. Keep modifier durations short (360–720 days preferred)

The config_balance.yaml file contains all these ranges and multipliers, making it easy to tune values during playtesting without touching event files.

Next steps

With options, effects, and balance covered, the next chapters explore specialized event types — anomalies, dig sites, situations, and event chains — where these principles come together in more complex structures.