CathodeLib 0.8.1
See the version list below for details.
dotnet add package CathodeLib --version 0.8.1
NuGet\Install-Package CathodeLib -Version 0.8.1
<PackageReference Include="CathodeLib" Version="0.8.1" />
<PackageVersion Include="CathodeLib" Version="0.8.1" />
<PackageReference Include="CathodeLib" />
paket add CathodeLib --version 0.8.1
#r "nuget: CathodeLib, 0.8.1"
#:package CathodeLib@0.8.1
#addin nuget:?package=CathodeLib&version=0.8.1
#tool nuget:?package=CathodeLib&version=0.8.1
<img src="https://i.imgur.com/TZNGZVA.jpg" width="100%">
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!
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:
- A static
Implementationflag, defining if the parser supportsCREATE,LOAD, and/orSAVEfunctionality for the file. Parsers which support all three have the ability to generate files from scratch. - A
Loadedbool, 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
Filepathstring, which is the filepath that the parser is using to either load or save the file. - A
Savefunction, which will save the file out if the parser has theSAVEflag. This function can optionally be given a new filepath to save the file to. Returns false if saving fails. - Events for
OnLoadBegin,OnLoadSuccess,OnSaveBegin,OnSaveSuccesswhich 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.CommandshandlesCOMMANDS.PAKfiles- The file consists of
Compositescripts which hold variousEntitytypes for logicFunctionEntity= functions which execute functionality, with parameters and links to childEntityobjectsVariableEntity= variables which can be used externally as parameters on an instancedCompositevia aFunctionEntityProxyEntity= a proxy of aFunctionEntitywithin anotherComposite, useful for acting on events in another compositeOverrideEntity= an override of a parameter value on an entity within an instancedCompositein thisComposite
- The file consists of
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.PAK2handlesUI.PAKandANIMATIONS.PAKfilesCATHODE.ModelshandlesLEVEL_MODELS.PAKfiles, paired with aMODELS_LEVEL.BINCATHODE.TextureshandlesLEVEL_TEXTURES.ALL.PAKfiles, paired with aLEVEL_TEXTURE_HEADERS.ALL.BINCATHODE.LEGACY.Assets.Shadershandles variousSHADERSPAKfiles (WIP)
For level data and mappings:
CATHODE.MovershandlesMODELS.MVRfilesCATHODE.RenderableElementshandlesREDS.BINfilesCATHODE.ResourceshandlesRESOURCES.BINfilesCATHODE.MaterialshandlesMODELS.MTLfilesCATHODE.MaterialMappingshandlesMATERIAL_MAPPINGS.PAKfilesCATHODE.EnvironmentMapshandlesENVIRONMENTMAP.BINfilesCATHODE.EnvironmentAnimationshandlesENVIRONMENT_ANIMATION.DATfilesCATHODE.PathBarrierResourceshandlesPATH_BARRIER_RESOURCESfilesCATHODE.PhysicsMapshandlesPHYSICS.MAPfilesCATHODE.LightshandlesLIGHTS.BINfilesCATHODE.CollisionshandlesCOLLISION.BINfilesCATHODE.CollisionMapshandlesCOLLISION.MAPfilesCATHODE.AnimationStringshandlesANIM_STRING_DB.BINandANIM_STRING_DB_DEBUG.BINfilesCATHODE.EXPERIMENTAL.NavigationMeshhandlesNAV_MESHfiles (experimental)CATHODE.SoundNodeNetworkhandlesSNDNODENETWORK.DATfilesCATHODE.SoundLoadZoneshandlesSOUNDLOADZONES.DATfilesCATHODE.SoundFlashModelshandlesSOUNDFLASHMODELS.DATfilesCATHODE.SoundEventDatahandlesSOUNDEVENTDATA.DATfilesCATHODE.SoundEnvironmentDatahandlesSOUNDENVIRONMENTDATA.DATfilesCATHODE.SoundDialogueLookupshandlesSOUNDDIALOGUELOOKUPS.DATfilesCATHODE.SoundBankDatahandlesSOUNDBANKDATA.DATfilesCATHODE.CharacterAccessorySetshandlesCHARACTERACCESSORYSETS.BINfilesCATHODE.CustomCharacterInfohandlesCUSTOMCHARACTERINFO.BINfilesCATHODE.CustomCharacterConstrainedComponentshandlesCUSTOMCHARACTERCONSTRAINEDCOMPONENTS.BINfilesCATHODE.Stringshandles*.TXTfiles
For configurations:
CATHODE.BMLhandles any.BMLfiles- Get/set content as an
XmlDocumentviaBML.Content
- Get/set content as an
For saves:
CATHODE.EXPERIMENTAL.ProgressionSavehandlesPROGRESSION.AISfilesCATHODE.EXPERIMENTAL.MissionSavehandles*.AISfiles (experimental)
<p align="center">CathodeLib is in no way related to (or endorsed by) Creative Assembly or SEGA.</p>
| Product | Versions 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. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.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. |
-
.NETStandard 2.0
- Newtonsoft.Json (>= 13.0.3)
- System.Buffers (>= 4.5.1)
- System.Memory (>= 4.5.4)
- System.Numerics.Vectors (>= 4.5.0)
- System.Runtime.CompilerServices.Unsafe (>= 5.0.0)
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.10.0 | 276 | 8/12/2025 |
| 0.9.1 | 317 | 7/15/2025 |
| 0.9.0 | 186 | 7/13/2025 |
| 0.8.3 | 313 | 5/13/2025 |
| 0.8.2 | 240 | 4/24/2025 |
| 0.8.1 | 160 | 3/29/2025 |
| 0.8.0 | 178 | 3/29/2025 |
| 0.7.2 | 163 | 3/22/2025 |
| 0.7.1 | 204 | 10/24/2024 |
| 0.7.0 | 202 | 10/24/2024 |
| 0.6.0 | 378 | 2/7/2024 |
| 0.5.1 | 706 | 8/3/2023 |
| 0.5.0 | 723 | 4/24/2023 |
| 0.4.0 | 735 | 3/7/2023 |
| 0.3.3 | 881 | 1/8/2023 |
| 0.3.2 | 857 | 1/3/2023 |
| 0.3.1 | 836 | 1/2/2023 |
| 0.3.0 | 794 | 1/2/2023 |
| 0.2.0 | 990 | 7/29/2022 |
| 0.1.1 | 1,206 | 11/15/2020 |