CathodeLib 0.6.0

dotnet add package CathodeLib --version 0.6.0
NuGet\Install-Package CathodeLib -Version 0.6.0
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="CathodeLib" Version="0.6.0" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add CathodeLib --version 0.6.0
#r "nuget: CathodeLib, 0.6.0"
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
// Install CathodeLib as a Cake Addin
#addin nuget:?package=CathodeLib&version=0.6.0

// Install CathodeLib as a Cake Tool
#tool nuget:?package=CathodeLib&version=0.6.0

CathodeLib - Alien: Isolation C# Library

CathodeLib is an open source library providing functionality to handle formats from the Cathode game engine, for modding Alien: Isolation. Used to power OpenCAGE!


All parsers inherit from a base CathodeFile class which provides:

  • A static 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.
  • A 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.
  • A Filepath string, which is the filepath that the parser is using to either load or save the file.
  • A 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.
  • Events for 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.

Parsers currently available in CathodeLib...

For scripting:

  • CATHODE.Commands handles COMMANDS.PAK files
    • The file consists of Composite scripts which hold various Entity types for logic
      • FunctionEntity = functions which execute functionality, with parameters and links to child Entity objects
      • VariableEntity = variables which can be used externally as parameters on an instanced Composite via a FunctionEntity
      • ProxyEntity = a proxy of a FunctionEntity within another Composite, useful for acting on events in another composite
      • OverrideEntity = an override of a parameter value on an entity within an instanced Composite in this Composite

Check out a full overview of the Commands structure on the Wiki, and follow this handy guide to create your first script!

For assets:

  • CATHODE.PAK2 handles UI.PAK and ANIMATIONS.PAK files
  • CATHODE.Models handles LEVEL_MODELS.PAK files, paired with a MODELS_LEVEL.BIN
  • CATHODE.Textures handles LEVEL_TEXTURES.ALL.PAK files, paired with a LEVEL_TEXTURE_HEADERS.ALL.BIN
  • CATHODE.LEGACY.Assets.Shaders handles various SHADERS PAK files (WIP)

For level data and mappings:

  • CATHODE.Movers handles MODELS.MVR files
  • CATHODE.RenderableElements handles REDS.BIN files
  • CATHODE.Resources handles RESOURCES.BIN files
  • CATHODE.Materials handles MODELS.MTL files
  • CATHODE.MaterialMappings handles MATERIAL_MAPPINGS.PAK files
  • CATHODE.EnvironmentMaps handles ENVIRONMENTMAP.BIN files
  • CATHODE.EnvironmentAnimations handles ENVIRONMENT_ANIMATION.DAT files
  • CATHODE.PathBarrierResources handles PATH_BARRIER_RESOURCES files
  • CATHODE.PhysicsMaps handles PHYSICS.MAP files
  • CATHODE.Lights handles LIGHTS.BIN files
  • CATHODE.Collisions handles COLLISION.BIN files
  • CATHODE.CollisionMaps handles COLLISION.MAP files
  • CATHODE.AnimationStrings handles ANIM_STRING_DB.BIN and ANIM_STRING_DB_DEBUG.BIN files
  • CATHODE.EXPERIMENTAL.NavigationMesh handles NAV_MESH files (experimental)
  • CATHODE.SoundNodeNetwork handles SNDNODENETWORK.DAT files
  • CATHODE.SoundLoadZones handles SOUNDLOADZONES.DAT files
  • CATHODE.SoundFlashModels handles SOUNDFLASHMODELS.DAT files
  • CATHODE.SoundEventData handles SOUNDEVENTDATA.DAT files
  • CATHODE.SoundEnvironmentData handles SOUNDENVIRONMENTDATA.DAT files
  • CATHODE.SoundDialogueLookups handles SOUNDDIALOGUELOOKUPS.DAT files
  • CATHODE.SoundBankData handles SOUNDBANKDATA.DAT files
  • CATHODE.CharacterAccessorySets handles CHARACTERACCESSORYSETS.BIN files
  • CATHODE.CustomCharacterInfo handles CUSTOMCHARACTERINFO.BIN files
  • CATHODE.CustomCharacterConstrainedComponents handles CUSTOMCHARACTERCONSTRAINEDCOMPONENTS.BIN files
  • CATHODE.Strings handles *.TXT files

For configurations:

  • CATHODE.BML handles any .BML files
    • Get/set content as an XmlDocument via BML.Content

For saves:

  • CATHODE.ProgressionSave handles PROGRESSION.AIS files
  • CATHODE.EXPERIMENTAL.MissionSave handles *.AIS files (experimental)
Product Compatible and additional computed target framework versions.
.NET net5.0 was computed.  net5.0-windows was computed.  net6.0 was computed.  net6.0-android was computed.  net6.0-ios was computed.  net6.0-maccatalyst was computed.  net6.0-macos was computed.  net6.0-tvos was computed.  net6.0-windows was computed.  net7.0 was computed.  net7.0-android was computed.  net7.0-ios was computed.  net7.0-maccatalyst was computed.  net7.0-macos was computed.  net7.0-tvos was computed.  net7.0-windows was computed.  net8.0 was computed.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed. 
.NET Core netcoreapp2.0 was computed.  netcoreapp2.1 was computed.  netcoreapp2.2 was computed.  netcoreapp3.0 was computed.  netcoreapp3.1 was computed. 
.NET Standard netstandard2.0 is compatible.  netstandard2.1 was computed. 
.NET Framework net461 was computed.  net462 was computed.  net463 was computed.  net47 was computed.  net471 was computed.  net472 was computed.  net48 was computed.  net481 was computed. 
MonoAndroid monoandroid was computed. 
MonoMac monomac was computed. 
MonoTouch monotouch was computed. 
Tizen tizen40 was computed.  tizen60 was computed. 
Xamarin.iOS xamarinios was computed. 
Xamarin.Mac xamarinmac was computed. 
Xamarin.TVOS xamarintvos was computed. 
Xamarin.WatchOS xamarinwatchos was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last updated
0.6.0 194 2/7/2024
0.5.1 573 8/3/2023
0.5.0 558 4/24/2023
0.4.0 601 3/7/2023
0.3.3 725 1/8/2023
0.3.2 705 1/3/2023
0.3.1 688 1/2/2023
0.3.0 655 1/2/2023
0.2.0 810 7/29/2022
0.1.1 1,005 11/15/2020