RisingV.Core
0.1.3
dotnet add package RisingV.Core --version 0.1.3
NuGet\Install-Package RisingV.Core -Version 0.1.3
<PackageReference Include="RisingV.Core" Version="0.1.3" />
<PackageVersion Include="RisingV.Core" Version="0.1.3" />
<PackageReference Include="RisingV.Core" />
paket add RisingV.Core --version 0.1.3
#r "nuget: RisingV.Core, 0.1.3"
#addin nuget:?package=RisingV.Core&version=0.1.3
#tool nuget:?package=RisingV.Core&version=0.1.3
<a href="https://risingv.dev"><p align="center"><img src="https://github.com/RisingV-Mods/RisingV.Core/blob/main/assets/images/logo_rounded.png?raw=true" width="400" 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
Feature | Link | Description |
---|---|---|
Plugin lifecycle | Docs | deterministic load / unload / reload with safe dependency ordering using RisingPlugin<TContext>. |
Aspect abstraction | Docs | 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 | Docs | modular architecture for loading/unloading systems, processors and hooks like DamageEngine, DeathEngine, StatEngine, etc. |
Harmony Patches | Docs | 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 | Docs | 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 | Docs | 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 | Docs | decoupled, async pub-sub pipeline for game-wide events. |
Loot System | Docs | a system for managing item drops, including support for custom drop tables and loot generation. |
Extensions | Docs | 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
- Dependencies – ensure the following are installed:
- Download the latest
RisingV.Core.<version>.zip
from Releases - Extract the zip file into your
BepInEx
directory. - Restart your dedicated server or client.
Development
- Add NuGet package
dotnet add package RisingV.Core
to your project. - Add
[BepInDependency("RisingV.Core")]
BepInEx dependency.
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. See CONTRIBUTING.md for more information.
Community
<p>Join the V Rising Mod Community Discord for modding support, updates, and discussions!</p>
License
GNU GPL-3.0. See LICENSE for details.
Product | Versions 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. |
-
net6.0
- BepInEx.PluginInfoProps (>= 2.1.0)
- RisingV.Shared (>= 0.1.3)
- VRising.Unhollowed.Client (>= 1.1.9.9219901)
- VRising.VampireCommandFramework (>= 0.10.2)
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.SpawnEngine
Core Spawn Engine module for RisingV Mods |
GitHub repositories
This package is not used by any popular GitHub repositories.