gum-overview

Explains Gum UI framework architecture, project file types, usage modes, and MonoGame setup.

614|78|Updated Mar 11, 2015
One-click install
npx skills add https://github.com/vchelaru/Gum --skill gum-overview
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: gum-overview
Source: https://github.com/vchelaru/Gum/tree/main/gum-skills/gum-overview
Command: npx skills add https://github.com/vchelaru/Gum --skill gum-overview

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

Developers adding the Gum UI framework to a C# game often struggle to understand how the editor, runtime libraries, and project files fit together, and frequently misconfigure content loading by using the MonoGame Content Pipeline instead of plain file copies.

Core Features & Use Cases

  • Architecture Orientation: Explains the two visual layers (Forms controls vs raw visuals), the five XML project file types (.gumx, .gusx, .gucx, .gutx, .behx), and how states and categories work.
  • Usage Mode Selection: Guides the choice between code-only UI, project loading with dynamic name lookup, and project loading with strongly-typed code generation.
  • Correct Project Setup: Provides the GumService initialization pattern for MonoGame and the wildcard None copy rule that prevents runtime file-not-found failures.
  • Use Case: A developer starting a new MonoGame project asks how to add Gum; the Skill explains which NuGet package to install, how to wire GumService into Initialize/Update/Draw, and how to configure content files so the .gumx project loads at runtime.

Quick Start

Ask how to add Gum to a MonoGame project and how to load a .gumx UI project at runtime.

Frequently Asked Questions about gum-overview

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I add Gum UI to a MonoGame project?

Install the Gum.MonoGame NuGet package, then call GumService.Default.Initialize(this) in Initialize, GumUI.Update in Update, and GumUI.Draw in Draw. To load an editor project, pass the .gumx path to Initialize instead.

What is the difference between Gum Forms controls and raw visuals?

Forms controls are WPF-like interactive elements such as Button, TextBox, and ListBox for player interaction. Raw visuals like TextRuntime, SpriteRuntime, and ColoredRectangleRuntime are drawing primitives suited for non-interactive HUD and decoration.

Should I use code-only, dynamic loading, or codegen with Gum?

Code-only builds UI entirely in C# with no editor and is simplest to start. Dynamic loading reads a .gumx and finds elements by string name, while codegen generates strongly-typed classes via gumcli and is recommended for larger projects.

Why does my Gum project fail to find UI files at runtime?

Gum content files must be copied to the output directory with a wildcard None include in the .csproj, not added to Content.mgcb. The MonoGame Content Pipeline is the wrong approach and causes the project to fail loading its UI.

What file types does a Gum project contain?

A Gum project uses .gumx for the project itself, .gusx for screens, .gucx for reusable components, .gutx for standard element defaults, and .behx for behaviors. All are human-readable XML files.

Which platforms does the Gum runtime support?

The Gum runtime libraries load and render UI on MonoGame, KNI, FNA, raylib, and SkiaSharp. Platform-specific NuGet packages include Gum.MonoGame, Gum.KNI, and Gum.FNA.