


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.
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.13.0 — public on Thunderstore. 17 tabs across BLOODCRAFT / KINDRED / SETTINGS-AND-HELP, 6 secondary overlays, 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.0 adds 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 so users have decision-relevant context exactly where they make their picks.
Class tab — Active Class card + Change Class form, with the Familiar overlay docked at the right of the screen. (v0.11.2 capture; v0.13 adds a class-synergies block to the same card.)
KINDRED → Logistics — Personal Toggles (Sort Stash, Craft Pull, Don't Pull Last, etc.) plus the Utility quick-actions for Stash All and .pull / .fi / .fc forms. The tab strip on the left shows the collapsible BLOODCRAFT / KINDRED / SETTINGS-AND-HELP groups.
Weapon Expertise — Current Weapon Expertise card (level + chosen bonus stats + their live numeric values), action buttons, and the Set bonus stat for a weapon form expanded. v0.13 adds a class-synergy hint card right above the Actions row so you can see which stats your current class amplifies before picking.
V-Bloods tab — collection tracker showing captured-vs-missing counts, filter pills (All / Captured / Missing / Shiny), and per-V-Blood rows with their variant chips and direct Summon buttons. The Scan-all button at the top runs a silent box-sweep to populate the entire list.
Familiars tab in-game — Active Familiar card (name, level, prestige, HP / PP / SP), per-familiar action row (Recall, Toggle Combat, Toggle Emote, List Emotes), and the More Familiar Actions collapsible group below. The shift overlay and active-familiar block are visible at the bottom and right edges of the screen.
.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..lvl set <Player> <Level> in chat..fam boxes/.fam l replies.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.
Same flow — open r2modman, V Rising profile, search BloodCraftHub, install, launch.
BepInExPack_V_Rising 1.733.2 or compatible).BloodCraftHub.dll into <V Rising>/BepInEx/plugins/.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.
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.
LogOutput.log but the footer never updates while hovering, please open a GitHub issue..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.BloodCraftHub.dll and the post-build copy step errors.For the full open-issue list, see the project's GitHub issues.
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:
Leveling, expertise, legacies, professions, familiars, classes, quests! The bulk of what BloodCraftHub surfaces (every BLOODCRAFT-group tab) is wrapping zfolmt's chat-command surface.
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.
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.
| 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. |
cd BloodCraftHub
.\tools\install-hooks.ps1 # wires up the pre-commit + commit-msg hooks
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.
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
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).