|GrabPriorityWhenGrabbed|'''[[Type:Nullable`1|Nullable`1]]<[[Type:Int|Int]]>'''|TypeAdv4=true| Optionally changes the grab priority of the object when it is already being grabbed. Useful for different behavior when it can be grab stolen by another player.
|CustomCanGrabCheck|{{RootFieldType|SyncDelegate`1|[[Type:GrabCheck|GrabCheck]]}}|TypeAdv5=true| ''Not Usable inside Resonite'' Requires a mod for interacting with [[Sync Delegates]]
|CustomCanGrabCheck|{{RootFieldType|SyncDelegate`1|[[Type:GrabCheck|GrabCheck]]}}|TypeAdv5=true| ''Not Usable inside Resonite'' Requires a mod for interacting with [[Sync Delegates]]
|EditModeOnly|Bool| Determines if this grabbable is effective only in [[Edit Mode]]
|EditModeOnly|Bool| Determines if this grabbable is effective only in [[Edit Mode]]
|AllowSteal|Bool| Other users can grab the slot this component is attached to.
|AllowSteal|Bool| Other users can grab the slot this component is attached to. Like a flag in capture the flag.
|DropOnDisable|Bool| The parent slot will be dropped when this component is disabled.
|DropOnDisable|Bool| The parent slot will be dropped when this component is disabled.
|ActiveUserFilter|ActiveUserHandling|
|ActiveUserFilter|ActiveUserHandling| Changes if this component can be grabbed based on who is the active user if any.
|OnlyUsers|{{RootFieldType|SyncList`1|[[Type:UserRef|UserRef]]}}|TypeAdv10=true| A list of users that are allowed to grab this slot.
|OnlyUsers|{{RootFieldType|SyncList`1|[[Type:UserRef|UserRef]]}}|TypeAdv10=true| A list of users that are allowed to grab this slot.
|__legacyActiveUserRootOnly|Bool| ''Automatically Assigned'' Legacy do not use. Used to handle whether only the active user can grab. Use <code>ActiveUserFilter</code> instead!
}}
}}
== Behavior==
== Behavior==
The interaction between <code>ReparentOnRelease</code>, <code>PreserveUserSpace</code> and any [[:Category:GrabbableExtensions|Grabbable Extensions]], such as [[GrabbleReparentBlock (Component)|GrabbableReparentBlock]], is somewhat complex.
The interaction between <code>ReparentOnRelease</code>, <code>PreserveUserSpace</code> and any [[:Category:GrabbableExtensions|Grabbable Extensions]], such as [[Component:GrabbleReparentBlock|GrabbableReparentBlock]], is somewhat complex.
When released, the following will be evaluated, in order:
When released, the following will be evaluated, in order:
#If <code>ReparentOnRelease</code> is true, the slot will be parented to the value in <code>_lastParent</code>
#If <code>ReparentOnRelease</code> is true, the slot will be parented to the value in <code>_lastParent</code>
#If <code>PreserveUserSpace</code> and <code>_lastParentIsUserSpace</code> is true, the slot will be parented to [[Local User Space]]
#If <code>PreserveUserSpace</code> and <code>_lastParentIsUserSpace</code> is true, the slot will be parented to [[Local User Space]]
#If an [[:Category:GrabbableExtensions|Grabbable Extension]] exists above this component in the hierarchy, and it is within the <code>MaxDepth</code> specified in the block, the slot will be parented to [[Local User Space]]
#If an [[Type:IGrabbable|IGrabbable]] exists above this component in the hierarchy, and it is within the <code>MaxDepth</code> specified in the block, the slot will be parented to [[Local User Space]]
#Otherwise, the slot is parented to root.
#Otherwise, the slot is parented to root.
----You can drive the scale of a Grabbable object if the <code>Scalable</code> boolean is false.
----You can drive the scale of a Grabbable object if the <code>Scalable</code> boolean is false.
Line 41:
Line 40:
== Examples ==
== Examples ==
{{stub}}
{{stub}}
== See Also ==
* [[Type:IGrabbable|IGrabbable]] for a list of grabbable types that act similar but not the same as this component.
Determines what gets grabbed if several grabbable objects are touching someone's grab sphere. The IGrabbable with the highest priority will be grabbed first. If the highest priority ties with another IGrabbable, it will grab both of those and ignore any lower priority IGrabbables.
Optionally changes the grab priority of the object when it is already being grabbed. Useful for different behavior when it can be grab stolen by another player.
Receivable determines if a grabbable can be dropped onto a GrabbableReceiverSurface when let go of. The receivable has to be close enough for the receiver to receive it.
When released, the following will be evaluated, in order:
If ReparentOnRelease is true, the slot will be parented to the value in _lastParent
If PreserveUserSpace and _lastParentIsUserSpace is true, the slot will be parented to Local User Space
If an IGrabbable exists above this component in the hierarchy, and it is within the MaxDepth specified in the block, the slot will be parented to Local User Space
Otherwise, the slot is parented to root.
You can drive the scale of a Grabbable object if the Scalable boolean is false.
Examples
This article or section is a Stub. You can help the Resonite Wiki by expanding it.
See Also
IGrabbable for a list of grabbable types that act similar but not the same as this component.