ArxLibertatisProcGenTools 1.0.5

dotnet add package ArxLibertatisProcGenTools --version 1.0.5
                    
NuGet\Install-Package ArxLibertatisProcGenTools -Version 1.0.5
                    
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="ArxLibertatisProcGenTools" Version="1.0.5" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="ArxLibertatisProcGenTools" Version="1.0.5" />
                    
Directory.Packages.props
<PackageReference Include="ArxLibertatisProcGenTools" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add ArxLibertatisProcGenTools --version 1.0.5
                    
#r "nuget: ArxLibertatisProcGenTools, 1.0.5"
                    
#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.
#:package ArxLibertatisProcGenTools@1.0.5
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=ArxLibertatisProcGenTools&version=1.0.5
                    
Install as a Cake Addin
#tool nuget:?package=ArxLibertatisProcGenTools&version=1.0.5
                    
Install as a Cake Tool

NuGet Version

this is a library that is intended to either be referenced from nuget, or imported in powershell scripts (needs powershell 7+)

you can modify or generate levels for arx fatalis with it, programatically

there is an example script called example.ps1

there is also an examplecsg.ps1 which also includes the use of the https://github.com/talanc/DotNetCsg library to use CSG to create level geometry

run docs.ps1 to display the following documentation in plain text

Powershell Documentation:

This is a listing of all relevant classes and functions for generating levels in powershell scripts

Mesh Generators are classes that will generate polygons that will be added to the level. These are available:

ArxLibertatisProcGenTools.Generators.Plane.FloorGenerator<br> Generates a flat surface of a certain size around a center, using a texture generator<br>   Constructors:<br>     FloorGenerator()<br>   Properties:<br>     ITextureGenerator TextureGenerator<br>     Vector2 Size<br>     Vector3 Center<br>   Methods:<br>     IEnumerable`1 GetPolygons()<br> <br> ArxLibertatisProcGenTools.Generators.Plane.QuadGenerator<br> Generates a single quad in a certain orientation<br>   Constructors:<br>     QuadGenerator()<br>   Properties:<br>     Vector3 Center<br>     Single Width<br>     Single Height<br>     Vector3 Normal<br>     Vector3 WorldUp<br>     Single MinU<br>     Single MaxU<br>     Single MinV<br>     Single MaxV<br>     Int16 Room<br>     PolyType PolyType<br>     String TexturePath<br>     Single TransVal<br>   Methods:<br>     IEnumerable`1 GetPolygons()<br>     Polygon GetPolygon()<br> <br> ArxLibertatisProcGenTools.Generators.Mesh.CSGGenerator<br> Adds CSG solids to the level<br>   Constructors:<br>     CSGGenerator()<br>   Properties:<br>     Solid CsgSolid<br>     Vector3 PositionOffset<br>     Vector3 Scale<br>     PolyType PolyType<br>     Int16 Room<br>     ITextureGenerator TextureGenerator<br>   Methods:<br>     IEnumerable`1 GetPolygons()<br> <br> ArxLibertatisProcGenTools.Generators.Mesh.OBJImporter<br> Imports obj files, only supports triangulated files. set Pos/Rot/Scale using WorldMatrix<br>   Constructors:<br>     OBJImporter(System.String objFilePath, System.String mtlFilePath)<br>   Properties:<br>     Matrix4x4 WorldMatrix<br>     Int16 Room<br>   Methods:<br>     IEnumerable`1 GetPolygons()<br> <br>

Light generators generate lights that will be added to the level. These are available:

ArxLibertatisProcGenTools.Generators.Light.RandomLightGenerator<br> Generates lights at random positions within its shape, with random attributes dictated by their shapes<br>   Constructors:<br>     RandomLightGenerator()<br>   Properties:<br>     Int32 Count<br>     IShape PositionShape<br>     IShape ColorShape<br>     IValue FalloffStart<br>     IValue FalloffEnd<br>     IValue Intensity<br>   Methods:<br>     IEnumerable`1 GetLights()<br> <br>

Texture generators generate texture names depending on position. These are available:

ArxLibertatisProcGenTools.Generators.Texture.SingleTexture<br> Returns just a fixed texture<br>   Constructors:<br>     SingleTexture(System.String path)<br>   Properties:<br>   Methods:<br>     String GetTexturePath(Int32 polygonIndex)<br> <br>

Modifiers modify the currently existing polygons. These are available:

ArxLibertatisProcGenTools.Modifiers.DetailEnhancer<br> Generates extra polygons in an area so it can be sculpted to a greater detail by modifiers<br>   Constructors:<br>     DetailEnhancer()<br>   Properties:<br>     IShape Shape<br>   Methods:<br>     Void Apply(ArxLibertatisEditorIO.WellDoneIO.WellDoneArxLevel wdl)<br> <br> ArxLibertatisProcGenTools.Modifiers.Rumble<br> Adds random offsets(noise) to polygons in an area<br>   Constructors:<br>     Rumble()<br>   Properties:<br>     Single Magnitude<br>     IShape Shape<br>     IValue NoiseValue<br>   Methods:<br>     Void Apply(ArxLibertatisEditorIO.WellDoneIO.WellDoneArxLevel wdl)<br> <br>

Shapes can be used in a lot of ways to shape the output of other classes. These are available:

ArxLibertatisProcGenTools.Shapes.Cuboid<br> The shape of a cube<br>   Constructors:<br>     Cuboid()<br>   Properties:<br>     Vector3 Min<br>     Vector3 Max<br>   Methods:<br>     Vector3 GetAffectedness(System.Numerics.Vector3 position)<br>     Vector3 GetRandomPosition()<br> <br> ArxLibertatisProcGenTools.Shapes.Everywhere<br>   Constructors:<br>     Everywhere()<br>   Properties:<br>   Methods:<br>     Vector3 GetAffectedness(System.Numerics.Vector3 position)<br>     Vector3 GetRandomPosition()<br> <br> ArxLibertatisProcGenTools.Shapes.FixedVector<br> Returns a fixed value<br>   Constructors:<br>     FixedVector()<br>     FixedVector(System.Numerics.Vector3 value)<br>   Properties:<br>     Vector3 Value<br>   Methods:<br>     Vector3 GetAffectedness(System.Numerics.Vector3 position)<br>     Vector3 GetRandomPosition()<br> <br> ArxLibertatisProcGenTools.Shapes.NullShape<br> Always returns zero<br>   Constructors:<br>     NullShape()<br>   Properties:<br>   Methods:<br>     Vector3 GetAffectedness(System.Numerics.Vector3 position)<br>     Vector3 GetRandomPosition()<br> <br> ArxLibertatisProcGenTools.Shapes.MultiplyShape<br> returns the multiplication of two shapes<br>   Constructors:<br>     MultiplyShape()<br>   Properties:<br>     IShape Shape1<br>     IShape Shape2<br>   Methods:<br>     Vector3 GetAffectedness(System.Numerics.Vector3 position)<br>     Vector3 GetRandomPosition()<br> <br> ArxLibertatisProcGenTools.Shapes.Sphere<br> the shape of a sphere<br>   Constructors:<br>     Sphere()<br>   Properties:<br>     Vector3 Center<br>     Single Radius<br>     Single Falloff<br>       the falloff area around the edge of the sphere (r:500, f:200 ⇒ falloff from 400 to 600)<br>   Methods:<br>     Vector3 GetAffectedness(System.Numerics.Vector3 position)<br>     Vector3 GetRandomPosition()<br> <br>

Values are similar to Shapes, just one dimensional. These are available:

ArxLibertatisProcGenTools.Values.FixedValue<br> A fixed value<br>   Constructors:<br>     FixedValue()<br>     FixedValue(Single value)<br>     FixedValue(Double value)<br>   Properties:<br>     Single Value<br>   Methods:<br>     Single GetValue(System.Numerics.Vector3 input)<br> <br> ArxLibertatisProcGenTools.Values.NullValue<br> Always returns zero<br>   Constructors:<br>     NullValue()<br>   Properties:<br>   Methods:<br>     Single GetValue(System.Numerics.Vector3 input)<br> <br> ArxLibertatisProcGenTools.Values.RandomValue<br> random value (uniform)<br>   Constructors:<br>     RandomValue()<br>   Properties:<br>     Single Min<br>     Single Max<br>   Methods:<br>     Single GetValue(System.Numerics.Vector3 input)<br> <br> ArxLibertatisProcGenTools.Values.SimplexNoiseValue<br> random value (simplex, like perlin but better), get Noise property to change parameters<br>   Constructors:<br>     SimplexNoiseValue()<br>   Properties:<br>     Simplex Noise<br>   Methods:<br>     Single GetValue(System.Numerics.Vector3 input)<br> <br>

In addition to these classes, there is the ScriptFunc class, which contains static functions that make scripting easier:

  Properties:<br>     static WellDoneArxLevel Level<br>     static Boolean SkipLighting<br>       Skip the lighting calculation on save<br>     static Boolean Markdown<br>   Methods:<br>     static Void Clear()<br>       deletes the level currently in memory and resets parameters. required cause its persistent during the powershell session<br>     static Void SetDataDir(System.String dataDir)<br>       Set data dir that the level is saved to (and can be loaded from)<br>     static Void LoadLevel(System.String name)<br>       Loads a level to be modified<br>     static Void SaveLevel(System.String name)<br>       Saves the level<br>     static Void Apply(ArxLibertatisProcGenTools.Generators.IMeshGenerator meshGenerator)<br>       Applies the Mesh Generator to the level<br>     static Void Apply(ArxLibertatisProcGenTools.Modifiers.IModifier meshModifier)<br>       Applies the Modifier to the level<br>     static Void Apply(ArxLibertatisProcGenTools.Generators.ILightGenerator lightGenerator)<br>       Applies the Light Generator to the level<br>     static Void SetLightingProfile(ArxLibertatisLightingCalculatorLib.LightingProfile lightingProfile)<br>     static Void SetPlayerStart(System.Numerics.Vector3 position)<br>     static Void KillRunningArx()<br>     static Void StartArxFatalis(Boolean noClip, Boolean killRunningArx)<br>     static Void StartArxFatalis(Int32 levelId, Boolean noClip, Boolean killRunningArx)<br>     static Void PrintPsDocs()<br> <br> Additionally you may change the WellDoneArxLevel of the ScriptFunc class however you like. You might need to access classes from ArxLibertatisEditorIO for this<br>

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.  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 netcoreapp3.0 was computed.  netcoreapp3.1 was computed. 
.NET Standard netstandard2.1 is compatible. 
MonoAndroid monoandroid was computed. 
MonoMac monomac was computed. 
MonoTouch monotouch was computed. 
Tizen 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
1.0.5 126 11/29/2025
1.0.4 197 11/26/2025
1.0.3 408 11/19/2025