feature/d01-branch-b-definitions #7

Merged
NotEvil merged 3 commits from feature/d01-branch-b-definitions into develop 2026-04-14 20:23:54 +00:00
102 changed files with 2733 additions and 72 deletions

View File

@@ -40,7 +40,11 @@ public class AnvilEventHandler {
// Check if item can have a padlock attached (tape, slime, vine, web cannot)
if (!lockable.canAttachPadlock()) {
return; // Item type cannot have padlock
return; // Item type cannot have padlock (V1)
}
// V2 data-driven items: check definition's can_attach_padlock field
if (!com.tiedup.remake.v2.bondage.datadriven.DataDrivenBondageItem.canAttachPadlockTo(left)) {
return;
}
// Item must not already have a padlock attached

View File

@@ -436,6 +436,19 @@ public class DataDrivenBondageItem extends AbstractV2BondageItem {
);
}
/**
* Stack-aware padlock attachment check for data-driven items.
* Returns false for organic items (slime, vine, web, tape) that have
* {@code can_attach_padlock: false} in their JSON definition.
*/
public static boolean canAttachPadlockTo(ItemStack stack) {
DataDrivenItemDefinition def = DataDrivenItemRegistry.get(stack);
if (def != null) {
return def.canAttachPadlock();
}
return true;
}
// ===== FACTORY =====
/**

View File

@@ -58,6 +58,9 @@ public record DataDrivenItemDefinition(
/** Whether this item can be locked with a padlock. */
boolean lockable,
/** Whether a padlock can be attached to this item. False for organic items (slime, vine, web, tape). */
boolean canAttachPadlock,
/** Whether this item supports color variants. */
boolean supportsColor,

View File

@@ -200,6 +200,9 @@ public final class DataDrivenItemParser {
// Optional: lockable (default true)
boolean lockable = getBooleanOrDefault(root, "lockable", true);
// Optional: can_attach_padlock (default true). False for organic items.
boolean canAttachPadlock = getBooleanOrDefault(root, "can_attach_padlock", true);
// Optional: supports_color (default false)
boolean supportsColor = getBooleanOrDefault(
root,
@@ -335,6 +338,7 @@ public final class DataDrivenItemParser {
posePriority,
escapeDifficulty,
lockable,
canAttachPadlock,
supportsColor,
tintChannels,
icon,

View File

@@ -0,0 +1,31 @@
{
"type": "tiedup:bondage_item",
"display_name": "Armbinder",
"translation_key": "item.tiedup.armbinder",
"model": "tiedup:models/gltf/v2/binds/armbinder.glb",
"regions": [
"ARMS"
],
"pose_type": "STANDARD",
"pose_priority": 30,
"escape_difficulty": 100,
"lockable": true,
"can_attach_padlock": true,
"supports_color": false,
"animation_bones": {
"idle": [
"rightArm",
"leftArm"
],
"struggle": [
"rightArm",
"leftArm"
]
},
"components": {
"lockable": {},
"resistance": {
"id": "armbinder"
}
}
}

View File

@@ -0,0 +1,29 @@
{
"type": "tiedup:bondage_item",
"display_name": "Baguette Gag",
"translation_key": "item.tiedup.baguette_gag",
"model": "tiedup:models/gltf/v2/gags/baguette_gag.glb",
"regions": [
"MOUTH"
],
"pose_priority": 10,
"escape_difficulty": 50,
"lockable": true,
"can_attach_padlock": true,
"supports_color": false,
"animation_bones": {
"idle": [
"head"
]
},
"components": {
"lockable": {},
"resistance": {
"id": "gag"
},
"gagging": {
"material": "baguette"
},
"adjustable": {}
}
}

View File

@@ -0,0 +1,29 @@
{
"type": "tiedup:bondage_item",
"display_name": "Ball Gag",
"translation_key": "item.tiedup.ball_gag",
"model": "tiedup:models/gltf/v2/gags/ball_gag.glb",
"regions": [
"MOUTH"
],
"pose_priority": 10,
"escape_difficulty": 50,
"lockable": true,
"can_attach_padlock": true,
"supports_color": true,
"animation_bones": {
"idle": [
"head"
]
},
"components": {
"lockable": {},
"resistance": {
"id": "gag"
},
"gagging": {
"material": "ball"
},
"adjustable": {}
}
}

View File

@@ -0,0 +1,28 @@
{
"type": "tiedup:bondage_item",
"display_name": "Ball Gag 3D",
"translation_key": "item.tiedup.ball_gag_3d",
"model": "tiedup:models/gltf/v2/combos/ball_gag_3d.glb",
"regions": [
"MOUTH"
],
"pose_priority": 10,
"escape_difficulty": 50,
"lockable": true,
"supports_color": true,
"animation_bones": {
"idle": [
"head"
]
},
"components": {
"lockable": {},
"resistance": {
"id": "gag"
},
"gagging": {
"material": "ball"
},
"adjustable": {}
}
}

View File

@@ -0,0 +1,29 @@
{
"type": "tiedup:bondage_item",
"display_name": "Ball Gag Strap",
"translation_key": "item.tiedup.ball_gag_strap",
"model": "tiedup:models/gltf/v2/gags/ball_gag_strap.glb",
"regions": [
"MOUTH"
],
"pose_priority": 10,
"escape_difficulty": 50,
"lockable": true,
"can_attach_padlock": true,
"supports_color": true,
"animation_bones": {
"idle": [
"head"
]
},
"components": {
"lockable": {},
"resistance": {
"id": "gag"
},
"gagging": {
"material": "ball"
},
"adjustable": {}
}
}

View File

@@ -0,0 +1,31 @@
{
"type": "tiedup:bondage_item",
"display_name": "Beam Cuffs",
"translation_key": "item.tiedup.beam_cuffs",
"model": "tiedup:models/gltf/v2/binds/beam_cuffs.glb",
"regions": [
"ARMS"
],
"pose_type": "STANDARD",
"pose_priority": 30,
"escape_difficulty": 100,
"lockable": true,
"can_attach_padlock": true,
"supports_color": false,
"animation_bones": {
"idle": [
"rightArm",
"leftArm"
],
"struggle": [
"rightArm",
"leftArm"
]
},
"components": {
"lockable": {},
"resistance": {
"id": "chain"
}
}
}

View File

@@ -0,0 +1,29 @@
{
"type": "tiedup:bondage_item",
"display_name": "Beam Panel Gag",
"translation_key": "item.tiedup.beam_panel_gag",
"model": "tiedup:models/gltf/v2/gags/beam_panel_gag.glb",
"regions": [
"MOUTH"
],
"pose_priority": 10,
"escape_difficulty": 50,
"lockable": true,
"can_attach_padlock": true,
"supports_color": false,
"animation_bones": {
"idle": [
"head"
]
},
"components": {
"lockable": {},
"resistance": {
"id": "gag"
},
"gagging": {
"material": "panel"
},
"adjustable": {}
}
}

View File

@@ -0,0 +1,29 @@
{
"type": "tiedup:bondage_item",
"display_name": "Bite Gag",
"translation_key": "item.tiedup.bite_gag",
"model": "tiedup:models/gltf/v2/gags/bite_gag.glb",
"regions": [
"MOUTH"
],
"pose_priority": 10,
"escape_difficulty": 50,
"lockable": true,
"can_attach_padlock": true,
"supports_color": false,
"animation_bones": {
"idle": [
"head"
]
},
"components": {
"lockable": {},
"resistance": {
"id": "gag"
},
"gagging": {
"material": "bite"
},
"adjustable": {}
}
}

View File

@@ -0,0 +1,26 @@
{
"type": "tiedup:bondage_item",
"display_name": "Blindfold Mask",
"translation_key": "item.tiedup.blindfold_mask",
"model": "tiedup:models/gltf/v2/blindfolds/blindfold_mask.glb",
"regions": [
"EYES"
],
"pose_priority": 5,
"escape_difficulty": 30,
"lockable": true,
"supports_color": true,
"animation_bones": {
"idle": [
"head"
]
},
"components": {
"lockable": {},
"resistance": {
"id": "blindfold"
},
"blinding": {},
"adjustable": {}
}
}

View File

@@ -0,0 +1,31 @@
{
"type": "tiedup:bondage_item",
"display_name": "Chains",
"translation_key": "item.tiedup.chain",
"model": "tiedup:models/gltf/v2/binds/chain.glb",
"regions": [
"ARMS"
],
"pose_type": "STANDARD",
"pose_priority": 30,
"escape_difficulty": 100,
"lockable": true,
"can_attach_padlock": true,
"supports_color": false,
"animation_bones": {
"idle": [
"rightArm",
"leftArm"
],
"struggle": [
"rightArm",
"leftArm"
]
},
"components": {
"lockable": {},
"resistance": {
"id": "chain"
}
}
}

View File

@@ -0,0 +1,29 @@
{
"type": "tiedup:bondage_item",
"display_name": "Chain Panel Gag",
"translation_key": "item.tiedup.chain_panel_gag",
"model": "tiedup:models/gltf/v2/gags/chain_panel_gag.glb",
"regions": [
"MOUTH"
],
"pose_priority": 10,
"escape_difficulty": 50,
"lockable": true,
"can_attach_padlock": true,
"supports_color": false,
"animation_bones": {
"idle": [
"head"
]
},
"components": {
"lockable": {},
"resistance": {
"id": "gag"
},
"gagging": {
"material": "panel"
},
"adjustable": {}
}
}

View File

@@ -0,0 +1,25 @@
{
"type": "tiedup:bondage_item",
"regions": [
"NECK"
],
"pose_priority": 5,
"escape_difficulty": 80,
"lockable": true,
"animation_bones": {
"idle": [
"body"
]
},
"display_name": "Choke Collar",
"translation_key": "item.tiedup.choke_collar",
"model": "tiedup:models/gltf/v2/collars/choke_collar.glb",
"components": {
"ownership": {},
"lockable": {},
"resistance": {
"id": "collar"
},
"choking": {}
}
}

View File

@@ -0,0 +1,26 @@
{
"type": "tiedup:bondage_item",
"display_name": "Blindfold",
"translation_key": "item.tiedup.classic_blindfold",
"model": "tiedup:models/gltf/v2/blindfolds/classic_blindfold.glb",
"regions": [
"EYES"
],
"pose_priority": 5,
"escape_difficulty": 30,
"lockable": true,
"supports_color": true,
"animation_bones": {
"idle": [
"head"
]
},
"components": {
"lockable": {},
"resistance": {
"id": "blindfold"
},
"blinding": {},
"adjustable": {}
}
}

View File

@@ -0,0 +1,24 @@
{
"type": "tiedup:bondage_item",
"regions": [
"NECK"
],
"pose_priority": 5,
"escape_difficulty": 80,
"lockable": true,
"animation_bones": {
"idle": [
"body"
]
},
"display_name": "Classic Collar",
"translation_key": "item.tiedup.classic_collar",
"model": "tiedup:models/gltf/v2/collars/classic_collar.glb",
"components": {
"ownership": {},
"lockable": {},
"resistance": {
"id": "collar"
}
}
}

View File

@@ -0,0 +1,23 @@
{
"type": "tiedup:bondage_item",
"display_name": "Earplugs",
"translation_key": "item.tiedup.classic_earplugs",
"model": "tiedup:models/gltf/v2/earplugs/classic_earplugs.glb",
"regions": [
"EARS"
],
"pose_priority": 5,
"escape_difficulty": 20,
"lockable": true,
"animation_bones": {
"idle": [
"head"
]
},
"components": {
"lockable": {},
"resistance": {
"id": "blindfold"
}
}
}

View File

@@ -0,0 +1,29 @@
{
"type": "tiedup:bondage_item",
"display_name": "Cleave Gag",
"translation_key": "item.tiedup.cleave_gag",
"model": "tiedup:models/gltf/v2/gags/cleave_gag.glb",
"regions": [
"MOUTH"
],
"pose_priority": 10,
"escape_difficulty": 50,
"lockable": true,
"can_attach_padlock": true,
"supports_color": true,
"animation_bones": {
"idle": [
"head"
]
},
"components": {
"lockable": {},
"resistance": {
"id": "gag"
},
"gagging": {
"material": "cloth"
},
"adjustable": {}
}
}

View File

@@ -0,0 +1,29 @@
{
"type": "tiedup:bondage_item",
"display_name": "Cloth Gag",
"translation_key": "item.tiedup.cloth_gag",
"model": "tiedup:models/gltf/v2/gags/cloth_gag.glb",
"regions": [
"MOUTH"
],
"pose_priority": 10,
"escape_difficulty": 50,
"lockable": true,
"can_attach_padlock": true,
"supports_color": true,
"animation_bones": {
"idle": [
"head"
]
},
"components": {
"lockable": {},
"resistance": {
"id": "gag"
},
"gagging": {
"material": "cloth"
},
"adjustable": {}
}
}

View File

@@ -0,0 +1,32 @@
{
"type": "tiedup:bondage_item",
"display_name": "Dogbinder",
"translation_key": "item.tiedup.dogbinder",
"model": "tiedup:models/gltf/v2/binds/dogbinder.glb",
"regions": [
"ARMS"
],
"pose_type": "DOG",
"pose_priority": 30,
"escape_difficulty": 100,
"lockable": true,
"can_attach_padlock": true,
"supports_color": false,
"animation_bones": {
"idle": [
"rightArm",
"leftArm"
],
"struggle": [
"rightArm",
"leftArm"
]
},
"components": {
"lockable": {},
"resistance": {
"id": "armbinder"
}
},
"movement_style": "CRAWL"
}

View File

@@ -0,0 +1,30 @@
{
"type": "tiedup:bondage_item",
"display_name": "Duct Tape",
"translation_key": "item.tiedup.duct_tape",
"model": "tiedup:models/gltf/v2/binds/duct_tape.glb",
"regions": [
"ARMS"
],
"pose_type": "STANDARD",
"pose_priority": 30,
"escape_difficulty": 100,
"lockable": false,
"can_attach_padlock": false,
"supports_color": true,
"animation_bones": {
"idle": [
"rightArm",
"leftArm"
],
"struggle": [
"rightArm",
"leftArm"
]
},
"components": {
"resistance": {
"id": "tape"
}
}
}

View File

@@ -0,0 +1,27 @@
{
"type": "tiedup:bondage_item",
"regions": [
"NECK"
],
"pose_priority": 5,
"escape_difficulty": 80,
"lockable": true,
"animation_bones": {
"idle": [
"body"
]
},
"display_name": "GPS Collar",
"translation_key": "item.tiedup.gps_collar",
"model": "tiedup:models/gltf/v2/collars/gps_collar.glb",
"components": {
"ownership": {},
"lockable": {},
"resistance": {
"id": "collar"
},
"gps": {
"safe_zone_radius": 50
}
}
}

View File

@@ -0,0 +1,32 @@
{
"type": "tiedup:bondage_item",
"display_name": "Hood",
"translation_key": "item.tiedup.hood",
"model": "tiedup:models/gltf/v2/combos/hood.glb",
"regions": [
"EYES"
],
"blocked_regions": [
"EYES",
"EARS",
"MOUTH"
],
"pose_priority": 10,
"escape_difficulty": 40,
"lockable": true,
"animation_bones": {
"idle": [
"head"
]
},
"components": {
"lockable": {},
"resistance": {
"id": "blindfold"
},
"blinding": {},
"gagging": {
"material": "stuffed"
}
}
}

View File

@@ -0,0 +1,29 @@
{
"type": "tiedup:bondage_item",
"display_name": "Latex Gag",
"translation_key": "item.tiedup.latex_gag",
"model": "tiedup:models/gltf/v2/gags/latex_gag.glb",
"regions": [
"MOUTH"
],
"pose_priority": 10,
"escape_difficulty": 50,
"lockable": true,
"can_attach_padlock": true,
"supports_color": false,
"animation_bones": {
"idle": [
"head"
]
},
"components": {
"lockable": {},
"resistance": {
"id": "gag"
},
"gagging": {
"material": "latex"
},
"adjustable": {}
}
}

View File

@@ -0,0 +1,31 @@
{
"type": "tiedup:bondage_item",
"display_name": "Latex Sack",
"translation_key": "item.tiedup.latex_sack",
"model": "tiedup:models/gltf/v2/binds/latex_sack.glb",
"regions": [
"ARMS"
],
"pose_type": "LATEX_SACK",
"pose_priority": 30,
"escape_difficulty": 100,
"lockable": true,
"can_attach_padlock": true,
"supports_color": false,
"animation_bones": {
"idle": [
"rightArm",
"leftArm"
],
"struggle": [
"rightArm",
"leftArm"
]
},
"components": {
"lockable": {},
"resistance": {
"id": "latex_sack"
}
}
}

View File

@@ -0,0 +1,21 @@
{
"type": "tiedup:bondage_item",
"display_name": "Leather Mittens",
"translation_key": "item.tiedup.leather_mittens",
"model": "tiedup:models/gltf/v2/mittens/leather_mittens.glb",
"regions": [
"HANDS"
],
"pose_priority": 5,
"escape_difficulty": 20,
"lockable": true,
"animation_bones": {
"idle": [
"rightArm",
"leftArm"
]
},
"components": {
"lockable": {}
}
}

View File

@@ -0,0 +1,31 @@
{
"type": "tiedup:bondage_item",
"display_name": "Leather Straps",
"translation_key": "item.tiedup.leather_straps",
"model": "tiedup:models/gltf/v2/binds/leather_straps.glb",
"regions": [
"ARMS"
],
"pose_type": "STANDARD",
"pose_priority": 30,
"escape_difficulty": 100,
"lockable": true,
"can_attach_padlock": true,
"supports_color": false,
"animation_bones": {
"idle": [
"rightArm",
"leftArm"
],
"struggle": [
"rightArm",
"leftArm"
]
},
"components": {
"lockable": {},
"resistance": {
"id": "armbinder"
}
}
}

View File

@@ -0,0 +1,27 @@
{
"type": "tiedup:bondage_item",
"display_name": "Medical Gag",
"translation_key": "item.tiedup.medical_gag",
"model": "tiedup:models/gltf/v2/combos/medical_gag.glb",
"regions": [
"MOUTH"
],
"pose_priority": 10,
"escape_difficulty": 50,
"lockable": true,
"animation_bones": {
"idle": [
"head"
]
},
"components": {
"lockable": {},
"resistance": {
"id": "gag"
},
"gagging": {
"material": "panel"
},
"blinding": {}
}
}

View File

@@ -0,0 +1,31 @@
{
"type": "tiedup:bondage_item",
"display_name": "Medical Straps",
"translation_key": "item.tiedup.medical_straps",
"model": "tiedup:models/gltf/v2/binds/medical_straps.glb",
"regions": [
"ARMS"
],
"pose_type": "STANDARD",
"pose_priority": 30,
"escape_difficulty": 100,
"lockable": true,
"can_attach_padlock": true,
"supports_color": false,
"animation_bones": {
"idle": [
"rightArm",
"leftArm"
],
"struggle": [
"rightArm",
"leftArm"
]
},
"components": {
"lockable": {},
"resistance": {
"id": "armbinder"
}
}
}

View File

@@ -0,0 +1,29 @@
{
"type": "tiedup:bondage_item",
"display_name": "Panel Gag",
"translation_key": "item.tiedup.panel_gag",
"model": "tiedup:models/gltf/v2/gags/panel_gag.glb",
"regions": [
"MOUTH"
],
"pose_priority": 10,
"escape_difficulty": 50,
"lockable": true,
"can_attach_padlock": true,
"supports_color": false,
"animation_bones": {
"idle": [
"head"
]
},
"components": {
"lockable": {},
"resistance": {
"id": "gag"
},
"gagging": {
"material": "panel"
},
"adjustable": {}
}
}

View File

@@ -0,0 +1,31 @@
{
"type": "tiedup:bondage_item",
"display_name": "Ribbon",
"translation_key": "item.tiedup.ribbon",
"model": "tiedup:models/gltf/v2/binds/ribbon.glb",
"regions": [
"ARMS"
],
"pose_type": "STANDARD",
"pose_priority": 30,
"escape_difficulty": 100,
"lockable": true,
"can_attach_padlock": true,
"supports_color": false,
"animation_bones": {
"idle": [
"rightArm",
"leftArm"
],
"struggle": [
"rightArm",
"leftArm"
]
},
"components": {
"lockable": {},
"resistance": {
"id": "ribbon"
}
}
}

View File

@@ -0,0 +1,29 @@
{
"type": "tiedup:bondage_item",
"display_name": "Ribbon Gag",
"translation_key": "item.tiedup.ribbon_gag",
"model": "tiedup:models/gltf/v2/gags/ribbon_gag.glb",
"regions": [
"MOUTH"
],
"pose_priority": 10,
"escape_difficulty": 50,
"lockable": true,
"can_attach_padlock": true,
"supports_color": false,
"animation_bones": {
"idle": [
"head"
]
},
"components": {
"lockable": {},
"resistance": {
"id": "gag"
},
"gagging": {
"material": "cloth"
},
"adjustable": {}
}
}

View File

@@ -0,0 +1,31 @@
{
"type": "tiedup:bondage_item",
"display_name": "Ropes",
"translation_key": "item.tiedup.ropes",
"model": "tiedup:models/gltf/v2/binds/ropes.glb",
"regions": [
"ARMS"
],
"pose_type": "STANDARD",
"pose_priority": 30,
"escape_difficulty": 100,
"lockable": true,
"can_attach_padlock": true,
"supports_color": true,
"animation_bones": {
"idle": [
"rightArm",
"leftArm"
],
"struggle": [
"rightArm",
"leftArm"
]
},
"components": {
"lockable": {},
"resistance": {
"id": "rope"
}
}
}

View File

@@ -0,0 +1,29 @@
{
"type": "tiedup:bondage_item",
"display_name": "Rope Gag",
"translation_key": "item.tiedup.ropes_gag",
"model": "tiedup:models/gltf/v2/gags/ropes_gag.glb",
"regions": [
"MOUTH"
],
"pose_priority": 10,
"escape_difficulty": 50,
"lockable": true,
"can_attach_padlock": true,
"supports_color": true,
"animation_bones": {
"idle": [
"head"
]
},
"components": {
"lockable": {},
"resistance": {
"id": "gag"
},
"gagging": {
"material": "cloth"
},
"adjustable": {}
}
}

View File

@@ -0,0 +1,31 @@
{
"type": "tiedup:bondage_item",
"display_name": "Shibari",
"translation_key": "item.tiedup.shibari",
"model": "tiedup:models/gltf/v2/binds/shibari.glb",
"regions": [
"ARMS"
],
"pose_type": "STANDARD",
"pose_priority": 30,
"escape_difficulty": 100,
"lockable": true,
"can_attach_padlock": true,
"supports_color": true,
"animation_bones": {
"idle": [
"rightArm",
"leftArm"
],
"struggle": [
"rightArm",
"leftArm"
]
},
"components": {
"lockable": {},
"resistance": {
"id": "rope"
}
}
}

View File

@@ -0,0 +1,27 @@
{
"type": "tiedup:bondage_item",
"regions": [
"NECK"
],
"pose_priority": 5,
"escape_difficulty": 80,
"lockable": true,
"animation_bones": {
"idle": [
"body"
]
},
"display_name": "Shock Collar",
"translation_key": "item.tiedup.shock_collar",
"model": "tiedup:models/gltf/v2/collars/shock_collar.glb",
"components": {
"ownership": {},
"lockable": {},
"resistance": {
"id": "collar"
},
"shock": {
"damage": 2.0
}
}
}

View File

@@ -0,0 +1,28 @@
{
"type": "tiedup:bondage_item",
"regions": [
"NECK"
],
"pose_priority": 5,
"escape_difficulty": 80,
"lockable": true,
"animation_bones": {
"idle": [
"body"
]
},
"display_name": "Auto Shock Collar",
"translation_key": "item.tiedup.shock_collar_auto",
"model": "tiedup:models/gltf/v2/collars/shock_collar_auto.glb",
"components": {
"ownership": {},
"lockable": {},
"resistance": {
"id": "collar"
},
"shock": {
"damage": 2.0,
"auto_interval": 200
}
}
}

View File

@@ -0,0 +1,30 @@
{
"type": "tiedup:bondage_item",
"display_name": "Slime Bind",
"translation_key": "item.tiedup.slime",
"model": "tiedup:models/gltf/v2/binds/slime.glb",
"regions": [
"ARMS"
],
"pose_type": "STANDARD",
"pose_priority": 30,
"escape_difficulty": 100,
"lockable": false,
"can_attach_padlock": false,
"supports_color": false,
"animation_bones": {
"idle": [
"rightArm",
"leftArm"
],
"struggle": [
"rightArm",
"leftArm"
]
},
"components": {
"resistance": {
"id": "slime"
}
}
}

View File

@@ -0,0 +1,28 @@
{
"type": "tiedup:bondage_item",
"display_name": "Slime Gag",
"translation_key": "item.tiedup.slime_gag",
"model": "tiedup:models/gltf/v2/gags/slime_gag.glb",
"regions": [
"MOUTH"
],
"pose_priority": 10,
"escape_difficulty": 50,
"lockable": false,
"can_attach_padlock": false,
"supports_color": false,
"animation_bones": {
"idle": [
"head"
]
},
"components": {
"resistance": {
"id": "gag"
},
"gagging": {
"material": "stuffed"
},
"adjustable": {}
}
}

View File

@@ -0,0 +1,29 @@
{
"type": "tiedup:bondage_item",
"display_name": "Sponge Gag",
"translation_key": "item.tiedup.sponge_gag",
"model": "tiedup:models/gltf/v2/gags/sponge_gag.glb",
"regions": [
"MOUTH"
],
"pose_priority": 10,
"escape_difficulty": 50,
"lockable": true,
"can_attach_padlock": true,
"supports_color": false,
"animation_bones": {
"idle": [
"head"
]
},
"components": {
"lockable": {},
"resistance": {
"id": "gag"
},
"gagging": {
"material": "sponge"
},
"adjustable": {}
}
}

View File

@@ -0,0 +1,31 @@
{
"type": "tiedup:bondage_item",
"display_name": "Straitjacket",
"translation_key": "item.tiedup.straitjacket",
"model": "tiedup:models/gltf/v2/binds/straitjacket.glb",
"regions": [
"ARMS"
],
"pose_type": "STRAITJACKET",
"pose_priority": 30,
"escape_difficulty": 100,
"lockable": true,
"can_attach_padlock": true,
"supports_color": false,
"animation_bones": {
"idle": [
"rightArm",
"leftArm"
],
"struggle": [
"rightArm",
"leftArm"
]
},
"components": {
"lockable": {},
"resistance": {
"id": "straitjacket"
}
}
}

View File

@@ -0,0 +1,28 @@
{
"type": "tiedup:bondage_item",
"display_name": "Tape Gag",
"translation_key": "item.tiedup.tape_gag",
"model": "tiedup:models/gltf/v2/gags/tape_gag.glb",
"regions": [
"MOUTH"
],
"pose_priority": 10,
"escape_difficulty": 50,
"lockable": false,
"can_attach_padlock": false,
"supports_color": true,
"animation_bones": {
"idle": [
"head"
]
},
"components": {
"resistance": {
"id": "gag"
},
"gagging": {
"material": "tape"
},
"adjustable": {}
}
}

View File

@@ -1,15 +0,0 @@
{
"type": "tiedup:bondage_item",
"display_name": "Data-Driven Handcuffs",
"creator": "TiedUp! Team",
"model": "tiedup:models/gltf/v2/handcuffs/cuffs_prototype.glb",
"regions": ["ARMS"],
"pose_priority": 30,
"escape_difficulty": 100,
"lockable": true,
"icon": "tiedup:item/beam_cuffs",
"animation_bones": {
"idle": ["rightArm", "leftArm"],
"struggle": ["rightArm", "leftArm"]
}
}

View File

@@ -1,18 +0,0 @@
{
"type": "tiedup:bondage_item",
"display_name": "Prototype Leg Cuffs",
"model": "tiedup:models/gltf/leg_cuffs_proto.glb",
"regions": ["LEGS"],
"pose_priority": 30,
"escape_difficulty": 5,
"lockable": true,
"movement_style": "shuffle",
"supports_color": true,
"tint_channels": {
"tintable_1": "#808080"
},
"animation_bones": {
"idle": ["rightLeg", "leftLeg"],
"struggle": ["rightLeg", "leftLeg"]
}
}

View File

@@ -0,0 +1,29 @@
{
"type": "tiedup:bondage_item",
"display_name": "Tube Gag",
"translation_key": "item.tiedup.tube_gag",
"model": "tiedup:models/gltf/v2/gags/tube_gag.glb",
"regions": [
"MOUTH"
],
"pose_priority": 10,
"escape_difficulty": 50,
"lockable": true,
"can_attach_padlock": true,
"supports_color": false,
"animation_bones": {
"idle": [
"head"
]
},
"components": {
"lockable": {},
"resistance": {
"id": "gag"
},
"gagging": {
"material": "ring"
},
"adjustable": {}
}
}

View File

@@ -0,0 +1,28 @@
{
"type": "tiedup:bondage_item",
"display_name": "Vine Gag",
"translation_key": "item.tiedup.vine_gag",
"model": "tiedup:models/gltf/v2/gags/vine_gag.glb",
"regions": [
"MOUTH"
],
"pose_priority": 10,
"escape_difficulty": 50,
"lockable": false,
"can_attach_padlock": false,
"supports_color": false,
"animation_bones": {
"idle": [
"head"
]
},
"components": {
"resistance": {
"id": "gag"
},
"gagging": {
"material": "stuffed"
},
"adjustable": {}
}
}

View File

@@ -0,0 +1,30 @@
{
"type": "tiedup:bondage_item",
"display_name": "Vine Bind",
"translation_key": "item.tiedup.vine_seed",
"model": "tiedup:models/gltf/v2/binds/vine_seed.glb",
"regions": [
"ARMS"
],
"pose_type": "STANDARD",
"pose_priority": 30,
"escape_difficulty": 100,
"lockable": false,
"can_attach_padlock": false,
"supports_color": false,
"animation_bones": {
"idle": [
"rightArm",
"leftArm"
],
"struggle": [
"rightArm",
"leftArm"
]
},
"components": {
"resistance": {
"id": "vine"
}
}
}

View File

@@ -0,0 +1,30 @@
{
"type": "tiedup:bondage_item",
"display_name": "Web Bind",
"translation_key": "item.tiedup.web_bind",
"model": "tiedup:models/gltf/v2/binds/web_bind.glb",
"regions": [
"ARMS"
],
"pose_type": "STANDARD",
"pose_priority": 30,
"escape_difficulty": 100,
"lockable": false,
"can_attach_padlock": false,
"supports_color": false,
"animation_bones": {
"idle": [
"rightArm",
"leftArm"
],
"struggle": [
"rightArm",
"leftArm"
]
},
"components": {
"resistance": {
"id": "web"
}
}
}

View File

@@ -0,0 +1,28 @@
{
"type": "tiedup:bondage_item",
"display_name": "Web Gag",
"translation_key": "item.tiedup.web_gag",
"model": "tiedup:models/gltf/v2/gags/web_gag.glb",
"regions": [
"MOUTH"
],
"pose_priority": 10,
"escape_difficulty": 50,
"lockable": false,
"can_attach_padlock": false,
"supports_color": false,
"animation_bones": {
"idle": [
"head"
]
},
"components": {
"resistance": {
"id": "gag"
},
"gagging": {
"material": "stuffed"
},
"adjustable": {}
}
}

View File

@@ -0,0 +1,31 @@
{
"type": "tiedup:bondage_item",
"display_name": "Wrap",
"translation_key": "item.tiedup.wrap",
"model": "tiedup:models/gltf/v2/binds/wrap.glb",
"regions": [
"ARMS"
],
"pose_type": "WRAP",
"pose_priority": 30,
"escape_difficulty": 100,
"lockable": true,
"can_attach_padlock": true,
"supports_color": false,
"animation_bones": {
"idle": [
"rightArm",
"leftArm"
],
"struggle": [
"rightArm",
"leftArm"
]
},
"components": {
"lockable": {},
"resistance": {
"id": "wrap"
}
}
}

View File

@@ -0,0 +1,29 @@
{
"type": "tiedup:bondage_item",
"display_name": "Wrap Gag",
"translation_key": "item.tiedup.wrap_gag",
"model": "tiedup:models/gltf/v2/gags/wrap_gag.glb",
"regions": [
"MOUTH"
],
"pose_priority": 10,
"escape_difficulty": 50,
"lockable": true,
"can_attach_padlock": true,
"supports_color": false,
"animation_bones": {
"idle": [
"head"
]
},
"components": {
"lockable": {},
"resistance": {
"id": "gag"
},
"gagging": {
"material": "stuffed"
},
"adjustable": {}
}
}

View File

@@ -0,0 +1,31 @@
{
"type": "tiedup:bondage_item",
"display_name": "Armbinder",
"translation_key": "item.tiedup.armbinder",
"model": "tiedup:models/gltf/v2/binds/armbinder.glb",
"regions": [
"ARMS"
],
"pose_type": "STANDARD",
"pose_priority": 30,
"escape_difficulty": 100,
"lockable": true,
"can_attach_padlock": true,
"supports_color": false,
"animation_bones": {
"idle": [
"rightArm",
"leftArm"
],
"struggle": [
"rightArm",
"leftArm"
]
},
"components": {
"lockable": {},
"resistance": {
"id": "armbinder"
}
}
}

View File

@@ -0,0 +1,29 @@
{
"type": "tiedup:bondage_item",
"display_name": "Baguette Gag",
"translation_key": "item.tiedup.baguette_gag",
"model": "tiedup:models/gltf/v2/gags/baguette_gag.glb",
"regions": [
"MOUTH"
],
"pose_priority": 10,
"escape_difficulty": 50,
"lockable": true,
"can_attach_padlock": true,
"supports_color": false,
"animation_bones": {
"idle": [
"head"
]
},
"components": {
"lockable": {},
"resistance": {
"id": "gag"
},
"gagging": {
"material": "baguette"
},
"adjustable": {}
}
}

View File

@@ -0,0 +1,29 @@
{
"type": "tiedup:bondage_item",
"display_name": "Ball Gag",
"translation_key": "item.tiedup.ball_gag",
"model": "tiedup:models/gltf/v2/gags/ball_gag.glb",
"regions": [
"MOUTH"
],
"pose_priority": 10,
"escape_difficulty": 50,
"lockable": true,
"can_attach_padlock": true,
"supports_color": true,
"animation_bones": {
"idle": [
"head"
]
},
"components": {
"lockable": {},
"resistance": {
"id": "gag"
},
"gagging": {
"material": "ball"
},
"adjustable": {}
}
}

View File

@@ -0,0 +1,28 @@
{
"type": "tiedup:bondage_item",
"display_name": "Ball Gag 3D",
"translation_key": "item.tiedup.ball_gag_3d",
"model": "tiedup:models/gltf/v2/combos/ball_gag_3d.glb",
"regions": [
"MOUTH"
],
"pose_priority": 10,
"escape_difficulty": 50,
"lockable": true,
"supports_color": true,
"animation_bones": {
"idle": [
"head"
]
},
"components": {
"lockable": {},
"resistance": {
"id": "gag"
},
"gagging": {
"material": "ball"
},
"adjustable": {}
}
}

View File

@@ -0,0 +1,29 @@
{
"type": "tiedup:bondage_item",
"display_name": "Ball Gag Strap",
"translation_key": "item.tiedup.ball_gag_strap",
"model": "tiedup:models/gltf/v2/gags/ball_gag_strap.glb",
"regions": [
"MOUTH"
],
"pose_priority": 10,
"escape_difficulty": 50,
"lockable": true,
"can_attach_padlock": true,
"supports_color": true,
"animation_bones": {
"idle": [
"head"
]
},
"components": {
"lockable": {},
"resistance": {
"id": "gag"
},
"gagging": {
"material": "ball"
},
"adjustable": {}
}
}

View File

@@ -0,0 +1,31 @@
{
"type": "tiedup:bondage_item",
"display_name": "Beam Cuffs",
"translation_key": "item.tiedup.beam_cuffs",
"model": "tiedup:models/gltf/v2/binds/beam_cuffs.glb",
"regions": [
"ARMS"
],
"pose_type": "STANDARD",
"pose_priority": 30,
"escape_difficulty": 100,
"lockable": true,
"can_attach_padlock": true,
"supports_color": false,
"animation_bones": {
"idle": [
"rightArm",
"leftArm"
],
"struggle": [
"rightArm",
"leftArm"
]
},
"components": {
"lockable": {},
"resistance": {
"id": "chain"
}
}
}

View File

@@ -0,0 +1,29 @@
{
"type": "tiedup:bondage_item",
"display_name": "Beam Panel Gag",
"translation_key": "item.tiedup.beam_panel_gag",
"model": "tiedup:models/gltf/v2/gags/beam_panel_gag.glb",
"regions": [
"MOUTH"
],
"pose_priority": 10,
"escape_difficulty": 50,
"lockable": true,
"can_attach_padlock": true,
"supports_color": false,
"animation_bones": {
"idle": [
"head"
]
},
"components": {
"lockable": {},
"resistance": {
"id": "gag"
},
"gagging": {
"material": "panel"
},
"adjustable": {}
}
}

View File

@@ -0,0 +1,29 @@
{
"type": "tiedup:bondage_item",
"display_name": "Bite Gag",
"translation_key": "item.tiedup.bite_gag",
"model": "tiedup:models/gltf/v2/gags/bite_gag.glb",
"regions": [
"MOUTH"
],
"pose_priority": 10,
"escape_difficulty": 50,
"lockable": true,
"can_attach_padlock": true,
"supports_color": false,
"animation_bones": {
"idle": [
"head"
]
},
"components": {
"lockable": {},
"resistance": {
"id": "gag"
},
"gagging": {
"material": "bite"
},
"adjustable": {}
}
}

View File

@@ -0,0 +1,26 @@
{
"type": "tiedup:bondage_item",
"display_name": "Blindfold Mask",
"translation_key": "item.tiedup.blindfold_mask",
"model": "tiedup:models/gltf/v2/blindfolds/blindfold_mask.glb",
"regions": [
"EYES"
],
"pose_priority": 5,
"escape_difficulty": 30,
"lockable": true,
"supports_color": true,
"animation_bones": {
"idle": [
"head"
]
},
"components": {
"lockable": {},
"resistance": {
"id": "blindfold"
},
"blinding": {},
"adjustable": {}
}
}

View File

@@ -0,0 +1,31 @@
{
"type": "tiedup:bondage_item",
"display_name": "Chains",
"translation_key": "item.tiedup.chain",
"model": "tiedup:models/gltf/v2/binds/chain.glb",
"regions": [
"ARMS"
],
"pose_type": "STANDARD",
"pose_priority": 30,
"escape_difficulty": 100,
"lockable": true,
"can_attach_padlock": true,
"supports_color": false,
"animation_bones": {
"idle": [
"rightArm",
"leftArm"
],
"struggle": [
"rightArm",
"leftArm"
]
},
"components": {
"lockable": {},
"resistance": {
"id": "chain"
}
}
}

View File

@@ -0,0 +1,29 @@
{
"type": "tiedup:bondage_item",
"display_name": "Chain Panel Gag",
"translation_key": "item.tiedup.chain_panel_gag",
"model": "tiedup:models/gltf/v2/gags/chain_panel_gag.glb",
"regions": [
"MOUTH"
],
"pose_priority": 10,
"escape_difficulty": 50,
"lockable": true,
"can_attach_padlock": true,
"supports_color": false,
"animation_bones": {
"idle": [
"head"
]
},
"components": {
"lockable": {},
"resistance": {
"id": "gag"
},
"gagging": {
"material": "panel"
},
"adjustable": {}
}
}

View File

@@ -0,0 +1,25 @@
{
"type": "tiedup:bondage_item",
"regions": [
"NECK"
],
"pose_priority": 5,
"escape_difficulty": 80,
"lockable": true,
"animation_bones": {
"idle": [
"body"
]
},
"display_name": "Choke Collar",
"translation_key": "item.tiedup.choke_collar",
"model": "tiedup:models/gltf/v2/collars/choke_collar.glb",
"components": {
"ownership": {},
"lockable": {},
"resistance": {
"id": "collar"
},
"choking": {}
}
}

View File

@@ -0,0 +1,26 @@
{
"type": "tiedup:bondage_item",
"display_name": "Blindfold",
"translation_key": "item.tiedup.classic_blindfold",
"model": "tiedup:models/gltf/v2/blindfolds/classic_blindfold.glb",
"regions": [
"EYES"
],
"pose_priority": 5,
"escape_difficulty": 30,
"lockable": true,
"supports_color": true,
"animation_bones": {
"idle": [
"head"
]
},
"components": {
"lockable": {},
"resistance": {
"id": "blindfold"
},
"blinding": {},
"adjustable": {}
}
}

View File

@@ -0,0 +1,24 @@
{
"type": "tiedup:bondage_item",
"regions": [
"NECK"
],
"pose_priority": 5,
"escape_difficulty": 80,
"lockable": true,
"animation_bones": {
"idle": [
"body"
]
},
"display_name": "Classic Collar",
"translation_key": "item.tiedup.classic_collar",
"model": "tiedup:models/gltf/v2/collars/classic_collar.glb",
"components": {
"ownership": {},
"lockable": {},
"resistance": {
"id": "collar"
}
}
}

View File

@@ -0,0 +1,23 @@
{
"type": "tiedup:bondage_item",
"display_name": "Earplugs",
"translation_key": "item.tiedup.classic_earplugs",
"model": "tiedup:models/gltf/v2/earplugs/classic_earplugs.glb",
"regions": [
"EARS"
],
"pose_priority": 5,
"escape_difficulty": 20,
"lockable": true,
"animation_bones": {
"idle": [
"head"
]
},
"components": {
"lockable": {},
"resistance": {
"id": "blindfold"
}
}
}

View File

@@ -0,0 +1,29 @@
{
"type": "tiedup:bondage_item",
"display_name": "Cleave Gag",
"translation_key": "item.tiedup.cleave_gag",
"model": "tiedup:models/gltf/v2/gags/cleave_gag.glb",
"regions": [
"MOUTH"
],
"pose_priority": 10,
"escape_difficulty": 50,
"lockable": true,
"can_attach_padlock": true,
"supports_color": true,
"animation_bones": {
"idle": [
"head"
]
},
"components": {
"lockable": {},
"resistance": {
"id": "gag"
},
"gagging": {
"material": "cloth"
},
"adjustable": {}
}
}

View File

@@ -0,0 +1,29 @@
{
"type": "tiedup:bondage_item",
"display_name": "Cloth Gag",
"translation_key": "item.tiedup.cloth_gag",
"model": "tiedup:models/gltf/v2/gags/cloth_gag.glb",
"regions": [
"MOUTH"
],
"pose_priority": 10,
"escape_difficulty": 50,
"lockable": true,
"can_attach_padlock": true,
"supports_color": true,
"animation_bones": {
"idle": [
"head"
]
},
"components": {
"lockable": {},
"resistance": {
"id": "gag"
},
"gagging": {
"material": "cloth"
},
"adjustable": {}
}
}

View File

@@ -0,0 +1,32 @@
{
"type": "tiedup:bondage_item",
"display_name": "Dogbinder",
"translation_key": "item.tiedup.dogbinder",
"model": "tiedup:models/gltf/v2/binds/dogbinder.glb",
"regions": [
"ARMS"
],
"pose_type": "DOG",
"pose_priority": 30,
"escape_difficulty": 100,
"lockable": true,
"can_attach_padlock": true,
"supports_color": false,
"animation_bones": {
"idle": [
"rightArm",
"leftArm"
],
"struggle": [
"rightArm",
"leftArm"
]
},
"components": {
"lockable": {},
"resistance": {
"id": "armbinder"
}
},
"movement_style": "CRAWL"
}

View File

@@ -0,0 +1,30 @@
{
"type": "tiedup:bondage_item",
"display_name": "Duct Tape",
"translation_key": "item.tiedup.duct_tape",
"model": "tiedup:models/gltf/v2/binds/duct_tape.glb",
"regions": [
"ARMS"
],
"pose_type": "STANDARD",
"pose_priority": 30,
"escape_difficulty": 100,
"lockable": false,
"can_attach_padlock": false,
"supports_color": true,
"animation_bones": {
"idle": [
"rightArm",
"leftArm"
],
"struggle": [
"rightArm",
"leftArm"
]
},
"components": {
"resistance": {
"id": "tape"
}
}
}

View File

@@ -0,0 +1,27 @@
{
"type": "tiedup:bondage_item",
"regions": [
"NECK"
],
"pose_priority": 5,
"escape_difficulty": 80,
"lockable": true,
"animation_bones": {
"idle": [
"body"
]
},
"display_name": "GPS Collar",
"translation_key": "item.tiedup.gps_collar",
"model": "tiedup:models/gltf/v2/collars/gps_collar.glb",
"components": {
"ownership": {},
"lockable": {},
"resistance": {
"id": "collar"
},
"gps": {
"safe_zone_radius": 50
}
}
}

View File

@@ -0,0 +1,32 @@
{
"type": "tiedup:bondage_item",
"display_name": "Hood",
"translation_key": "item.tiedup.hood",
"model": "tiedup:models/gltf/v2/combos/hood.glb",
"regions": [
"EYES"
],
"blocked_regions": [
"EYES",
"EARS",
"MOUTH"
],
"pose_priority": 10,
"escape_difficulty": 40,
"lockable": true,
"animation_bones": {
"idle": [
"head"
]
},
"components": {
"lockable": {},
"resistance": {
"id": "blindfold"
},
"blinding": {},
"gagging": {
"material": "stuffed"
}
}
}

View File

@@ -0,0 +1,29 @@
{
"type": "tiedup:bondage_item",
"display_name": "Latex Gag",
"translation_key": "item.tiedup.latex_gag",
"model": "tiedup:models/gltf/v2/gags/latex_gag.glb",
"regions": [
"MOUTH"
],
"pose_priority": 10,
"escape_difficulty": 50,
"lockable": true,
"can_attach_padlock": true,
"supports_color": false,
"animation_bones": {
"idle": [
"head"
]
},
"components": {
"lockable": {},
"resistance": {
"id": "gag"
},
"gagging": {
"material": "latex"
},
"adjustable": {}
}
}

View File

@@ -0,0 +1,31 @@
{
"type": "tiedup:bondage_item",
"display_name": "Latex Sack",
"translation_key": "item.tiedup.latex_sack",
"model": "tiedup:models/gltf/v2/binds/latex_sack.glb",
"regions": [
"ARMS"
],
"pose_type": "LATEX_SACK",
"pose_priority": 30,
"escape_difficulty": 100,
"lockable": true,
"can_attach_padlock": true,
"supports_color": false,
"animation_bones": {
"idle": [
"rightArm",
"leftArm"
],
"struggle": [
"rightArm",
"leftArm"
]
},
"components": {
"lockable": {},
"resistance": {
"id": "latex_sack"
}
}
}

View File

@@ -0,0 +1,21 @@
{
"type": "tiedup:bondage_item",
"display_name": "Leather Mittens",
"translation_key": "item.tiedup.leather_mittens",
"model": "tiedup:models/gltf/v2/mittens/leather_mittens.glb",
"regions": [
"HANDS"
],
"pose_priority": 5,
"escape_difficulty": 20,
"lockable": true,
"animation_bones": {
"idle": [
"rightArm",
"leftArm"
]
},
"components": {
"lockable": {}
}
}

View File

@@ -0,0 +1,31 @@
{
"type": "tiedup:bondage_item",
"display_name": "Leather Straps",
"translation_key": "item.tiedup.leather_straps",
"model": "tiedup:models/gltf/v2/binds/leather_straps.glb",
"regions": [
"ARMS"
],
"pose_type": "STANDARD",
"pose_priority": 30,
"escape_difficulty": 100,
"lockable": true,
"can_attach_padlock": true,
"supports_color": false,
"animation_bones": {
"idle": [
"rightArm",
"leftArm"
],
"struggle": [
"rightArm",
"leftArm"
]
},
"components": {
"lockable": {},
"resistance": {
"id": "armbinder"
}
}
}

View File

@@ -0,0 +1,27 @@
{
"type": "tiedup:bondage_item",
"display_name": "Medical Gag",
"translation_key": "item.tiedup.medical_gag",
"model": "tiedup:models/gltf/v2/combos/medical_gag.glb",
"regions": [
"MOUTH"
],
"pose_priority": 10,
"escape_difficulty": 50,
"lockable": true,
"animation_bones": {
"idle": [
"head"
]
},
"components": {
"lockable": {},
"resistance": {
"id": "gag"
},
"gagging": {
"material": "panel"
},
"blinding": {}
}
}

View File

@@ -0,0 +1,31 @@
{
"type": "tiedup:bondage_item",
"display_name": "Medical Straps",
"translation_key": "item.tiedup.medical_straps",
"model": "tiedup:models/gltf/v2/binds/medical_straps.glb",
"regions": [
"ARMS"
],
"pose_type": "STANDARD",
"pose_priority": 30,
"escape_difficulty": 100,
"lockable": true,
"can_attach_padlock": true,
"supports_color": false,
"animation_bones": {
"idle": [
"rightArm",
"leftArm"
],
"struggle": [
"rightArm",
"leftArm"
]
},
"components": {
"lockable": {},
"resistance": {
"id": "armbinder"
}
}
}

View File

@@ -0,0 +1,29 @@
{
"type": "tiedup:bondage_item",
"display_name": "Panel Gag",
"translation_key": "item.tiedup.panel_gag",
"model": "tiedup:models/gltf/v2/gags/panel_gag.glb",
"regions": [
"MOUTH"
],
"pose_priority": 10,
"escape_difficulty": 50,
"lockable": true,
"can_attach_padlock": true,
"supports_color": false,
"animation_bones": {
"idle": [
"head"
]
},
"components": {
"lockable": {},
"resistance": {
"id": "gag"
},
"gagging": {
"material": "panel"
},
"adjustable": {}
}
}

View File

@@ -0,0 +1,31 @@
{
"type": "tiedup:bondage_item",
"display_name": "Ribbon",
"translation_key": "item.tiedup.ribbon",
"model": "tiedup:models/gltf/v2/binds/ribbon.glb",
"regions": [
"ARMS"
],
"pose_type": "STANDARD",
"pose_priority": 30,
"escape_difficulty": 100,
"lockable": true,
"can_attach_padlock": true,
"supports_color": false,
"animation_bones": {
"idle": [
"rightArm",
"leftArm"
],
"struggle": [
"rightArm",
"leftArm"
]
},
"components": {
"lockable": {},
"resistance": {
"id": "ribbon"
}
}
}

View File

@@ -0,0 +1,29 @@
{
"type": "tiedup:bondage_item",
"display_name": "Ribbon Gag",
"translation_key": "item.tiedup.ribbon_gag",
"model": "tiedup:models/gltf/v2/gags/ribbon_gag.glb",
"regions": [
"MOUTH"
],
"pose_priority": 10,
"escape_difficulty": 50,
"lockable": true,
"can_attach_padlock": true,
"supports_color": false,
"animation_bones": {
"idle": [
"head"
]
},
"components": {
"lockable": {},
"resistance": {
"id": "gag"
},
"gagging": {
"material": "cloth"
},
"adjustable": {}
}
}

View File

@@ -0,0 +1,31 @@
{
"type": "tiedup:bondage_item",
"display_name": "Ropes",
"translation_key": "item.tiedup.ropes",
"model": "tiedup:models/gltf/v2/binds/ropes.glb",
"regions": [
"ARMS"
],
"pose_type": "STANDARD",
"pose_priority": 30,
"escape_difficulty": 100,
"lockable": true,
"can_attach_padlock": true,
"supports_color": true,
"animation_bones": {
"idle": [
"rightArm",
"leftArm"
],
"struggle": [
"rightArm",
"leftArm"
]
},
"components": {
"lockable": {},
"resistance": {
"id": "rope"
}
}
}

View File

@@ -0,0 +1,29 @@
{
"type": "tiedup:bondage_item",
"display_name": "Rope Gag",
"translation_key": "item.tiedup.ropes_gag",
"model": "tiedup:models/gltf/v2/gags/ropes_gag.glb",
"regions": [
"MOUTH"
],
"pose_priority": 10,
"escape_difficulty": 50,
"lockable": true,
"can_attach_padlock": true,
"supports_color": true,
"animation_bones": {
"idle": [
"head"
]
},
"components": {
"lockable": {},
"resistance": {
"id": "gag"
},
"gagging": {
"material": "cloth"
},
"adjustable": {}
}
}

View File

@@ -0,0 +1,31 @@
{
"type": "tiedup:bondage_item",
"display_name": "Shibari",
"translation_key": "item.tiedup.shibari",
"model": "tiedup:models/gltf/v2/binds/shibari.glb",
"regions": [
"ARMS"
],
"pose_type": "STANDARD",
"pose_priority": 30,
"escape_difficulty": 100,
"lockable": true,
"can_attach_padlock": true,
"supports_color": true,
"animation_bones": {
"idle": [
"rightArm",
"leftArm"
],
"struggle": [
"rightArm",
"leftArm"
]
},
"components": {
"lockable": {},
"resistance": {
"id": "rope"
}
}
}

View File

@@ -0,0 +1,27 @@
{
"type": "tiedup:bondage_item",
"regions": [
"NECK"
],
"pose_priority": 5,
"escape_difficulty": 80,
"lockable": true,
"animation_bones": {
"idle": [
"body"
]
},
"display_name": "Shock Collar",
"translation_key": "item.tiedup.shock_collar",
"model": "tiedup:models/gltf/v2/collars/shock_collar.glb",
"components": {
"ownership": {},
"lockable": {},
"resistance": {
"id": "collar"
},
"shock": {
"damage": 2.0
}
}
}

View File

@@ -0,0 +1,28 @@
{
"type": "tiedup:bondage_item",
"regions": [
"NECK"
],
"pose_priority": 5,
"escape_difficulty": 80,
"lockable": true,
"animation_bones": {
"idle": [
"body"
]
},
"display_name": "Auto Shock Collar",
"translation_key": "item.tiedup.shock_collar_auto",
"model": "tiedup:models/gltf/v2/collars/shock_collar_auto.glb",
"components": {
"ownership": {},
"lockable": {},
"resistance": {
"id": "collar"
},
"shock": {
"damage": 2.0,
"auto_interval": 200
}
}
}

View File

@@ -0,0 +1,30 @@
{
"type": "tiedup:bondage_item",
"display_name": "Slime Bind",
"translation_key": "item.tiedup.slime",
"model": "tiedup:models/gltf/v2/binds/slime.glb",
"regions": [
"ARMS"
],
"pose_type": "STANDARD",
"pose_priority": 30,
"escape_difficulty": 100,
"lockable": false,
"can_attach_padlock": false,
"supports_color": false,
"animation_bones": {
"idle": [
"rightArm",
"leftArm"
],
"struggle": [
"rightArm",
"leftArm"
]
},
"components": {
"resistance": {
"id": "slime"
}
}
}

View File

@@ -0,0 +1,28 @@
{
"type": "tiedup:bondage_item",
"display_name": "Slime Gag",
"translation_key": "item.tiedup.slime_gag",
"model": "tiedup:models/gltf/v2/gags/slime_gag.glb",
"regions": [
"MOUTH"
],
"pose_priority": 10,
"escape_difficulty": 50,
"lockable": false,
"can_attach_padlock": false,
"supports_color": false,
"animation_bones": {
"idle": [
"head"
]
},
"components": {
"resistance": {
"id": "gag"
},
"gagging": {
"material": "stuffed"
},
"adjustable": {}
}
}

View File

@@ -0,0 +1,29 @@
{
"type": "tiedup:bondage_item",
"display_name": "Sponge Gag",
"translation_key": "item.tiedup.sponge_gag",
"model": "tiedup:models/gltf/v2/gags/sponge_gag.glb",
"regions": [
"MOUTH"
],
"pose_priority": 10,
"escape_difficulty": 50,
"lockable": true,
"can_attach_padlock": true,
"supports_color": false,
"animation_bones": {
"idle": [
"head"
]
},
"components": {
"lockable": {},
"resistance": {
"id": "gag"
},
"gagging": {
"material": "sponge"
},
"adjustable": {}
}
}

View File

@@ -0,0 +1,31 @@
{
"type": "tiedup:bondage_item",
"display_name": "Straitjacket",
"translation_key": "item.tiedup.straitjacket",
"model": "tiedup:models/gltf/v2/binds/straitjacket.glb",
"regions": [
"ARMS"
],
"pose_type": "STRAITJACKET",
"pose_priority": 30,
"escape_difficulty": 100,
"lockable": true,
"can_attach_padlock": true,
"supports_color": false,
"animation_bones": {
"idle": [
"rightArm",
"leftArm"
],
"struggle": [
"rightArm",
"leftArm"
]
},
"components": {
"lockable": {},
"resistance": {
"id": "straitjacket"
}
}
}

View File

@@ -0,0 +1,28 @@
{
"type": "tiedup:bondage_item",
"display_name": "Tape Gag",
"translation_key": "item.tiedup.tape_gag",
"model": "tiedup:models/gltf/v2/gags/tape_gag.glb",
"regions": [
"MOUTH"
],
"pose_priority": 10,
"escape_difficulty": 50,
"lockable": false,
"can_attach_padlock": false,
"supports_color": true,
"animation_bones": {
"idle": [
"head"
]
},
"components": {
"resistance": {
"id": "gag"
},
"gagging": {
"material": "tape"
},
"adjustable": {}
}
}

View File

@@ -1,24 +0,0 @@
{
"type": "tiedup:bondage_item",
"display_name": "Component Test Gag",
"model": "tiedup:models/gltf/v2/handcuffs/cuffs_prototype.glb",
"regions": ["MOUTH"],
"pose_priority": 10,
"escape_difficulty": 3,
"lockable": true,
"animation_bones": {
"idle": []
},
"components": {
"lockable": {
"lock_resistance": 200
},
"resistance": {
"base": 80
},
"gagging": {
"comprehension": 0.15,
"range": 8.0
}
}
}

View File

@@ -1,14 +0,0 @@
{
"type": "tiedup:bondage_item",
"display_name": "Data-Driven Handcuffs",
"model": "tiedup:models/gltf/v2/handcuffs/cuffs_prototype.glb",
"regions": ["ARMS"],
"pose_priority": 30,
"escape_difficulty": 100,
"lockable": true,
"icon": "tiedup:item/beam_cuffs",
"animation_bones": {
"idle": ["rightArm", "leftArm"],
"struggle": ["rightArm", "leftArm"]
}
}

View File

@@ -0,0 +1,29 @@
{
"type": "tiedup:bondage_item",
"display_name": "Tube Gag",
"translation_key": "item.tiedup.tube_gag",
"model": "tiedup:models/gltf/v2/gags/tube_gag.glb",
"regions": [
"MOUTH"
],
"pose_priority": 10,
"escape_difficulty": 50,
"lockable": true,
"can_attach_padlock": true,
"supports_color": false,
"animation_bones": {
"idle": [
"head"
]
},
"components": {
"lockable": {},
"resistance": {
"id": "gag"
},
"gagging": {
"material": "ring"
},
"adjustable": {}
}
}

View File

@@ -0,0 +1,28 @@
{
"type": "tiedup:bondage_item",
"display_name": "Vine Gag",
"translation_key": "item.tiedup.vine_gag",
"model": "tiedup:models/gltf/v2/gags/vine_gag.glb",
"regions": [
"MOUTH"
],
"pose_priority": 10,
"escape_difficulty": 50,
"lockable": false,
"can_attach_padlock": false,
"supports_color": false,
"animation_bones": {
"idle": [
"head"
]
},
"components": {
"resistance": {
"id": "gag"
},
"gagging": {
"material": "stuffed"
},
"adjustable": {}
}
}

View File

@@ -0,0 +1,30 @@
{
"type": "tiedup:bondage_item",
"display_name": "Vine Bind",
"translation_key": "item.tiedup.vine_seed",
"model": "tiedup:models/gltf/v2/binds/vine_seed.glb",
"regions": [
"ARMS"
],
"pose_type": "STANDARD",
"pose_priority": 30,
"escape_difficulty": 100,
"lockable": false,
"can_attach_padlock": false,
"supports_color": false,
"animation_bones": {
"idle": [
"rightArm",
"leftArm"
],
"struggle": [
"rightArm",
"leftArm"
]
},
"components": {
"resistance": {
"id": "vine"
}
}
}

View File

@@ -0,0 +1,30 @@
{
"type": "tiedup:bondage_item",
"display_name": "Web Bind",
"translation_key": "item.tiedup.web_bind",
"model": "tiedup:models/gltf/v2/binds/web_bind.glb",
"regions": [
"ARMS"
],
"pose_type": "STANDARD",
"pose_priority": 30,
"escape_difficulty": 100,
"lockable": false,
"can_attach_padlock": false,
"supports_color": false,
"animation_bones": {
"idle": [
"rightArm",
"leftArm"
],
"struggle": [
"rightArm",
"leftArm"
]
},
"components": {
"resistance": {
"id": "web"
}
}
}

View File

@@ -0,0 +1,28 @@
{
"type": "tiedup:bondage_item",
"display_name": "Web Gag",
"translation_key": "item.tiedup.web_gag",
"model": "tiedup:models/gltf/v2/gags/web_gag.glb",
"regions": [
"MOUTH"
],
"pose_priority": 10,
"escape_difficulty": 50,
"lockable": false,
"can_attach_padlock": false,
"supports_color": false,
"animation_bones": {
"idle": [
"head"
]
},
"components": {
"resistance": {
"id": "gag"
},
"gagging": {
"material": "stuffed"
},
"adjustable": {}
}
}

Some files were not shown because too many files have changed in this diff Show More