Provides support for parsing and writing common Alien: Isolation formats from the Cathode engine.
License
—
Deps
4
Install Size
—
Vulns
✓ 0
Published
Feb 25, 2026
$ dotnet add package CathodeLib
Available as a NuGet package, or alternatively just include this repo as a submodule in your project!
All parsers inherit from a base CathodeFile class which provides:
Implementation flag, defining if the parser supports CREATE, LOAD, and/or SAVE functionality for the file. Parsers which support all three have the ability to generate files from scratch.Loaded bool, which is true if the parser has populated its values from a pre-existing file that it has loaded. If false, the parser is creating a new file on save.Filepath string, which is the filepath that the parser is using to either load or save the file.Save function, which will save the file out if the parser has the SAVE flag. This function can optionally be given a new filepath to save the file to. Returns false if saving fails.OnLoadBegin, OnLoadSuccess, OnSaveBegin, OnSaveSuccess which fire at load/save start and successful completion respectively, with the appropriate filepath as an arg.Most parsers provide access to the file's content via an Entries parameter, however this can vary per implementation.
Note: in debug mode the parsers will all fail hard, however in release mode all load/save calls are wrapped in try/catch statements.
CATHODE.AlphaLightLevel handles level WORLD/ALPHALIGHT_LEVEL.BIN files
CATHODE.AnimationStrings handles ANIM_STRING_DB.BIN and ANIM_STRING_DB_DEBUG.BIN files within `ANIMATION.PAK
CATHODE.GlobalAnimClipDB handles ANIM_CLIP_DB.BIN files within ANIMATION.PAK
CATHODE.AnimClipDB handles ANIM_CLIP_DB.BIN files within ANIMATION.PAK
CATHODE.AnimClipDBSec handles ANIM_CLIP_DB_SEC_*.BIN files within ANIMATION.PAK
CATHODE.AnimTreeDb handles ANIM_TREE_DB.BIN files within ANIMATION.PAK
CATHODE.BML handles any .BML files
XmlDocument via BML.ContentCATHODE.CharacterAccessorySets handles level WORLD/CHARACTERACCESSORYSETS.BIN files
CATHODE.CollisionMaps handles level WORLD/COLLISION.MAP files
CATHODE.Collisions handles level WORLD/COLLISION.BIN files
CATHODE.Commands handles level WORLD/COMMANDS.PAK and/or WORLD/COMMANDS.BIN files
Composite scripts which hold various Entity types for logic
FunctionEntity = functions which execute functionality, with parameters and links to child Entity objectsVariableEntity = variables which can be used externally as parameters on an instanced Composite via a FunctionEntityProxyEntity = a proxy of a FunctionEntity within another Composite, useful for acting on events in another compositeOverrideEntity = an override of a parameter value on an entity within an instanced Composite in this CompositeUtils member provides various utilities for working with Commands data via data tables appended to the saved fileCATHODE.CustomCharacterAssetData handles the CHR_INFO/CUSTOMCHARACTERASSETDATA.BIN file
CATHODE.CustomCharacterConstrainedComponents handles the CHR_INFO/CUSTOMCHARACTERCONSTRAINEDCOMPONENTS.BIN file
CATHODE.CustomCharacterInfo handles the CHR_INFO/CUSTOMCHARACTERINFO.BIN file
CATHODE.EnvironmentAnimations handles level WORLD/ENVIRONMENT_ANIMATION.DAT files
CATHODE.EnvironmentMaps handles level WORLD/ENVIRONMENTMAP.BIN files
CATHODE.Lights handles level WORLD/LIGHTS.BIN files
CATHODE.MaterialMappings handles level WORLD/MATERIAL_MAPPINGS.PAK files
CATHODE.Materials handles level RENDERABLE/LEVEL_MODELS.MTL & LEVEL_MODELS.CST files
CATHODE.EXPERIMENTAL.MissionSave handles *.AIS files
CATHODE.Models handles level RENDERABLE/LEVEL_MODELS.PAK & MODELS_LEVEL.BIN files
CATHODE.MorphTargets handles level WORLD/MORPH_TARGET_DB.BIN files
CATHODE.Movers handles level WORLD/MODELS.MVR files
CATHODE.EXPERIMENTAL.NavigationMesh handles level WORLD/STATE_*/NAV_MESH files
CATHODE.PAK2 handles UI.PAK and ANIMATIONS.PAK files
CATHODE.PathBarrierResources handles level WORLD/PATH_BARRIER_RESOURCES files
CATHODE.PhysicsMaps handles level WORLD/PHYSICS.MAP files
CATHODE.EXPERIMENTAL.ProgressionSave handles PROGRESSION.AIS files
CATHODE.RadiosityInstanceMap handles level RENDERABLE/RADIOSITY_INSTANCE_MAP.TXT files
CATHODE.RenderableElements handles level WORLD/REDS.BIN files
CATHODE.Resources handles level WORLD/RESOURCES.BIN files
CATHODE.Shaders handles level RENDERABLE/LEVEL_SHADERS_DX11.PAK & LEVEL_SHADERS_DX11_BIN.PAK & LEVEL_SHADERS_DX11_IDX_REMAP.PAK files
CATHODE.SkeleDB handles the ANIM_SYS/SKELE/DB.BIN file within ANIMATION.PAK
CATHODE.SoundBankData handles level WORLD/SOUNDBANKDATA.DAT files
CATHODE.SoundDialogueLookups handles level WORLD/SOUNDDIALOGUELOOKUPS.DAT files
CATHODE.SoundEnvironmentData handles level WORLD/SOUNDENVIRONMENTDATA.DAT files
CATHODE.SoundEventData handles level WORLD/SOUNDEVENTDATA.DAT files
CATHODE.SoundFlashModels handles level WORLD/SOUNDFLASHMODELS.DAT files
CATHODE.SoundLoadZones handles level WORLD/SOUNDLOADZONES.DAT files
CATHODE.SoundNodeNetwork handles level WORLD/SOUNDNODENETWORK.DAT files
CATHODE.TextDB handles *.TXT files within TEXT directories
CATHODE.Textures handles level WORLD/LEVEL_TEXTURES.ALL.PAK & LEVEL_TEXTURE_HEADERS.ALL.BIN files
CATHODE.EXPERIMENTAL.Traversals handles level WORLD/STATE_*/TRAVERSAL files
Check out a full overview of the Commands structure on the Wiki, and follow this handy guide to create your first script!
CathodeLib is in no way related to (or endorsed by) Creative Assembly or SEGA.