Custom Item
// IN DEVELOPMENT
Custom Items – Interaction Guide
Make any object interactive in ~2 minutes.
Minimal Implementation Steps
Add NetworkBehaviour + IInteractable to your prefab
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 },
};
}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