What Are Achievements?
Achievements are the global milestones that guide your players through your idle game and reward them for hitting goals. They are the targets that sit in the corner of the screen, quietly whispering "you're almost there" — and when they pop, they deliver a satisfying burst of progress that makes the player want to keep going.
"Earn 1,000,000 Gold." "Buy 100 Miners." "Prestige 5 Times." "Reach a production rate of 10M per second." Every successful idle game is packed with these. They serve three critical purposes in your game's design:
- They guide players toward goals. A new player who opens your game and sees "Earn 1,000 Gold" immediately knows what to do next. A mid-game player who sees "Buy 25 of every generator" has a clear target to work toward. Achievements are implicit tutorials — they teach players how to engage with your systems without a single line of tutorial text.
- They reward exploration. Players who stumble into a hidden achievement get a dopamine hit that makes them wonder what else is hiding in your game. "Wait, there's a secret for reaching level 100 on my first generator without buying upgrades? What other secrets are there?" That curiosity drives engagement deeper than any explicit reward system.
- They provide long-term structure. When the immediate loop of "buy generator, earn resources, buy more generators" starts to feel routine, achievements provide a meta-layer of goals that keep the player invested. Tier progressions like "Earn 1K → 100K → 10M → 1B Gold" give players a sense of how far they have come and how far they can still go.
In Simple Idle Forge, achievements come in three flavors:
- Visible achievements — the player can see the target and track their progress toward it. These are your standard milestones. "Earn 1M Gold" shows up in the achievement list, and the player can watch their gold count climb toward the goal.
- Hidden achievements — secret milestones that are not revealed until the player earns them. The achievement list might show "???" or nothing at all, and when the player accidentally meets the condition, the achievement pops with a surprise. These are your easter eggs, your skill challenges, your discovery moments.
- Repeatable achievements — milestones that reset after completion and can be earned again. These are perfect for daily challenges, weekly goals, or prestige-based milestones that count up every time the player restarts. "Prestige 1 time" can be earned again and again, with the reward stacking each time.
The Achievement Forge gives you a complete wizard for defining all three types. You set the condition (what triggers the achievement), the rewards (what the player gets), and the flags (hidden, repeatable, or both). The toolkit handles the rest — checking conditions, granting rewards, tracking completion state, and providing events for your UI to react to.
Opening the Achievement Forge
In the Unity Editor, go to Window → Living Failure → Simple Idle Forge → Achievement Forge. The wizard window opens with Step 1 (Setup) displayed, ready for you to name your achievement database and pick a genre template.
The Achievement Forge is the fifth and final forge in the chain. It sits at the top of the dependency hierarchy — achievements can check conditions against resources, generators, upgrades, and prestige layers, which means it links to all four other database types. This makes it the most connected forge in the toolkit, and the one you typically build last after your game's economy, progression, and prestige systems are already in place.
The recommended order is: Resources first (the foundation), then Generators (production), then Upgrades (boosters), then Prestige (reset cycles), and finally Achievements (goals). Each forge builds on the ones before it. By the time you open the Achievement Forge, your entire game economy exists and the forge can pull codes and names from every other database.
Linking Databases
The Achievement Forge links to all four other database types in your project:
- Resource Databases — so achievement conditions can check resource amounts ("Reach 1M Gold") and rewards can grant resources ("Give 10,000 Gems")
- Generator Databases — so conditions can check generator levels ("Get your Blacksmith to level 50") and total generator counts ("Own 500 generators across all types")
- Upgrade Databases — so conditions can check whether specific upgrades have been purchased ("Buy the Auto-Miner upgrade")
- Prestige Databases — so conditions can check prestige counts ("Prestige 3 times") and rewards can reference prestige currencies
You link databases in Step 1 (Setup) of the wizard. Each database type has its own section with a list where you drag-and-drop or add your generated databases. The forge validates each one to make sure it implements the correct interface, detects duplicates, and shows you a count of how many codes it found in each database.
Once your databases are linked, every dropdown in the Builder step that asks for a resource code, generator code, upgrade code, or prestige code will be populated with the actual entries from your databases. No typing codes from memory, no copy-paste errors, no typos that break at runtime.
If you own companion packages like Simple Quest Forge, Simple Enemy Forge, Simple Item Forge, Simple Skill Forge, or Simple Attribute Forge, you can also link their databases. The Achievement Forge detects installed companions automatically and shows additional database sections for each one. This lets you create achievements like "Complete the Dragon Slayer quest" or "Defeat 100 Skeleton enemies" by pulling codes from those companion forges. If you do not own any companions, these sections simply do not appear.
The 5 Steps
Like every forge in Simple Idle Forge, the Achievement Forge walks you through five steps from naming your database to generating your final game data. The tab bar at the top of the wizard shows all five steps, and you can click any step to jump directly to it.
Setup
Name your achievement database, choose a class prefix, and pick one of six genre templates (Classic Incremental, RPG Idle, Factory Tycoon, Prestige-Heavy, Survival Idle, or Gacha Collection). Each template pre-fills the definition step with property fields that make sense for that genre. You can always customize or start from scratch.
This is also where you link your resource, generator, upgrade, and prestige databases. The wizard shows a preview of the generated file names (enum, database, editor) so you know exactly what will be created. If you have companion forge packages installed, their database link sections appear here too.
Definitions
Define the custom properties that every achievement in this database will carry. These are your own metadata fields — not the built-in condition and reward fields, but additional data you want on each achievement for your own game logic or UI.
You get four property types: Categories (dropdown selections like "Achievement Tier" with entries like Bronze/Silver/Gold/Platinum), Flags (true/false toggles like "Show In UI" or "Track Progress"), Numerics (number fields like "Display Order" or "Point Value"), and Texts (text fields like "Flavor Text" or "Completion Message"). The genre template pre-fills common ones, but you can add, remove, or rename any of them.
This step also provides JSON schema export and import. Export your property definitions as a structured JSON file for backup or to use as a template for generating content externally. Import a JSON file to replace or merge definitions.
Builder
This is where you spend most of your time. The Builder is a split-panel interface with a scrollable list of all your achievements on the left (280 pixels wide) and a detail editor for the selected achievement on the right. The left panel has search, category filtering, sorting, pagination, and bulk operations (select all, delete selected, duplicate selected). Each entry in the list shows a checkbox, an icon, and the achievement name with a category indicator in brackets. Hidden achievements show a [Hidden] prefix so you can spot them at a glance.
The right panel is where you configure everything about the selected achievement — its identity, condition, flags, rewards, and custom properties. This is covered in full detail in the next section.
Settings
Choose where your generated files will be saved. The wizard shows the output paths for your scripts folder and assets folder, with browse buttons to change them and a toggle for custom paths. A file preview shows every file that will be created, and a summary box lists the total number of achievements, how many are hidden, how many are repeatable, and the total number of rewards across all entries.
Generate
Review everything one final time, then click the Generate button. The forge validates all your entries, checks that condition codes match your linked databases, and generates your game data in two phases. Phase 1 creates the C# files (a type-safe enum for every achievement, a database with all your data and query methods, and a custom editor with search and filtering). Phase 2 runs after Unity compiles the new code and creates the asset file populated with all your achievement data.
A scrollable log shows everything that happened during generation, and post-generation actions let you ping the generated asset in the Project window or open the database in the Inspector.
The Builder in Detail
The Builder (Step 3) is the heart of the Achievement Forge. This is where every achievement in your game takes shape. The right-side detail panel is organized into collapsible sections, each handling a different aspect of the achievement.
Identity
Every achievement starts with four identity fields:
- Code — a unique string identifier used in code and data references. This
is what the runtime uses to look up the achievement. Keep it short, descriptive, and consistent.
Examples:
GOLD_1M,GEN_MINER_50,PRESTIGE_FIRST,SECRET_NO_UPGRADES. - Name — the display name shown to the player. "Gold Rush", "Mining Mogul", "Born Again", "The Purist".
- Description — a longer text explaining what the player needs to do. "Accumulate 1,000,000 Gold", "Reach level 50 on your Gold Mine", "Complete your first Prestige", "Reach level 100 on any generator without purchasing any upgrades".
- Icon — an optional sprite reference for the achievement's visual representation in your UI.
Condition
The condition defines what triggers this achievement. It is the rule the game checks to decide whether the player has earned it. Every condition has four fields that work together:
Condition Type
This determines what kind of thing the game checks. There are seven condition types, each designed for a different pillar of your idle game:
| Condition Type | What It Checks | Example |
|---|---|---|
| ResourceAmount | The current amount of a specific resource in the player's pool | "Reach 1,000,000 Gold" |
| GeneratorLevel | The current level of a specific generator | "Get your Gold Mine to level 50" |
| TotalGenerators | The total number of generators owned across all types combined | "Own 500 generators total" |
| UpgradePurchased | Whether a specific upgrade has been purchased (and how many times, for repeatables) | "Buy the Auto-Miner upgrade" |
| PrestigeCount | How many times the player has completed a specific prestige layer | "Prestige 5 times" |
| TotalProduction | The player's current total production rate (resources per second across all generators) | "Reach a production rate of 10M Gold per second" |
| MilestoneCompleted | Whether another achievement has been completed | "Complete all Bronze tier achievements" |
Condition Code
This specifies which resource, generator, upgrade, prestige layer, or achievement the condition checks. The dropdown is context-dependent — it only shows codes that make sense for the selected condition type:
- If the condition type is ResourceAmount, the dropdown lists all resource codes from your linked resource databases (GOLD, GEMS, WOOD, etc.)
- If the condition type is GeneratorLevel, the dropdown lists all generator codes from your linked generator databases (PEASANT_HUT, LUMBER_MILL, etc.)
- If the condition type is UpgradePurchased, the dropdown lists all upgrade codes from your linked upgrade databases (DOUBLE_GOLD, AUTO_MINERS, etc.)
- If the condition type is PrestigeCount, the dropdown lists all prestige layer codes from your linked prestige databases (REBIRTH, ASCENSION, etc.)
- If the condition type is TotalGenerators, no code is needed — the condition checks the combined total across all generators
- If the condition type is TotalProduction, the dropdown lists resource codes so you can specify which resource's production rate to check
- If the condition type is MilestoneCompleted, the dropdown lists other achievement codes from the current wizard (so you can chain achievements)
If you have companion forge packages installed (Simple Quest Forge, Simple Enemy Forge, etc.), their codes also appear in the appropriate dropdowns, prefixed with their source forge ([SQF], [SEF], [SSF], [SIF]) so you can tell at a glance where each code comes from.
Comparison
This determines how the player's current value is compared to the threshold. Six comparison operators are available:
| Comparison | Meaning | Typical Use |
|---|---|---|
| Greater or Equal | Value ≥ threshold | The most common. "Reach 1M Gold" means gold ≥ 1,000,000 |
| Greater Than | Value > threshold | "Exceed 100 generators" means total > 100 |
| Equals | Value = threshold | "Have exactly 0 Gold" for a challenge achievement |
| Not Equals | Value ≠ threshold | "Own at least 1 generator" (level ≠ 0) |
| Less Than | Value < threshold | "Keep Gold below 100" for a minimalist challenge |
| Less or Equal | Value ≤ threshold | "Use 5 or fewer upgrades" for a restriction challenge |
Most achievements use "Greater or Equal" — the player needs to reach or exceed a target. But the other operators let you design creative challenges. "Beat the game with 0 upgrades purchased" is an Equals check. "Never let your Gold exceed 1,000" is a Less or Equal check that rewards constraint-based play.
Condition Value
The numeric threshold that the comparison checks against. This is a double value,
so it supports the massive numbers that idle games produce. Set it to 1000000 for "reach 1M",
50 for "reach level 50", 5 for "prestige 5 times", or 1 for "purchase this upgrade at least once".
Because Simple Idle Forge uses double-precision numbers throughout, your condition values can go as high as your game's economy demands. "Reach 1.5 Quadrillion Gold" is just as valid as "Reach 100 Gold" — the comparison works identically at any scale.
Achievement Flags
Two toggles control the achievement's visibility and repeatability:
Is Hidden
When this flag is enabled, the achievement is a secret. It does not appear in the player's achievement list until they earn it. Your UI can show a placeholder ("???") or hide the entry entirely — that is your design choice. The point is that the player does not know the condition until they stumble into it.
Hidden achievements are perfect for:
- Easter eggs — "Click the logo 50 times"
- Skill-based challenges — "Reach level 100 on your first generator without buying any upgrades"
- Discovery moments — "Find the secret resource hidden behind the prestige menu"
- Narrative surprises — "Witness the Dragon Lair's special event"
The Builder's list view on the left panel shows a [Hidden] prefix on any achievement with this flag enabled, so you can always tell which ones are secrets while you are building your database.
Is Repeatable
When this flag is enabled, the achievement resets after completion and can be earned again. The runtime tracks how many times it has been completed, and the reward is granted each time. This is fundamentally different from a one-time achievement — it creates an ongoing goal that the player can pursue repeatedly.
Repeatable achievements are perfect for:
- Daily login rewards — "Play for 10 minutes today"
- Weekly challenges — "Earn 100M Gold this week"
- Prestige milestones — "Prestige 1 time" (earnable every time the player prestiges)
- Recurring skill checks — "Reach 1B production rate" (earnable after each prestige reset)
An achievement can be both hidden and repeatable. A hidden repeatable is a secret recurring challenge — the first time the player earns it, the secret is revealed, and from then on they know the condition and can pursue it again.
Rewards
Every achievement can grant multiple rewards when completed. This is not a single prize — it is a list of rewards, and you can add as many as you want. An achievement for reaching 1M Gold might grant 10,000 Gems, a permanent +5% production bonus, and unlock a new generator all at once.
Each reward in the list has five fields:
| Field | What It Does |
|---|---|
| Reward Type | What kind of reward this is. Five types are available:
|
| Target Type | What scope the reward affects:
|
| Target Code | Which specific resource or generator this reward affects. The dropdown shows codes from your linked databases. For Global target types, this field is not needed. |
| Value | How much. 10000 for a ResourceGrant of 10K, 2.0 for a x2 Multiply, 100 for a +100 AddFlat, 0.1 for a +10% AddPercent. The meaning depends on the reward type. |
| Description | A human-readable explanation of this reward. "Grants 10,000 Gems", "Doubles Gold production permanently", "+10% to all Iron Mine output". This text is available at runtime for your UI to display in achievement popups and reward summaries. |
The Builder provides quick preset buttons that add common reward configurations in one click:
- Grant 1K Gold — adds a ResourceGrant reward with a value of 1000
- +10% Production — adds an AddPercent reward targeting Global with a value of 0.1
- x2 Multiplier — adds a Multiply reward targeting Global with a value of 2.0
These presets give you a starting point that you can customize. Change the target code, adjust the value, modify the description — the preset just saves you from building the reward from scratch every time.
Achievement rewards feed into the same bonus stacking pipeline as upgrade effects, prestige bonuses, and temporary buffs: (base + flats) × (1 + percents) × multipliers. A Multiply reward of 2.0 from an achievement stacks multiplicatively with a Multiply effect of 1.5 from an upgrade, giving a combined 3.0x multiplier. An AddPercent reward of 0.1 (+10%) adds to other percentage bonuses before the multiplication step. The pipeline is transparent and predictable — you always know exactly how bonuses combine.
Dynamic Properties
Below the rewards section, the Builder shows foldable sections for each of the custom property types you defined in Step 2 (Definitions). If you created a "Tier" category with Bronze/Silver/Gold/Platinum entries, each achievement will have a Tier dropdown. If you created a "Point Value" numeric, each achievement will have a number field for it. These properties are fully queryable at runtime — you can filter achievements by tier, sort by point value, or display flavor text in your UI.
Hidden and Repeatable Achievements
These two flags deserve special attention because they fundamentally change how an achievement behaves in your game. Understanding when and how to use them is key to designing an achievement system that feels rewarding and keeps players engaged over the long term.
Hidden Achievements — The Art of Surprise
A hidden achievement is invisible to the player until they earn it. Your achievement UI might show a locked icon with "???" text, or it might hide the entry entirely so the player does not even know it exists. Either approach works — the important thing is that the player cannot see the condition in advance.
This creates a fundamentally different engagement pattern. Standard achievements are goals — the player sees the target and works toward it. Hidden achievements are discoveries — the player does something unusual or impressive and is surprised by a reward they did not expect. That surprise creates a powerful emotional moment that standard achievements cannot match.
Great uses for hidden achievements:
- Easter eggs: "Click the title screen logo 50 times." Players who find these feel like they discovered a secret, and they tell other players about it.
- Skill challenges: "Reach level 100 on your first generator without buying any upgrades." This rewards players who experiment with unusual strategies.
- Speed runs: "Reach 1M Gold within 5 minutes of starting." A time-based challenge that rewards efficient play.
- Negative conditions: "Go bankrupt — reach exactly 0 of every resource." Sometimes the most interesting achievements reward failure.
- Cross-system mastery: "Own at least 1 of every generator type." This encourages players to explore your entire production chain instead of stacking one generator.
A good rule of thumb: make 10–20% of your achievements hidden. Enough to create a sense of mystery, but not so many that the visible achievement list feels empty.
Repeatable Achievements — Ongoing Engagement
A repeatable achievement resets after completion. The player earns it, gets the reward, and the achievement becomes available to earn again. The runtime tracks the completion count, so you know how many times the player has earned it.
This is a powerful tool for ongoing engagement, but it requires careful reward design. If a repeatable achievement grants a permanent x2 multiplier every time, the game breaks after the third completion. Repeatable rewards should be either small and incremental ("+1% production per completion") or resource grants that get absorbed into the economy ("Grant 10K Gold each time").
Great uses for repeatable achievements:
- Daily login targets: "Play for 10 minutes today." Resets every day, grants a small resource bonus each time. Encourages daily return habits.
- Weekly challenges: "Earn 100M Gold this week." Larger goals with larger rewards on a weekly cycle. Creates a reason to come back even after the player has "beaten" the main progression.
- Prestige milestones: "Complete a prestige." Earnable every time the player prestiges. The reward can be a small prestige currency bonus on top of the standard prestige reward, making each prestige feel slightly more valuable.
- Cumulative challenges: "Earn 1B Gold total (lifetime)." The condition checks a lifetime statistic that keeps growing across prestiges. Each time the player crosses a new billion, the achievement triggers again.
In the Builder's list view, repeatable achievements do not get a visual prefix (unlike hidden achievements, which show [Hidden]). You can identify them by selecting the entry and checking the flags section. If you want to sort or filter by repeatability, add a custom flag property in the Definitions step.
Be careful with repeatable achievements that grant Multiply or AddPercent rewards. A +10% bonus that triggers 50 times is a +500% bonus, which may break your economy. For repeatable achievements, ResourceGrant rewards are the safest choice — they provide value without compounding infinitely. If you do want repeatable percentage or multiplier rewards, keep the values very small (1–2% per completion) and test the long-term impact.
Tips for Achievement Design
A well-designed achievement system is one of the most effective retention tools in an idle game. Here are practical guidelines for making yours great.
Create Achievement Tiers
The most effective achievement structure is a tiered progression where each milestone is a stepping stone to the next. Instead of one achievement for "Earn Gold", create a chain:
| Achievement | Condition | Reward |
|---|---|---|
| Gold Collector | Earn 1,000 Gold | +5% Gold production |
| Gold Hoarder | Earn 100,000 Gold | +10% Gold production |
| Gold Magnate | Earn 10,000,000 Gold | +15% Gold production |
| Gold Emperor | Earn 1,000,000,000 Gold | +25% Gold production |
Each tier gives the player a visible next goal. When they earn "Gold Collector", they immediately see "Gold Hoarder" as the next target. This creates a natural progression that guides players through your game's economy scaling. The reward percentages should increase with each tier — later tiers are exponentially harder to reach, so they deserve proportionally larger bonuses.
Mix Your Condition Types
Do not make every achievement about resource amounts. A balanced achievement system uses all seven condition types to touch every part of your game:
- Resource milestones — "Reach 1M Gold", "Accumulate 100K Gems"
- Generator milestones — "Get any generator to level 50", "Own 25 Iron Mines"
- Upgrade milestones — "Purchase your first upgrade", "Buy all automation upgrades"
- Prestige milestones — "Complete your first prestige", "Prestige 10 times"
- Production milestones — "Reach 1M Gold per second", "Hit 1B total production"
- Total generator milestones — "Own 100 generators total", "Own 1,000 generators total"
- Chain milestones — "Complete all beginner achievements", "Earn every Bronze tier reward"
This variety ensures that no matter what the player is doing in your game, there is always an achievement nearby that recognizes their progress. A player who is focused on upgrading their generators should find generator-related achievements within reach. A player who just prestiged should see a prestige achievement pop.
Give Meaningful Rewards
An achievement without a meaningful reward is just a notification. Players should want to pursue your achievements, not just passively earn them. Every achievement should grant something that makes the player tangibly more powerful or gives them something they can use.
- Early game: Resource grants are most impactful. "Grant 5,000 Gold" when the player is earning 10 Gold per second is a massive windfall that accelerates them into the next phase of your game.
- Mid game: Percentage bonuses start to shine. "+10% production" on top of an established economy gives a noticeable boost without being game-breaking.
- Late game: Multipliers become the prize. "x1.5 all production" is the kind of reward that makes a late-game player's eyes light up, because it multiplies everything they have built.
- Endgame: Unlocks and prestige currency grants keep things interesting when raw numbers have lost their impact. "Unlock the secret generator" or "Grant 100 Prestige Points" gives the player something new to interact with.
Hide a Few Secrets
Every achievement system benefits from a handful of hidden achievements that reward unexpected behavior. These create watercooler moments — players discover them, feel special, and share the discovery with others. You do not need many. Three to five hidden achievements in a set of thirty is enough to create a sense that there is always more to discover.
The best hidden achievements reward behavior that the player might try on their own: "What happens if I buy 100 of the cheapest generator?", "What if I never buy any upgrades?", "What if I prestige with exactly 0 Gold?" Reward the experimenters and the curious.
Use Repeatables for Daily and Weekly Hooks
Repeatable achievements are your engagement hooks. They give players a reason to open the game today, not just "eventually." Frame them as daily or weekly challenges with modest but consistent rewards. A player who knows they get 5,000 Gems every day for playing 10 minutes will build a habit of opening the game daily. That daily habit is worth more to retention than any one-time reward, no matter how large.
Aim for 20–50 Achievements Per Game
Too few achievements and the system feels like an afterthought. Too many and the list overwhelms the player. The sweet spot for most idle games is between 20 and 50 achievements in total.
- 20 achievements — enough for a focused, tight game. Covers the major milestones for each resource, a handful of generator targets, a few prestige goals, and 2–3 hidden secrets.
- 30–40 achievements — the ideal range for most projects. Gives you room for tiered progressions, condition variety, some repeatables, and a good set of secrets. All four included demo games fall in this range.
- 50 achievements — the upper end for a single achievement database. Beyond this, consider splitting into multiple databases (e.g., one for resource achievements, one for combat achievements, one for prestige achievements) to keep each list manageable.
Study the achievement databases in the four included demos. Simple Kingdom has 20 achievements (the minimum effective set). Factory Tycoon has 25. Survival Idle has 30. RPG Idle has 35 (the most complex set, with tiered progressions, hidden combat challenges, and repeatable prestige milestones). Each demo shows a different approach to achievement design, and you can open their databases in the Inspector to see exactly how every condition and reward is configured.