A suite of engineering tests, validators, and verification tools for game data
in Freelancer-like projects and modifications within the Lizerium ecosystem.
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.
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:
INIconfigurationsDLLresources (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.
- Verify that all files expected to be
BINIare correctly encoded - Check for animation presence in
CMPfiles - Validate
HardpointsinCMPfiles - Validate textures in
STARSPHERE,FX - Check
use_animationreferences inCMPfiles - Detect potential animation capability in
CMP - Find all missing
material_libraryreferences - Find all missing
item_iconreferences - Find all missing
DA_archetypereferences - Validate presence of all infocards
- Validate all
ids_nameentries - Validate CRC values for effects
- Validate effect texture paths
- Validate all
explosion_archentries - Validate all
shield_typeentries - Validate all
debris_typeentries - Validate all
[Effect]entries - Validate all
[Sound]entries - Validate all containers (
LootCrate,CargoPod) - Validate faction definitions (
faction =)
Files involved:
initialworld.iniReShade.iniexplosions.iniweapon_equip.iniweaponmoddb.iniengines_ale.inieffects.inisounds.iniengine_sounds.iniselect_equip.inimisc_equip.iniweapon_equip.ini
Caution
Output is written to TESTS_LOGGING/GlobalTests.ini
- Validate data types in all fields
- Validate commodity values in
MarketGoodfields withinFactionGood
Caution
Output: TESTS_LOGGING/CommoditiesPerFactionTests.ini
- Extract all unique keys from sections
- Extract all types in the file
- Validate variable correctness
-
ids_name/ids_infoin DLL resources - Expected number of sections
- Validate parsing of each
[Engine]section viaTryParse - 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_fractionlogic - 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
volumeandpower_usagevalues
-
Caution
Output: TESTS_LOGGING/EngineEquipTests.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
- Validate armor regeneration configuration completeness
Used to point tests to a specific Freelancer-like game/modification.
Works in combination with the structural map:
Steps:
-
Create
app_settings.jsonin:
Lizerium.Tests/SETTINGS/app_settings.json -
Example config:
App Settings Example
Used to define files expected to be encoded in BINI format.
This layer is connected with:
Temporary sources (use latest mod build):
Lizerium.Game.CMPLizerium.Game.MATLizerium.Game.TXMLizerium.Game.3DBLizerium.Game.Music
XML layer: