I have been playing around for about an hour after finding some stuff on google wich helped me a lot. NPC's now stay shackled whatever I throw at them but they won't die.
The only way to make this happen (tested multiple times):
four
1. Copy the ShackleWallMarker from DawnstarSanctuary to your cell.
2. Go to the object window, search and duplicate one of the four NPC's "DBTortureVictim", give it a name and place it.
3. Double click on the NPC, go to the script tab and add the following script to the NPC:
defaultignorefriendlyhits (so the npc wont die)
4. Add a new script to the NPC (right click- new script) and call it "RestrainedScript" - click ok. Right click on the script and select "edit source". Type the following:
Scriptname RestrainedScript extends Actor
Event OnLoad()
self.SetRestrained()
EndEvent
(this will keep the NPC restrained in the shackles)
Click ok.
5. Go to the object window and find "DBTortureVictimPackage" (type "torture" in the filter textbox), duplicate it and rename it. Double click on it and select the package tab. Click once on the reference under "Public Package Data", a button will show up wich says "ShaccleWallMarker is DawnstarSanctuary". Click on that button wich will bring up a window. Click on "Select Reference in Render Window" and select the wallshacklesmarker. You'll see the cell is now named to your cell.
6. Double click your NPC, click on Edit base and go to the "relationships" tab, right click - new - and assign it as follows: Parent NPC - Player, Child NPC (Your NPC), Ally. (The NPC will now be friendly to you and greet you, but this will keep the NPC unhostile)
7. Select the "IA Packages" tab and delete DBTortureVictimPackage. Right click and select Add. Find your duplicated TortureVictimPackage and select it. Ok all.
Once you made the retrestraind script, you can re-use it. The torturevictimpackage has to be made seperatly for every new victim as well as the NPC