Modules & Dependencies¶
RevFramework is modular by default: most systems can be added, removed, and mixed freely. Where a dependency exists, it is intentional and stated explicitly.
✅ Dependency Rules (The Contract)¶
Independent systems (swappable)¶
These systems can be used on their own or in any combination, and removing one does not break the others:
- Inventory
- Pickups
- Crafting
- Health
- Status Effects
- Currency
Integration between these systems is done through adapters/bridges, not hard compile-time coupling. “Independent” here means compile-time independence: modules can be added/removed without breaking others. Some sample scenes demonstrate optional integrations and may require additional SKUs.
One intentional dependency¶
- Economy → requires Currency
Economy is a high-level orchestration layer built on top of the Currency engine (ledgers, policies, balances). If you remove Currency, Economy is not supported and will not compile.
You may safely remove Economy at any time if you only need Currency.
⚠ Sample Scenes and Optional SKUs¶
Some sample scenes demonstrate optional cross-module integrations (for example: Crafting + Currency, or Inventory-backed rewards).
These integrations are opt-in by design.
- All sample scenes open cleanly with no missing scripts.
- Optional modules are not required to run a scene.
- Where an integration is optional, the scene includes clear in-scene notes explaining how to enable it if the relevant SKU is installed.
If you own an additional module/SKU: - You may add the corresponding service and adapter components to the scene to enable the integration.
If you do not: - The scene continues to function using standalone or sample adapters.
RevFramework does not rely on “intentional missing scripts” to demonstrate modularity. Optional integrations are explicit, discoverable, and safe.
🧩 Common Mix & Match Setups¶
Currency only¶
Use Currency as a standalone value system for balances, transfers, policies, escrow, audit, exchange, etc.
Currency + Economy¶
Use Economy when you want higher-level flows like shops, crafting costs, rewards, and rollback-safe operations.
Health only¶
Use Health for damage/heal rules, shields, regen, combat state, and death pipelines.
Status Effects only¶
Use Status Effects for buffs/debuffs, DOT/HOT, stacking, auras, immunity/cleanse/dispels — without Health.
Inventory only¶
Use Inventory for containers, equipment, filters, stacks, deltas, and snapshot tracking.
Pickups only¶
Use Pickups for interactables, pickup modes, decorators (VFX/SFX/etc.), cooldowns, and world pickup logic.
Crafting only¶
Use Crafting for deterministic recipes, preflight checks, atomic crafting transactions, and refund safety.
🔌 About Adapters & Bridges¶
Adapters/bridges provide optional integration between modules (for example: Inventory-backed currency, crafting costs, pickup rewards, etc.).
- If you delete a system, also remove any adapters/bridges that were specifically targeting that system.
- Where a cross-system adapter exists, it lives in a clearly named Adapters or Bridges area so it’s easy to spot.
🧪 Practical Guidance¶
If you’re trimming modules in a project:
- Remove the Runtime system folder(s) you don’t want.
- Optionally remove matching Editor, Teaching, and Samples folders for those systems.
- Remove any related Bridges/Adapters folders you no longer need.
If something fails to compile after removing a module, it’s almost always because an adapter/bridge for that module is still present.
📌 TL;DR¶
- Everything is independent and mix-and-match…
- …except Economy, which requires Currency.