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.
- Latest Release
- Changelog (Development)
- View the API Reference
- View Community Submitted Plugins
- Join the community:
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
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.
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.
All contributions are welcome!
Join the discussion on the NWN Developer Discord Discord, and also see our contribution guidelines.
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.