🎁 Pickups Samples — Demo Helpers (No Inventory Required)¶
The Pickups Samples folder contains lightweight demo components used to demonstrate the Pickups system without requiring the Inventory system.
These scripts are designed for:
- Learning the pickup flow
- Testing effects quickly
- Prototyping simple item behaviour
👉 They are not part of the runtime framework and are safe to remove.
📌 What These Samples Show¶
These samples demonstrate three core pickup flows:
1️⃣ Effect → Data (No Inventory)¶
GrantSimpleItemEffectSimpleItemBag
Shows how a PickupEffect can modify actor state without any Inventory system.
2️⃣ Interactable Pickup Flow¶
SimpleItemPickupInteractable
Shows how to extend:
InteractablePickupBaseIsActor(...)DoPickup(...)
👉 This is the input-driven pickup path (Auto / Press / Hold).
3️⃣ Simple Debug / UI Feedback¶
SimpleItemBagUISimpleWorldPrompt
Provides minimal visual feedback for demo scenes:
- IMGUI overlay (bag contents)
- Billboard helper for world labels
4️⃣ Sample Input Layer¶
DebugKeysInputService
A basic IInputService implementation so demo scenes work out-of-the-box.
🧠 Key Design Notes¶
✔ No Inventory Dependency¶
These samples do not use the Inventory system.
Instead:
- Items are stored as
string → int - Data is written to
SimpleItemBag
This keeps the demo:
- Small
- Easy to understand
- Independent from other systems
✔ Runtime-Only Data¶
SimpleItemBag:
- Uses a
Dictionary<string, int> - Is not serialized by Unity
- Does not persist between sessions
👉 This is demo state only, not a save system.
✔ Null-Damageable Support¶
Some effects (e.g. GrantSimpleItemEffect) implement:
IEffectAllowsNullDamageable
This means:
- They can run without an
IDamageable - They rely only on the
GameObjectcontext
This matches the core Pickups system behaviour.
✔ Interactable vs World Pickups¶
These samples only demonstrate the interactable path.
They do not cover:
TriggerPickupworld pickups- Authority-gated consumption
- Networked pickup behaviour
Those are shown elsewhere in the system and teachables.
⚠️ What These Samples Do NOT Provide¶
To avoid confusion:
These samples do not include:
- ❌ Inventory system integration
- ❌ Save/load or persistence
- ❌ Multiplayer or authority handling
- ❌ Production-ready UI
- ❌ Data validation, stacking rules, or item definitions
🧪 Intended Usage¶
Use these scripts when you want to:
- Quickly test pickup effects
- Demonstrate behaviour in isolation
- Build minimal prototype scenes
👉 Replace them with your own systems in production.
🧹 Safe to Remove¶
All files in this folder are optional.
Removing them will not affect:
- The Pickups runtime system
- Other RevFramework modules
🧠 Summary¶
These samples exist to answer one question:
“How do pickups work without anything else?”
They provide a minimal, dependency-free way to understand:
- Effect application
- Interactable pickup flow
- Basic actor data mutation
Nothing more. Nothing hidden.