v1.0.0-draft.3 · open specification

The portable
standard for
gameplay logic.

UGAS is an open, engine-agnostic specification for gameplay attributes, tags, abilities, and effects — defined once as data, runnable across Unreal, Unity, Godot, and AI world models.

4 core pillars 6 JSON / YAML schemas 4 genre packs 2 agent skills
CurrentValue =
BaseValue + Σ Additionsflat
×
( 1 + Σ Additive% )additive %
×
Π Multiplicativetrue mult
// deterministic order of operations
// identical result on client · server · world-model
Why it exists

Gameplay logic is the last thing
that won't port.

3D models, audio, and animation are interchangeable formats. The rules that govern stats, abilities, status effects, and world state are not — they're rewritten by hand, tightly coupled to one engine, and prone to "spaghetti" where a single health change must manually notify UI, audio, and the network.

The old way

Imperative & coupled

Logic lives inside character classes. State changes are scattered. Multiplayer prediction is bespoke per project. Switching engines means a full rewrite.

The UGAS way

Declarative & decoupled

An Ability System Component is the authoritative state container; the actor is just an avatar. Every mutation is data, every change is an event, and the same definition drives any runtime.

The four pillars

A complete model in four parts.

Numeric state, semantic state, behavior, and the single mechanism allowed to change them.

PILLAR 01

Attributes

Numeric state on a dual-value pattern — a persistent Base Value and a computed Current Value — run through a deterministic modifier pipeline.

dual-value · OnAttributeChanged · clamping · attribute sets
01
PILLAR 02

Gameplay Tags

Hierarchical semantic labels like State.Debuff.Stunned.Magic that gate logic through parent-child queries instead of booleans.

MatchesTag · MatchesTagExact · HasAny · HasAll
02
PILLAR 03

Abilities

Asynchronous, stateful action units with a rigorous lifecycle and Ability Tasks that sleep until temporal, input, event, or spatial triggers fire.

GrantTryActivateCommitExecuteEnd
03
PILLAR 04

Gameplay Effects

The only authorized way to mutate attributes or tags — so every change is tracked, predicted, and replicated. Costs and cooldowns are just effects.

Instant · HasDuration · Infinite · Add/Mul/Div/Override
04
Agents & LLM-ready resources

Built to be read by models,
not just humans.

Two complementary skills turn the spec into working game definitions, and the whole corpus is published as a single context file an LLM can ingest in one shot.

Skill · whole-game

gameplay-creator-assistant

Genre-first scaffolding. Discovers the packs, helps you pick one, loads its entities as a base, and scaffolds all four pillars plus a Gameplay Controller — guided Q&A or one-shot from a brief.

Skill · single-entity

ugas-schema-author

Authoring, review, balancing, and simulation for one ability, effect, or attribute at a time. The two compose — the creator delegates each entity's YAML to the author.

llms.txt · discoverability index
# point any model at the machine-readable entry points
curl https://ugas.jbltx.com/llms.txt        # index of every resource
curl https://ugas.jbltx.com/llms-full.txt   # spec + schemas + examples + packs, one file

# every entity is $schema-tagged and validates
$schema: ".../schemas/gameplay_effect.json"
durationPolicy: "Instant"   # permanent Base Value change
Genre packs & templates

Copy-and-extend starter kits.

Additive packs that extend — never replace — the core spec, each with schema-conformant template entities you can load directly.

→ Browse the full pack index and the non-normative genre taxonomy.

Published versions

Versioned, dated, immutable.

VersionPublishedStatusOpen
v1.0.0-draft.3 ← latest 2026-06-09 pre-release spec · schemas →
v1.0.0-draft.2 2026-06-08 pre-release spec · schemas →
v1.0.0-draft.1 2026-04-13 pre-release spec · schemas →
Get started

From spec to running game.

1

Read the specification

Start with the four pillars in the latest draft, rendered from AsciiDoc.

2

Grab the schemas

Validate your data against the six core schemas/*.json — attribute, effect, ability, tag, set, controller.

3

Fork a genre pack

Copy a pack's entities/ directory and extend it additively as your base.

4

Or let an agent build it

Hand llms-full.txt + a skill to a model and scaffold a whole game from a brief.

Open standard. Open repo.

UGAS is developed in the open. Read the source, file issues, and contribute genre packs or engine implementations.

github.com/jbltx/ugas ↗