leveldesign - ryzom/ryzomcore GitHub Wiki


title: Leveldesign description: Data sheets, World Editor primitives, AI scripting, and localization published: true date: 2023-03-17T00:50:30.889Z tags: editor: markdown dateCreated: 2019-11-25T06:44:43.336Z

Leveldesign in Ryzom Core covers the data and configuration that defines the game world: creature and item data sheets, World Editor primitives that place and configure NPCs, fauna, deposits, and missions, the AI scripting language that drives NPC behaviour, and the localization system for translated text.

Data Sheets (Georges)

All game data — creatures, items, weather, deposits, AI actions, and more — is defined in Georges XML data sheets. A sheet is a form file (e.g. .creature, .sitem, .weather) containing structured data that conforms to a schema. The schema is defined separately using type (.typ) files for primitive value constraints and definition (.dfn) files for the form structure. Sheets are edited with the Georges Editor and loaded at runtime via the form loader or as packed sheets for performance.

World Editor

The World Editor is used to place and configure all gameplay entities in the world using primitives. Primitives are organized in layers per continent, typically split by purpose:

Primitive layer Contents
botobject_*.primitive Static decorations (crates, devices, Mektoub Packers)
deposit_*.primitive Foraging zones
staticfauna_*.primitive Fauna spawn groups with feed/rest areas
task_*.primitive Mission giver NPCs and mission foraging zones
urban_*.primitive Town NPCs: guards, merchants, trainers

Each primitive file contains a tree of npc_managernpc_zonenpc_groupnpc_bot nodes that define where NPCs spawn, how they move, what they look like, and how they behave.

NPC Behaviour

NPC behaviour is driven by an event/action system. When an event fires on a group (combat start, player interaction, timer, etc.), one or more action handlers execute. Actions range from simple commands (say, emote, spawn) to full AI script code blocks.

Events

Events are conditions that trigger action handlers. There are 61 registered event types across state machines, timers, combat, death, player interaction, escort, variables, and outpost/spire systems.

Actions

Actions are what happens when an event fires. They include logic flow (if/else, random, switch), state changes, timers, behavioural commands, and AI script execution.

AI Script

The code action type executes blocks of AI script, a C-like bytecode language with variables (float, $string, @context), control flow, user-defined functions, and over 150 native functions for controlling NPC behaviour, combat, spawning, player interaction, and inter-group communication.

Creature Combat

Creature AI actions define combat behaviour: damage, spells, healing, and casting parameters. These are Georges sheets under leveldesign/game_elem/creature/.../aiaction.

Not to be confused with NPC Logic Action Types (event handler actions) or AIS actions (service-level commands). {.is-info}

Localization

The localization system handles both static client-side text (.uxt files with key-value pairs) and dynamic server-side text (phrase files with parameterized templates, conditional clauses for gender/plural agreement, and word files for noun declension). A diff-based translation workflow supports incremental updates across multiple languages.

See also