You are viewing a potentially older version of this package. View all versions.
Perkshop-PerkShop-0.1.3 icon

PerkShop

Server-side V Rising perk shop with persistent stat perks, renewable timed buffs, blood-buff slots, admin tools, and Bloodcraft-compatible defaults.

Date uploaded 2 months ago
Version 0.1.3
Download link Perkshop-PerkShop-0.1.3.zip
Downloads 25
Dependency string Perkshop-PerkShop-0.1.3

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
deca-VampireCommandFramework-0.11.0 icon
deca-VampireCommandFramework

Command framework for developers to easily create universal commands for their plugins.

Preferred version: 0.11.0

README

PerkShop

PerkShop is a server-side V Rising mod that adds a configurable perk shop through VampireCommandFramework commands.

Players can buy persistent buffs and stat perks. Admins can grant, revoke, whitelist, inspect, validate, reload, and sync player perks. Stats acquired via Perkshop will not appear in the player's UI, but they will have gameplay effects.

Command prefix:

.perk

Features

  • Configurable buff shop.
  • Configurable permanent stat shop.
  • Renewable timed buffs for potions, elixirs, and blood buffs.
  • Blood-buff category defaults to five slots.
  • Purchased ownership persists across relogs/restarts.
  • Admin-given buffs and flat stats.
  • Buff/stat whitelist support.
  • .perk validate, .perk diag, .perk reload, and .perk syncall for live-server administration.
  • Debounced JSON persistence and throttled periodic reapply.
  • Bloodcraft-safe default stat carrier.

Dependencies

Install these before PerkShop:

  • BepInExPack for V Rising
  • VampireCommandFramework

This repository does not include game, BepInEx, VCF, or interop DLLs.

Installation

Copy the compiled DLL to the server:

BepInEx/plugins/PerkShop/PerkShop.dll

Start the server once to generate:

BepInEx/config/PerkShop/perkconfig.json
BepInEx/config/PerkShop/ownedbuffs.json
BepInEx/config/PerkShop/playercache.json

Then edit the config and reload in game:

.perk reload
.perk validate
.perk diag

Adding buffs to the shop

PerkShop buffs are configured in BepInEx/config/PerkShop/perkconfig.json under the Buffs object. Each entry key is the command key players use with .perk buffbuy <key>.

Minimal example:

"myBuffKey": {
  "Enabled": true,
  "DisplayName": "My Custom Buff",
  "Category": "misc",
  "BuffPrefab": 123456789,
  "Cost": 100,
  "PersistentPurchase": true,
  "PreventDuplicate": true,
  "DurationSeconds": 7200,
  "PersistThroughDeath": false,
  "MutateAppliedBuffLifetime": true,
  "Notes": "Short explanation shown in .perk buffdet."
}

Recommended process:

  1. Pick a short, clear key such as ragePotion, sunImmune, or warriorT1.
  2. Set BuffPrefab to the V Rising PrefabGUID for the buff.
  3. Choose an existing category such as potion, elixir, blood_buff, or misc.
  4. Set Cost and Enabled.
  5. Run .perk reload, then .perk validate.
  6. Test with .perk buffdet <key> and .perk buffbuy <key>.

Important fields:

Field Purpose
Enabled Whether players can see/buy the buff.
DisplayName Friendly name shown in commands.
Category Slot group. blood_buff defaults to five slots.
BuffPrefab The V Rising buff PrefabGUID to apply.
Cost Currency cost per purchase.
PersistentPurchase Saves ownership and reapplies the buff when missing.
PreventDuplicate Blocks buying/applying a duplicate active buff.
DurationSeconds Active buff duration. Renewable categories use the configured renewable duration.
PersistThroughDeath Whether the active buff instance should persist through death when not using renewable timed mode.
MutateAppliedBuffLifetime Advanced compatibility setting. Leave true unless testing a special buff.
Notes Description shown by .perk buffdet.

Potions, elixirs, and blood buffs use renewable timed mode by default. They keep a visible countdown and are reapplied by ownership when missing or expired. This is intentional and safer than stripping vanilla lifetime cleanup.

Avoid adding exotic or scripted buffs unless you test them carefully. Good candidates are passive stat buffs, consumable-style buffs, blood-tier buffs, and simple utility buffs. Avoid shapeshift, travel, channel, summon, boss phase, quest, tutorial, or temporary spell-execution buffs.

Documentation

Important compatibility notes

PerkShop is server-side. It can apply stats through gameplay systems, but the client attributes UI only displays stat types it knows how to render. Some perks may therefore be gameplay-active without appearing in TAB/Eclipse.

Blood buffs are intentionally renewable timed buffs. They keep a countdown and are reapplied when missing/expired by PerkShop ownership sync. This avoids the stale UI/cleanup problems caused by force-removing vanilla lifetime behavior.

License

See LICENSE.

CHANGELOG

Changelog

0.3.0

  • Added the full default relic perk set to the available buy list: relicBehemoth, relicManticore, relicMonster, and relicPaladin.

  • Added per-entry currency overrides for buff and stat purchases while preserving the global default currency.

  • Added relic tower buffs to the default config under the standardized relic category:

    • relicBehemoth
    • relicManticore
    • relicMonster
    • relicPaladin
  • Added the default relic buff category and placed it on the renewable timed lane.

  • Improved command documentation so each command is described, not just listed.

  • Fused docs markdown content into the README, then trimmed the README so it keeps one clean command/config/key reference.

  • Fixed the relic category key mismatch by standardizing the default category name to relic.

0.2.0

  • Added per-entry currency overrides groundwork and relic shop support in the active source branch.