Skip to content
Back to skills

Godot Genre Idle Clicker

ASecurity

Expert blueprint for idle/clicker games including big number handling (mantissa + exponent system), exponential growth curves (cost_growth_factor 1.15x), generator systems (auto-producers), offline progress calculation, prestige systems (reset for permanent multipliers), number formatting (K/M/B suffixes, scientific notation). Use for incremental games, idle games, or cookie clicker derivatives. Trigger keywords: idle_game, big_number, exponential_growth, generator_system, offline_progress, p...

  • 866 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added October 19, 2026
toolsgonodegitapiperformancedocumentation

Works with

  • cli
  • api

Security analysis

A100/100

Pro scans all 19 files and shows the line behind each finding

Scanned October 19, 2026

npx -y skills add thedivergentai/Game-Design-Agentic-Skills --skill godot-genre-idle-clicker --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Godot Genre Idle Clicker?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Godot Genre Idle Clicker
[![Security: A β€” Skills Directory](https://www.skillsdirectory.com/api/skills/thedivergentai-godot-genre-idle-clicker/badge)](https://www.skillsdirectory.com/skills/thedivergentai-godot-genre-idle-clicker)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: godot-genre-idle-clicker
description: "Expert blueprint for idle/clicker games including big number handling (mantissa + exponent system), exponential growth curves (cost_growth_factor 1.15x), generator systems (auto-producers), offline progress calculation, prestige systems (reset for permanent multipliers), number formatting (K/M/B suffixes, scientific notation). Use for incremental games, idle games, or cookie clicker derivatives. Trigger keywords: idle_game, big_number, exponential_growth, generator_system, offline_progress, prestige_system, number_formatting."
---

## NEVER Do (Expert Anti-Patterns)

### Economics & Math
- NEVER use standard floats for currency; strictly implement a **BigNumber** (Mantissa/Exponent) system (e.g., `1.5e300`) to prevent `INF` crashes at 1e308.
- NEVER use `Timer` nodes for revenue generation; strictly use a manual accumulator in `_process(delta)` to prevent drift during frame fluctuations.
- NEVER hardcode generator costs or growth; strictly use an exponential formula: `Cost = BasePrice * pow(GrowthFactor, OwnedCount)` (industry standard **1.15x**).
- NEVER evaluate exact float equality (`==`); strictly use `is_equal_approx()` or `>=` to prevent "stuck" progress due to precision loss.
- NEVER parse scientific notation strings with `to_int()`; strictly use `to_float()` or a dedicated BigNumber parser.

### Performance & Optimization
- NEVER update all UI labels every frame; strictly use **Signals** to update labels ONLY when values change, or throttle updates to 10 FPS.
- NEVER ignore **Low Processor Usage Mode** for mobile; strictly enable `OS.low_processor_usage_mode = true` to preserve battery life.
- NEVER instantiate/delete hundreds of text nodes per second; strictly use **Object Pooling** or `MultiMeshInstance` for click-feedback.
- NEVER update massive logs by modifying the `text` property; strictly use `append_text()` to prevent main thread blocking.

### Player Experience & Persistence
- NEVER ignore **Offline Progress**; strictly calculate `seconds_offline * total_revenue` using system UNIX timestamps (`Time.get_unix_time_from_system()`).
- NEVER make the "Prestige" reset feel like a loss; strictly provide a global multiplier that makes the next run **significantly** faster (2-5x).
- NEVER calculate offline time using `Time.get_ticks_msec()`; strictly use **Persistent UNIX timestamps** as ticks reset on app restart.
- NEVER use Node hierarchies for raw data; strictly use `RefCounted` or `Resource` objects for lightweight, serializable logic.

---

## πŸ›  Expert Components (scripts/)

> **MANDATORY reads** before implementing the matching system:
> 1. [big_number.gd](scripts/big_number.gd) β€” mantissa + exponent beyond float INF
> 2. [generator.gd](scripts/generator.gd) β€” exponential cost / rate units
> 3. [scientific_notation_formatter.gd](scripts/scientific_notation_formatter.gd) β€” K/M/B/T + scientific display
> 4. [offline_progress_calculator.gd](scripts/offline_progress_calculator.gd) β€” UNIX offline catch-up (not `ticks_msec`)

### Original Expert Patterns
- [big_number.gd](scripts/big_number.gd) - Mantissa + Exponent math for e308+ scales.
- [generator.gd](scripts/generator.gd) - Exponential cost units and production rate calculation.
- [scientific_notation_formatter.gd](scripts/scientific_notation_formatter.gd) - Readable K/M/B/T and scientific suffixes.

### Modular Components
- [offline_progress_calculator.gd](scripts/offline_progress_calculator.gd) - Real-world delta tracking using UNIX timestamps.
- [functional_income_reducer.gd](scripts/functional_income_reducer.gd) - Fast income summation patterns.
- [threaded_catchup_simulator.gd](scripts/threaded_catchup_simulator.gd) - WorkerThreadPool background catch-up.
- [precision_cost_validator.gd](scripts/precision_cost_validator.gd) - Cost curve / affordability checks.
- [scientific_notation_math.gd](scripts/scientific_notation_math.gd) - Shared mantissa helpers for formatters.
- [idle_performance_setup.gd](scripts/idle_performance_setup.gd) - `low_processor_usage_mode` + signal-throttled UI.
- [decoupled_economy_signal_bus.gd](scripts/decoupled_economy_signal_bus.gd) - Throttled economy→UI signals.
- [lightweight_upgrade_resource.gd](scripts/lightweight_upgrade_resource.gd) - Upgrade `.tres` pattern.
- [big_int_save_parser.gd](scripts/big_int_save_parser.gd) - Persist big numbers safely.
- [thread_safe_ui_updater.gd](scripts/thread_safe_ui_updater.gd) - Deferred UI after threaded catch-up.

---

## Core Loop
1. **Click** β†’ 2. **Buy generators** β†’ 3. **Idle income** β†’ 4. **Upgrade** β†’ 5. **Prestige**

## Decision Trees

### Numbers & display
| Need | Action |
|------|--------|
| Values past ~1e308 | **MANDATORY** [big_number.gd](scripts/big_number.gd) |
| Labels / abbreviations | **MANDATORY** [scientific_notation_formatter.gd](scripts/scientific_notation_formatter.gd) |
| Cost curve ~1.15^n | [generator.gd](scripts/generator.gd) + [precision_cost_validator.gd](scripts/precision_cost_validator.gd) |

### Offline & perf
| Need | Action |
|------|--------|
| Offline catch-up | **MANDATORY** [offline_progress_calculator.gd](scripts/offline_progress_calculator.gd) (UNIX time) |
| Long catch-up | [threaded_catchup_simulator.gd](scripts/threaded_catchup_simulator.gd) |
| Battery / idle CPU | [idle_performance_setup.gd](scripts/idle_performance_setup.gd) |

Do **not** re-inline BigNumber/Offline tutorials in the skill body β€” load the scripts above.

## Skill Chain

| Phase | Skills | Purpose |
|-------|--------|---------|
| 1. Math | `godot-gdscript-mastery` | Big-number arithmetic |
| 2. UI | `godot-ui-containers`, `labels` | Scientific / suffix labels |
| 3. Data | `godot-save-load-systems` | Offline timestamps + prestige |
| 4. Logic | `signals` | Throttled economy UI |
| 5. Balance | `godot-monte-carlo-balancer` | Minutes-to-milestone bands |

## Common Pitfalls

| Pitfall | Solution |
|---------|----------|
| Wrong Expert Component hrefs | Links above point at canonical `big_number` / `generator` / formatter |
| `Time.get_ticks_msec` offline | Use UNIX via offline calculator |
| UI every frame | Signal-throttle via economy bus / performance setup |

## Expert knowledge (on demand)

> **LLM-ignorance rule:** If a general agent would not know it before reading, load the reference β€” never delete expert deltas.

- [expert-idle-clicker-patterns.md](references/expert-idle-clicker-patterns.md) β€” restored baseline pedagogy (architecture, WHY, implementation depth)
- [big_real.gd](scripts/big_real.gd)
- [offline_progression_manager.gd](scripts/offline_progression_manager.gd)
- [click_juice_manager.gd](scripts/click_juice_manager.gd)

## Reference

> Progressive disclosure: open Official Documentation links only when researching a specific API; load Related Skills when routing to a peer domain β€” do not preload the whole lattice.

### Official Documentation
- [Idle and physics processing](https://docs.godotengine.org/en/stable/tutorials/scripting/idle_and_physics_processing.html) β€” Revenue must accumulate in `_process(delta)` (or a fixed sim tick), not drifting `Timer` nodes, so generators stay frame-rate independent.
- [Time](https://docs.godotengine.org/en/stable/classes/class_time.html) β€” Offline catch-up uses `Time.get_unix_time_from_system()`; never `get_ticks_msec()`, which resets when the app restarts.
- [Saving games](https://docs.godotengine.org/en/stable/tutorials/io/saving_games.html) β€” Persist currency, generator counts, prestige multipliers, and last-save UNIX timestamps so welcome-back earnings survive restarts.
- [Data paths](https://docs.godotengine.org/en/stable/tutorials/io/data_paths.html) β€” Keep save blobs under `user://` so offline timestamps and big-number strings remain writable across platforms.
- [Resources](https://docs.godotengine.org/en/stable/tutorials/scripting/resources.html) β€” Generators, upgrades, and prestige curves belong as `.tres` Resources so designers retune `cost_growth_factor` without code changes.
- [GDScript exports](https://docs.godotengine.org/en/stable/tutorials/scripting/gdscript/gdscript_exports.html) β€” `@export` base costs, revenue rates, and growth factors so balance sheets stay Inspector-driven.
- [Using signals](https://docs.godotengine.org/en/stable/getting_started/step_by_step/signals.html) β€” Emit `currency_updated` only when balances change so HUD labels do not rewrite every frame.
- [OS](https://docs.godotengine.org/en/stable/classes/class_os.html) β€” Enable `OS.low_processor_usage_mode` (and sleep usec) for mobile idle sessions that spend most time waiting on generators.
- [Using multiple threads](https://docs.godotengine.org/en/stable/tutorials/performance/using_multiple_threads.html) β€” Long offline catch-up sims belong on `WorkerThreadPool`; UI must not block while thousands of ticks replay.
- [Thread-safe APIs](https://docs.godotengine.org/en/stable/tutorials/performance/thread_safe_apis.html) β€” Marshaling sim results to Labels requires `call_deferred` / main-thread rules from this page.
- [Formatting strings](https://docs.godotengine.org/en/stable/tutorials/scripting/gdscript/gdscript_format_string.html) β€” K/M/B suffixes and `%.2fe%d` scientific display depend on correct format strings (and `String.num_scientific` when appropriate).
- [RefCounted](https://docs.godotengine.org/en/stable/classes/class_refcounted.html) β€” BigNumber and upgrade payloads should be lightweight `RefCounted`/`Resource` data, not Node trees.

### Related Skills

#### Prerequisites
- [godot-gdscript-mastery](https://github.com/thedivergentai/gd-agentic-skills/blob/main/skills/godot-gdscript-mastery/SKILL.md) β€” Mantissa/exponent classes, `pow` growth, and precision-safe compares (`is_equal_approx`) are core GDScript patterns before building idle economies.
- [godot-resource-data-patterns](https://github.com/thedivergentai/gd-agentic-skills/blob/main/skills/godot-resource-data-patterns/SKILL.md) β€” Generator and upgrade definitions should be Resource-first so balance curves stay data-driven `.tres` assets.
- [godot-signal-architecture](https://github.com/thedivergentai/gd-agentic-skills/blob/main/skills/godot-signal-architecture/SKILL.md) β€” Decoupled currency buses must signal up to UI and never let Labels mutate the simulation wallet.
- [godot-save-load-systems](https://github.com/thedivergentai/gd-agentic-skills/blob/main/skills/godot-save-load-systems/SKILL.md) β€” Offline progress and prestige state need versioned save handlers that store UNIX timestamps and big-number strings safely.

#### Complements
- [godot-economy-system](https://github.com/thedivergentai/gd-agentic-skills/blob/main/skills/godot-economy-system/SKILL.md) β€” Soft-currency wallets, sinks, and transaction APIs compose with idle generators when the game grows shops or prestige shops.
- [godot-ui-containers](https://github.com/thedivergentai/gd-agentic-skills/blob/main/skills/godot-ui-containers/SKILL.md) β€” Generator lists and upgrade grids are `GridContainer`/`VBoxContainer` layouts bound to throttle-friendly labels.
- [godot-ui-rich-text](https://github.com/thedivergentai/gd-agentic-skills/blob/main/skills/godot-ui-rich-text/SKILL.md) β€” Scientific notation, suffix strings, and append-only logs belong in Label/RichTextLabel patterns rather than rebuilding huge `text` blobs.
- [godot-performance-optimization](https://github.com/thedivergentai/gd-agentic-skills/blob/main/skills/godot-performance-optimization/SKILL.md) β€” Low-processor mode, UI throttling, and pooled click-juice keep idle loops battery-friendly on mobile.
- [godot-autoload-architecture](https://github.com/thedivergentai/gd-agentic-skills/blob/main/skills/godot-autoload-architecture/SKILL.md) β€” Simulation managers and economy buses that survive scene reloads should follow Autoload ownership rules.
- [godot-particles](https://github.com/thedivergentai/gd-agentic-skills/blob/main/skills/godot-particles/SKILL.md) β€” Click-feedback bursts should use batched `GPUParticles2D.emit_particle` rather than spawning Label nodes per tap.

#### Downstream / consumers
- [godot-monte-carlo-balancer](https://github.com/thedivergentai/gd-agentic-skills/blob/main/skills/godot-monte-carlo-balancer/SKILL.md) β€” After cost curves and prestige multipliers are Resource-driven, Monte Carlo career sims prove minutes-to-milestone bands (not win%) before shipping growth factors.
- [godot-platform-mobile](https://github.com/thedivergentai/gd-agentic-skills/blob/main/skills/godot-platform-mobile/SKILL.md) β€” Shipping idle on phones consumes low-processor mode, background resume, and offline catch-up patterns from this genre skill.

#### Master
- [godot-master](https://github.com/thedivergentai/gd-agentic-skills/blob/main/skills/godot-master/SKILL.md) β€” Library router and mirrored module entry; use when discovering peer skills or syncing shared script mirrors after Domain Skill edits.

Files in this skill

  • SKILL.md12.6 KB
  • references/expert-idle-clicker-patterns.md5.7 KB
  • references/migration-notes.md3.5 KB
  • scripts/big_int_save_parser.gd1.5 KB
  • scripts/big_number.gd2.6 KB
  • scripts/big_real.gd603 B
  • scripts/click_juice_manager.gd626 B
  • scripts/decoupled_economy_signal_bus.gd1.3 KB
  • scripts/functional_income_reducer.gd1.4 KB
  • scripts/generator.gd1.9 KB
  • scripts/idle_performance_setup.gd1.3 KB
  • scripts/lightweight_upgrade_resource.gd1.2 KB
  • scripts/offline_progress_calculator.gd1.4 KB
  • scripts/offline_progression_manager.gd692 B
  • scripts/precision_cost_validator.gd1.2 KB
  • scripts/scientific_notation_formatter.gd2.2 KB
  • scripts/scientific_notation_math.gd1.3 KB
  • scripts/thread_safe_ui_updater.gd1.4 KB
  • scripts/threaded_catchup_simulator.gd1.6 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.