AlphaLists, overlays, gamepad focus and translations

The game UI editor for Godot and the web

Design menus, HUDs and inventories on one canvas. The same file runs natively in Godot 4 and in the browser, and your programmers get a short contract instead of a folder of screenshots.

Envy is in alpha. We're building it on our own games first and opening it to a small group from the waitlist.

The Envy editor with The Last Hunt's main menu open. The New hunt menu item is selected, its states preview on the canvas, and the Intro animation plays on the timeline.

Shown: the editor's v2 design, now in development. Everything on its canvas works in the current editor; screen statuses, comments and team pages are Planned.

One .envy.json file, read natively wherever your game ships

  • Godot 4 Native Controls
  • Web 22 KB runtime
  • Playable HTML Any browser
  • JSON Schema + CLI
  • Unity Planned
  • Unreal Planned

Most game UI gets built twice. Once in a design tool, then again by hand in the engine. Envy skips the second time: layout, states, data and animation live in one document that Godot and the browser both read, so what you draw is what players get.

FIG 0.1

Native controls

In Godot, Envy builds real Control nodes from the document. Focus, gamepad input and theming stay the engine's own.

FIG 0.2

One document

Layout, states, bindings and keyframes sit in one JSON file. The web and Godot runtimes both read it as is.

FIG 0.3

Game code stays put

Your code only knows event names and data paths. Restyle and re-export as often as you like and it never changes.

Lay out every screen on one canvas. Anchors and auto layout work like Godot's own containers, so nothing gets translated on export.

Root 1920 × 1080Live runtime
The Last Hunt main menu at 16:9

Auto layout

Rows and columns with gap, padding and wrap. In Godot they become VBox, HBox and Flow containers.

Anchors

Pin a layer to an edge, a corner or the center. One layout covers 16:9, 21:9, 16:10 and 4:3.

Text styles

The Last Hunt uses 21 shared styles, from Display to Lore. Change one and every screen follows.

Tokens

Every color is a token. Change $ember and every focus bar, meter and map marker follows.

2.0ComponentsComponents docs

Build a button once. Variants, states and properties keep every copy on every screen in step.

Variants

The Last Hunt's Button is one set: 4 styles, 4 states and 3 sizes. Swap an instance between them in one click.

States

Hover, pressed and disabled are small patches on the component, and you preview them right on the canvas.

Properties

Expose a label, a toggle or a nested swap. An instance changes in one field instead of a dig through layers.

A real library

180 components in 30 sets ship with The Last Hunt, from glyphs and prompts to tooltips and toasts.

3.0States & dataData docs

Bind it to the game and watch it react. Preview every state with sample data and named scenarios before a line of game code exists.

The Last Hunt boss fight HUD

Bindings

Bind text, value, max, visibility, opacity and disabled to paths like player.hp.

Scenarios

Save named states like Low health or Boss enraged, and check each one before the game sends real data.

Events

Buttons emit named events. Game code listens for new_hunt, never for a particular button.

Actions

Go to a screen, open an overlay, set or toggle data, or play an animation, all without code.

Animate on a timeline that ships. Keyframes, easing and screen transitions run on the same math in Godot and the browser.

Record mode

Move a layer while recording and the timeline writes the keyframe for you.

Seven eases

Linear, in, out, in-out, back, elastic and step, with the same curves in GDScript and TypeScript.

Autoplay and loops

Play on screen open, loop idle effects like the breathing prompt, or start one from a button.

Screen transitions

Fade, slide or scale between screens, set per screen or per button, with reduced motion respected.

Hand programmers a short contract. Export lists the events your screens emit and the data they read. Re-exporting never touches game code.

Godot package

A zip with the addon, your document and a demo scene. Open it in Godot and press F6.

Playable HTML

One file anyone can click through in a browser. Good for playtests and for the person who signs off.

AI handoff

AGENTS.md, the contract, screenshots and typed Godot and TypeScript code, ready for a coding agent.

Schema and CLI

Check documents in CI with envy validate and print the contract with envy contract.

LiveWeb runtime

Go on, press a button. This is the web runtime running The Last Hunt in your browser. Click, use the arrow keys, plug in a controller or switch the language.

Live runtime
The Last Hunt title screen
6.0RuntimesRuntime API

One file, native on both sides. Godot builds Control nodes from it. The browser builds elements from it. Neither one needs generated UI code.

Godot addon
GDScript
Nothing to compile. Godot 4.3 or newer.
Web runtime
22 KB
Gzipped, with no dependencies.
Easing curves
7
Identical in TypeScript and GDScript, so motion matches.
Validation
0
Errors in The Last Hunt's 6,098 layers, checked at every build.
7.0Craft

Fast where you spend your day. Keyboard first, with the details a game UI needs built in.

Keyboard first

One key per tool, ShiftA for auto layout, CtrlAltK for a component, and ? for the rest.

Rulers, guides and grids

Drag guides off the rulers, add layout grids and hold Alt to measure.

One token, every screen

Change the player color and the runtime redraws focus bars, meters and markers everywhere.

Every Google Font

Search the full catalog, preview it on your own title, then embed it in the document.

Document checks

Missing tokens, screens, assets and focus targets are caught before export.

Pen tool and vector paths

Draw custom shapes with bezier points. Both runtimes draw them, with fills, strokes and shadows.

8.0New in v0.3Roadmap

Shipped this month. Lists, overlays, gamepad focus, translations, component properties and live reload in Godot. Each demo below runs on The Last Hunt.

Next, from v0.4
  • MCP server for coding agents Planned
  • Project files with external assets Planned
  • Desktop app Planned
  • Cloud projects and comments Planned
  • Unity and Unreal runtimes Planned

The Last Hunt. 20 screens, 180 components and 6,098 layers in one file. Every frame below was drawn by the web runtime.

See all 20 screens
“The canvas is the web runtime in design mode, so it can’t drift from what ships.”
Design principle · from the Envy README
“Re-exporting a UI never touches game code.”
Design principle · from the Envy README

In alpha, opening in waves.

We use Envy on our own games today and invite people from the waitlist as it gets ready. Pricing comes later, and we'll say what it costs before it does.

Pricing

Built for games. In alpha now.

Join the waitlist for alpha access. We'll write when your spot opens.

An email when your alpha spot opens, and news when big things ship. Not much else. How we keep your email.