CraftCanvas documentation
Build graphical menus with signed books, text components and resource-pack glyphs. Screens, artwork, navigation, state and server actions are configured in YAML.
For server administrators
Section titled “For server administrators”- Install CraftCanvas and configure one resource-pack sender.
- 1st steps: assets and your first screen.
- Add graphics and sounds, controls, actions and conditions.
- Reuse themes and templates, or add animations.
| Task | Guide |
|---|---|
| Find a field, type, default or limit | YAML reference |
| Display item icons without copying vanilla PNGs | Vanilla sprites |
| Build a crafting board backed by player inventory | Inventory workbenches |
| Display item models in slots automatically | Automatic item models |
| Store preferences and insert dynamic text | Variables and formatting |
| Choose a screen font or override fragments with MiniMessage | Screen fonts |
| Add scrolling, search, component animations and GUI notifications | Interactive UI |
| Configure SQLite, MySQL, MariaDB or PostgreSQL | Player storage |
| Configure Nexo, CraftEngine or ItemsAdder | Integrations |
| Open, validate or inspect a screen | Commands and permissions |
| Diagnose loading, graphics or clicks | Troubleshooting |
| Understand native book controls and update behavior | Renderer limits |
| Upgrade an existing installation | Upgrading |
| Try optional button hover overlays on supported vanilla clients | Experimental shader hover |
For addon developers
Section titled “For addon developers”Start with the developer quick start, then use the API reference.
| Task | Guide |
|---|---|
| Open screens and update player data | Sessions and presentation |
| Register callbacks, conditions and providers | Extension points |
| Install YAML and artwork from your addon JAR | Addon bundles |
| Compile configuration and observe the result | Reloading |
| Listen for opening, closing and selection | Events |
| Build CraftCanvas or publish its API | Building from source |
The examples use schema 1 and the shipped frame screen. Whole-file examples can be copied directly; component and action fragments state where they belong. Matching vanilla clients are required. Review renderer limits when designing layouts.