TheShadowRealm-BloodCraftHub icon

BloodCraftHub

Unified client UI for V Rising's Bloodcraft mod. Surfaces every Bloodcraft, KindredCommands, and KindredLogistics chat command as buttons + forms.

Last updated 13 hours ago
Total downloads 368
Total rating 3 
Categories Client Mods Oakveil Update
Dependency string TheShadowRealm-BloodCraftHub-0.14.0
Dependants 0 other packages depend on this package

This mod requires the following mods to function

BepInEx-BepInExPack_V_Rising-1.733.2 icon
BepInEx-BepInExPack_V_Rising

BepInEx pack for V Rising. Preconfigured and includes Unity Base DLLs.

Preferred version: 1.733.2

README

BloodCraftHub

Unified client-side V Rising UI mod that surfaces every chat command of the Bloodcraft server mod — with first-class support for KindredCommands and KindredLogistics on the same server.


⚠ Heads-up before you install

1 — Eclipse mod incompatibility (known issue, working on it). BloodCraftHub is built around the same MAC-signed protocol Eclipse uses, and having BOTH BloodCraftHub and Eclipse installed simultaneously currently hard-crashes the V Rising client before world entry. The crash originates inside Eclipse's CanvasService UI bring-up and is harmless in Eclipse-only setups — it only manifests when BCH is loaded alongside. Workaround: disable Eclipse in your mod manager while you use BloodCraftHub. A fix has been forwarded to Eclipse's author; this notice will go away once that lands.

2 — Pre-1.0 testing. v0.x is still public-beta. The major feature set is in place and the mod has been daily-driven on a live PvE server for months, but APIs and UI may still shift before 1.0. If you spot a bug, please reach out on the The Shadow Realm Discord — that's the fastest way to get a fix in the next release. GitHub issues also work for written-up reports.


Repo: https://github.com/KDavidP1987/BloodCraftHub Status: v0.14.0 — public on Thunderstore. 17 tabs across BLOODCRAFT / KINDRED / SETTINGS-AND-HELP, 7 secondary overlays (including the new combined info overlay), every chat command from the 3 backing server mods surfaced as forms + buttons (~250+ commands). v0.12.x added a two-zone panel color theme + Game Guide tab + Bloodcraft handshake retry; v0.13.x added per-profession overlay toggles, a comprehensive Mod Help reference with collapsible Details / Default Settings blocks, and inline class-synergy hint cards on the Class / Weapon Expertise / Blood Legacy / Prestige tabs; v0.14.0 ships the combined info overlay — one draggable panel containing XP / Familiar / Weapon Expertise / Blood Legacy / Professions / Quests in a single container, with per-system progress bars and stat-value sub-rows that respect the existing HUD-extras settings.

Screenshots

All captures below are from v0.13.0 — every UI piece shown still applies in v0.14.0.

Class tab — class-synergy card (v0.13.0) Class tab — Active Class card now includes the live class-details block (Death Mage shown here, with archetype + tagline + weapon/blood synergies + on-hit debuff). The Last server response strip at the bottom shows the same data the Bloodcraft .class lst reply carries, with stat synergies color-coded by Weapon / Blood. Settings → Display → Combined overlay carries the same data into the combined HUD overlay's Weapon and Blood sections.

Weapon Expertise tab — synergies + bonus-stat picker (v0.13.0) Weapon Expertise — Current Weapon Expertise card (level + chosen bonus-stat names + live numeric values), the v0.13 Class synergies card explaining which weapon stats your current class amplifies with a 1.5× cap, and the Set bonus stat for a weapon form. The collapsible reference below lists every baseline stat cap (Physical Power +20, Spell Power +10, etc.).

Blood Legacy tab — class synergies (v0.13.0) Blood Legacy — mirror treatment for the blood side. Current legacy state, class synergies card (which blood stats your class amplifies), action row, and the .bl cst set-bonus-stat form. Bottom collapsible has the full baseline-cap reference for every blood stat.

Prestige tab — progression reference (v0.13.0) Prestige — current prestige rows for each system (XP / Blood Legacy / Weapon Expertise / Familiar), the Prestige info display with current-tier breakdown, plus the "What each prestige tier gives you" reference card so you can see what every additional tier of leveling / weapon / blood / Exo prestige actually grants.

Settings — dual-zone color picker + scroll-position (v0.13.0) Settings & Help → Settings — the v0.12 two-zone panel color theme (outer chrome + interior scroll surfaces, with seven dark + seven bright presets for the interior), per-overlay transparency sliders, panel-background color, and HUD extras toggles. v0.13.0's gold-band section markers make long Settings / Mod Help pages scannable.

In-game capture — combined HUD elements (v0.13.0) Main panel open in-world to the V-Bloods collection tab, with the bound-familiar indicator at the right of the screen and the floating BCH button strip at the top-right. The footer overlay-toggle row (visible at the bottom of the main panel) is where the v0.14 Combined toggle lives, sitting alongside XP / Familiar / Familiar Browser / Daily Quest / Professions / Shift Spell.

What it does

  • Single floating "BCH" button top-right of the screen → opens the main panel.
  • Tabbed primary UI with 3 collapsible groups in the left rail:
    • BLOODCRAFT (10 tabs): Familiars, Boxes, Class, Weapon Expertise, Blood Legacy, Unarmed + Shift, Prestige, Levels, Daily Quests, Admin
    • KINDRED (6 tabs): Logistics, Logistics: Admin, Commands, Admin: Players, Admin: Server, Admin: World
    • HELP (3 tabs): Quick Start, Vanilla Admin reference, About
  • Five secondary overlays (toggle from footer): XP tracker (with EXO prestige), Familiar quick-glance, Familiar Browser, Daily Quest tracker, and Professions (all eight Bloodcraft profession levels). Each is independent draggable + resizable, with its own background transparency setting (0/25/50/75/100%). Visibility persists across sessions; a master "OV" button next to the BCH floating button hides/shows all currently-enabled overlays at once.
  • Dual text-size toggle (Small / Standard / Large, separate for the UI and for the overlays) on the Help → About tab.
  • "Last server response" docked panel at the bottom of the main panel — replies to read-data chat commands (.wep get, .class l, .misc userstats, .clan list, etc.) appear in-UI as well as in chat, so you don't have to chase the chat box for the answer.
  • Forms-driven commands — every chat command with arguments has a real form (player picker + enum dropdowns + numeric inputs + Submit). No more typing .lvl set <Player> <Level> in chat.
  • Live data via Bloodcraft's structured MAC-signed protocol (the same channel Eclipse uses). Falls back to regex parsing for .fam boxes/.fam l replies.
  • Hover tooltips for every control, surfaced in a single footer line.
  • Scrollable tabs — long admin tabs scroll within the viewport instead of clipping.
  • Auto-resizing panel that grows/shrinks to fit the active tab content (capped at 90% of screen height; toggleable).
  • Passive player-name autocomplete cache that fills as the server prints names into chat.

Installation

BloodCraftHub is a client-side mod. It does nothing on the server; install only on the V Rising client of the player who wants the UI.

Via Thunderstore Mod Manager (recommended)

  1. Open Thunderstore Mod Manager.
  2. Select V Rising → your existing profile (or create a new one).
  3. Search for BloodCraftHub under the Mods tab → Install.
  4. Make sure BepInExPack_V_Rising (the dependency) is installed in the same profile.
  5. Launch V Rising via the mod manager (not Steam directly).

Via r2modman

Same flow — open r2modman, V Rising profile, search BloodCraftHub, install, launch.

Manual install

  1. Install BepInEx for V Rising (BepInExPack_V_Rising 1.733.2 or compatible).
  2. Drop BloodCraftHub.dll into <V Rising>/BepInEx/plugins/.
  3. Launch V Rising.

First launch

When you connect to a server running Bloodcraft, a small floating BCH button appears top-right. Click to open the panel. Hover any control to see what it does — the description prints in the panel's bottom footer.

You don't need to be an admin to use BloodCraftHub — non-admin commands work for everyone. Admin tabs return permission errors gracefully if you're not authorized.

Compatibility

BloodCraftHub talks to the server through chat commands and Bloodcraft's signed Eclipse-protocol channel. It was tested against these versions:

Mod Tested version Role
BepInEx for V Rising BepInExPack_V_Rising 1.733.2 Loader (hard dependency)
Bloodcraft (server) v1.13.21 Primary integration target
KindredCommands (server) v2.5.8 Admin/player commands surfaced under KINDRED
KindredLogistics (server) v1.6.0 Personal/admin toggles surfaced under KINDRED
Eclipse (client, optional) v1.3.13 Source mod for the signed-protocol design; coexists, doesn't conflict
BloodCraftUI / OnlyFams (client, optional) v1.1.0 Source mod for the panel framework; coexists, doesn't conflict

If the server is running a newer Bloodcraft, most things should still work — the chat-command grammar is fairly stable. If a tab silently does nothing on click, the server probably renamed a command and MessageService_Processing.cs's BCCOM_* constants need a bump.

Known issues

  • Tooltips occasionally don't render on some control rows — diagnostic logging is in. If you see "TooltipHover wired" in BepInEx's LogOutput.log but the footer never updates while hovering, please open a GitHub issue.
  • No autocomplete dropdown yet — the player-name cache fills passively from chat, but the form fields don't render a dropdown of known names. You still have to type the name. Planned for a follow-up release.
  • Pagination only on .clan list — the other paginated commands (.castle plotsowned, .search item, etc.) accept a page int but don't have prev/next widgets yet. Type the command in chat for now.
  • Quitting V Rising is required before redeploy if you're a developer iterating — the running game file-locks BloodCraftHub.dll and the post-build copy step errors.

For the full open-issue list, see the project's GitHub issues.

Acknowledgements

BloodCraftHub is a client UI for server-side mods built by other developers. The features it surfaces would not exist without their work. If you use BCH, please also show the upstream mods some love:

Bloodcraft — by zfolmt

Leveling, expertise, legacies, professions, familiars, classes, quests! The bulk of what BloodCraftHub surfaces (every BLOODCRAFT-group tab) is wrapping zfolmt's chat-command surface.

KindredCommands & KindredLogistics — by odjit

Server administration utilities and personal/admin logistics toggles. The KINDRED admin tabs (Players / Server / World) and the Logistics section all call into odjit's mods.

About the UI

BCH was built on the V Rising server The Shadow Realm (Brutal PvE), maintained by Chaos. If you want to support BCH development directly:

BloodCraftHub is open source (MIT). Bug reports, feature ideas, and pull requests welcome at https://github.com/KDavidP1987/BloodCraftHub.


For developers

Dev docs

Doc Purpose
CHANGELOG.md Full phase-by-phase history. Read this to catch up on what's been built.
CONTRIBUTING.md Daily workflow, commit-message format, release procedure.
docs/MOD_DESIGN.md User-facing feature/UX spec.
docs/ARCHITECTURE.md Internal code structure and porting map from BloodCraftUI/Eclipse.
docs/VERSIONING.md Semver policy, single-source-of-truth rules, how to bump.
docs/PREFLIGHT.md Pre-commit / pre-release checklist. Enforced by tools/preflight.ps1.
docs/LOCAL_TESTING.md How to side-load the built DLL into your V Rising client and verify it loads.
docs/THUNDERSTORE.md Thunderstore packaging + publishing.

First-time setup

cd BloodCraftHub
.\tools\install-hooks.ps1   # wires up the pre-commit + commit-msg hooks

Build

cd BloodCraftHub
dotnet restore BloodCraftHub.sln
dotnet build BloodCraftHub.sln -c Release

Optional: deploy the built DLL directly to your client's BepInEx plugins folder:

# Default target is r2modman / Thunderstore Mod Manager "Default" profile.
dotnet build BloodCraftHub\BloodCraftHub.csproj -c Release -p:DeployToClient=true

# Override the r2modman profile name:
dotnet build BloodCraftHub\BloodCraftHub.csproj -c Release -p:DeployToClient=true -p:R2ModmanProfile=MyProfile

# Or target a non-r2modman install (vanilla Steam path):
dotnet build BloodCraftHub\BloodCraftHub.csproj -c Release `
    -p:DeployToClient=true `
    "-p:ClientPluginDirectory=C:\Program Files (x86)\Steam\steamapps\common\VRising\BepInEx\plugins"

Heads up: fully quit V Rising before redeploying. A running game file-locks the DLL and MSBuild's Copy step errors with MSB3021. The compile itself still succeeds — just the copy fails.

Layout

BloodCraftHub/
├── BloodCraftHub.sln
├── docs/                          ← read CHANGELOG + ARCHITECTURE first
├── tools/                         ← preflight.ps1, bump-version.ps1, install-hooks.ps1
├── .githooks/                     ← pre-commit + commit-msg
└── BloodCraftHub/                 ← plugin project
    ├── BloodCraftHub.csproj
    ├── Manifest.props             ← generates Thunderstore manifest.json
    ├── thunderstore.toml          ← package metadata for tcli
    ├── Plugin.cs                  ← BepInEx entry
    ├── Core.cs                    ← runtime singleton
    ├── icon.png                   ← 256×256 BCH icon
    ├── Behaviors/
    │     CoreUpdateBehavior.cs    ← IL2CPP-registered MonoBehaviour, per-frame loop
    ├── Config/
    │     Settings.cs              ← BepInEx-bound, static accessors
    ├── Patches/                   ← Harmony patches
    │     ClientChatPatch          ← inbound: Eclipse protocol + regex fallback + name harvest
    │     InitializationPatch      ← UI bring-up + LocalCharacter/User capture
    │     GameManagerPatch / EscapeMenuPatch / UICanvasSystemPatch / VersionStringPatch
    ├── Services/
    │     MessageService           ← outbound chat injection (immediate send)
    │     MessageService_Processing ← BCCOM_* command constants + regex pipeline
    │     EclipseProtocolService   ← MAC-signed protocol decode + registration
    │     PlayerStateService       ← single source of truth for parsed state
    │     PlayerNameCacheService   ← passive name harvest + autocomplete cache
    ├── UI/
    │     BCHubUIManager           ← root, owns floating button + lazy panels
    │     TooltipHover             ← hover-tooltip polling service
    │     Framework/               ← UniverseLib + CustomLib + ModernLib (folded in)
    │     Forms/
    │         FormBuilder          ← builds form panels from FormField specs
    │         FormField            ← TextField/IntField/EnumField<T>/BoolField/PlayerNameField
    │         CollapsibleSection   ← accordion wrapper, fires Toggled event
    │     ModContent/
    │         FloatingButtonPanel       ← 40×40 BCH button (top-right)
    │         MainPanel                 ← tabbed primary UI (Bloodcraft tabs + Quick Start)
    │         MainPanel.KindredAdmin    ← partial-class file: 3 KindredCommands admin sub-tabs
    │         ExperienceOverlayPanel / FamiliarOverlayPanel
    │     ModContent/Data/PanelType ← enum of every tab and overlay identity
    ├── Utils/                     ← LogUtils + Extensions (Entity.Read/Write/Has, color helpers)
    └── Resources/
        ├── PrefabGUIDs.cs              ← static prefab GUID lookup (stub)
        ├── PrefabNameResolver.cs       ← runtime PrefabCollectionSystem name lookup
        ├── SecretManager.cs            ← HMAC shared-key loader (regex-parses secrets.json)
        ├── secrets.json                ← embedded HMAC key (same default Bloodcraft+Eclipse ship)
        └── Localization/English.json

License

MIT — see LICENSE.txt for the full text plus third-party attribution for ported code from BloodCraftUI (panthernet), Eclipse (zfolmt), and the runtime peers we integrate with: Bloodcraft (zfolmt), KindredCommands (odjit), and KindredLogistics (odjit).