Skip to content

Lizerium/Lizerium.DataValidation.Framework

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

16 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸ§ͺ Lizerium Tests πŸ§ͺ

A suite of engineering tests, validators, and verification tools for game data
in Freelancer-like projects and modifications within the Lizerium ecosystem.

🌐 Language: πŸ‡·πŸ‡Ί Russian | βœ… πŸ‡ΊπŸ‡Έ English (current)

Note

This project is part of the Lizerium ecosystem and belongs to the following direction:

If you are looking for related engineering and supporting tools, start there.


About the Project

Lizerium Tests is a framework for automated engineering validation of game data, configurations, resource references, and structural dependencies used in Freelancer-like games and modifications.

This project is not intended for the game client itself, but for engineering-level content validation:

  • INI configurations
  • DLL resources (ids_name, ids_info)
  • asset paths
  • references to effects, sounds, models, and containers
  • logical dependencies between game entities
  • overall technical integrity of a modification

This layer helps detect in advance:

  • broken references
  • missing resources
  • typos in keys
  • invalid values
  • conflicting or incomplete game entries
  • errors that would normally appear only during gameplay

The project is especially useful for:

  • maintaining large-scale modifications
  • mass refactoring of game data
  • migration of legacy configurations
  • building custom game toolchains
  • supporting complex content pipelines

Tip

Test results and intermediate diagnostic data are written to separate log files, allowing the project to be used not only as a test layer but also as a technical auditing tool for game data.


Current Test Coverage

General Tests

  • Verify that all files expected to be BINI are correctly encoded
  • Check for animation presence in CMP files
  • Validate Hardpoints in CMP files
  • Validate textures in STARSPHERE, FX
  • Check use_animation references in CMP files
  • Detect potential animation capability in CMP
  • Find all missing material_library references
  • Find all missing item_icon references
  • Find all missing DA_archetype references
  • Validate presence of all infocards
  • Validate all ids_name entries
  • Validate CRC values for effects
  • Validate effect texture paths
  • Validate all explosion_arch entries
  • Validate all shield_type entries
  • Validate all debris_type entries
  • Validate all [Effect] entries
  • Validate all [Sound] entries
  • Validate all containers (LootCrate, CargoPod)
  • Validate faction definitions (faction =)

Files involved:

  • initialworld.ini
  • ReShade.ini
  • explosions.ini
  • weapon_equip.ini
  • weaponmoddb.ini
  • engines_ale.ini
  • effects.ini
  • sounds.ini
  • engine_sounds.ini
  • select_equip.ini
  • misc_equip.ini
  • weapon_equip.ini

Caution

Output is written to TESTS_LOGGING/GlobalTests.ini


INI β†’ EQUIPMENT

CommoditiesPerFactionTests.ini

  • Validate data types in all fields
  • Validate commodity values in MarketGood fields within FactionGood

Caution

Output: TESTS_LOGGING/CommoditiesPerFactionTests.ini


engine_equip.ini

  • Extract all unique keys from sections
  • Extract all types in the file
  • Validate variable correctness
    • ids_name / ids_info in DLL resources
    • Expected number of sections
    • Validate parsing of each [Engine] section via TryParse
    • Ensure required fields exist (nickname, ids_name, mass, etc.)
    • Ensure required string fields are not empty
    • Detect unknown or invalid keys
    • Ensure all engine nicknames are unique
    • Validate numeric ranges (mass, max_force, etc.)
    • Validate reverse_fraction logic
    • Validate cruise parameters (cruise_speed, etc.)
    • Validate range formats (character_pitch_range, etc.)
    • Validate logical consistency between fields
    • Validate sound logic consistency
    • Detect empty or corrupted sections
    • Validate volume and power_usage values

Caution

Output: TESTS_LOGGING/EngineEquipTests.ini


select_equip.ini

  • Extract unique keys
  • Extract types
  • Validate AttachedFX / use_throttle
  • Validate Armor
  • Validate CargoPod
  • Validate Commodity
  • Validate InternalFX
  • Validate ShieldGenerator
  • Validate Shield

Caution

Output: TESTS_LOGGING/EngineEquipTests.ini


FLHook Tests | Generation

  • Validate armor regeneration configuration completeness

Configuration

app_settings.json

Used to point tests to a specific Freelancer-like game/modification.
Works in combination with the structural map:

Steps:

  1. Create app_settings.json in:
    Lizerium.Tests/SETTINGS/app_settings.json

  2. Example config:
    App Settings Example


ExpectedBiniFiles.json

Used to define files expected to be encoded in BINI format.


Relation to Other Directions

This layer is connected with:

Temporary sources (use latest mod build):

  • Lizerium.Game.CMP
  • Lizerium.Game.MAT
  • Lizerium.Game.TXM
  • Lizerium.Game.3DB
  • Lizerium.Game.Music

XML layer:

About

A framework for testing the validity of data structures in layers of the classic Lizerium branch.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages