circle-exclamation
STILL WORKING ON DOCS

backpackCustom Item

// IN DEVELOPMENT

Custom Items – Interaction Guide

Make any object interactive in ~2 minutes.

Minimal Implementation Steps

  1. Add NetworkBehaviour + IInteractable to your prefab

  2. Fill the three required methods

public string GetInteractableName() => "Mysterious Device";

public List<InteractionOption> GetOptions(GameObject player)
{
    return new List<InteractionOption>
    {
        new() { Id = "toggle", DisplayName = "Toggle Power", RequiresHold = false },
        new() { Id = "carry",  DisplayName = "Carry (hold E)", RequiresHold = true, HoldDuration = 0f },
    };
}
  1. Handle logic in OnInteract

Real Example: Mystery Radio (full carry + rotate + throw)

Quick Reference – Common Tags & Inputs

Tag
When it arrives
Typical usage

OnPress

Single click

Toggle, open, read

OnHoldStart

Hold begins

Grab object

OnHoldUpdate

Every frame while holding

Rotate, charge, drag effect

OnHoldReleased

Released normally

Drop nicely

OnHoldCanceled

Interrupted (too far, etc.)

Reset state

Last updated