RisingV.Core 0.1.1

There is a newer version of this package available.
See the version list below for details.
dotnet add package RisingV.Core --version 0.1.1
                    
NuGet\Install-Package RisingV.Core -Version 0.1.1
                    
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="RisingV.Core" Version="0.1.1" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="RisingV.Core" Version="0.1.1" />
                    
Directory.Packages.props
<PackageReference Include="RisingV.Core" />
                    
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 RisingV.Core --version 0.1.1
                    
#r "nuget: RisingV.Core, 0.1.1"
                    
#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 RisingV.Core@0.1.1
                    
#: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=RisingV.Core&version=0.1.1
                    
Install as a Cake Addin
#tool nuget:?package=RisingV.Core&version=0.1.1
                    
Install as a Cake Tool

<a href="https://risingv.dev"><p align="center"><img src="https://risingv.dev/images/core-logo.png" width="450" alt="RisingV.Core" /></p></a>

The beating (molten) heart of the RisingV ecosystem.

RisingV.Core is a core mod for V Rising that allows you to use RisingV mods.
It provides a set of APIs and utilities that make it easier to create and manage mods for V Rising.”

Features

  • Plugin lifecycle – deterministic load / unload / reload with safe dependency ordering using RisingPlugin<TContext>.
  • Aspect abstraction – Aspect (a.k.a. Aspecting) is the pattern this SDK uses to give a domain object or ECS entity one or more typed views without polluting the underlying model with cross-cutting concerns.
  • Engine modules – modular architecture for loading/unloading systems, processors and hooks like DamageEngine, DeathEngine, StatEngine, etc.
  • Harmony Patches - a set of Harmony patches for common game hooks like DeathHook, StatChangeSystemHook, etc. The hooks all publish to the event bus, so you can subscribe to them without needing to patch the game code directly.
  • Processors – a high-level abstraction for processing game objects/events in a type-safe manner, allowing you to create custom processors that can be registered with the engine. Mostly used in Harmony patches.
  • Systems – a set of systems for common game mechanics like LootSystem, DamageTrackingSystem, ChatSystem, etc. These systems can be registered in your plugin or sometimes are pre-registered in an Engine.
  • Event bus – decoupled, async pub-sub pipeline for game-wide events.
  • Item Drops – a system for managing item drops, including support for custom drop tables and loot generation.
  • Extensions – Class extensions for common operations on Entity, PrefabGUID, and more.

Note: This may not be the entire list—refer to the API docs for every class, interface, and extension method that RisingV.Core provides.

Installation

  1. Dependency – ensure RisingV.Shared is already present.
  2. Copy RisingV.Core.dll to BepInEx/plugins/RisingV.
  3. Restart your dedicated server or client.

Plugin quick start

using BepInEx;
using RisingV.Shared.Plugins;
using RisingV.Shared.Engines;
using RisingV.Core.Engines;

public class MyCoolPluginConfig() : PluginConfig(MyPluginInfo.PLUGIN_GUID, MyPluginInfo.PLUGIN_GUID)
{
    public ConfigEntry<float> AttackModifier { get; set; } =
        new("Gameplay", "AttackModifier", 1f, "Modifier for attack damage");
}

public class MyCoolPluginContext() : PluginContext(typeof(MyPluginInfo), new MyCoolPluginConfig());

[BepInPlugin(MyPluginInfo.PLUGIN_GUID, MyPluginInfo.PLUGIN_NAME, MyPluginInfo.PLUGIN_VERSION)]
[BepInDependency("gg.deca.VampireCommandFramework")]
[BepInDependency("RisingV.Core")]
public class Plugin : RisingPlugin<MyCoolPluginContext>
{
    protected override void OnInitialize()
    {
        EngineManager.AddEngine<ScriptingEngine>(this);
        EngineManager.AddEngine<DamageEngine>(this);
        EngineManager.AddEngine<DeathEngine>(this);
    }
    
    protected override void OnLoad()
    {
        // Plugin startup logic (pre-initialization)
    }

    protected override bool OnUnload()
    {
        return true;
    }

    // You can also override other methods to register systems, processors, databases, etc.
}

Configurations

RisingV.Core uses the RisingV.Shared.Config base class for configuration management. This allows you to define your plugin's configuration in a type-safe manner, with support for hot-reloading and easy access to configuration values. It also means that majority of the systems/components in the RisingV ecosystem can be configured via json files.

BepInEx/configs
└── RisingV.Core
    ├── Engines
    │   ├── AchievementEngine.cfg
    │   ├── AdminEngine.cfg
    │   ├── BuffEngine.cfg
    │   ├── CastleEngine.cfg
    │   ├── ClanEngine.cfg
    │   ├── DamageEngine.cfg
    │   ├── DeathEngine.cfg
    │   ├── EquipmentEngine.cfg
    │   ├── ItemEngine.cfg
    │   ├── LootEngine.cfg
    │   ├── SaveEngine.cfg
    │   ├── SpawnEngine.cfg
    │   └── StatEngine.cfg
    ├── RisingV.Core.cfg
    ├── Systems
    │   ├── DamageTrackingSystem.cfg
    │   └── LootSystem.cfg
    └── RisingV.Core.cfg

Docs

For a deeper dive, API reference, and design docs see https://docs.risingv.dev/core.

Contributing

PRs that add new functionality—or improve existing ones—are warmly welcomed. Please open an issue first if you plan a large refactor.

License

GNU GPL-3.0. See LICENSE for details.

Product Compatible and additional computed target framework versions.
.NET net6.0 is compatible.  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. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages (16)

Showing the top 5 NuGet packages that depend on RisingV.Core:

Package Downloads
RisingV.Core.DeathEngine

Core Death Engine module for RisingV Mods

RisingV.Core.ItemEngine

Core Item Engine module for RisingV Mods

RisingV.Core.SaveEngine

Core Save Engine module for RisingV Mods

RisingV.Core.ChatEngine

Core Chat Engine module for RisingV Mods

RisingV.Core.DefaultComponentEngine

Core Default Component Engine module for RisingV Mods

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
0.1.3 299 6/26/2025
0.1.2 134 6/25/2025
0.1.1 157 6/5/2025