Skip to content

title: Modules & Dependencies hide:

  • toc

Modules & Dependencies

RevFramework is modular by design: systems can be added, removed, and combined freely.

Where a dependency exists, it is intentional and explicitly defined.


✅ Dependency Rules (The Contract)

Independent systems (swappable)

These systems can be used on their own or in any combination.

Removing one does not break the others:

  • Inventory
  • Pickups
  • Crafting
  • Health
  • Status Effects
  • Currency

Integration between systems is handled through optional integration layers, not hard compile-time coupling. “Independent” here means compile-time independence — modules can be added or removed without breaking others.


One intentional dependency

  • Economy → requires Currency

Economy is a higher-level orchestration layer built on top of Currency (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.


🧱 Required vs Optional Modules

RevFramework separates required infrastructure from removable feature layers.

Required infrastructure (do not remove)

These provide the shared foundation used by all systems:

  • Core
  • Common
  • UnityIntegration
  • Editor define/guard utilities

These modules:

  • provide shared contracts and base behaviour
  • handle Unity-facing implementations (input, environment, etc.)
  • keep scripting defines and module guards in sync

Removing these will break compilation or disable core framework behaviour.


Modular runtime systems (safe to remove)

Each system is a self-contained module:

  • Inventory
  • Pickups
  • Crafting
  • Health
  • Status Effects
  • Currency
  • Economy (with Currency dependency)

You can remove any system as long as you are not using it.


Optional support layers (safe to remove)

These exist for learning, testing, and tooling — not runtime behaviour:

  • Samples
  • Teaching
  • Tests
  • Most Editor tooling
  • Unused Integrations

These can be safely removed without affecting runtime systems.


⚠️ Samples and Optional Integrations

Some sample scenes demonstrate cross-system behaviour (for example: Crafting + Currency, or Inventory-backed rewards).

These integrations are opt-in by design.

  • All sample scenes open cleanly with no missing scripts
  • Additional systems are not required to run a scene
  • Where integration is shown, scenes include notes explaining how to enable it

If you own additional systems:

  • You can enable integration by wiring the relevant services and adapters

If you do not:

  • The scene continues to function using standalone behaviour or demo adapters

RevFramework does not rely on “intentional missing scripts” to demonstrate modularity.


🧩 Common Mix & Match Setups

Currency only

Standalone value system for balances, transfers, policies, escrow, audit, and exchange.

Currency + Economy

Adds higher-level flows such as shops, crafting costs, rewards, and rollback-safe operations.

Health only

Damage/heal rules, shields, regen, combat state, and death pipelines.

Status Effects only

Buffs/debuffs, DOT/HOT, stacking, auras, immunity/cleanse/dispels — independent of Health.

Inventory only

Containers, equipment, filters, stacks, deltas, and snapshot tracking.

Pickups only

Interactables, pickup modes, decorators (VFX/SFX/etc.), cooldowns, and world logic.

Crafting only

Deterministic recipes, preflight checks, atomic crafting transactions, and refund safety.


🔌 About Integrations

Cross-system behaviour is implemented through optional integrations located in:

Integrations/

These integrations:

  • are explicit and opt-in
  • are safe to remove
  • depend on the systems they connect
  • never introduce hidden coupling into runtime systems

Examples:

  • Inventory ↔ Currency
  • Pickups ↔ Health
  • Crafting ↔ Inventory

🧪 Practical Guidance

If you are trimming systems:

  1. Remove the system’s Runtime folder only if you are not using that system at all
  2. Optionally remove its Editor, Teaching, and Samples folders
  3. Remove any related integration folders under:
Integrations/<System>/

If something fails to compile after removal, it is usually because an integration referencing that system is still present.


🧹 Cleanup & Restore (Optional)

RevFramework includes tools to help manage module removal:

  • Orphan Cleanup — removes leftover references after deleting a system
  • Restore Tools — allows re-adding previously removed content

These are optional utilities designed to simplify cleanup — not required for normal use.


📌 TL;DR

  • Systems are modular and mix-and-match
  • Integrations are optional and explicit
  • Core infrastructure must remain
  • Only one hard rule exists:

👉 Economy requires Currency