This tool can read infinity engine binary game files for BGEE and BG2EE. Similar to NearInfinity. It prints the binary game data files.
Taken from infinity file formats on the iesdp.
- area
- biff
- character
- creature
- dialogue
- effect_v1
- effect_v2
- game
- ids
- item_table
- item
- key
- save
- spell_table
- spell
- store
- tlk
- twoda
- world_map
- .bio files - Text format Baldur's Gate 2 only, Character biography
- embedded tileset files - Binary data for tilesets in maps can be viewed
Ensure rust is installed via rustup
cargo run <path to chitin.key> / or target file
Example:
example.webm
post_infinity models/fixtures/gate1.spl
{
"signature": "SPL ",
"version": "V1 ",
"unidentified_spell_name": 14260,
"identified_spell_name": 9999999,
"completion_sound": "CAS_M03\u0000",
"flags": 0,
"spell_type": 1,
"exclusion_flags": 0,
"casting_graphics": 18,
"min_level": 0,
"primary_spell_school": 2,
"min_strength": 0,
"secondary_spell_school": 6,
"min_strength_bonus": 0,
"kit_usability_1": 0,
"min_intelligence": 0,
"kit_usability_2": 0,
"min_dexterity": 0,
"kit_usability_3": 0,
"min_wisdom": 0,
"kit_usability_4": 0,
"min_constitution": 0,
"min_charisma": 0,
"spell_level": 9,
"max_stackable": 1,
"spell_book_icon": "SPWI905C",
"lore": 0,
"ground_icon": "\u0000\u0000rb\u0000\u0000Un",
"base_weight": 0,
"spell_description_generic": 4294967295,
"spell_description_identified": 9999999,
"description_icon": "",
"enchantment": 0,
"offset_to_extended_headers": 114,
"count_of_extended_headers": 1,
"offset_to_feature_block_table": 154,
"offset_to_casting_feature_blocks": 0,
"count_of_casting_feature_blocks": 0,
"extended_headers": [
{
"spell_form": 1,
"friendly": 0,
"location": 2,
"memorised_icon": "SPWI905B",
"target_type": 4,
"target_count": 0,
"range": 25,
"level_required": 1,
"casting_time": 4,
"times_per_day": 0,
"dice_sides": 6,
"dice_thrown": 0,
"enchanted": 0,
"damage_type": 1,
"count_of_feature_blocks": 1,
"offset_to_feature_blocks": 0,
"charges": 1,
"charge_depletion_behaviour": 1,
"projectile": 1
}
],
"equipping_feature_blocks": [
{
"opcode_number": 177,
"target_type": 1,
"power": 9,
"parameter_1": 0,
"parameter_2": 2,
"timing_mode": 0,
"dispel_resistance": 2,
"duration": 100000,
"probability_1": 39,
"probability_2": 0,
"resource": "balorsu\u0000",
"dice_thrown_max_level": 0,
"dice_sides_min_level": 0,
"saving_throw_type": [
0,
0,
0,
0
],
"saving_throw_bonus": 0,
"stacking_id": 0
}
]
}
cargo build --release
It takes about 0.5->1.0s to read all the supported files in an unmodded bg1ee game, into memory, without parsing them.
time cargo run -- <path to bgee dir>/chitin.key 0.63s user 1.01s system 105% cpu 1.555 total