KindredLogistics
Мод управления запасами. Хранение, вытаскивание, нахождение сундуков и т.д.

от cheesasaurus
Предоставляет API для модов для подключения систем Unity DOTS.
HookDOTS API — мод для V Rising (Ви Райзинг) от автора cheesasaurus. Предоставляет API для модов для подключения систем Unity DOTS.
Его скачали 15,4 тыс. раз: это 20-е место среди модов V Rising в нашем каталоге, редкость — «эпический» (топ-20% по скачиваниям). Мод обновлялся в течение года, актуальная версия — 1.1.1.
Для работы ему нужны: BepInExPack V Rising.
Автор отметил совместимость с обновлениями игры: Oakveil.
Текст автора на языке оригинала
HookDOTS is a modding library for hooking Unity DOTS games. By itself, it doesn't do anything.
Harmony is an excellent tool, but it fails at one important thing: Hooking unmanaged systems in IL2CPP builds.\ HookDOTS was created to solve this problem.
Notable attributes provided (for plugin developers):
[EcsSystemUpdatePrefix(typeof(EquipItemSystem))][EcsSystemUpdatePostfix(typeof(EquipItemSystem))][WhenCreatedWorldsContainAny("Server", "Client_0")]HookDOTS.API.dll into (VRising folder)/BepInEx/pluginsFor Server Operators
By itself, HookDOTS doesn't do anything. It is required by other plugins and should be kept up to date.
For Plugin Developers
dotnet add package HookDOTS.API -v 1.*
[BepInPlugin(MyPluginInfo.PLUGIN_GUID, MyPluginInfo.PLUGIN_NAME, MyPluginInfo.PLUGIN_VERSION)]
[BepInDependency("HookDOTS.API")]
public class ExamplePlugin : BasePlugin
public override void Load()
{
//... other initialization code
// Register your plugin's hooks with HookDOTS
_hookDOTS = new HookDOTS.API.HookDOTS(MyPluginInfo.PLUGIN_GUID, Log);
_hookDOTS.RegisterAnnotatedHooks();
}
public override bool Unload()
{
//... other unloading code
_hookDOTS.Dispose();
return true;
}
public class ExamplePatch
{
// The hook must be `public` and `static`.
// If you want SystemState* passed in, an `unsafe` context is also required.
[EcsSystemUpdatePrefix(typeof(EquipItemSystem))]
unsafe public static bool ExamplePrefix(SystemState* systemState)
{
var world = systemState->World;
ExamplePlugin.LogInstance.LogInfo($"ExamplePrefix executing in world {world.Name}.");
// You can return false, to skip the hooked OnUpdate. Other prefix hooks will still run.
bool shouldSkipTheOriginal = true;
return !shouldSkipTheOriginal; // this will be returned, and is false. Therefore the original will be skipped.
}
[EcsSystemUpdatePrefix(typeof(EquipItemSystem))]
unsafe public static bool ExamplePrefixNoSkip(SystemState* systemState)
{
// Prefer to use the AfterDetours constants instead of true/false.
// return AfterDetours.SkipOriginalMethod;
return AfterDetours.OkToRunOriginalMethod;
}
[EcsSystemUpdatePostfix(typeof(EquipItemSystem))]
unsafe public static void ExamplePostfix(SystemState* systemState)
{
var world = systemState->World;
ExamplePlugin.LogInstance.LogInfo($"ExamplePostfix executing in world {world.Name}.");
// Unlike a prefix hook, a postfix hook cannot return false to skip anything.
// The only valid return type is `void`.
}
}
You can set onlyWhenSystemRuns to false, and the hook will be called even if the system doesn't actually run.
[EcsSystemUpdatePrefix(typeof(EquipItemSystem), onlyWhenSystemRuns: false)]
public static void ExamplePrefix2()
{
// (this is commented out, because the log would be spammed every frame)
// ExamplePlugin.LogInstance.LogInfo($"ExamplePrefix2 executing");
}
If you're using hooks to dump information and don't want to be flooded every frame, the Throttle attribute can be used.
// You can specify `days`, `hours`, `minutes`, `seconds`, and `milliseconds` to define the throttle interval.
// Internally, these are used to create a `System.TimeSpan`
[Throttle(seconds: 10)]
[EcsSystemUpdatePrefix(typeof(EquipItemSystem), onlyWhenSystemRuns: false)]
public static void ExamplePrefixThrottled()
{
ExamplePlugin.LogInstance.LogInfo($"ExamplePrefixThrottled executing (throttled to once every 10 seconds)");
}
Procedurally, using a HookRegistrar:
var hookDOTS = new HookDOTS.API.HookDOTS(MyPluginInfo.PLUGIN_GUID, Log);
//...
var hook = HookDOTS.Hooks.System_OnUpdate_Prefix.CreateHook(MyHookMethod);
hookDOTS.HookRegistrar.RegisterHook_System_OnUpdate_Prefix(hook);
Builder style, using SetupHooks:
var hookDOTS = new HookDOTS.API.HookDOTS(MyPluginInfo.PLUGIN_GUID, Log);
//...
hookDOTS
.SetupHooks()
.BeforeSystemUpdates()
.ExecuteDetour(MyMethodA).Always()
.And()
.ExecuteDetour(MyMethodB).Always()
.Also()
.AfterSystemUpdates()
.ExecuteAction(MyMethodC).Throttled(seconds: 2)
.Also()
.BeforeSystemUpdates(onlyWhenSystemRuns: false)
.ExecuteDetour(MyMethodD).Throttled(seconds: 5)
.RegisterChain();
// be sure to call RegisterChain! Otherwise the entire chain will be discarded.
There are world readiness checks/triggers if you need to defer something until after worlds are created.
Worlds are immediately checked during hook registration, in case they were already set up.\ Each r
Описание длинное — здесь его начало. Читать целиком на странице автора
В r2modman ставится автоматически
10 в каталоге · показаны самые популярные
Мод управления запасами. Хранение, вытаскивание, нахождение сундуков и т.д.
Тонны вариантов конфигурации
Все клиентские модификации для сервера Soul PvE Bloodcraft.
Позволяет операторам серверов планировать повторяющиеся события.
Модифицированная вилка KindredLogistics (Odjit, Zfolmt): scoop, Clan Share, ремни с колпачками / резервами, быстрый депозит, тайник слуги, повторные охоты, переключатели администратора.
Ограниченное (или неограниченное) оснащение снаряжения, как в бою, так и вне его. Полностью настраиваемый.
Файл скачивается с официального сервера Thunderstore, без перезаливов и сторонних установщиков
Подробная инструкция для V RisingВставьте значок в описание на Thunderstore, в README или в Discord — русскоязычные игроки сразу попадут на страницу с переводом и инструкцией.
[](https://modka.app/v-rising/cheesasaurus-hookdots-api/)<a href="https://modka.app/v-rising/cheesasaurus-hookdots-api/"><img src="https://modka.app/badge.png" alt="Описание на русском — Модка" height="44"></a>[url=https://modka.app/v-rising/cheesasaurus-hookdots-api/]Описание на русском — Модка[/url]Скачайте менеджер модов r2modman (или Gale) и выберите в нём игру V Rising. Создайте профиль — так моды не смешаются с чистой версией игры. Найдите «HookDOTS API» во вкладке Online и нажмите Download — BepInEx и все зависимости подтянутся сами. Нажмите «Start modded» — игра запустится с модами. Чтобы сыграть без модов, запустите игру как обычно из Steam — r2modman не трогает чистую версию игры.
Файл скачивается с официального сервера Thunderstore, куда его загрузил cheesasaurus. Мы не перезаливаем и не изменяем моды.
Установите вместе с ним: BepInExPack V Rising. В менеджере модов зависимости подтягиваются автоматически.
22 октября 2025, актуальная версия — 1.1.1. Это больше года назад: перед установкой проверьте, работает ли мод на текущей версии игры.
Все клиентские моды для сервера Soul PvE.
Инструмент развития. Информация о системе ECS.
Пропустите интро видео прямо в главное меню
Продвинутая интеграция webhook для серверов V Rising. Отправьте чат, логин / логаут, PvP убивает, а VBlood побеждает в Discord. Функции admin/public/clan-specific logs с настраиваемым форматированием.
Dumps Info
GUI JSON Editor for V Rising Mods