Reference API Roblox

Engine API

Website

Related

Reference API Roblox

DraggerService

A service that centralizes the global dragger settings that Studio's dragging tools read so they move, snap, and highlight objects consistently.

This class is not replicated. Its interface does not cross the network boundary.
This class is not creatable. Instances of this class cannot be created with Instance.new.
This class is a service. It is a singleton that may be acquired with GetService.
Tags: [NotCreatable, Service, NotReplicated]

Member index 19

HistoryMember
684AlignDraggedObjects: bool
684AngleSnapEnabled: bool
684AngleSnapIncrement: float
684AnimateHover: bool
684CollisionsEnabled: bool
684DraggerCoordinateSpace: DraggerCoordinateSpace
684DraggerMovementMode: DraggerMovementMode
684GeometrySnapColor: Color3
684HoverAnimateFrequency: float
684HoverThickness: float
684JointsEnabled: bool
684LinearSnapEnabled: bool
684LinearSnapIncrement: float
684PartSnapEnabled: bool
684PivotSnapToGeometry: bool
684ShowHover: bool
553ShowPivotIndicator: bool
732UseBoundingBoxes: bool
inherited from Instance
553Archivable: bool
670Capabilities: SecurityCapabilities
723IsInSandbox: bool
553Name: string
553Parent: Instance
702PredictionMode: PredictionMode
670Sandboxed: bool
680UniqueId: UniqueId
576AddTag(tag: string): null
573ClearAllChildren(): null
462Clone(): Instance
573Destroy(): null
486FindFirstAncestor(name: string): Instance
486FindFirstAncestorOfClass(className: string): Instance
486FindFirstAncestorWhichIsA(className: string): Instance
486FindFirstChild(name: string, recursive: bool = false): Instance
486FindFirstChildOfClass(className: string): Instance
486FindFirstChildWhichIsA(className: string, recursive: bool = false): Instance
486FindFirstDescendant(name: string): Instance
563GetActor(): Actor
486GetAttribute(attribute: string): Variant
462GetAttributeChangedSignal(attribute: string): RBXScriptSignal
631GetAttributes(): Dictionary
648GetChildren(): Instances
462GetDebugId(scopeLength: int = 4): string
707GetDescendants(): Instances
486GetFullName(): string
706GetStyled(name: string, selector: string?): Variant
657GetStyledPropertyChangedSignal(property: string): RBXScriptSignal
576GetTags(): Array
576HasTag(tag: string): bool
486IsAncestorOf(descendant: Instance): bool
486IsDescendantOf(ancestor: Instance): bool
664IsPropertyModified(property: string): bool
698QueryDescendants(selector: string): Instances
573Remove(): null
576RemoveTag(tag: string): null
664ResetPropertyToDefault(property: string): null
573SetAttribute(attribute: string, value: Variant): null
462WaitForChild(childName: string, timeOut: double): Instance
648children(): Instances
553clone(): Instance
573destroy(): null
553findFirstChild(name: string, recursive: bool = false): Instance
648getChildren(): Instances
553isDescendantOf(ancestor: Instance): bool
573remove(): null
462AncestryChanged(child: Instance, parent: Instance)
462AttributeChanged(attribute: string)
462ChildAdded(child: Instance)
462ChildRemoved(child: Instance)
462DescendantAdded(descendant: Instance)
462DescendantRemoving(descendant: Instance)
500Destroying()
657StyledPropertiesChanged()
553childAdded(child: Instance)
inherited from Object
647ClassName: string
647className: string
647GetPropertyChangedSignal(property: string): RBXScriptSignal
647IsA(className: string): bool
650isA(className: string): bool
647Changed(property: string)

Description

DraggerService is a central hub for dragger-related settings that Studio's dragging tools (and other dragger-like editing UX) read when deciding how to move, snap, and highlight objects. Because the Move, Scale, and Rotate tools all consult the same service, changing a setting here keeps their snapping, collision, joint, and hover behavior in sync. Each property reflects the corresponding Studio editing preference or global editing state.

History 70

Members 19

AlignDraggedObjects

TypeDefault
bool

When true, a dragged object is rotated to align with the surface it is dropped on instead of keeping its original orientation. This reflects Studio's "Align Dragged Objects" editing preference and is read by the dragging tools.

This property is not replicated. Its interface does not cross the network boundary.

History 4

Tags: [NotReplicated]

AngleSnapEnabled

TypeDefault
bool

When true, rotating an object with a dragger snaps the rotation to multiples of DraggerService.AngleSnapIncrement. When false, rotation is continuous and the increment has no effect.

This property is not replicated. Its interface does not cross the network boundary.

History 4

Tags: [NotReplicated]

AngleSnapIncrement

TypeDefault
float

The rotation snapping step, in degrees, applied while DraggerService.AngleSnapEnabled is true; it has no effect when angle snapping is disabled. The value is clamped to a small positive minimum, so it can never be set to 0 or a negative number.

This property is not replicated. Its interface does not cross the network boundary.

History 4

Tags: [NotReplicated]

AnimateHover

TypeDefault
bool

When true, the highlight drawn over the object under the cursor animates (pulses) at DraggerService.HoverAnimateFrequency. It only has a visible effect when DraggerService.ShowHover is true.

This property is not replicated. Its interface does not cross the network boundary.

History 4

Tags: [NotReplicated]

CollisionsEnabled

TypeDefault
bool

When true, dragging performs collision checking so that a moved object stops against other parts instead of passing through them. When false, objects can be dragged freely through existing geometry.

This property is not replicated. Its interface does not cross the network boundary.

History 4

Tags: [NotReplicated]

DraggerCoordinateSpace

TypeDefault
DraggerCoordinateSpace

Controls the coordinate space draggers operate in: DraggerCoordinateSpace.Object moves and rotates relative to the object's own orientation, while DraggerCoordinateSpace.World uses the global axes. Defaults to DraggerCoordinateSpace.Object.

This property is not replicated. Its interface does not cross the network boundary.

History 4

Tags: [NotReplicated]

DraggerMovementMode

TypeDefault
DraggerMovementMode

Selects how draggers compute movement: DraggerMovementMode.Geometric applies transforms directly, while DraggerMovementMode.Physical respects physical constraints while dragging. Defaults to DraggerMovementMode.Geometric.

This property is not replicated. Its interface does not cross the network boundary.

History 4

Tags: [NotReplicated]

GeometrySnapColor

TypeDefault
Color3

The Color3 used to draw the snapping indicators (such as pivot-to-geometry snap points) shown while dragging. It reflects the corresponding Studio color preference.

This property is not replicated. Its interface does not cross the network boundary.

History 4

Tags: [NotReplicated]

HoverAnimateFrequency

TypeDefault
float

How fast the hover highlight pulses, in cycles per second, when DraggerService.AnimateHover is true. The value corresponds to Studio's hover-animation speed preference, which ranges from 0.5 (very slow) to 10 (very fast).

This property is not replicated. Its interface does not cross the network boundary.

History 4

Tags: [NotReplicated]

HoverThickness

TypeDefault
float

The thickness of the outline drawn around the object beneath the cursor. It is only visible when DraggerService.ShowHover is true, and reflects Studio's hover-outline thickness preference.

This property is not replicated. Its interface does not cross the network boundary.

History 4

Tags: [NotReplicated]

JointsEnabled

TypeDefault
bool

When true, parts that come to rest against other surfaces during a drag are joined to them (for example, surface welds) when the drag finishes. When false, dragging does not create joints.

This property is not replicated. Its interface does not cross the network boundary.

History 4

Tags: [NotReplicated]

LinearSnapEnabled

TypeDefault
bool

When true, moving an object with a dragger snaps its position to a grid whose spacing is DraggerService.LinearSnapIncrement. When false, movement is continuous and the increment has no effect.

This property is not replicated. Its interface does not cross the network boundary.

History 4

Tags: [NotReplicated]

LinearSnapIncrement

TypeDefault
float

The spacing, in studs, of the movement grid applied while DraggerService.LinearSnapEnabled is true; it has no effect when linear snapping is disabled. The value is clamped to a small positive minimum, so it can never be set to 0 or a negative number.

This property is not replicated. Its interface does not cross the network boundary.

History 4

Tags: [NotReplicated]

PartSnapEnabled

TypeDefault
bool

When true, dragging snaps the moved object to salient points (such as edges and corners) on nearby parts, in addition to any grid snapping. When false, part-to-part snapping is off.

This property is not replicated. Its interface does not cross the network boundary.

History 2

Tags: [NotReplicated]

PivotSnapToGeometry

TypeDefault
bool

When true, dragging an object's pivot snaps it to points on surrounding geometry (for example vertices, edges, and face centers). When false, the pivot moves freely.

This property is not replicated. Its interface does not cross the network boundary.

History 4

Tags: [NotReplicated]

ShowHover

TypeDefault
bool

When true, draggers draw a highlight over the object beneath the cursor to indicate what a drag would affect. When false, no hover highlight is shown and DraggerService.AnimateHover, DraggerService.HoverThickness, and DraggerService.HoverAnimateFrequency have no visible effect.

This property is not replicated. Its interface does not cross the network boundary.

History 4

Tags: [NotReplicated]

ShowPivotIndicator

TypeDefault
bool

When true, the pivot indicator (the marker showing an object's pivot point) is shown while dragging. Defaults to false.

This property is not replicated. Its interface does not cross the network boundary.

History 3

Tags: [NotReplicated]

UseBoundingBoxes

TypeDefault
bool

When true, the dragging tools use the axis-aligned bounding box of an object for snapping instead of its precise geometric shape. This can simplify placement when objects have complex geometry. The setting corresponds to Studio's "Use Bounding Boxes" option in the dragger-settings ribbon dropdown. Defaults to false.

This property is not replicated. Its interface does not cross the network boundary.

History 1

Tags: [NotReplicated]

Settings