Anvil

Downloads License Release Development CI

Anvil is a C# framework for building behaviours and adding new functionalty to Neverwinter Nights: Enhanced Edition. The library allows server owners and builders to create simple behaviours, while giving plugin developers the option to implement complex systems or modify existing hardcoded rules.

Builders can add functionality like opening a store from a dialogue with a few lines of code, while plugin developers can leverage NuGet to add new functionality with external packages and the NWN.Native library to completely rewrite existing game systems and mechanics.

Getting Started

New to Anvil and want to know how to get a server running? Have a look through our install guides: https://github.com/nwn-dotnet/Anvil/wiki/Installing-Anvil

Want to write some scripts in C# or develop a new plugin? Have a look through our plugin development guides: https://github.com/nwn-dotnet/Anvil/wiki/Plugin-Development

Compiling Anvil

Anvil is a .NET 6 project, and you will need the appropriate SDKs to compile and build the project.

git must also be available from the command line for build versioning.

Tests

The repository includes a test runner project called NWN.Anvil.TestRunner, that is based on NUnit.

This test runner executes a number of runtime tests that are declared in the NWN.Anvil.Tests project.

Both of these projects are Anvil plugins that can be installed on any server.

To run tests locally, install the plugins in the anvil home directory as documented HERE.

Contributions

All contributions are welcome!

Join the discussion on the NWN Developer Discord Discord, and also see our contribution guidelines.

Credits

The Anvil Framework builds heavily on the foundations of the NWNX:EE DotNET plugin that was written by Milos Tijanic, and derives several service implementations from plugins developed by the NWNX:EE team and its contributors.

License

MIT