VoidCrew.GameLibs

Stripped and publicized game libraries for Void Crew


Keywords
Install
Install-Package VoidCrew.GameLibs -Version 0.27.0.2

Documentation

Unity Game Libs Nuget Creator

Creates nugets with stripped and publicized libraries for Unity game modding.

If the game gets updated, this package needs to get updated too.

strip-assembiles.bat does two things:

  • Strips game assembiles using NStrip. This removes game code and leaves only API definitions.
  • Publicizes Assembly.CSharp.dll and AAssembly-CSharp-firstpass.dll. This makes all types, methods, properties and fields public, to make modding easier.

Usage

Nuget account

Prepare your repository

  • Create a new repository based on this template.
  • Add a secret called NUGET_KEY to this repository. Give it the value of the API key you created earlier.
  • Update the repository's name. This will be used as your Nuget ID, so it can't clash with another nuget package on nuget.org.
  • Update the repository's description. This will be used as the nuget's description too.

Generate the stripped libraries

  • Make sure you start off with a clean version of the game files, with no extra/modified dlls.
  • Drag the game's exe and drop it on strip-assembiles.bat.
  • Dlls are stripped, publicized, and placed in package\lib.

Updating the Nuget

  • Edit the .nuspec file, make <version> match the game version where these assemblies come from.
  • Push to the default branch.
  • Updating the default branch will trigger a workflow that will pack the dlls and update the NuGet package.

Publicized assemblies

By default, only Assembly-CSharp.dll and Assembly-CSharp-firstpass.dll are publicized. All other dlls are stripped only. To publicize other dlls, edit strip-assemblies.bat and add the dll names to the toPublicize variable.

Untouched assemblies

By default, every game assembly gets stripped. If there's any assembly you wish to keep in the package in their original state, add the dll names to the dontTouch variable.