Install any skill in seconds. Free to start, no credit card required.
Get Started Free →jame581/godot-ui
Use when building user interfaces — Control nodes, themes, anchors, containers, and layout patterns
Passed 22 of 24 test cases with the skill, and 16 of 24 without it.
and 6 more in the full report
8 fixed14 passed either way0 still failing2 broke
Tokens, turns and time describe resource use, not a dollar price.
This benchmark measured an earlier version of the skill.
A newer attempt on gemini-3.8-flash on 10/20/2026 did not produce a publishable comparison (not comparable). The snapshot above is the previously measured run.
One of 8 test cases the skill fixed. Same model, same prompt, with and without the skill.
In Godot 4.7, I'm setting up screen reader live region announcements on my custom Control node via GDScript. Where is the live mode enum located now, and what enum value turns live announcements off?
| Checked | Without skill | With skill |
|---|---|---|
| The response identifies AccessibilityServer as the class containing live region enums. | Missed | Passed |
| The response specifies LIVE_OFF or 0 for turning off live announcements. | Passed | Passed |
The instructions your model reads when the skill loads.
All examples target Godot 4.3+ with no deprecated APIs; GDScript first, then C#.
Related skills: responsive-ui for multi-resolution scaling, hud-system for in-game HUD patterns, dialogue-system for dialogue UI presentation, tween-animation for UI transition and animation effects.
Control is the base class for all UI nodes — it lives in a separate scene-tree branch from Node2D/Node3D with a fundamentally different layout model.
| Feature | Node2D | Control |
|---|---|---|
| Position model | World-space position (pixels from parent) | Anchor + offset relative to parent rect |
| Size | No intrinsic size | Has size, minimum_size, custom_minimum_size |
| Theme | None | Inherits and overrides Theme resources |
| Focus | Not applicable | Built-in focus system (focus_mode, grab_focus()) |
| Mouse events | Manual via _input | gui_input, mouse_entered, mouse_exited |
| Layout helpers | None | Container subclasses auto-arrange children |
Every UI widget (Button, Label, LineEdit, etc.) extends Control. Key properties defined on Control itself:
anchor_left, anchor_top, anchor_right, anchor_bottom — fractional values (0.0–1.0) relative to the parent rectoffset_left, offset_top, offset_right, offset_bottom — pixel offsets applied after the anchor resolvessize_flags_horizontal, size_flags_vertical — how the node participates in Container layouttheme — a Theme resource; if null, walks up the tree to the nearest ancestor with onefocus_mode — whether the node can receive keyboard/gamepad focusPlace UI nodes inside a CanvasLayer (or directly under the scene root's built-in canvas) so they render on top of the 3D/2D world, unaffected by Camera transforms.
⚠️ Changed in Godot 4.7:
Control.accessibility_livechanged type fromDisplayServer.AccessibilityLiveModetoAccessibilityServer.AccessibilityLiveMode(LIVE_OFF = 0default,LIVE_POLITE,LIVE_ASSERTIVE) — accessibility enums/APIs moved to the newAccessibilityServersingleton. GDScript-compatible; breaks C# binary/source compatibility (rebuild against the new enum). See the 4.7 migration guide.
test cases passed, vs 16 / 24 without
More skills from the same source and nearby in the registry, with their headline benchmark lift.