
A practical, asset-aware localisation system built for real game development workflows. Every string, sound, texture, sprite, and prefab your game shows a player can be localised through the same clean key-based pipeline.
As with all Heathen tools Gameplay Tags is available for multiple engines:

And is composed of two packages:
Foundation
Resolve localised strings and assets at runtime through a zero-string-cost lookup pipeline. Keys compile from dot-path names to xxHash3 hashes at import leveraging the power of Heathen’s GameplayTags system..
- License: Apache 2.0
- Price: Free (Unity), (O3DE)
Toolkit
Built on top of Foundaiton, the Toolkit lets you wire localised text, audio and assets into your scenes without writing code.
Additional tools and editor integrations help you gather localize fields and link your existing logic to Lexicon form the inspector or from script.
- License: Heathen Standard
- Price: $15 GitHub or Patreon
Where to Get Lexicon Localisation Toolkit #
Get Lexicon Localistion Toolkit and all of our tools via GitHub Sponsors or Patreon.
All Tools, Yours Forever! #
Get a permanent, perpetual site license to all of our tools for all supported engines.
- One License, Your Whole Team: Our site-based license covers you, your employees, and your contractors. No “per-seat” fees.
- Keep What You Build: If you cancel your subscription, you keep the license to the versions you’ve downloaded. You only need an active subscription to access the Source Repos for the latest updates, patches, and new features.
- Full Source Access: No DRM, no obfuscation. You get the raw source code (C++, C#, GDScript) to ensure your project’s stability is always in your own hands.
Localisation without limits. #
Lexicon Localisation is a practical, asset-aware localisation system built for real game development workflows. Every string, sound, texture, sprite, and prefab your game shows a player can be localised through the same clean key-based pipeline. Cultures fall back gracefully through a resolution chain, the active language can switch at runtime without restarting, and content can be injected dynamically for mods, downloadable content, and live services. Fields carry their own mode localised, literal, or invariant so every piece of content is explicit about what it is and how it should behave.
This knowledge base covers every function and feature of the toolkit, and goes beyond into guides and articles on the practical application of localisation in game development.
Key Features #
Not Just Text
Localisation is not only about strings. Lexicon treats any asset as a localisable value, voiced dialogue clips, region-specific music, culturally appropriate textures, localised prefabs and UI layouts. If different players in different regions should see, hear, or receive different content, Lexicon handles it through the same key-based lookup as text, with no special cases.
Three Field Modes: Localised, Literal, and Invariant
Every Lexicon field carries a mode, not just a value. Localised mode resolves the key against the active culture at runtime. Literal mode uses the value directly with no lookup at all, useful during development or for content that does not yet have translations. Invariant mode marks content that should never be localised regardless of the active culture, such as a version number, a brand name, or a player-entered username. Switching between modes requires no code changes, only a field setting.
Culture Codes and Automatic Fallback
Cultures are identified by standard IETF codes such as en-GB, fr-CA, or zh-Hans. When a key is resolved, the system works through a fallback chain automatically: it tries the exact active culture first, then the base language of that culture, then the configured default culture, then the unconditional Default asset. A game shipping with English and French will gracefully serve the French string to a player running a Canadian French locale if no fr-CA translation exists, without any explicit handling in code.
Automatic System Locale Detection
On startup, Lexicon reads the system locale and sets it as the active culture automatically. Players launch the game in their language without requiring a first-run language selection step, though one can always be provided to let them override it.
Runtime Culture Switching
The active culture can be changed at any point during a session. A CultureChanged event fires immediately, allowing any system that holds resolved content to refresh. Building a language settings menu requires only a call to switch the culture and a listener to update the displayed content.
Language Menu Support
The registry can enumerate every culture that has at least one asset mapped to it, providing the exact list of available languages without any manual configuration. Each language can also resolve its own display name in the active culture, so a French language option shows “Français” in a French UI and “French” in an English one, drawn from the same localisation data.
The .helex Source Format
Localisation data is authored in .helex files, a simple JSON format that is cross-engine and human-readable. The same file works in Unity, O3DE, and any other platform that implements the format. Keys are pre-hashed at import time so runtime lookup is pure integer comparison with no string processing. Source files live in version control alongside the rest of the project and are the authoritative record of what a localisation asset contains.
CSV Import and Export
Translator workflows rarely happen inside an engine editor. Lexicon supports full CSV round-trip export and import, with all languages laid out side by side in a single spreadsheet. A translator receives one file, fills in their column, and the result imports back cleanly, with no manual reconciliation required. Single-document and multi-document export are both supported.
Literal Gatherer
Migrating an existing project to Lexicon does not require manually hunting down every hardcoded string. The Literal Gatherer scans scenes and prefabs for Lexicon fields still in Literal mode, generates proposed keys based on the component and field names, and commits both the keys to a .helex file and the field mode changes to the source assets in one operation. What would otherwise be hours of migration work becomes a review-and-confirm step.
Runtime Injection
Localisation data does not have to come from asset files. Strings and assets can be injected into the registry at runtime for a specific culture or for the active culture. This covers downloadable content that adds new strings after ship, mod support where the full vocabulary is not known at build time, and dynamic content like player names or server-provided text that needs to participate in the same resolution pipeline as authored content.
The Default Asset
An asset named “Default” acts as the unconditional last-resort fallback for any key that cannot be resolved through any culture. During development this is where placeholder strings live while translations are in progress. In a shipped product it ensures that a missing translation never results in a blank field, even if the fallback chain is exhausted entirely.
Validation
A localisation asset can validate itself, checking for duplicate keys, empty string values, and null asset references before content ships. Running validation as part of a build process or content review catches authoring errors early, when they are cheap to fix, rather than at runtime when a player encounters a blank UI element or silent audio trigger.
