Anthony Marmont


I'm passionate about what I do (making stuff).


An extensive collection of C# libraries for producing RPGCore mechanics and more.

RPGCore started as an in-Unity framework for producing RPGCore games. It has since evolved into a collection of .NET Standard libraries that offer specialised sets of features.

The Unity demo project.

At it's core, this project features a behaviour system that's used to create modular items and buffs. The behaviour system is setup using a visual scripting tool, shown below.

The graph editor for the 'Fire Cape' item.

Below is an item called the 'Fire Cape'. It applies the Immolate buff to it's owner, which deals damage to nearby enemies.

This graph in the game is interpreted by the tooltip system, which renders the 'Fire Cape' tooltip as shown below.

The graph editor for the 'Fire Cape' item.


Library Features
RPGCore.Data.Polymorphic Polymorphic data serialization.
RPGCore.DataEditor Data file editing API.
RPGCore.Events Value wrappers and collections with events.
RPGCore.Packages Loading pre-packaged content.
RPGCore.Projects Authoring pre-packaged content and build pipelines.
RPGCore.FileTree File system abstraction with file change events.
RPGCore.Behaviour Provides a node-based modular behaviour system.
RPGCore.Inventories Inventories that contain, store, and move items.
RPGCore.Items Modular implementation of RPG items.
RPGCore.Traits RPG character stats and item stats.


RPGCore.Packages is an API for processing and bundling game data. For every resource managed by RPGCore.Packages, it provides tagging, metadata and dependencies; which work together to form a basic CMS.

RPGCore.Packages is currently being used to drive the content of my portfolio website.

The ImportPipeline for RPGCore.Projects provides an API for customising the importing and building process.

  • Custom directory importers can be used to control how a directory imports into assets.
  • Custom file importers can be used to control how a file imports into assets.
  • Custom import processors can be used to post-process imported assets (i.e. ignore assets, write metadata, or tag them).
  • Custom resource importers can tag, write metadata and register dependencies for all resources they import.
  • Custom resource exporters can compress, optimize and write new resourcs to the exported directory.