Economy and balance#

How fast gold comes in, how hard enemies hit back, when players Ascend. Every number is data: you never change code to rebalance the game.

Do it with AI (skill rebalance-economy, set up once): ask your agent "Make the game a bit easier for new players." Or follow the Hub steps below.

Where the numbers live#

  • Content/GameConfig.asset: the game's numbers (difficulty, gold, hero costs, idle and offline income, Ascension, notifications, analytics...). Hub > Game Balance edits it.
  • Content assets: what each thing costs or gives (a product's reward, a mission's target, a building's cost curve). Hub > Content and Hub > Monetization edit them.
  • Content/FeatureSet.asset: which features are on and when they open. Hub > Features edits it.

After Make it yours these are your copies in Assets/<Company>/<Game>/Content/.

Pace presets#

Hub > Game Balance starts with three presets: Relaxed (faster, more forgiving), Standard (the template's numbers) and Hardcore (slower, harder). Pick one, press Play, then fine-tune with the sliders.

A preset moves the starting numbers by a fixed factor of Standard:

NumberRelaxedHardcore
Enemy health at wave 1, boss health×0.8×1.25
Boss timer×1.25×0.85
Elite chance×0.75×1.5
Gold per kill at wave 1, prestige points×1.25×0.85
Hero level-up cost at level 1×0.8×1.2
Idle kills and Materials per hour, offline hours×1.5×0.75
Ascension opens at wave, pity×0.8×1.2

It leaves the growth rates (enemy health, hero cost and damage per level, how well gold keeps up) and the **summon gem prices** alone: the early HP bands, the Ascension engine and the shop's deals are balanced against them. A starting number shifts the whole game by a fixed number of waves, which is what "kinder" or "harsher" means in an idle game. Standard puts every number back exactly as shipped.

Change a growth rate with its slider: the early HP bands follow Enemy health growth per wave on their own, and the boss walls follow Waves per boss (each moves to the nearest boss wave; going back to 10 puts them back on 90 and 100). Each slider only goes as far as your game's content allows: for example the growth rates stop where Ascension points would start to outgrow the waves. When a slider stops short of its usual range, the line under it says why in plain words. A number typed outside that range is refused under the slider with the same reason, for example "Hero damage growth per level can go up to 1.0702 with this game's content: higher, Ascension rewards would grow faster than the enemies get tougher". Advanced keeps the full range and refuses only what would really break the game.

Hub: Game Balance, the Pace buttons

The main numbers#

The sliders are grouped. Each has one sentence of help, a safe range measured on your content and ↺ (back to the template's number).

GroupWhat it changes
Difficultyenemy base HP and how fast it grows per wave, boss HP and timer, waves between bosses, elite chance
Economybase gold, how well gold keeps up with enemy HP, hero level cost and growth, damage growth, milestone bonus
Idle and offlinekills and Materials per hour away, the offline cap in hours
Ascensionthe wave that allows the first Ascension, talent points and how they grow
Summonthe main gate's gem prices, pity, and rarity rates (they always add up to 100 %)

Advanced shows every other number of GameConfig, grouped as in the code, with its help text, plus read-only curve previews (enemy HP, gold per kill, hero cost, talent points by wave).

Enemy HP grows exponentially, so a bonus of ×2 is worth a fixed number of waves: raising one number rarely breaks the game, but check the result in Play.

When features open (unlock cadence)#

Some features open on progress, never on time. In the template: the Castle at wave 60, Rankings at the first Ascension, Events at 2 Ascensions and the Growth Pass at 3. Battle, heroes, summon, missions, the calendar, the inbox and the shop are open from the start; Talents open with the first Ascension.

  • Hub > Features > Advanced > When features open: the wave and/or number of Ascensions per feature (0 = no requirement; both must hold). Gates must be in the order a player meets them: Validate refuses another order.
  • Open features as the player progresses off = everything open from the start.
  • A locked feature stays visible: its tile is dimmed with its gate ("W60", "Asc 3") and a tap explains it. Nothing counts or pays for a locked feature; purchases are never refused.
  • A feature of your own: add a row with your id in the feature set and ask the game whether it is open (see Add your own tab). Give it the texts unlock.<id>.name and unlock.<id>.about.

Early pacing: HP bands and boss walls#

The first hours' shape is data on the GameConfig asset (Advanced):

FieldWhat it does
hpBandswaves inside a band grow enemy HP at their own rate. Bands must net out by lateGrowthFromWave, so the late game never moves
bossWallsextra HP on one boss wave (for example wave 100 ×3): a wall that asks for an Ascension
bossWallDecayPerAscensionhow much of a wall's extra is left after each Ascension (0.5 = ×3, then ×2, then ×1.5). 1 = the full wall every time
prestigeCueStallMinutesminutes of play without a new best wave after which the next-goal chip suggests Ascending. 0 = off

Summon rates#

The summon gates are in Hub > Content > Shop (Advanced) or Content/Shop/SummonGates/: the heroes in the pool (empty = every hero), the rarity rates, pity (a guaranteed top-rarity pull after N pulls), the ten-pull minimum rarity and the four prices. The game's "All rates" sheet is computed from these numbers, so it is always correct.

Loot boxes are regulated in some countries: see Shop and in-app purchases.

Change numbers after release#

With Unity Remote Config (see Online services) you can change listed numbers, prices, rewards and texts for every player without a store update: players get the change at their next start. Details and the list of live keys: Adapters and backend.

Test a change#

  • Press Play. Content changes show on the next Play.
  • Tools > Idle RPG > Validate Content catches numbers that break a rule (a bonus past its bucket's ceiling, a price of 0).
  • The developer panel adds currency and moves time forward: add the scripting define IDLE_DEV_TOOLS and a small dev key shows at the bottom left (in the editor and in that build). Take the define out before a store build. See Adapters and backend.