roblox-gui

Use when building, animating, or debugging Roblox GUI elements including HUDs, menus, world-space UI, and player labels. Triggers on: ScreenGui setup, SurfaceGui or BillboardGui placement, UDim2 sizing questions, TweenService UI animations, responsive scaling, LocalScript GUI logic, ResetOnSpawn iss

By sentinelcore · 935 installs

npx skills add sentinelcore/roblox-skills --skill roblox-gui

Source repository · Upstream listing

Roblox GUI Reference GUI Container Types Container Parent Use Case ScreenGui PlayerGui HUDs, menus, overlays — always faces screen SurfaceGui BasePart World space UI on a part surface (signs, screens) BillboardGui BasePart or Model Floats above a part in 3D space (name tags, health bars) ScreenGui SurfaceGui BillboardGui UDim2 Sizing and Positioning UDim2.new(xScale, xOffset, yScale, yOffset) — scale is 0–1 relative to parent, offset is pixels. AnchorPoint shifts the element's pivot (0–1 on each axis): Responsive Design Prefer scale over offset so UI adapts to all screen sizes. TweenService Animations LocalScript Placement Location Notes StarterGui Cloned into PlayerGui on join; use ResetOnSpawn = false to persist StarterPlayerScripts Runs once, not reset on respawn; good for persistent managers StarterCharacterScripts Re runs each spawn; suited for character dependent UI ResetOnSpawn Common Patterns Quick Reference Pattern Key Setup Full screen overlay Size = UDim2.fromScale(1,1) , Position = UDim2.fromScale(0,0) Bottom center HUD bar AnchorPoint = (0.5,1) , Position = UDim2.new(0.5,0,1, 10) Padded list UIPadding + UIListLayout inside a Frame Scrollable list ScrollingFrame + UIListLayout ; set CanvasSize from UIListLayout.AbsoluteContentSize Rounded corners UICorner with CornerRadius = UDim.new(0, 8) Scaled text TextScaled = true on TextLabel/TextButton so font grows with container Dynamic frame height AutomaticSize = Enum.AutomaticSize.Y so frame expands to fit children Health bar Nested frames: outer = background, inner tweened by Size.X.Scale Name tag BillboardGui on Head, StudsOffset = Vector3.new(0, 2.5, 0) Common Mistakes Mistake Fix GUI disappears on respawn Set ResetOnSpawn = false or use StarterPlayerScripts UI looks wrong on mobile Use UDim2.fromScale + UIAspectRatioConstraint Script can't find PlayerGui Use player:WaitForChild("PlayerGui") Tween doesn't run Ensure the property is tweenable; Text is not, Position and Size are BillboardGui visible through walls Verify AlwaysOnTop = false AbsoluteSize is zero on first frame Read it inside task.defer or after first render step Clicks pass through overlapping frames Add a transparent input blocking Frame or set Modal = true SurfaceGui flickers Set LightInfluence = 0 ; ensure part isn't too thin Text tiny on mobile Set TextScaled = true — fixed TextSize doesn't adapt to screen size UI hard to test on mobile Use Studio's Device Emulator (Test tab → Device) to preview layouts