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.
- Introduction to Georges Types, Definitions, and Forms
- Reading sheets using the form loader
- Generating and loading packed sheets
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_manager → npc_zone → npc_group → npc_bot nodes that define where NPCs spawn, how they move, what they look like, and how they behave.
- Adding NPCs, fauna, and missions — Practical step-by-step guide
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.
- NPC Event Types — Complete reference of all events
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.
- NPC Logic Action Types — Complete reference of all action types
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.
- AI Script Language Reference — Syntax, variables, control flow, examples
- AI Script Function Reference — All native functions with signatures and descriptions
- Phrase System Guide — How to send parameterized translated messages from scripts
Creature Combat
Creature AI actions define combat behaviour: damage, spells, healing, and casting parameters. These are Georges sheets under leveldesign/game_elem/creature/.../aiaction.
- Creature AI Action Sheets — Damage calculation, spell parameters, and combat tuning
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.
- Localization System — File formats, phrase grammar, translation workflow, programmer API
See also
- NeL Georges — The data sheet library
- World Editor — World Editor reference
- Landscape — Landscape creation and tile painting
- Live / Game Master — Shard commands for runtime adjustments