Charon replaces fragile spreadsheets and config files with a validated schema, a visual editor, and generated C#, TypeScript, C++ or Haxe classes. Designers edit. Programmers get autocomplete. Nothing breaks silently.
dnx dotnet-charon -- ./gamedata.json --createIfNotExists
dotnet tool install -g dotnet-charon && charon ./gamedata.json --createIfNotExists
openupm add com.gamedevware.charon
or Asset Store
Creates the file if missing and opens the editor in your browser. Windows · macOS · Linux.
(float)data["stats"]["hp"] and a prayer.
gameData.Heroes.Find("Arbalest").Stats.Hp with IDE
autocomplete. Loading, lookups and localization plumbing already
written.
Define Hero, Item,
Quest as schemas: typed fields, inheritance,
references between them, localizable text, formulas.
Forms generated from your schema. Inline validation. Import from XLSX/JSON, export back. Change history.
One command produces typed classes for C#, TypeScript, Unreal C++, Haxe or Lua. Rerun on every schema change — in the editor, from the CLI, or in CI.
dnx dotnet-charon -- GENERATE CSHARPCODE --dataBase ./gamedata.json --outputDirectory ./Generated
Publish gamedata.json with your build. Validate on
every commit. Diff two versions into a patch. Apply patches at
runtime for DLC, live balance updates or player mods.
- name: Validate game data
run: dnx dotnet-charon -- DATA VALIDATE --dataBase ./gamedata.json
Generated, not hand-written. MIT-licensed output. Regenerate any time.
using var fileStream = File.OpenRead("gamedata.json");
var gameData = new GameData(fileStream, new Formatters.GameDataLoadOptions { Format = Formatters.Format.Json });
var heroes = gameData.Heroes.AsList; // IReadOnlyList<Hero>
var hero = gameData.AllHeroes.Find("Crossbower"); // Hero | null
import { GameData } from './game.data';
import { Formatters } from './formatters';
const gameData = new GameData(readFileSync(gameDataFilePath), { format: Formatters.GameDataFormat.Json });
let heroes = gameData.heroes; // readonly Hero[]
let hero = gameData.heroesAll.find("Crossbower"); // Hero | undefined
#include "UGameData.h"
TSoftObjectPtr<UGameData> GameDataPtr = TEXT("/Game/Content/GameData");
auto GameData = GameDataPtr.LoadSynchronous();
auto Heroes = GameData->Heroes; // TMap<FString, UHero*>
auto HeroById = GameData->Heroes.Find(TEXT("Crossbower")); // UHero**
var gameData = new GameData(sys.io.File.read("gamedata.gdjs"), options);
var heroes = gameData.heroesAll.list; // ReadOnlyArray<Hero>
var hero = gameData.heroesAll.get("Crossbower"); // Hero
Lua also supported. See Generating Source Code.
Opens from the Unity menu. C# regenerates automatically. Unity 2022.3.62f3 or later.
openupm add com.gamedevware.charon
Opens from the Content Drawer. C++ structs + Blueprint nodes generated. Unreal Engine 5.3 or later.
Unreal docsGodot, MonoGame, custom engines, web games. Generate C#, TypeScript, Haxe or Lua.
dnx dotnet-charon -- ./gamedata.json --createIfNotExists
Same editor, hosted. Shared projects, roles, change requests, REST API, daily backups.
Cloud docsStandalone, CLI and both plugins are free with no project or data-size limits. Cloud edition has a free Personal plan.
[QUOTE-1]
[QUOTE-2]
[QUOTE-3]
CLI · Standalone app · Unity plugin · Unreal plugin
No project or data-size limits
All code generators
Validation, import/export, patch/diff, localization, MCP
Redistributable with your game (modding)
Windows / macOS / Linux
Charon application: CC BY-ND (free to use and redistribute unchanged). Generated code and Unreal plugin: MIT. Unity plugin: Asset Store EULA.
$0.00
/ month
Personal workspace
Basic project features
Daily backups
10 MiB online storage
Basic localization
CLI automation
$20.00
/ month
Everything in Personal
Collaborative workspace
Up to 3 members
Up to 2 projects
AI and machine translation
$100.00
/ month
Everything in Team
Up to 15 members
Up to 5 projects
REST API access
$ Custom
/ month
Everything in Studio
On-premises install
AD / LDAP
Unlimited storage and backups
Migration assistance
The offline editor, CLI and engine plugins are free, with no project or data-size limits. Application is CC BY-ND, generated code is MIT. You pay only for the hosted cloud edition if your team wants shared online projects.
No. Standalone and plugin editions run entirely on your machine. Your game data is a JSON file in your repo.
You always hold a full local copy of your data and the offline editor. Enterprise customers can run the server on-premises.
Unity (C#), Unreal (C++ / Blueprint), and any engine via standalone with C#, TypeScript, Haxe or Lua. Request others on Discord.
Yes. Ship the free editor with your game, no royalties. Players’ changes become patch files your game applies at load.
dnx dotnet-charon -- ./gamedata.json --createIfNotExists
dotnet tool install -g dotnet-charon && charon ./gamedata.json --createIfNotExists
openupm add com.gamedevware.charon
or Asset Store