API Reference
Complete type reference for all Octoputs components, processes, and ScriptableObjects. For usage context, see the Usage Guide. For hands-on tutorials, see Your First Drag and Drop.
Core Components
The foundation MonoBehaviours that define attachable objects and the points they attach to.
| Type |
Namespace |
Description |
AttachableObject |
Octoputs.Core |
Item that can be picked up. Four-phase lifecycle (Idle, Attaching, Attached, Detaching) with conditions and processes per phase. Usage |
AttachmentPoint |
Octoputs.Core |
Slot that accepts objects. Same four-phase lifecycle. Controls filtering, processes, and cancellation behavior. Usage |
AttachableObjectStorage |
Octoputs.Core |
Runtime container for detected/available attachable objects. Read by transfer processes. |
AttachmentPointStorage |
Octoputs.Core |
Runtime container for detected/available attachment points. Read by transfer processes. |
Detection
Detectors find objects or points and push them into storage containers. See Usage: Detection.
| Type |
Namespace |
Description |
AttachableDetector |
Octoputs.Transfer |
Finds AttachableObject components via pluggable strategy (trigger, raycast, reference). Pushes into AttachableObjectStorage. |
AttachmentPointDetector |
Octoputs.Transfer |
Finds AttachmentPoint components via pluggable strategy. Pushes into AttachmentPointStorage. |
HeldAttachableDetector |
Octoputs.Transfer |
Detects the object currently held by a specific AttachmentPoint. |
AttachableReferenceDetector |
Octoputs.Transfer |
Detects from a manually assigned list of AttachableObjects. |
AttachmentPointListDetector |
Octoputs.Transfer |
Detects from a manually assigned list of AttachmentPoints. |
Targets compute the destination position, rotation, and scale for the transform pipeline. See Usage: Targets.
| Type |
Description |
TransformTarget |
Follow a referenced Transform's position and rotation. |
RayHitTransformTarget |
Target the hit point of a raycast (surface dragging). |
BlendedTransformTarget |
Interpolate between two targets using a blend weight. |
LerpedTransformTarget |
Lerp from current position to a destination over a duration. |
CurveTransformTarget |
Follow a path defined by an AnimationCurve. |
SequenceTransformTarget |
Step through a list of targets in order. |
CompositeTransformTarget |
Combine position from one target and rotation from another. |
ConditionalTransformTransformTarget |
Switch between targets based on a Condition. |
WaypointTransformTarget |
Follow a sequence of waypoint positions. |
Pipelines combine a target, modifier chain, and applier into a single process. See Usage: Pipeline Types and Tutorial: Transform Pipelines.
| Type |
Description |
DirectTransformPipeline |
Sets position/rotation directly. Snappy, no physics. |
PhysicsTransformPipeline |
Moves via Rigidbody forces. Springy, collision-aware. |
JointTransformPipeline |
Uses ConfigurableJoint. Rope-like, constrained movement. |
Direct2DPipeline |
Direct position for 2D Rigidbody2D objects. |
Rigidbody2DPipeline |
Physics forces for 2D Rigidbody2D objects. |
HeldAttachableTransformPipeline |
Specialized pipeline for objects held by an AttachmentPoint. Default on new points. |
BatchTransformPipelineProcess |
Jobs-based batched pipeline for many simultaneous objects. |
BatchTransformPipelineManager |
Manager component for coordinating batch pipeline execution. |
Modifiers adjust the target transform before the applier writes it. They execute in list order (top to bottom). See Tutorial: Transform Pipelines.
Constraint and Snapping
| Type |
Description |
AxisLockModifier |
Lock movement on specific axes. |
PositionConstraintModifier |
Clamp position within min/max bounds. |
RotationConstraintModifier |
Clamp rotation within angle limits. |
OrbitConstraintModifier |
Constrain movement to an orbital path around a center point. |
HeightLockModifier |
Lock the Y position to a fixed height. |
Snap2DGridModifier |
Snap position to a 2D grid. |
Snap3DGridModifier |
Snap position to a 3D grid. |
Physics and Dynamics
| Type |
Description |
SpringModifier |
Apply spring-damper physics to position. Creates bouncy, springy movement. |
ElasticBandModifier |
Rubber-band effect that pulls back when stretched beyond a threshold. |
MomentumModifier |
Continue movement with inertia after release. |
KinematicsLimiterModifier |
Clamp velocity and acceleration to maximum values. |
Raycast and Collision
| Type |
Description |
CameraRaycastOffsetModifier |
Offset position based on a camera raycast (3D). |
CameraRaycast2DOffsetModifier |
Offset position based on a camera raycast (2D). |
Advanced2DRaycastOffsetModifier |
Advanced 2D raycast with multiple configuration options. |
BoundingOffsetFromHitNormalModifier |
Offset from a surface using the hit normal and object bounds. |
AdvancedCollisionAvoidance |
Prevent objects from penetrating colliders using sweep tests. |
OBBCollisionAvoidanceModifier |
Collision avoidance using oriented bounding boxes. |
DepenetrationModifier |
Push objects out of overlapping geometry. |
SurfaceSlideModifier |
Slide along surfaces instead of stopping at collisions. |
Alignment and Orientation
| Type |
Description |
SurfaceNormalAlignmentModifier |
Align rotation to match a surface normal. |
GravityAlignmentModifier |
Align rotation to the gravity direction. |
TiltByVelocityModifier |
Tilt the object in the direction of movement based on speed. |
LookAtModifier |
Rotate to face a target point or direction. |
Animation and Oscillation
| Type |
Description |
OscillatorTransformModifier |
Add oscillating motion (bob, sway) while held. |
NoiseOffsetModifier |
Apply Perlin noise offset for organic movement. |
PendulumSwingModifier |
Swing like a pendulum when picked up. |
Smoothing and Filtering
| Type |
Description |
SmoothPositionModifier |
Smooth position changes over time (damped follow). |
SmoothRotationModifier |
Smooth rotation changes over time. |
AntiJitterModifier |
Suppress small jittery movements below a threshold. |
Specialized
| Type |
Description |
DragPivotModifier |
Apply a drag pivot offset (grab point relative to object center). |
POIInfluenceModifier |
Attract toward nearby Points of Interest with configurable falloff. |
ScaleByDistanceModifier |
Scale the object based on distance from a reference point. |
ConditionalModifier |
Wraps another modifier and only applies it when a Condition is true. |
Drag Pivots
Pivots define where on the object the "grab point" is. Used by DragPivotModifier. See Usage: Transform Pipelines.
| Type |
Description |
BoundingBoxCenterDragPivot |
Grab from the center of the bounding box. |
BoundingBoxPercentageDragPivot |
Grab from a configurable percentage offset within the bounding box. |
RaycastHitPointDragPivot |
Grab from the exact point where the raycast hit. |
Vector3DragPivot |
Grab from a fixed Vector3 offset. |
Transfer
Components that orchestrate moving objects between storages. See Usage: Transfer.
| Type |
Namespace |
Description |
AttachableTransferProcess |
Octoputs.Transfer |
Moves objects from source storage to destination points. Configurable selection, amount, conditions, and filters. Usage |
AttachingAgent |
Octoputs.Transfer |
Full grab-hold-drop workflow. Configurable grab/drop triggers, holding point, automation. Usage / Tutorial |
DropProcess |
Octoputs.Transfer |
Process for executing a drop operation. |
Transfer Enums
| Enum |
Values |
Description |
SelectionMode |
First, Last, Random |
Which object to pick from storage |
TransferAmountMode |
OneAtOnce, AllAtOnce, CustomAmount |
How many objects to transfer per trigger |
CancellationStrategy |
Pause, Revert |
What happens when an attach/detach is cancelled mid-transition |
Filtering
Filters validate whether an object or point is eligible for a given operation. See Usage: Tag-Based Filtering and Tutorial: Tag-Based Filtering.
Attachable Filters
Applied to AttachmentPoint or AttachableTransferProcess to filter which objects are accepted.
| Type |
Description |
AttachableTagFilter |
Filter by AttachmentTag with configurable match mode. |
AttachableHeldStateFilter |
Filter by whether the object is currently attached somewhere. |
AttachableEligibilityFilter |
Filter by whether the object's own conditions permit attachment. |
AttachableStatFilter |
Filter by numeric stat values using comparisons. |
AttachedToEvaluatedObject |
Filter by whether the object is attached to the point being evaluated. |
Attachment Point Filters
Applied to AttachableObject or AttachableTransferProcess to filter which points are eligible.
| Type |
Description |
AttachmentPointTagFilter |
Filter by AttachmentTag with configurable match mode. |
AttachmentPointIsHoldingFilter |
Filter by whether the point currently holds an object. |
AttachmentPointCanAttachFilter |
Filter by whether the point's conditions allow attachment. |
AttachmentPointPhaseFilter |
Filter by current lifecycle phase (Idle, Attaching, etc.). |
AttachmentPointStatFilter |
Filter by numeric stat values. |
AttachmentPointHoldingObjectWithTagFilter |
Filter by whether the held object has a specific tag. |
Conditions
Condition types specific to Octoputs. These extend the Jungle Condition base class.
| Type |
Description |
AttachableObjectIsDraggedCondition |
True when the referenced attachable is currently attached. |
AttachmentPointHoldingCondition |
True when the point is holding any object. |
AttachmentPointHoldingTaggedObjectCondition |
True when the point holds an object with a specific tag. |
AttachmentPointPhaseCondition |
True when the point is in a specific lifecycle phase. |
AttachmentPointStatCondition |
True when a stat value meets a comparison threshold. |
DraggableInZoneCondition |
True when the attachable is attached to any point. |
DraggableStatCondition |
True when an attachable's stat meets a comparison threshold. |
GameObject Conditions
These conditions evaluate a GameObject reference rather than a specific component.
| Type |
Description |
AttachmentPointStateCondition |
Check the lifecycle phase of an AttachmentPoint on the GameObject. |
AttachmentTagCondition |
Check whether the GameObject has specific attachment tags. |
CanAttachObjectCondition |
Check whether an object can attach to a point on the GameObject. |
DraggableStateCondition |
Check the lifecycle phase of an AttachableObject on the GameObject. |
IsAttachmentPointCondition |
Check whether the GameObject has an AttachmentPoint component. |
IsDraggableCondition |
Check whether the GameObject has an AttachableObject component. |
Measurement
Track motion and spatial data on objects. See Usage: Measurement.
| Type |
Description |
ObjectMeasurer |
MonoBehaviour that tracks configured measurements on a transform. |
AttachedObjectMeasurer |
Variant that automatically measures the object held by an AttachmentPoint. |
MeasurementKey |
ScriptableObject used as a named key to access measurement data. |
PositionMeasurement |
Tracks world position. |
VelocityMeasurement |
Tracks velocity vector. |
SpeedMeasurement |
Tracks scalar speed. |
AccelerationMeasurement |
Tracks acceleration vector. |
AngularVelocityMeasurement |
Tracks angular velocity. |
DistanceTraveledMeasurement |
Tracks cumulative distance. |
BoundsMeasurement |
Tracks world-space bounds. |
ScriptableObjects
Shared assets used for configuration and identification across the framework.
| Type |
Menu Path |
Description |
AttachmentTag |
Create > Jungle > Octoputs > Attachment Tag |
Named tag for categorizing objects and points. Used by all tag filters. |
MeasurementKey |
Create > Jungle > Octoputs > Measurement Key |
Named key for accessing specific measurement data from an ObjectMeasurer. |
DraggableStatMetric |
Create > Jungle > Octoputs > Draggable Stat Metric |
Defines a named stat tracked on AttachableObjects. |
AttachmentPointStatMetric |
Create > Jungle > Octoputs > Attachment Point Stat Metric |
Defines a named stat tracked on AttachmentPoints. |
ItemShape |
Create > Jungle > Octoputs > Item Shape |
Defines the shape footprint of an attachable for grid-based storage layouts. |
Stats
Per-object and per-point numeric stat tracking.
| Type |
Description |
DraggableStatStorage |
Stores named stat values on an AttachableObject. |
AttachmentPointStatStorage |
Stores named stat values on an AttachmentPoint. |
DraggableStatEvaluator |
Evaluates a stat against a threshold using a comparison operator. |
AttachmentPointStatEvaluator |
Evaluates a point stat against a threshold. |
StatComparison |
Enum: Equal, NotEqual, Less, LessOrEqual, Greater, GreaterOrEqual. |
Layout Strategies
Arrange attached objects spatially within an attachment point hierarchy. Part of the Octoputs.JungleExtensions package.
| Type |
Description |
GridLayoutStrategy |
Arrange in rows and columns. |
CircularLayoutStrategy |
Arrange in a circle around a center. |
FanLayoutStrategy |
Arrange in a fan/arc (cards in hand). |
LinearLayoutStrategy |
Arrange in a line along an axis. |
StackLayoutStrategy |
Stack vertically with configurable offset. |
Value Assets
ScriptableObject-based value providers for the Jungle value system.
| Type |
Description |
AttachableValueAsset |
Provides an AttachableObject reference as an IValue. |
AttachmentPointValueAsset |
Provides an AttachmentPoint reference as an IValue. |
AttachableStorageValueAsset |
Provides an AttachableObjectStorage reference as an IValue. |
AttachmentPointStorageValueAsset |
Provides an AttachmentPointStorage reference as an IValue. |