Skip to content

🎁 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)

  • GrantSimpleItemEffect
  • SimpleItemBag

Shows how a PickupEffect can modify actor state without any Inventory system.


2️⃣ Interactable Pickup Flow

  • SimpleItemPickupInteractable

Shows how to extend:

  • InteractablePickupBase
  • IsActor(...)
  • DoPickup(...)

👉 This is the input-driven pickup path (Auto / Press / Hold).


3️⃣ Simple Debug / UI Feedback

  • SimpleItemBagUI
  • SimpleWorldPrompt

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 GameObject context

This matches the core Pickups system behaviour.


✔ Interactable vs World Pickups

These samples only demonstrate the interactable path.

They do not cover:

  • TriggerPickup world 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.