Skip to content

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.

Transform Targets

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.

Transform Pipelines

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.

Transform Modifiers

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.