跳到正文
cccskills
免费在 GitHub 公开

godot-economy-system

Expert patterns for game economies including currency management (multi-currency, wallet system), shop systems (buy/sell prices, stock limits), dynamic pricing (supply/demand), loot tables (weighted drops, rarity tiers), and economic balance (inflation control, currency sinks). Use for RPGs, trading games, or resource management systems. Trigger keywords: EconomyManager, currency, shop_item, loot_table, dynamic_pricing, buy_sell_spread, currency_sink, inflation, item_rarity.

中文简介正在准备中。当前显示原文说明。

实测评分 未实测

查看安装方法

包含的文件(17)

  • SKILL.md11.9 KB
  • references/economy-elite-patterns.md2.2 KB
  • references/migration-notes.md2.5 KB
  • scripts/currency_label_sync.gd1.2 KB
  • scripts/currency_pickup_effect.gd1.2 KB
  • scripts/currency_resource.gd1.3 KB
  • scripts/dynamic_price_modifier.gd1.2 KB
  • scripts/economy_logger.gd489 B
  • scripts/economy_persistence_handler.gd1.3 KB
  • scripts/item_value_estimator.gd380 B
  • scripts/loot_drop_economy_bridge.gd1.2 KB
  • scripts/loot_table_weighted.gd1.9 KB
  • scripts/shop_item_data.gd1.3 KB
  • scripts/shop_system_logic.gd1.5 KB
  • scripts/trade_contract_resource.gd1.3 KB
  • scripts/transaction_manager.gd2.7 KB
  • scripts/wallet_manager_singleton.gd1.8 KB

SKILL.md(原文)

安装前可以查看交给 AI 代理的指令内容。

Decision Tree: Currency Representation

Economy typeStore asWhy
Soft currency (gold, scrap) with UI decimalsint cents / smallest unitExact math; display value / 100.0
Premium / idle quantities >> 2^31BigInt / multi-limb int (or carefully scaled float only if approx OK)32-bit int caps ~2.1B
Multiplayer / persistent walletAuthoritative int (or BigInt) on serverClient never finalizes spends
Prices with fractional display onlyStill int smallest unitAvoid 0.1 + 0.2 float drift

NEVER mix "use float for money" and "never use float for money" without this tree — pick one column and stick to it.

NEVER Do in Economy Systems

  • NEVER skip buy/sell spread — Same buy/sell price = infinite money.
  • NEVER skip currency sinks — Repairs, taxes, fees, consumables prevent inflation.
  • NEVER validate spends only on the client — Server/host is source of truth in multiplayer.
  • NEVER hardcode loot weights in scripts — Use Resources (loot_table_weighted.gd).
  • NEVER subtract before current >= amount — Underflow / negative wallets corrupt saves.
  • NEVER let UI mutate balances directly — UI requests; wallet_manager_singleton.gd / transaction_manager.gd decides.
  • NEVER ignore transaction logs in serious RPGs — Audit trail for missing currency.
  • NEVER exceed max caps without clamping — Cap before wrap / overflow.

Golden Path (MANDATORY)

  1. currency_resource.gd — denomination metadata
  2. wallet_manager_singleton.gd — balances + signals
  3. transaction_manager.gd — validated spend/grant pipeline
  4. Shop / loot / UI only after wallet+transactions exist

Delete ad-hoc EconomyManager gold tutorials — do not re-inline wallet logic in scenes.

Decision Points → Scripts

TaskLoadDo NOT Load
Balances / Autoload walletwallet_manager_singleton.gdInline gold ints on Player
Spend/grant validationtransaction_manager.gdUI calling gold -= n
Shop buy/sell + stockshop_item_data.gd + shop_system_logic.gdEqual buy/sell prices
Sales / reputation pricingdynamic_price_modifier.gd—
Weighted lootloot_table_weighted.gdHardcoded % in enemy scripts
Loot → wallet bridgeloot_drop_economy_bridge.gd—
HUD synccurrency_label_sync.gdPolling wallet in _process without signals
Save walleteconomy_persistence_handler.gd—
Pickup VFXcurrency_pickup_effect.gd—
Multi-item bartertrade_contract_resource.gd—

Available Scripts (full catalog)

Elite Deltas

MANDATORY for GPM logging, dynamic valuation, and moved shop/loot tutorials: economy-elite-patterns.md. Do NOT Load for wallet + transaction golden path only.

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

  • Resources — Currencies, shop items, loot tables, and trade contracts belong as shareable Resource assets so designers can retune prices and drop weights without code changes.
  • Resource — Use duplicate() when applying runtime price modifiers or per-merchant stock so one shop cannot mutate the shared .tres template for every vendor.
  • GDScript exports — @export buy/sell spreads, stock caps, currency ids, and loot weights so economy balance stays Inspector-driven.
  • Singletons (Autoload) — A WalletManager Autoload is the engine-supported pattern for balances that must survive scene changes (world ↔ shop ↔ menu).
  • Autoloads versus regular nodes — Keep global wallet state in Autoload; keep merchant UI and one-off shop logic as scene nodes so tests and multiplayer authority stay composable.
  • Using signals — Emit balance_changed / transaction_failed so HUD labels and pickup VFX subscribe without writing wallet balances from the UI.
  • Saving games — Persist wallet dictionaries (and stocked shop state) with the rest of progression data; never leave soft currency only in memory.
  • FileAccess — Read/write save payloads that include economy blobs; pair with project user:// paths for player-writable balance files.
  • JSON — Serialize currency_id → amount dictionaries as JSON-compatible structures for transparent save/load and analytics dumps.
  • Random number generation — Weighted loot and drop rolls must use Godot RNG APIs (randf, seeded RNG) rather than ad-hoc modulo hacks.
  • RandomNumberGenerator — Seedable RNG instances make loot-table Monte Carlo and deterministic balance tests reproducible.
  • High-level multiplayer — Spend/grant validation must be authoritative on the server; clients request transactions and apply confirmed balance RPCs only.

Related Skills

Prerequisites

  • godot-resource-data-patterns — Currency, ShopItem, LootTable, and TradeContract definitions are Resource-first; load this before inventing parallel data formats for prices and drops.
  • godot-autoload-architecture — WalletManager as Autoload needs disciplined ownership, init order, and namespacing so economy state does not become a god-object dump.
  • godot-signal-architecture — Balance and transaction signals must stay “signal up / call down” so UI never mutates the wallet directly.
  • godot-gdscript-mastery — Typed Resources, Dictionary wallets, and atomic purchase helpers assume solid GDScript patterns (guards before subtract, no float money).

Complements

  • godot-inventory-system — Buy/sell and barter are atomic wallet↔inventory exchanges; stock and capacity checks belong with inventory, not only with price math.
  • godot-save-load-systems — Economy persistence handlers should plug into the project save schema (versioning, migrate, encrypt premium balances if needed).
  • godot-rpg-stats — Charisma/reputation discounts and sink costs (repairs) need a consistent modifier layer rather than hardcoding multipliers in the shop UI.
  • godot-ui-containers — Shop screens and currency HUD layouts should bind to wallet signals; containers own presentation, WalletManager owns truth.
  • godot-quest-system — Quest gold rewards and turn-in sinks are major currency sources/sinks; wire rewards through the transaction API, not ad-hoc gold +=.
  • godot-combat-system — Loot-drop bridges listen to combat/loot events and grant funds without embedding economy rules inside damage pipelines.

Downstream / consumers

  • godot-monte-carlo-balancer — After sinks, loot weights, and shop spreads are Resource-driven, Monte Carlo farm/career sims prove inflation and time-to-afford bands before shipping curves.
  • godot-multiplayer-networking — Predicted UI spends and authoritative grant/spend RPCs build on the wallet’s request/validate/apply split.
  • godot-genre-idle-clicker — Idle/prestige currencies and sink loops assemble this skill with long-horizon balance and offline accrual genre glue.
  • godot-genre-action-rpg — Action-RPG shops, crafting sinks, and drop economies compose wallet + inventory + loot tables for progression pacing.

Master

  • godot-master — Library router and mirrored module entry; use when discovering peer skills or syncing shared script mirrors after Domain Skill edits.

评价

还没有评价。欢迎分享你的使用感受。

评论

无需登录即可发表。欢迎分享使用感受、提问,或说明在哪些环境下无法运行。

还没有评论。来写第一条吧。

提交后会立即公开。请勿填写邮箱、电话等个人信息。URL 最多 2 个。

0 / 1000 字

此表单受 reCAPTCHA 保护,适用 Google 的隐私权政策和服务条款。

同一仓库的技能

Bevy ECS skill for 2D sprite animation. Keywords: Bevy, sprite, animation, AnimationPlayer, AnimationClip, 2D.

中文简介正在准备中。当前显示原文说明。

thedivergentai/Game-Dev-Agentic-Skills8882026年10月17日 更新

Spawn and tune Bevy 0.20 directional, point, and spot lights, cascade shadows, distance fog, and a nearest-light shadow budget. Use when a 3D scene needs a sun, local lights, or fog on the camera. Keywords: DirectionalLight, PointLight, SpotLight, CascadeShadowConfig, DistanceFog, bevy_light.

中文简介正在准备中。当前显示原文说明。

thedivergentai/Game-Dev-Agentic-Skills8882026年10月17日 更新

Bevy ECS skill for PBR materials. Keywords: Bevy, StandardMaterial, PBR, material, ExtendedMaterial.

中文简介正在准备中。当前显示原文说明。

thedivergentai/Game-Dev-Agentic-Skills8882026年10月17日 更新

Bevy ECS skill for 3D level assembly. Keywords: Bevy, level, scene, mesh, world, ECS.

中文简介正在准备中。当前显示原文说明。

thedivergentai/Game-Dev-Agentic-Skills8882026年10月17日 更新

Bevy ECS skill for abilities. Keywords: Bevy, ability, cooldown, ECS, gameplay.

中文简介正在准备中。当前显示原文说明。

thedivergentai/Game-Dev-Agentic-Skills8882026年10月17日 更新

Rewrite Bevy 2D actors and cameras into 3D meshes and Camera3d while keeping gameplay components. Use when a Bevy 2D game should gain a perspective camera, mesh draw, and a planar velocity lifted onto XZ. Keywords: Camera2d, Camera3d, Sprite, Mesh3d, StandardMaterial, WishVelocity.

中文简介正在准备中。当前显示原文说明。

thedivergentai/Game-Dev-Agentic-Skills8882026年10月17日 更新

查看 thedivergentai 的全部技能

报告此技能的问题