Skip to content

🎁 Pickups Samples — Scenes, Demo Helpers & Diagnostics

The Pickups Samples folder contains teachable demo scenes, lightweight helper scripts, and diagnostics tools for exploring the Pickups system.

These are intended for:

  • Learning how the system works
  • Debugging pickup behaviour
  • Profiling and validating behaviour under stress
  • Rapid prototyping

👉 They are not part of the runtime framework and are safe to remove.


📂 Folder Layout

Samples/
  Scenes/             // Runnable demo scenes (00–99)
  DemoHelpers/        // Lightweight sample scripts (no Inventory required)
  ScriptableObjects/  // Example PickupEffect assets used in scenes
  Diagnostics/        // Performance smoke tests (developer-only tools)

🎬 Sample Scenes

Each scene demonstrates a specific part of the Pickups system and is paired with a Teachable Panel.

Scene Focus
00 — Quickstart (Minimal) Standalone pickup flow (no Inventory / Health)
01 — World Pickups + Interactables Trigger vs input-driven pickups
02 — Decorators + Cooldowns Decorator chains and cooldown behaviour

👉 Open the corresponding panel in each scene to inspect behaviour live.


🧠 How These Samples Work

✔ Scene-Driven Examples

  • All behaviour is demonstrated directly in scenes
  • No prefab library or required setup is enforced
  • Scenes show the minimal wiring needed for each pickup flow

✔ Demo Helpers (Not Systems)

DemoHelpers/ contains:

  • Simple item storage (SimpleItemBag)
  • Minimal UI (SimpleItemBagUI)
  • Basic input service (DebugKeysInputService)

These are:

  • Sample-only
  • Runtime-only (no persistence)
  • Not production systems

✔ ScriptableObject Examples

ScriptableObjects/ contains example PickupEffect assets.

They demonstrate:

  • Core effects
  • Decorator wrapping
  • Visual/audio behaviour

👉 These are examples, not a reusable effect library.


✔ Diagnostics (Performance Smoke Tests)

Diagnostics/ contains developer-only performance tests.

These are used to:

  • Profile effect application cost
  • Measure decorator chain depth scaling
  • Observe cooldown overhead
  • Detect allocation issues

👉 These are: - Not benchmarks - Not gameplay systems - Not performance guarantees

They exist purely to help developers understand scaling behaviour and misuse patterns.


✔ Inventory Independence

These samples do not require the Inventory system.

Instead:

  • Items are stored as simple string → int pairs
  • No services, adapters, or backend systems are involved

This keeps the focus on the pickup pipeline itself.


⚠️ Important Notes

These are demo assets

  • Not production-ready
  • Not part of the framework API
  • Not intended as a reusable system

Teachable Panels are developer tools

  • Used for learning and debugging
  • Not gameplay UI
  • Reflect real runtime behaviour

Authority is optional

  • If no IPickupAuthority is present → pickups are allowed (single-player default)
  • Multiplayer projects must provide their own authority implementation

🧪 Quick Start

  1. Open a scene in Samples/Pickups/Scenes
  2. Press Play
  3. Open the corresponding Teachable Panel
  4. Interact with pickups or apply effects
  5. (Optional) Use Diagnostics to profile behaviour under stress

🧹 Safe to Remove

All content in this folder is optional.

Removing it will not affect:

  • The Pickups runtime system
  • Other RevFramework modules

🧠 Summary

These samples exist to answer:

“How do pickups behave in practice?”

They provide:

  • Minimal, focused examples
  • Live inspectable behaviour
  • Optional performance diagnostics
  • Zero hidden setup

Learn from them — then build your own implementation.