EVE tools / EVE Settings Toolkit

In development

EVE Settings Toolkit

A .NET library and command-line tool that reads, edits and rewrites EVE Online settings files, byte for byte.

At a glance

Status
In development.
Platform
.NET 8 and .NET 10. No dependencies beyond the base class library.
For
Developers and power users who want to read, script or repair EVE settings files.
Source and licence
MIT licence declared. The repository is private for now.
Availability
Not published yet. A NuGet package is planned.

What it does

EVE’s settings files are blue.marshal streams: a Python 2 marshal format with a shared-object table. The Toolkit decodes them completely into an editable object graph and re-encodes them the way the client does. An unmodified document is written back byte for byte. Every encoding rule was established by testing against real client files.

  • Load and save from paths, bytes and streams, synchronously or asynchronously. Writes are atomic, verified, and keep a .bak.
  • Typed access to groups and settings (key to timestamp, value), with conversion to and from ordinary .NET values.
  • Lossless JSON that round-trips to the same bytes, a plain JSON form for scripts, and Python-literal text in both directions.
  • Merge or copy settings between profiles (newer wins, overwrite, add missing, update existing), diff two files, validate for shapes the client never writes, and count what a file contains.
  • Find the client’s settings folders on a machine.
  • A settings catalog describing what the client stores under each key: title, description, feature, value shape, units, allowed values, default, and a confidence rating.

A short example

var doc = ProfileDocument.Load(path);

bool? blur = doc.GetValue("ui", "enableWindowBlur")?.AsBool();

doc.Groups["suppress"]!.Set("suppress.ConfirmUndock", Node.Int(1));

var result = doc.Save(new ProfileSaveOptions { RefuseWhileClientRunning = true });

Saving keeps a timestamped backup and reports where it put it.

The evedat command line

CommandPurpose
list, infoList settings files; show header, groups and statistics.
dump, getPrint a file, a group or one setting as Python literals.
describeExplain what each setting is, from the catalog.
check, validateByte-exact round-trip check; structural findings.
diff, mergeCompare two files; copy settings between them.
export, importConvert to and from JSON or Python literals.
set, deleteChange or remove a setting.

Commands that write keep a backup, verify the stream before touching the disk, and refuse to run while an EVE client is running unless you pass --force.

Limits

  • The catalog is not a schema the client enforces. It documents what the client appears to expect inside a setting, as far as analysis could tell, and some entries are low confidence. Keep your backups.
  • The library is not published yet. Until a NuGet package exists, it is consumed as a project reference or a git submodule, and the repository is private.

Independence

Exigentec’s EVE tools are independent third-party software. They are not made, endorsed or supported by CCP Games (now Fenris Creations). EVE Online, the EVE logo and all related marks and assets belong to their owner and are used here for identification only.