What Are Resources?
Resources are the foundation of every idle game. They are the currencies, materials, energies, and prestige points that your players earn, spend, and track throughout their entire playthrough. Every other system in your game — generators, upgrades, prestige layers, achievements — ultimately revolves around resources. Generators produce them. Upgrades cost them. Prestige resets them. Achievements check them. Without resources, there is no game.
A resource can be anything your design needs:
- Currencies — Gold, Gems, Cash, Coins. The things players earn and spend to buy generators, upgrades, and unlocks.
- Materials — Wood, Iron, Steel, Circuits. Raw and processed goods in crafting and factory games.
- Energy — Stamina, Mana, Fuel, Power. Limited pools that gate actions and regenerate over time.
- Prestige Currencies — Souls, Tokens, Shards, Stars. Earned through prestige resets, spent on permanent bonuses.
- Vital Resources — Food, Water, Warmth, Health. Resources that drain over time and must be maintained to survive.
- Tracking Resources — Population, Morale, Reputation. Counters that gate progress or unlock new content.
Here are real examples from the four demo games included with Simple Idle Forge:
| Demo | Resources | Notes |
|---|---|---|
| Simple Kingdom | GOLD, FOOD, STONE, IRON, GEMS, FAITH, KINGDOM_SOULS | Classic cookie clicker. Gold is the primary currency, Faith and Kingdom Souls are prestige currencies. |
| Factory Tycoon | CASH, ORE, WOOD, STEEL, CIRCUITS, LUXURY_GOODS, BLUEPRINTS, PATENTS, SHARES, TYCOON_TOKENS, CONGLOMERATE_POINTS, RESEARCH_POINTS | Supply chain game. Raw materials flow into processed goods, then products, then revenue. Two prestige currencies. |
| Survival Idle | FOOD, WATER, WARMTH, WOOD, STONE, LEATHER, CLOTH, TOOLS, MEDICINE, POPULATION, MORALE, SURVIVAL_POINTS, MIGRATION_TOKENS, EVOLUTION_SHARDS, SHELTER_INTEGRITY, KNOWLEDGE | Survival game. Food, Water, and Warmth drain over time. Three tiers of prestige currencies. |
| RPG Idle | SOULS, EMBER, TITANITE, BLOOD_ECHOES, INSIGHT, HOLLOWING_SHARDS, APOTHEOSIS_ESSENCE, HEALTH, ENDURANCE, FOCUS, EQUIPMENT_DURABILITY, plus more | Dark RPG. Health and Endurance drain during combat. Four tiers of prestige currencies. |
The Resource Forge is always the first forge you use. Every other forge in the toolkit reads resource codes from your resource databases — it is the foundation that everything else builds on. Take your time here. Get your resources right, and the rest of your game flows naturally.
Opening the Resource Forge
Open the Resource Forge wizard from the Unity menu bar:
Window → Living Failure → Simple Idle Forge → Resource Forge
The wizard opens as a dockable editor window. You can dock it alongside your Scene, Inspector, or any other panel. The Resource Forge walks you through five steps, displayed as tabs along the top of the window:
- Setup — Name your database and pick a genre template
- Definitions — Define the custom properties that every resource will have
- Builder — Create and edit individual resource entries
- Settings — Choose where your generated files will be saved
- Generate — Review everything and create your database
You move between steps using the tab bar at the top. Each step validates your data before letting you proceed to the next one, so you always know if something needs attention.
Step 1: Setup
The Setup step is where you give your resource database its identity. Three fields control what your generated files will be named:
| Field | Description | Example |
|---|---|---|
| Database Name | The name prefix for all generated files. This becomes part of your enum, database, and editor file names. | KingdomResources |
| Namespace | Optional C# namespace for generated code. Leave blank if your project does not use namespaces. | MyIdleGame |
| Class Prefix | Optional prefix for generated class names. Defaults to the database name. | Kingdom |
As you type, the wizard shows a Generated Names Preview below the fields. This shows you the exact file names that will be created — the enum file, the database file, and the editor file — so you always know what to expect before you generate anything.
Genre Templates
Below the naming fields, you will find a row of template buttons. Templates pre-fill Step 2 (Definitions) with property schemas that are standard for a particular genre of idle game. They give you a running start instead of building everything from scratch.
Selecting a template replaces any existing property definitions with the template's defaults. A confirmation dialog appears before anything is overwritten, so you cannot lose work by accident. You can always modify the template's definitions after applying them — they are a starting point, not a constraint.
Simple Idle Forge includes six genre templates:
Classic Incremental
The Cookie Clicker / Clicker Heroes model. Sets up three resource categories: Currency, Premium, and Prestige. Includes flags for "Is Premium" and "Persists Through Prestige", a numeric for "Display Order", and a text for "Short Name".
Use this for straightforward clicker games where you have a primary currency, a premium currency (gems/diamonds), and a prestige currency (souls/tokens).
RPG Idle
For dark RPGs, adventure idlers, and combat-focused incremental games. Six resource categories: Currency, Premium, Prestige, Material, Token, and Energy. Adds an "Offline Generation" flag so you can mark which resources generate while the player is away and which do not.
Use this when your game has crafting materials, combat drops, and energy systems alongside the standard currencies.
Factory Tycoon
For supply chain games, factory builders, and business sims. Four resource categories: Raw Material, Processed, Product, and Revenue. Includes a "Tier" numeric for organizing resources by production stage and "Is Tradeable" / "Is Exportable" flags for trade mechanics.
Use this when resources flow through a processing pipeline — ore becomes steel, steel becomes machines, machines generate cash.
Prestige Heavy
For games where the prestige system is the main event, like Antimatter Dimensions or Synergism. Designed for multi-tier prestige currencies with categories that map to each prestige layer. Includes flags for tracking which currencies survive each reset tier.
Use this when your game has three or more prestige layers and your resource categories map directly to those layers.
Survival Idle
For survival crafters and settlement builders. Five resource categories: Food, Material, Population, Morale, and Military. Includes a "Decay Rate" numeric for resources that drain over time, and "Is Vital" / "Is Decaying" flags for marking resources that must be actively maintained.
Use this when your game has resource decay mechanics — food spoils, warmth fades, population demands housing.
Gacha Collection
For gacha games, card collectors, and pull-based systems. Specialized categories for Pull currencies, Pity counters, Shard fragments, Dust conversion materials, and Premium currencies. Includes flags for premium-only resources and numerics for pity tracking.
Use this when your game revolves around pull/summon mechanics with pity systems and shard-based character progression.
Start with Classic Incremental. It has the fewest assumptions and works for any idle game. You can always add more categories, flags, and numerics later — the wizard syncs all existing entries automatically when you change definitions.
Step 2: Definitions
The Definitions step is where you design the custom properties that will appear on every resource in your database. Think of it as designing a form — every resource entry in Step 3 will have the exact same set of fields that you define here.
If you selected a genre template in Step 1, this step is already filled in with sensible defaults. You can use them as-is, modify them, add more, or remove ones you do not need.
There are four types of properties:
Categories
A category is a dropdown selector — a named field with a list of possible values. Each resource picks exactly one value from the list.
Example: A "Resource Type" category with entries Currency, Premium, Prestige, Material. When you create a resource in Step 3, you pick one of those four types from a dropdown. At runtime, you can filter all resources by type: "give me all Premium resources" or "give me all Prestige resources".
Categories are managed through a reorderable list. Click the + button to add a new category. Each category has a foldout that expands to show its name and its nested list of entries. You can add, remove, and reorder entries within each category. There is also a default value selector that controls which entry is selected by default when you create a new resource.
Flags
A flag is a simple on/off toggle — a boolean that is either true or false.
Example: An "Is Premium" flag. When checked, the resource is considered premium currency (gems, diamonds, crystals). An "Persists Through Prestige" flag. When checked, this resource is not reset when the player prestiges. At runtime, you can query: "give me all resources where Is Premium is true".
Each flag has a name and a default value (on or off). When you create a new resource in Step 3, the flag starts at its default value and you can toggle it per entry.
Numerics
A numeric is a number field — either an integer or a floating-point value, with optional minimum and maximum constraints.
Example: A "Display Order" numeric (integer, min 0, max 999) that controls the sort order of resources in your UI. A "Decay Rate" numeric (float, min 0) that defines how many units per second this resource loses naturally. At runtime, you can read these values and use them however your game logic needs.
Each numeric definition has five fields, each displayed on its own row in the wizard: Name, Is Integer (toggle), Min Constraint, Max Constraint, and Default Value. If you do not need min/max constraints, leave them at their defaults and the value will be unconstrained.
Texts
A text is a free-form string field. It can be a single line or a multi-line text area.
Example: A "Short Name" text for abbreviated display (Gold → "Au", Diamonds → "Dia"). A "Flavor Text" text with 3 lines for lore descriptions that appear in tooltips. At runtime, you read these as plain strings.
Each text definition has a Name and a Line Count. A line count of 1 creates a single-line text field in Step 3. A line count greater than 1 creates a multi-line text area with that many visible lines.
Whatever you define here shows up on every single resource you create in Step 3. If you add a "Decay Rate" numeric, every resource gets a Decay Rate field — even resources that do not decay. That is fine; just leave it at 0 for non-decaying resources. The key benefit is consistency: your runtime code can always ask for "the Decay Rate of this resource" without worrying about whether the field exists.
JSON Schema Export and Import
At the bottom of the Definitions step, you will find the JSON Schema section. This lets you export your complete property schema (and optionally your existing entries) as a structured JSON file. You can then edit the JSON externally, add dozens of entries at once, and import them back into the wizard. See the JSON Workflow page for the full walkthrough of this pipeline.
Step 3: Builder
The Builder is where you actually create your resources. It uses a split-panel layout with a 280-pixel entry list on the left and a detail editor on the right.
Left Panel: Entry List
The left panel is your resource inventory. It shows every resource in your database as a scrollable, selectable list. Click a resource to select it and edit it in the right panel.
The list panel includes:
- Search bar — Filter resources by name or code. Type "gold" to find any resource with "gold" in its name or code.
- Category filter — If you have a "Resource Type" category defined, a dropdown appears that lets you filter the list to show only Currency resources, only Premium resources, etc.
- Sort options — Sort alphabetically by name, by code, or by category.
- Pagination — For large databases, resources are paginated so the list stays fast and manageable.
- Bulk operations — Select multiple resources with checkboxes, then delete or duplicate them all at once.
- Count display — Shows the total number of resources in your database.
- Category indicator — Each entry shows its primary category in brackets
(e.g.,
[Currency],[Premium]) so you can scan the list at a glance. - Status bar — Shows the current filter state and entry count.
Use the + button at the bottom to add a new resource. Use the - button to remove the selected resource. The Duplicate button creates a copy of the selected resource with a new code.
Right Panel: Entry Editor
When you select a resource in the left panel, the right panel shows its complete editor. The editor is organized into foldout sections:
Identity
The core identity of the resource:
- Code — The unique identifier for this resource, in
SCREAMING_SNAKE_CASE. This is what other forges reference when they need to specify a resource. Examples:GOLD,PREMIUM_GEMS,PRESTIGE_SOULS. Codes must be unique across all resources in this database. - Display Name — The human-readable name shown to players. "Gold", "Premium Gems", "Prestige Souls".
- Description — A text description, typically shown in tooltips or info panels.
- Icon — A Sprite reference for the resource's icon in your UI.
Resource Settings
The gameplay configuration for this resource:
- Starting Amount — How much of this resource the player starts with.
This is a
doublevalue, so it can handle numbers from 0 all the way up to 1.7×10308. Most resources start at 0, but you might start the player with some gold or food. - Max Cap — The maximum amount the player can hold. Set to 0 for no
cap (unlimited growth). This is also a
double. When the player reaches the cap, the behavior depends on the Cap Mode setting below. - Cap Mode — What happens to production as the resource approaches its cap. Five modes are available, each explained in detail in the Cap Modes section below.
- Display Format — How numbers are formatted when shown to the player. Four formats are available, explained in the Display Formats section below. The wizard shows a live preview of how a sample number looks in your chosen format.
- Display Precision — The number of decimal places shown. A precision of 1 shows "1.5K", a precision of 2 shows "1.50K", and so on. Adjustable via a slider.
- Display Color — A color picker for this resource's UI color. Use consistent colors to help players instantly recognize resource types — gold for currency, purple for premium, green for materials, red for health.
Dynamic Properties
Below the resource settings, you will see foldout sections for each property type you defined in Step 2: Categories, Flags, Numerics, and Texts. Each resource gets its own values for every property. For example, if you defined a "Resource Type" category, each resource gets a dropdown where you pick whether it is Currency, Premium, Prestige, or Material.
Cap Modes Explained
When a resource has a max cap (any value greater than 0), the Cap Mode controls what happens to production as the resource fills up. This is a game design lever — different cap modes create different player experiences.
None
The resource has no cap behavior at all. Even if you set a Max Cap value, the None mode ignores it and lets the resource grow without limit. Production always runs at 100% efficiency. Use this when you want to track a max cap for display purposes (e.g., "500/1000 energy") but do not want it to actually limit production.
Hard
The most common mode. Production runs at full speed until the resource hits its cap, then stops completely. If the player has 999/1000 gold and production is 50/sec, they get exactly 1 gold and then production halts at 1000. Simple, predictable, and familiar to players from every mobile game with stamina bars.
If you set a max cap and do not change the cap mode, it defaults to Hard. This is the right choice for most resources.
Flat
Production runs at full speed until the resource reaches a threshold percentage, then drops to a flat efficiency for the remainder. When the resource actually hits the cap, production stops entirely.
You configure two values:
- Threshold — The fill percentage where the slowdown kicks in (0.0 to 1.0). Default is 0.8 (80% full).
- Efficiency — The production rate after the threshold (0.0 to 1.0). Default is 0.5 (50% production speed).
Example: Cap is 1000, threshold is 0.8, efficiency is 0.5. The resource produces at full speed until 800, then at half speed from 800 to 1000. This creates a gradual "full feeling" instead of an abrupt wall. Players notice production slowing down and are motivated to spend before hitting the hard limit.
Curve
Production efficiency follows a smooth animation curve based on how full the resource is. The X axis represents fill ratio (0.0 = empty, 1.0 = full) and the Y axis represents production efficiency (0.0 = no production, 1.0 = full production).
The wizard provides a curve editor where you can draw any shape you want. The default curve is a straight line from 100% efficiency at empty to 0% efficiency at full — a perfectly smooth linear ramp-down. But you can create concave curves (fast drop-off near cap), convex curves (slow drop-off until the very end), S-curves, or anything else.
Use this when you want precise control over the production feel. Curve mode is especially useful for vital resources in survival games where you want the "pressure" of a filling resource to ramp up gradually.
Step
Production efficiency changes at specific breakpoints that you define. Each breakpoint has a fill threshold and an efficiency value. The wizard shows these as a reorderable list of threshold/efficiency pairs.
Example:
| Fill Threshold | Efficiency | What Happens |
|---|---|---|
| 0% | 100% | Full production while nearly empty |
| 50% | 75% | Drops to 75% speed at half full |
| 80% | 40% | Drops to 40% speed at 80% full |
| 95% | 10% | Crawls at 10% speed when nearly capped |
Step mode is the clearest to communicate to players. You can show the breakpoints directly in your UI: "Production slows at 50%, 80%, and 95% capacity." Players know exactly what to expect and can plan their spending around the thresholds. The Survival Idle demo uses Step mode for its vital resources.
Display Formats
Every idle game needs to turn enormous numbers into readable text. Simple Idle Forge includes a built-in number formatter with four display modes. You choose a format per resource, and the formatter handles everything automatically at runtime.
Short (Suffix Notation)
The most common format for idle games. Large numbers are abbreviated with letter suffixes:
1,500 → 1.5K
1,500,000 → 1.5M
1,500,000,000 → 1.5B
1.5 trillion → 1.5T
1.5 quadrillion → 1.5Qa
1.5 quintillion → 1.5Qi
The formatter supports 57 suffix tiers, covering every value up to 10171. Beyond that, it falls back to scientific notation. For most games, K through Qi covers everything your players will ever see.
The wizard shows a live preview of your chosen format and precision. As you adjust the display precision slider, you can see exactly how "1,234,567" renders as "1.2M" (precision 1) or "1.23M" (precision 2).
Scientific
Standard scientific notation, familiar to players of Antimatter Dimensions and other math-heavy incrementals:
1,500 → 1.50e3
1,500,000 → 1.50e6
1.5 trillion → 1.50e12
Engineering
Like scientific notation but with a superscript exponent for a cleaner look:
1,500 → 1.50×10³
1,500,000 → 1.50×10&sup6;
1.5 trillion → 1.50×10¹²
Full
The complete number with comma separators:
1500 → 1,500
1500000 → 1,500,000
1500000000 → 1,500,000,000
Full format works well for small numbers and for resources where the exact count matters (population, units owned). It becomes unwieldy for large numbers, so it is best suited for resources that stay in the thousands or below.
Step 4: Settings
The Settings step controls where your generated files are saved. By default, the wizard saves everything to a single output folder. You can also enable custom paths to save scripts and assets to separate locations.
- Output Path — The default folder for all generated files. Typically
something like
Assets/GeneratedDatabases/Resources/. Click Browse to pick a folder visually. - Use Custom Paths — When enabled, two additional path fields appear: one for scripts (.cs files) and one for assets (.asset files). This is useful if your project has a specific folder structure where scripts and data live in different directories.
Below the path fields, the wizard shows a File Preview listing every file that will be created when you generate. You can see the exact file names and paths before committing to anything. This includes:
{Prefix}Type.cs— The enum file with one entry per resource{Prefix}Database.cs— The database file with all your resource data{Prefix}DatabaseEditor.cs— The custom editor for browsing your database in the Inspector{Prefix}Database.asset— The actual data asset
A descriptive summary box at the bottom shows a quick overview of your database: how many resources you have, how many property definitions of each type, and the total file count.
Step 5: Generate
The Generate step is the final review before creating your database. The wizard shows a complete summary of everything that will be generated: file names, entry count, property counts, and output paths. Review this carefully, then click the Generate button.
Generation happens in two phases:
Phase 1: Script Generation
The wizard writes your C# files — the enum, the database class, and the custom editor. Once the files are saved, Unity detects the new scripts and triggers a domain reload (the brief pause where Unity recompiles all scripts in your project). This takes a few seconds.
Phase 2: Asset Creation
After the domain reload completes, an automatic handler creates the .asset file and populates it with all your resource data — every entry, every property value, every cap behavior configuration. This happens automatically; you do not need to do anything except wait a moment.
A scrollable log at the bottom of the step shows the progress of both phases. When generation is complete, you will see a success message along with post-generation actions:
- Select in Project — Highlights the generated asset in the Project window
- Open in Inspector — Opens the asset in the Inspector with the custom editor (split-panel with search, filtering, and pagination)
The two-phase process uses temporary data saved to your project's Temp folder to survive the domain reload. If you close the wizard window before Phase 2 completes, the asset file will not be created. If this happens, simply open the wizard again and re-generate.
What Gets Generated
After both phases complete, you have a complete, ready-to-use resource database:
- A type-safe enum with one entry per resource (
GOLD,GEMS,PRESTIGE_SOULS, etc.). Use this in your game code for safe, typo-proof resource references. - A database asset that implements the
IIdleResourceDataSourceinterface. This gives you full query access: get a resource by code, by enum value, by category, by flag, by numeric range, or by text match. The database contains static metadata arrays for property names and entries, so you can build dynamic UIs without hard-coding anything. - A custom editor that displays your database in the Inspector with a split-panel layout, search bar, category filtering, and pagination. You can browse and verify your data without opening the wizard.
Tips for Resource Design
Building the right set of resources is the most important design decision in your idle game. Here is practical advice drawn from hundreds of successful idle games and the four demo games included with Simple Idle Forge.
Start Small, Expand Later
Begin with 3 to 5 core resources. A primary currency (Gold), a secondary currency or material (Wood), and maybe a premium currency (Gems). You can always add more resources later as you add generators and content tiers. The Simple Kingdom demo started with just Gold and Food, then expanded to 7 resources as generators and prestige layers were added.
Use Caps Sparingly
Most idle games let numbers grow freely — that is the entire appeal of the genre. Use caps only where they serve a specific design purpose: energy systems that gate actions (100 Stamina, regenerates over time), storage limits in factory games (warehouse holds 10,000 ore), or vital resources in survival games (100 Food max until you build a granary). If you are not sure whether a resource needs a cap, leave it at 0 (unlimited) and add one later if the economy feels too loose.
Use Display Colors Consistently
Pick a color language and stick with it across your entire game:
- Yellow/Gold for primary currencies
- Purple/Violet for premium currencies
- Blue for prestige currencies
- Green for materials and organic resources
- Red for health, danger, or vital resources
- Orange for energy and stamina
- White/Silver for secondary or neutral resources
When players see a purple number, they should instantly know it is premium currency. Consistent colors reduce cognitive load and make your UI feel polished.
Prestige Resources Deserve Their Own Category
If your game has prestige systems, give prestige currencies their own category (or at least flag them with an "Is Prestige" flag). This makes it trivial to filter them in your UI, exclude them from certain displays, and handle them differently during prestige resets. The Generator and Upgrade forges let you filter by category, so having a clean "Prestige" category means you can instantly see "which generators produce prestige currencies" or "which upgrades cost prestige currencies".
Plan for Number Scale
Idle games are defined by their number scale. A typical Cookie Clicker clone goes from 1 to
1015 in a single prestige cycle. Simple Idle Forge uses double for all
game values, which handles up to 1.7×10308 — far beyond what any
player will reach. But you should still think about your progression curve: what numbers
will the player see in the first minute? The first hour? After their first prestige? Pick
display formats that match your scale. Short (suffix) notation is almost always the right
choice for the primary currency.
Name Codes Clearly
Resource codes appear throughout every other forge — in generator production entries,
upgrade costs, prestige formulas, achievement conditions. Use clear, descriptive codes that
you will recognize months later. GOLD is better than G.
PRESTIGE_SOULS is better than PS. Codes are in
SCREAMING_SNAKE_CASE by convention. The extra characters cost nothing and save
enormous confusion.
Every other forge reads from it. Take the time to get your resource list, categories, and codes right. When you open the Generator Forge next, you will link your resource database and immediately see your resource codes in every production and cost dropdown. A clean resource foundation makes every subsequent step faster and clearer.