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
BepInEx pack for V Rising. Preconfigured and includes Unity Base DLLs.
Preferred version: 1.733.2README
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 — 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 — 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 — 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 — 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 & 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.
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 lreplies. - 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)
- Open Thunderstore Mod Manager.
- Select V Rising → your existing profile (or create a new one).
- Search for BloodCraftHub under the Mods tab → Install.
- Make sure BepInExPack_V_Rising (the dependency) is installed in the same profile.
- 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
- Install BepInEx for V Rising (
BepInExPack_V_Rising1.733.2 or compatible). - Drop
BloodCraftHub.dllinto<V Rising>/BepInEx/plugins/. - 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.logbut 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 apageint 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.dlland 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.
- Thunderstore: https://thunderstore.io/c/v-rising/p/zfolmt/Bloodcraft/
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.
- KindredCommands: https://thunderstore.io/c/v-rising/p/odjit/KindredCommands/
- KindredLogistics: https://thunderstore.io/c/v-rising/p/odjit/KindredLogistics/
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:
- Server Discord: https://discord.gg/usC9QgBrXK
- PayPal: https://www.paypal.com/paypalme/KrisPenland
- SkillEra.IO: https://SkillEra.IO
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).