Mods / Raithe Shackles

Tags: #Clothing #Utility #Weapons
Author: Raithe
Side: Both
Created: Aug 14th at 6:49 PM
Last modified: 6 days ago
Downloads: 830
Follow Unfollow 45

Recommended download (for Vintage Story 1.21.5):
raitheshackles_1.0.3.zip  1-click install


Raithe Shackles — Player Imprisonment & Tracking Mod

Inspired by Novacain's ShackleGear, Raithe Shackles enables player-run justice: capture opponents, move them to cells, and maintain custody using a single, fuel-driven item—no admin intervention required.


What is a Shackle?

A Shackle is a binding device that, once charged, will imprison the next Seraph (player) you slay while carrying an empty Shackle. The prisoner remains bound to that Shackle until its fuel expires or the Shackle is broken.

Prisoners temporarily receive a restricted role (default: suvisitor) and cannot fight, build, or break blocks until freed. (This role is stored and returned upon freeing. Admins will gain admin status back)


How It Works In-Game

Crafting a Shackle

Assemble one using:

  • 4x Gold Ingots

  • 1x Temporal Gear

  • 4x Plain Glass Blocks

Charging the Shackle

A Shackle must be fueled before it can imprison anyone.

  1. Put any coal in your hotbar: Charcoal, Brown Coal, Black Coal, Coke, or Anthacite. (Server Configurable)

  2. Hold the Shackle in your main hand.

  3. Right-Click to feed coal into it.

  4. Repeat until you reach the required charge (typical servers require a full day of fuel; value is Server Configurable).

Tip: You can refuel a held Shackle later.

Imprisonment Trigger

  • Carry a charged, empty Shackle on your person (inventory or hotbar).

  • Kill a player.

  • The Shackle activates and imprisons that player, storing their identity and original spawn.

The Shackle then consumes fuel over time. If the timer hits zero, the prisoner is freed automatically.

While Imprisoned

  • Prisoners are assigned the (Server Configurable) suvisitor role (no combat, building, or block breaking).

  • The Shackle’s location is tracked by the server—whether it’s in your inventory or hidden in a chest.

  • Prisoners see a continuous particle stream pointing toward the Shackle.

    • Colors shift from cool (far) to warm (near) to indicate proximity.

Freeing a Prisoner

A prisoner is released if any of the following occur:

  • Fuel expires (Shackle timer runs out).

  • The Shackle is dropped on the ground (logging out while holding it causes a drop)

Important: Breaking or dropping a Shackle immediately frees the prisoner. Handle it carefully.

Cell Teleport (Beds)

You can bind a prisoner to a “cell” and move them there.

  • Hold the Shackle and Sneak + Right-Click a Bed to teleport the prisoner to that bed and set their spawn.

  • Cost: 2x Rusty Gears (server configurable).

  • Cooldown: 24 in-game hours between cell teleports.

  • The Shackle records the cell position and can move the prisoner there again after cooldown.


Player Tools & Commands

  • Who last fueled my Shackle?

    • Prisoners can request a fuel log to reveal the last fueler of the Shackle that currently holds them.

    • /sg fuellog
  • Admin/Moderator tools

    • Force-imprison a target while holding a charged Shackle.

    • Force-free a prisoner when necessary.

    • /sg admin [shackle/free] [playername]

 


Server Configuration Options

Server owners can tune balance and behavior via config:

  • Fuel Math

    • Minimum burn temperature for valid fuels

    • Fuel duration multiplier

    • Maximum storable time in a Shackle

    • Minimum charge required to imprison

  • Roles & Permissions

    • The restricted role assigned while imprisoned (default: suvisitor)

  • Cell Teleport

    • Cost item & amount (default: 2x Rusty Gears)

    • Cooldown between cell teleports (default: 24 in-game hours)

These options allow servers to scale Shackles from light RP tools to serious custody mechanics on PvP/Civ servers.


In-Game Guide

Raithe Shackles includes a native Vintage Story Guidebook entry, accessible via the standard help system. The guide covers:

  • Crafting recipe and fueling

  • Imprisonment rules & freeing conditions

  • Cell teleport usage and cooldown

  • How prisoners follow the particle trail back to the Shackle


Integrations & Compatibility

  • Designed for PvP, Civ-style, and RP servers

  • Works alongside base container mechanics—Shackles can be hidden or transferred, but the prisoner’s trail keeps pointing to them

  • Not really meant for servers with land claims due to shackles being unobtainable by intruders, use at your own risk with land claims.

Use Cases

  • Bounty hunting and POW exchanges

  • City-state justice and jail systems

  • High-stakes PvP: ransom, rescue, and counter-raids

  • RP scenarios that need reliable custody without admin presence


 

 

Enjoying Raithe Shackles? Check out my other mod:

Raithe Snitches

 

If you’d like to support development and future updates, consider buying me a coffee on Ko-Fi. Your support helps keep the mod growing and maintained!

 

https://ko-fi.com/raithe_vs

 

“Better a blade at your back than a chain on your wrist.”

 

Mod Version Mod IdentifierFor Game version Downloads Released Changelog Download 1-click mod install*
1.0.3 raitheshackles 167 6 days ago raitheshackles_1.0.3.zip 1-click install

Fixed tracking of Shackles. Should be better on performance and now shackles can't be lost due to dismantling of boats and killing of creatures with attachable inventories.
Be aware. If a shackle that has a shackled player attached to it, is being stored in an entity's inventory and that entity dies while carrying the shackle, the shackle will drop and break freeing the player. (This includes players, ie, even with corpse mod, this should eject the shackle out of the player's inventory. If this does not work, I please let me know.)

Shackled players will always know the direction of the shackle, even while on a moving entity. The particle amount that can lead the shackled to their shackle has been increased. The mechanic is the same, colder colors indicate the shackle is far away, warmer colors mean you are close.

Also added a config that is true by default that will cause all worn inventories to be dropped on death of the player. If the player has no items in their wrist and feet slot, temporary manacle items will be added that cannot be removed until they are freed from the shackle.

1.0.2 raitheshackles 67 Nov 1st at 7:46 PM raitheshackles_1.0.2.zip 1-click install

Fix bug with Nadia Villagers

1.0.1 raitheshackles 353 Oct 24th at 11:14 AM raitheshackles_1.0.1.zip 1-click install

Updated to 1.21.5

- Fixed crash with harvestable corpses.

1.0.0 raitheshackles 242 Aug 14th at 10:31 PM raitheshackles_1.0.0.zip 1-click install

Initial Release 1.0.0


11 Comments (oldest first | newest first)

💬 Raithe , Nov 26th at 8:55 PM

Amarillo Yes, there is a minimum of 1 in-game day of charging required to imprison someone. Will likely make this server configurable in the future. Due to the expensive nature of the shackle I didn't want anyone to shackle someone while it wasn't charged and then be mad when in auto-broke. :P

 

ThatGuyHashy Not sure what you mean here? I don't have that config option in this mod or Shackles. Not sure how this mod would interact with tabletop games or armor stands at all.

💬 ThatGuyHashy, Nov 17th at 4:06 AM

I cant remember if its this mod or not but i swear i saw smth in the config like 

 

          HarmonyPatchEnabled        True

 

or smth like that, but i cant remember, if not would it be possible to get one added? the harmony patch is crashing certain actions with tabletop games and armor stands

 

💬 Amarillo, Nov 1st at 10:51 PM (modified Nov 1st at 11:31 PM)

Raithe

Okay tested it again. with corpse and with Unconscious mod and it worked with both. BUT In any case (just with shackle mod, with corpse and with corpse and unconscious mods), when fueling the shackle with less time than 1 hour and killing a player it don't shackle him, and it display an error below stating "error-shackle-needs-fuel" but when the shackle is fueled 1 hour and above it works. This happens the same even with only the shackles mod enabled.

There is a min time to shackle someone or could be a bug?

 

💬 Raithe , Nov 1st at 7:50 PM

Amarillo We tested with Corpse mod and the corpse dropped and the shackled player was shackled. Did you charge up atleast a day of fuel on the shackle?

 

Limbobinho I will look into this. but prolly wont get implemented until next week.

 

AceGoat It sounds like it isn't. I will try to make it compatible in the future, it will just take some time.

💬 Amarillo, Nov 1st at 1:27 PM (modified Nov 1st at 2:50 PM)

AceGoat I don't think so I tested having both (and also corpse mod) and generated some issues. Even without unconscious (and only corpse mod) and I had an issue trying to shackle a player with a bug of the player dying, not being shackled and losing their items because corpse never spawned.

I love this mod btw, but I cannot add it to my server due those collisions with those other mods :(((

 

💬 Limbobinho, Oct 27th at 2:24 AM

Could you at least add a config that prevents clothes from falling off? It's really bad for RP

💬 AceGoat, Oct 26th at 8:41 PM

Hi, is this compatible with the Unconcious(Revive) Mod?

💬 Raithe , Oct 24th at 11:16 AM

@Thorin48 Updated

@TheRegalAmerican Fixed the harvestable corpse crashing.

 

💬 Thorin48, Oct 6th at 1:53 AM
Crash Report
6.10.2025 01:51:54 [Server Error] Exception: Index was outside the bounds of the array.
at raitheshackles.src.util.InventoryOwnerUtil.GetBlockPosFromID(IInventory inv) in C:\Users\beauf\source\repos\raitheshackles\raitheshackles\raitheshackles\src\util\InventoryOwnerUtil.cs:line 113
at raitheshackles.src.util.InventoryOwnerUtil.TryGetOwningBlockEntity(ICoreServerAPI sapi, IInventory inv) in C:\Users\beauf\source\repos\raitheshackles\raitheshackles\raitheshackles\src\util\InventoryOwnerUtil.cs:line 38
at raitheshackles.src.harmonypatching.Patch_TakeOutWhole_ItemStack.Postfix(ItemSlot __instance, ItemStack __result) in C:\Users\beauf\source\repos\raitheshackles\raitheshackles\raitheshackles\src\harmonypatching\Patch_TakeOutWhole_ItemStack.cs:line 19
at Vintagestory.API.Common.ItemSlot.TakeOutWhole_Patch1(ItemSlot this)
at Vintagestory.API.Common.ItemSlot.TakeOut_Patch2(ItemSlot this, Int32 quantity)
at Vintagestory.API.Common.ItemSlot.TryPutInto_Patch1(ItemSlot this, ItemSlot sinkSlot, ItemStackMoveOperation& op)
at Vintagestory.Common.PlayerInventoryManager.TryTransferAway(ItemSlot sourceSlot, ItemStackMoveOperation& op, Boolean onlyPlayerInventory, StringBuilder shiftClickDebugText, Boolean slotNotifyEffect) in VintagestoryLib\Common\GameContent\Inventory\PlayerInventoryManager.cs:line 273
at Vintagestory.API.Common.InventoryBase.ActivateSlot(Int32 slotId, ItemSlot sourceSlot, ItemStackMoveOperation& op) in VintagestoryApi\Common\Inventory\InventoryBase.cs:line 444
at Vintagestory.Common.InventoryNetworkUtil.HandleClientPacket(IPlayer byPlayer, Int32 packetId, Packet_Client packet) in VintagestoryLib\Common\GameContent\Inventory\InventoryNetworkUtil.cs:line 134
at Vintagestory.Common.InventoryNetworkUtil.HandleClientPacket(IPlayer byPlayer, Int32 packetId, Byte[] data) in VintagestoryLib\Common\GameContent\Inventory\InventoryNetworkUtil.cs:line 83
at Vintagestory.GameContent.EntityBehaviorHarvestable.OnReceivedClientPacket(IServerPlayer player, Int32 packetid, Byte[] data, EnumHandling& handled) in VSEssentials\Entity\Behavior\BehaviorHarvestable.cs:line 392
at Vintagestory.API.Common.Entities.Entity.OnReceivedClientPacket(IServerPlayer player, Int32 packetid, Byte[] data) in VintagestoryApi\Common\Entity\Entity.cs:line 1579
at Vintagestory.Server.ServerMain.HandleEntityPacket(Packet_Client packet, ConnectedClient client) in VintagestoryLib\Server\ServerGeneralPacketHandler.cs:line 467
at Vintagestory.Server.ServerMain.HandleClientPacket_mainthread(ReceivedClientPacket cpk) in VintagestoryLib\Server\ServerMainNetworking.cs:line 280
at Vintagestory.Server.ServerMain.ProcessMain() in VintagestoryLib\Server\ServerMain.cs:line 934
💬 Thorin48, Oct 5th at 11:35 PM

Could you update this and your Snitch please? I want to use it on a server If you dont mind. If not could I fork it and Ill try to figure out how to. Thank you :)

💬 TheRegalAmerican, Aug 29th at 3:02 PM

Unsure why, as I have around 30+ mods on my server; However, this mod is crashing my server whenever I attempt to take items from an animal corpse. Just letting people know in case they run into a similar issue, as I just spent the last 2 hours regretting life choices.

 (edit comment delete)
Основной веб-сайт | Почтовый сервер | FTP сервер | Административная панель | API интерфейс | Content Delivery Network | Статические файлы | Ресурсы сайта | Изображения | Файловое хранилище | Блог | Интернет-магазин | Техническая поддержка | Справочная система | Документация | Форум | Новости | Загрузки | Демонстрация | Тестовая среда | Приложение | Медиа контент | Разработка | Промежуточная среда | Бета версия | Безопасная зона | Вход в систему | Панель управления | Портал | Система управления контентом