Enhance draggable function documentation

Added detailed documentation for the draggable function, including options, supported instances, and an example of usage.
This commit is contained in:
sindri 2026-03-02 13:27:02 +01:00 committed by GitHub
parent bab3cfd920
commit 6a55fc455a
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -62,3 +62,59 @@ Creates an Action that makes a GuiObject draggable using input events (mouse and
```lua
draggable(opts: DraggableOptions?) -> Action
DraggableOptions
• axis: "x" | "y" | "both" (default "both")
Constrains dragging to a single axis or allows free movement.
• onDragStart: (startPos: UDim2) -> () (optional)
Called when dragging begins. Receives the starting Position.
• onDrag: (newPos: UDim2) -> () (optional)
Called while dragging. Receives the updated Position.
• onDragEnd: (endPos: UDim2) -> () (optional)
Called when dragging ends. Receives the final Position.
Supported instances
draggable() must be applied to an instance that:
• is a GuiObject (e.g., Frame, TextButton, ImageLabel, ImageButton),
• has a writable Position property,
• exposes input events such as InputBegan and InputChanged.
If applied to a non-GuiObject, the Action should be treated as a no-op
Example: Basic draggable panel
local Players = game:GetService("Players")
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local vide = require(ReplicatedStorage:WaitForChild("vide"))
local create = vide.create
local mount = vide.mount
local playerGui = Players.LocalPlayer:WaitForChild("PlayerGui")
local function App()
return create "ScreenGui" {
Name = "DraggableExample",
ResetOnSpawn = false,
Parent = playerGui,
create "Frame" {
Position = UDim2.fromOffset(200, 150),
Size = UDim2.fromOffset(420, 240),
BackgroundTransparency = 0.1,
create "UICorner" { CornerRadius = UDim.new(0, 16) },
vide.draggable(), -- defaults to axis = "both"
create "TextLabel" {
BackgroundTransparency = 1,
Size = UDim2.fromOffset(420, 50),
Text = "Drag this panel",
TextSize = 20,
},
}
}
end
mount(App, playerGui)