godot-ui-rich-text — Claude Code skill for Godot BBCode
A skill for RichTextLabel work in Godot: BBCode markup, clickable links, custom shader effects and dialogue systems.
npx skills add thedivergentai/Game-Dev-Agentic-Skills --skill godot-ui-rich-text -a claude-codeWhat godot-ui-rich-text does
The skill hands your agent ready-made patterns for Godot's RichTextLabel: BBCode tags, meta links wired to meta_clicked, RichTextEffect shaders and dynamic text. Ten GDScript files ship with it, covering a rainbow color cycle, a horror glitch, and a typewriter controller that reads [pause] and [speed] tags.
A good chunk of the text is about what breaks. Parsing a long string with hundreds of tags every frame tanks performance, so formatted strings get cached. Typewriter animation runs on visible_characters rather than rewriting the string each frame — otherwise parsing overhead and flicker show up. Custom effects also need registering in custom_effects or via install_effect(); the script alone does nothing.
For player-typed text in chats and lobbies there's a sanitizer. Skip it and someone types an [img] tag with a huge image path and your layout is gone. Heavy logic stays out of meta_clicked because that signal fires on the main thread — emit a command and process it elsewhere. Image sizes in [img] go through width_unit and height_unit instead of pixels, since fixed pixel widths fall apart at higher resolutions.
What it helps with
- render dialogue with pauses and variable typing speed
- make item and quest links clickable inside text
- block BBCode injection from player chat input
- scale [img] tags to match the current font size
- add a custom glitch or color-cycle effect
Example prompts for the agent
- Build a dialogue box on RichTextLabel with [pause] and [speed] tags
- Wire meta_clicked for links like item: and quest:
- Run chat text through the sanitizer before assigning it
How to install godot-ui-rich-text
1Skills CLI (Vercel)
npx skills add thedivergentai/Game-Dev-Agentic-Skills --skill godot-ui-rich-text -a claude-code2Manually: put the files in place
~/.claude/skills/godot-ui-rich-text/SKILL.mdCopy the whole skill folder; for one project use .claude/skills/godot-ui-rich-text/
1Skills CLI (Vercel)
npx skills add thedivergentai/Game-Dev-Agentic-Skills --skill godot-ui-rich-text -a codex2Manually: put the files in place
.agents/skills/godot-ui-rich-text/SKILL.mdFor all projects use ~/.agents/skills/
1Skills CLI (Vercel)
npx skills add thedivergentai/Game-Dev-Agentic-Skills --skill godot-ui-rich-text -a cursor2Manually: put the files in place
.cursor/skills/godot-ui-rich-text/SKILL.mdCursor also reads .agents/skills/ and .claude/skills/
1GitHub CLI
gh skill install thedivergentai/Game-Dev-Agentic-Skills godot-ui-rich-text2Manually: put the files in place
.github/skills/godot-ui-rich-text/SKILL.md1Skills CLI (Vercel)
npx skills add thedivergentai/Game-Dev-Agentic-Skills --skill godot-ui-rich-text -a gemini-cli2Platform CLI
gemini skills install https://github.com/thedivergentai/Game-Dev-Agentic-Skills --path skills/godot-ui-rich-textManually: put the files in place
.devin/skills/godot-ui-rich-text/SKILL.mdThe legacy .windsurf/skills/ path still works
Skills CLI (Vercel)
npx skills add thedivergentai/Game-Dev-Agentic-Skills --skill godot-ui-rich-text -a opencodeClaude.ai
Zip the folder and upload it in Settings → Capabilities → Skills
Step by step, with commands for each platform: How to install skills in Claude Code: five ways
Questions about godot-ui-rich-text
How do I install godot-ui-rich-text in Claude?
Run npx skills add thedivergentai/Game-Dev-Agentic-Skills --skill godot-ui-rich-text -a claude-code. The skill lands at ~/.claude/skills/godot-ui-rich-text/SKILL.md.
What does godot-ui-rich-text do?
It covers RichTextLabel in Godot: BBCode tags, meta links, custom RichTextEffect shaders and dynamic content. Ten GDScript files come with it.
Why not use visible_ratio for a typewriter effect?
Per-character pause and speed tags need visible_characters with explicit indexing, as in rich_text_typewriter_controller.gd. visible_ratio is unreliable for that logic.