bondage-college-mirr/BondageClub/Assets/Female3DCG/Female3DCGExtended.js
Jean-Baptiste Emmanuel Zorg ebca1244d5 Format asset defs correctly
2024-02-21 17:40:22 +01:00

14720 lines
342 KiB
JavaScript

//@ts-check
"use strict";
/**
* Female3DCGExtended.js
* ---------------------
* This file contains definitions and configuration for extended items. Items which are marked as Extended in
* `Female3DCG.js` and which have an extended item definition here will have their load/draw/click functions
* _automatically_ created when assets are loaded, saving the need for an individual extended item script.
*
* Currently, modular and typed items are supported, and this is likely to expand in the future.
*/
/**
* An enum encapsulating the available extended item archetypes
* @satisfies {Record<Uppercase<ExtendedArchetype>, ExtendedArchetype>}
*/
const ExtendedArchetype = /** @type {const} */ ({
MODULAR: "modular",
TYPED: "typed",
VIBRATING: "vibrating",
VARIABLEHEIGHT: "variableheight",
TEXT: "text",
NOARCH: "noarch",
});
/**
* An object containing all extended item configurations.
* @type {ExtendedItemMainConfig}
* @const
*/
var AssetFemale3DCGExtended = {
BodyUpper: {
// NOTE: Switch to the `MODULAR` archetype if we'd want to allow for the simultaneous use of multiple overlays
Small: {
Archetype: ExtendedArchetype.TYPED,
Options: [
{
Name: "Default",
},
],
}, // Small
Normal: {
Archetype: ExtendedArchetype.TYPED,
CopyConfig: { GroupName: "BodyUpper", AssetName: "Small" },
}, // Normal
Large: {
Archetype: ExtendedArchetype.TYPED,
CopyConfig: { GroupName: "BodyUpper", AssetName: "Small" },
}, // Large
XLarge: {
Archetype: ExtendedArchetype.TYPED,
CopyConfig: { GroupName: "BodyUpper", AssetName: "Small" },
}, // XLarge
FlatSmall: {
Archetype: ExtendedArchetype.TYPED,
CopyConfig: { GroupName: "BodyUpper", AssetName: "Small" },
}, // FlatSmall
FlatMedium: {
Archetype: ExtendedArchetype.TYPED,
CopyConfig: { GroupName: "BodyUpper", AssetName: "Small" },
}, // FlatMedium
},
Hat: {
Bandana: {
Archetype: ExtendedArchetype.TYPED,
Options: [
{
Name: "Plain",
},
{
Name: "Circles",
},
{
Name: "Flowers",
},
{
Name: "PolkaDots",
},
{
Name: "Triangles",
},
],
}, //Bandana
BallCapBack: {
Archetype: ExtendedArchetype.TYPED,
Options: [
{
Name: "StrapUnder",
},
{
Name: "StrapOver",
},
],
}, //BallCapBack
BallCapFront: {
Archetype: ExtendedArchetype.TYPED,
Options: [
{
Name: "Blank",
},
{
Name: "BCLogo",
Property: {
DefaultColor: "Default",
},
},
{
Name: "BDSM",
Property: {
DefaultColor: "Default",
},
},
{
Name: "BG",
Property: {
DefaultColor: "Default",
},
},
{
Name: "Chain",
Property: {
DefaultColor: "Default",
},
},
{
Name: "Gag",
Property: {
DefaultColor: "Default",
},
},
{
Name: "Knot",
Property: {
DefaultColor: "Default",
},
},
{
Name: "Monogram",
Property: {
DefaultColor: "Default",
},
},
{
Name: "Rock",
Property: {
DefaultColor: "Default",
},
},
{
Name: "Smile",
Property: {
DefaultColor: "Default",
},
},
{
Name: "Sun",
Property: {
DefaultColor: "Default",
},
},
{
Name: "Tick",
Property: {
DefaultColor: "Default",
},
},
],
}, //BallCapFront
SwimCap: {
Archetype: ExtendedArchetype.MODULAR,
ChatSetting: ModularItemChatSetting.PER_MODULE,
Modules: [
{
Name: "Pattern",
Key: "p",
Options: [{}, {}, {}, {}, {}, {}], //None, Stripes 1, Stripes 2, Tirangle, Cowprint, Tigerprint
},
{
Name: "Hair",
Key: "h",
Options: [
{
Property: {
Hide: [
"HairFront",
"HairBack",
"HairAccessory1",
"HairAccessory2",
],
},
}, // No Hair Openings
{
Property: {
Hide: ["HairFront", "HairAccessory1", "HairAccessory2"],
},
}, // Hair Openings
{
Property: { Hide: ["HairFront", "HairBack"] },
}, // Ear Openings
{
Property: { Hide: ["HairFront"] },
},
],
},
],
}, // SwimCap
LatexHabit: {
Archetype: ExtendedArchetype.TYPED,
Options: [
{
Name: "Loose",
},
{
Name: "Tight",
},
],
}, //LatexHabit
NunHabit: {
Archetype: ExtendedArchetype.TYPED,
Options: [
{
Name: "Blank",
},
{
Name: "Ass",
},
{
Name: "Breasts",
},
{
Name: "Chastity",
},
{
Name: "Cock",
},
{
Name: "Pussy",
},
{
Name: "Thighs",
},
],
}, // NunHabit
PirateHat: {
Archetype: ExtendedArchetype.MODULAR,
ChatTags: [
CommonChatTags.SOURCE_CHAR,
CommonChatTags.DEST_CHAR,
CommonChatTags.ASSET_NAME,
],
Modules: [
{
Name: "Bandana",
Key: "b",
Options: [
{}, // Bandana
{}, // No bandana :(
],
},
{
Name: "Symbol",
Key: "s",
Options: [
{}, // Classic
{}, // Kinky
{}, // None
],
},
{
Name: "Feathers",
Key: "f",
DrawImages: false,
Options: [
{}, // Both
{}, // Front
{}, // Back
{}, // None
],
},
],
}, // PirateHat
},
LeftHand: {
Rings: {
Archetype: ExtendedArchetype.MODULAR,
Modules: [
{
Name: "Thumb",
Key: "t",
Options: [{}, {}],
},
{
Name: "Index",
Key: "i",
Options: [{}, {}],
},
{
Name: "Middle",
Key: "m",
Options: [{}, {}],
},
{
Name: "Ring",
Key: "r",
Options: [{}, {}, {}],
},
{
Name: "Pinkie",
Key: "p",
Options: [{}, {}, {}],
},
],
},
},
RightHand: {
Rings: {
Archetype: ExtendedArchetype.MODULAR,
Modules: [
{
Name: "Thumb",
Key: "t",
Options: [{}, {}],
},
{
Name: "Index",
Key: "i",
Options: [{}, {}],
},
{
Name: "Middle",
Key: "m",
Options: [{}, {}],
},
{
Name: "Ring",
Key: "r",
Options: [{}, {}, {}],
},
{
Name: "Pinkie",
Key: "p",
Options: [{}, {}, {}],
},
],
},
},
Cloth: {
TShirt2: {
Archetype: ExtendedArchetype.TYPED,
Options: [
{
Name: "Plain",
},
{
Name: "BCLogo",
Property: {
DefaultColor: "#FFF0CC",
},
},
{
Name: "BDSM",
Property: {
DefaultColor: "Default",
},
},
{
Name: "Gag",
Property: {
DefaultColor: "Default",
},
},
{
Name: "Knot",
Property: {
DefaultColor: "#CCC088",
},
},
{
Name: "Rock",
Property: {
DefaultColor: "#B03030",
},
},
{
Name: "Smile",
Property: {
DefaultColor: "#BB9911",
},
},
{
Name: "Tick",
Property: {
DefaultColor: "#119977",
},
},
],
}, // TShirt2
ChineseDress2: {
Archetype: ExtendedArchetype.TYPED,
Options: [
{
Name: "Red",
},
{
Name: "Purple",
},
{
Name: "Pink",
},
],
}, // ChineseDress2
LatexLacedSuit: {
Archetype: ExtendedArchetype.TYPED,
Options: [
{
Name: "Laced",
},
{
Name: "NonLaced",
},
],
}, // LatexLacedSuit
RetroGirdle: {
Archetype: ExtendedArchetype.TYPED,
Options: [
{
Name: "NonGarters",
},
{
Name: "Garters",
},
],
}, // RetroGirdle
ReverseBunnySuit: {
Archetype: ExtendedArchetype.TYPED,
CopyConfig: { GroupName: "Suit", AssetName: "Catsuit" },
}, // ReverseBunnySuit
Jacket: {
Archetype: ExtendedArchetype.TYPED,
Options: [
{
Name: "Normal",
},
{
Name: "Hooded",
Property: {
Hide: [
"HairFront",
"HairBack",
"HairAccessory1",
"HairAccessory2",
"HairAccessory3",
"Hat",
],
},
},
{
Name: "HoodedEarsOut",
Property: {
HideItem: [
"HairAccessory2UnicornHorn",
"HairAccessory2DildocornHorn",
],
Hide: [
"HairFront",
"HairBack",
"HairAccessory1",
"HairAccessory3",
"Hat",
],
},
},
],
}, // Jacket
SlaveRags: {
Archetype: ExtendedArchetype.MODULAR,
Modules: [
{
Name: "Cloth",
Key: "c",
Options: [
{}, //c0 - Base
{}, //c1 - BaseStained
{}, //c2 - Torn1
{}, //c3 - Torn1Stained
],
},
{
Name: "Belt",
Key: "b",
Options: [
{}, //b0
{}, //b1
{}, //b2
],
},
],
}, //SlaveRags
Hoodie: {
Archetype: ExtendedArchetype.MODULAR,
Modules: [
{
Name: "Hood",
Key: "h",
Options: [
{}, //h0 - Down
{}, //h1 - Up Regular
{}, //h2 - Up Ears
],
},
{
Name: "Length",
Key: "l",
DrawImages: false,
Options: [
{}, //l0 - Cropped
{}, //l1 - Bolero
//{}, //l2 - Full Length - not yet implemented
],
},
//{
// Name: "Pouch", Key: "p", // Pouch option not yet implemented
// Options: [
// {}, //p0 - Hands Out
// {}, //p1 - Hands In
// ],
//},
],
}, //Hoodie
LatexTankTop: {
Archetype: ExtendedArchetype.MODULAR,
Modules: [
{
Name: "BackHood",
Key: "lh",
Options: [
{
// lh0 - None
Property: { Effect: [] },
},
{
// lh1 - Down
Property: { Effect: [] },
},
{
// lh2 - Pulled Up
Property: {
Hide: [
"HairFront",
"HairBack",
"HairAccessory1",
"HairAccessory2",
"HairAccessory3",
"Hat",
],
},
},
],
},
{
Name: "ReverseHood",
Key: "rh",
Options: [
{
// rh0 - None
Property: { Effect: [] },
},
{
// rh1 - Loose
Property: { Effect: [] },
},
{
// rh2 - Pulled Up
Property: {
Effect: [E.Slow],
Hide: [
"HairFront",
"HairBack",
"HairAccessory1",
"HairAccessory2",
"HairAccessory3",
"Hat",
"Head",
],
},
},
],
},
],
}, //LatexTankTop
CheerleaderTop: {
Archetype: ExtendedArchetype.TEXT,
MaxLength: { Text: 8 },
Font: "'Archivo Black', 'Impact', 'Arial Black', 'Franklin Gothic', 'Arial', sans-serif",
ScriptHooks: {
AfterDraw: AssetsClothCheerleaderTopAfterDrawHook,
},
DialogPrefix: {
Header: "ClothCheerleaderTopTextLabel",
},
}, // CheerleaderTop
FishnetTop: {
Archetype: ExtendedArchetype.MODULAR,
ChatTags: [
CommonChatTags.SOURCE_CHAR,
CommonChatTags.DEST_CHAR,
CommonChatTags.ASSET_NAME,
],
Modules: [
{
Name: "Sleeves",
Key: "s",
Options: [
{}, // Sleeves
{}, // No sleeves
],
},
{
Name: "Top",
Key: "t",
Options: [
{}, // Full
{}, // Crop
],
},
],
}, // FishnetTop
CorsetDress: {
Archetype: ExtendedArchetype.TYPED,
Options: [{ Name: "Normal" }, { Name: "NoSkirt" }],
}, // CorsetDress
FrilledShirt: {
Archetype: ExtendedArchetype.NOARCH,
DialogPrefix: {
Header: "OpacityLabel",
},
ScriptHooks: {
Init: PropertyOpacityInit,
Load: PropertyOpacityLoad,
Draw: PropertyOpacityDraw,
Exit: PropertyOpacityExit,
},
BaselineProperty: { Opacity: 1 },
}, // FrilledShirt
}, // Cloth
BodyMarkings: {
WombTattoos: {
Archetype: ExtendedArchetype.MODULAR,
ChatSetting: ModularItemChatSetting.PER_MODULE,
DrawImages: false,
Modules: [
{
Name: "Zoom",
Key: "z",
Options: [{}, {}], // n,y
},
{
Name: "Big",
Key: "b",
Options: [{}, {}], // n,y
},
{
Name: "Bloom",
Key: "c",
Options: [{}, {}], // n,y
},
{
Name: "BottomSpike",
Key: "d",
Options: [{}, {}], // n,y
},
{
Name: "Flash",
Key: "e",
Options: [{}, {}], // n,y
},
{
Name: "Fly",
Key: "f",
Options: [{}, {}], // n,y
},
{
Name: "Grass",
Key: "g",
Options: [{}, {}], // n,y
},
{
Name: "Grow",
Key: "h",
Options: [{}, {}], // n,y
},
{
Name: "GrowHollow",
Key: "i",
Options: [{}, {}], // n,y
},
{
Name: "HeartSmallOutline",
Key: "j",
Options: [{}, {}], // n,y
},
{
Name: "Heartline",
Key: "k",
Options: [{}, {}], // n,y
},
{
Name: "HeartSmall",
Key: "l",
Options: [{}, {}], // n,y
},
{
Name: "HeartSolid",
Key: "m",
Options: [{}, {}], // n,y
},
{
Name: "HeartWings",
Key: "n",
Options: [{}, {}], // n,y
},
{
Name: "In",
Key: "o",
Options: [{}, {}], // n,y
},
{
Name: "Leaves",
Key: "p",
Options: [{}, {}], // n,y
},
{
Name: "MidSpike",
Key: "q",
Options: [{}, {}], // n,y
},
{
Name: "Ribow",
Key: "r",
Options: [{}, {}], // n,y
},
{
Name: "Sense",
Key: "s",
Options: [{}, {}], // n,y
},
{
Name: "Shake",
Key: "t",
Options: [{}, {}], // n,y
},
{
Name: "SideHearts",
Key: "u",
Options: [{}, {}], // n,y
},
{
Name: "Swim",
Key: "v",
Options: [{}, {}], // n,y
},
{
Name: "Thorn",
Key: "w",
Options: [{}, {}], // n,y
},
{
Name: "ThornOut",
Key: "x",
Options: [{}, {}], // n,y
},
{
Name: "TopSpike",
Key: "y",
Options: [{}, {}], // n,y
},
{
Name: "Venom",
Key: "za",
Options: [{}, {}], // n,y
},
{
Name: "Viper",
Key: "zb",
Options: [{}, {}], // n,y
},
{
Name: "Waves",
Key: "zc",
Options: [{}, {}], // n,y
},
{
Name: "WingSmall",
Key: "zd",
Options: [{}, {}], // n,y
},
],
},
},
ClothAccessory: {
LeatherStraps: {
Archetype: ExtendedArchetype.TYPED,
CopyConfig: { GroupName: "ItemArms", AssetName: "LeatherArmbinder" },
Options: [
{
Name: "WrapStrap",
},
{
Name: "Strap",
},
],
}, // LeatherStraps
BunnyCollarCuffs: {
Archetype: ExtendedArchetype.TYPED,
Options: [
{
Name: "Both",
},
{
Name: "Collar",
},
{
Name: "Cuffs",
},
],
}, // BunnyCollarCuffs
Bib: {
Archetype: ExtendedArchetype.MODULAR,
Modules: [
{
Name: "Pattern",
Key: "p",
Options: [{}, {}, {}, {}, {}, {}],
},
{
Name: "Txt",
Key: "x",
Options: [
{},
{
HasSubscreen: true,
ArchetypeConfig: {
Archetype: ExtendedArchetype.TEXT,
MaxLength: { Text: 24, Text2: 24 },
Font: "Pacifico",
ScriptHooks: {
AfterDraw: AssetsClothAccessoryBibAfterDrawHook,
},
},
},
],
},
],
BaselineProperty: { Text: "", Text2: "" },
}, // Bib
Scarf: {
Archetype: ExtendedArchetype.TYPED,
Options: [
{
Name: "ShowMouth",
},
{
Name: "Bundled",
},
{
Name: "HideMouth",
},
],
DrawImages: false,
}, // Scarf
Glitter: {
Archetype: ExtendedArchetype.TYPED,
Options: [
{
Name: "Freckles",
},
{
Name: "MidFreckles",
},
{
Name: "SplitFreckles",
},
{
Name: "FrecklesSmall",
},
{
Name: "MidFrecklesSmall",
},
{
Name: "SplitFrecklesSmall",
},
{
Name: "StarsBoth",
},
{
Name: "StarsLeft",
},
{
Name: "StarsRight",
},
{
Name: "DotsBoth",
},
{
Name: "DotsLeft",
},
{
Name: "DotsRight",
},
],
}, //Glitter
Kissmark: {
Archetype: ExtendedArchetype.MODULAR,
ChatSetting: ModularItemChatSetting.PER_MODULE,
Modules: [
{
Name: "Lcheek",
Key: "c",
Options: [{}, {}], // n,y
},
{
Name: "Rcheek",
Key: "r",
Options: [{}, {}], // y,n
},
{
Name: "Rfhead",
Key: "f",
Options: [{}, {}], // n,y
},
{
Name: "Rneck",
Key: "n",
Options: [{}, {}], // n,y
},
{
Name: "Lneck",
Key: "l",
Options: [{}, {}], // n,y
},
],
}, //KissMark
LargeBelt: {
Archetype: ExtendedArchetype.TYPED,
Options: [
{
Name: "Loose",
},
{
Name: "Fit",
},
],
DialogPrefix: {
Header: "SelectLargeBeltWidth",
Option: "LargeBeltStyle",
},
}, // LargeBelt
LatexApron: {
Archetype: ExtendedArchetype.TYPED,
Options: [
{
Name: "Full",
},
{
Name: "Bottom",
},
],
DialogPrefix: {
Header: "LatexApronSelectType",
Option: "LatexApronType",
},
}, // LatexApron
WombTattoos: {
Archetype: ExtendedArchetype.MODULAR,
ChatSetting: ModularItemChatSetting.PER_MODULE,
DrawImages: false,
CopyConfig: { GroupName: "BodyMarkings", AssetName: "WombTattoos" },
}, //WombTattoos
}, // ClothAccessory
ClothLower: {
PantBoots: {
Archetype: ExtendedArchetype.MODULAR,
Modules: [
{
Name: "Stripe",
Key: "s",
Options: [
{
// s0 - No stripe
Property: { Effect: [] },
},
{
// s1 - Striped
Property: { Effect: [] },
},
],
},
{
Name: "Boot",
Key: "b",
Options: [
{
// b0 - Detached Boots
Property: { Effect: [] },
},
{
// b1 - Attached Boots
Property: { Effect: [] },
},
],
},
],
}, //PantBoots
}, // ClothLower
SocksLeft: {
LooseSocks: {
Archetype: ExtendedArchetype.TYPED,
Options: [{ Name: "Normal" }, { Name: "Flat" }],
}, // LooseSocks
}, // SocksLeft
SocksRight: {
LooseSocks: {
Archetype: ExtendedArchetype.TYPED,
CopyConfig: { GroupName: "SocksLeft", AssetName: "LooseSocks" },
}, // LooseSocks
}, // SocksRight
ItemBreast: {
Ribbons: {
Archetype: ExtendedArchetype.TYPED,
ChatTags: [CommonChatTags.SOURCE_CHAR, CommonChatTags.DEST_CHAR],
Options: [
{
Name: "LightWrap",
Property: { Difficulty: 0 },
},
{
Name: "LightWrapBow",
Property: { Difficulty: 1 },
},
{
Name: "Wrap",
Property: { Difficulty: 2 },
},
],
DialogPrefix: {
Header: "SelectRibbonType",
Option: "RibbonsStyle",
Chat: "RibbonsSet",
Npc: "ItemBreastRibbons",
},
}, // Ribbons
FuturisticBra2: {
Archetype: ExtendedArchetype.MODULAR,
Modules: [
{
Name: "Display",
Key: "d",
Options: [
{}, // d0 - Display
{}, // d1 - No Display
],
},
{
Name: "Shiny",
Key: "s",
Options: [
{}, // s0 - Shiny
{}, // s1 - No Shiny
],
},
],
ScriptHooks: {
Load: FuturisticAccessLoad,
Click: FuturisticAccessClick,
Draw: FuturisticAccessDraw,
Exit: FuturisticAccessExit,
Validate: FuturisticAccessValidate,
},
}, // FuturisticBra2
FuturisticBra: {
Archetype: ExtendedArchetype.TYPED,
Options: [
{
Name: "Show",
},
{
Name: "Solid",
},
{
Name: "Show2",
},
{
Name: "Solid2",
},
],
DrawImages: false,
ScriptHooks: {
Load: FuturisticAccessLoad,
Click: FuturisticAccessClick,
Draw: InventoryItemBreastFuturisticBraDrawHook,
Exit: FuturisticAccessExit,
Validate: FuturisticAccessValidate,
},
BaselineProperty: { HeartRate: 0 },
}, // FuturisticBra
TickleBra: {
Archetype: ExtendedArchetype.VIBRATING,
}, // TickleBra
ForbiddenChastityBra: {
Archetype: ExtendedArchetype.TYPED,
ChatTags: [
CommonChatTags.SOURCE_CHAR,
CommonChatTags.DEST_CHAR,
CommonChatTags.ASSET_NAME,
],
DrawImages: false,
Options: [
{ Name: "Off" },
{
Name: "Low",
Property: { ShockLevel: 0 },
},
{
Name: "Medium",
Property: { ShockLevel: 1 },
},
{
Name: "High",
Property: { ShockLevel: 2 },
},
],
DrawData: {
elementData: [
{ position: ExtendedXYWithoutImages[8][0] },
{ position: ExtendedXYWithoutImages[8][1] },
{ position: ExtendedXYWithoutImages[8][2] },
{ position: ExtendedXYWithoutImages[8][3] },
],
},
ScriptHooks: {
Draw: InventoryItemBreastForbiddenChastityBraDrawHook,
Click: InventoryItemBreastForbiddenChastityBraClickHook,
BeforeDraw: AssetsItemNeckAccessoriesCollarShockUnitBeforeDrawHook,
ScriptDraw: AssetsItemBreastForbiddenChastityBraScriptDrawHook,
},
ChangeWhenLocked: false,
BaselineProperty: {
TriggerCount: 0,
ShowText: true,
BlinkState: false,
ShockLevel: 0,
PunishOrgasm: false,
PunishStandup: false,
PunishStruggle: false,
},
}, // ForbiddenChastityBra
}, // ItemBreast
ItemArms: {
Web: {
Archetype: ExtendedArchetype.TYPED,
ChatTags: [CommonChatTags.SOURCE_CHAR, CommonChatTags.TARGET_CHAR],
Dictionary: [
(dictionary, { newIndex, previousIndex }) => {
dictionary.text(
"Action",
newIndex > previousIndex ? "tightens" : "loosens",
);
},
],
Options: [
{
Name: "Tangled",
Property: {
Difficulty: 0,
SetPose: ["BaseLower", "BackElbowTouch"],
AllowActivePose: ["Kneel", "LegsOpen", "LegsClosed"],
},
},
{
Name: "Wrapped",
BondageLevel: 0,
SelfBondageLevel: 4,
Property: {
Difficulty: 2,
SetPose: ["LegsClosed", "BackElbowTouch"],
HideItem: [
"PantiesPoofyDiaper",
"PantiesBulkyDiaper",
"ItemPelvisPoofyDiaper",
"ItemPelvisBulkyDiaper",
],
},
},
{
Name: "Cocooned",
BondageLevel: 1,
SelfBondageLevel: 5,
Property: {
Difficulty: 4,
SetPose: ["LegsClosed", "BackElbowTouch"],
Block: [
"ItemVulva",
"ItemVulvaPiercings",
"ItemButt",
"ItemPelvis",
"ItemNipples",
"ItemNipplesPiercings",
"ItemBreast",
],
HideItem: [
"PantiesPoofyDiaper",
"PantiesBulkyDiaper",
"ItemPelvisPoofyDiaper",
"ItemPelvisBulkyDiaper",
],
},
Random: false,
},
{
Name: "Hogtied",
BondageLevel: 3,
SelfBondageLevel: 6,
Property: {
Difficulty: 4,
SetPose: ["Hogtied"],
Hide: ["ClothAccessory", "Necklace", "Socks"],
Block: [
"ItemVulva",
"ItemVulvaPiercings",
"ItemButt",
"ItemPelvis",
"ItemNipples",
"ItemNipplesPiercings",
"ItemBreast",
],
},
Random: false,
},
{
Name: "Suspended",
BondageLevel: 4,
SelfBondageLevel: 8,
Property: {
Difficulty: 6,
SetPose: ["LegsClosed", "BackElbowTouch", "Suspension"],
Effect: [E.Suspended],
Block: [
"ItemVulva",
"ItemVulvaPiercings",
"ItemButt",
"ItemPelvis",
"ItemNipples",
"ItemNipplesPiercings",
"ItemBreast",
],
HideItem: [
"PantiesPoofyDiaper",
"PantiesBulkyDiaper",
"ItemPelvisPoofyDiaper",
"ItemPelvisBulkyDiaper",
],
},
Random: false,
},
{
Name: "KneelingSuspended",
BondageLevel: 5,
SelfBondageLevel: 8,
Property: {
Difficulty: 8,
SetPose: ["LegsClosed", "BackElbowTouch", "Suspension"],
Effect: [E.Suspended],
Hide: [
"BodyLower",
"SuitLower",
"Panties",
"Socks",
"Pussy",
"ItemFeet",
"ItemLegs",
"ItemVulva",
"ItemVulvaPiercings",
"ItemButt",
"ItemPelvis",
"ItemBoots",
"ItemHands",
"ItemNipples",
"ItemNipplesPiercings",
"ItemBreast",
],
Block: [
"ItemVulva",
"ItemVulvaPiercings",
"ItemButt",
"ItemPelvis",
"ItemNipples",
"ItemNipplesPiercings",
"ItemBreast",
],
},
Random: false,
},
{
Name: "SuspensionHogtied",
BondageLevel: 5,
SelfBondageLevel: 9,
Property: {
Difficulty: 11,
SetPose: ["Hogtied"],
Effect: [E.Suspended],
Hide: ["ClothAccessory", "Necklace", "Socks"],
Block: [
"ItemVulva",
"ItemVulvaPiercings",
"ItemButt",
"ItemPelvis",
"ItemNipples",
"ItemNipplesPiercings",
"ItemBreast",
"ItemDevices",
],
OverrideHeight: {
Height: 0,
Priority: 51,
HeightRatioProportion: 0,
},
},
Random: false,
},
],
DialogPrefix: {
Header: "WebBondageSelect",
Option: "WebBondage",
Chat: "ArmsWebSet",
Npc: "ItemArmsWeb",
},
}, // Web
InflatableStraightLeotard: {
Archetype: ExtendedArchetype.TYPED,
ChatTags: [CommonChatTags.SOURCE_CHAR, CommonChatTags.DEST_CHAR],
Options: [
{
Name: "Light",
},
{
Name: "Inflated",
Property: {
Difficulty: 1,
},
},
{
Name: "Bloated",
Property: {
Difficulty: 2,
},
},
{
Name: "Max",
Property: {
Effect: [E.Freeze],
Difficulty: 3,
},
},
],
DialogPrefix: {
Header: "SelectInflationLevel",
Option: "InflationAmount",
Chat: "InflationAmountSet",
Npc: "ItemArmsInflatableStraightLeotard",
},
}, // InflatableStraightLeotard
MetalCuffs: {
Archetype: ExtendedArchetype.TYPED,
ChatTags: [CommonChatTags.SOURCE_CHAR, CommonChatTags.DEST_CHAR],
Options: [
{
Name: "InFront",
Property: {
SetPose: ["BaseUpper"],
},
},
{
Name: "BehindBack",
Property: {
SetPose: ["BackCuffs"],
},
NPCDefault: true,
},
],
DialogPrefix: {
Header: "SelectBondagePosition",
Option: "MetalCuffsPose",
Chat: "MetalCuffsRestrain",
Npc: "ItemArmsMetalCuffs",
},
}, // MetalCuffs
Chains: {
Archetype: ExtendedArchetype.TYPED,
ChatTags: [
CommonChatTags.SOURCE_CHAR,
CommonChatTags.TARGET_CHAR,
CommonChatTags.DEST_CHAR,
],
Options: [
{
Name: "WristTie",
Property: { SetPose: ["BackBoxTie"], Difficulty: 1 },
Expression: [{ Group: "Blush", Name: "Low", Timer: 5 }],
},
{
Name: "BoxTie",
Property: { SetPose: ["BackBoxTie"], Difficulty: 1 },
NPCDefault: true,
},
{
Name: "ChainCuffs",
Property: {
SetPose: ["BackCuffs"],
Difficulty: 1,
OverridePriority: 29,
},
Expression: [{ Group: "Blush", Name: "Low", Timer: 5 }],
},
{
Name: "WristElbowTie",
BondageLevel: 2,
Property: {
Effect: [E.NotSelfPickable],
SetPose: ["BackElbowTouch"],
Difficulty: 2,
},
Expression: [{ Group: "Blush", Name: "Medium", Timer: 5 }],
},
{
Name: "WristElbowHarnessTie",
BondageLevel: 3,
Property: {
Effect: [E.NotSelfPickable],
SetPose: ["BackElbowTouch"],
Difficulty: 3,
},
Expression: [{ Group: "Blush", Name: "Medium", Timer: 5 }],
},
{
Name: "KneelingHogtie",
BondageLevel: 4,
Property: {
Effect: [E.Freeze, E.NotSelfPickable],
Block: ["ItemHands", "ItemLegs", "ItemFeet"],
AllowActivityOn: ["ItemHands", "ItemLegs", "ItemFeet"],
SetPose: ["Kneel", "BackElbowTouch"],
Difficulty: 3,
AllowActivePose: [...PoseAllKneeling],
},
Expression: [{ Group: "Blush", Name: "Medium", Timer: 10 }],
Random: false,
},
{
Name: "Hogtied",
BondageLevel: 4,
Property: {
Effect: [E.Freeze, E.NotSelfPickable],
Block: ["ItemHands", "ItemLegs", "ItemFeet"],
AllowActivityOn: ["ItemHands", "ItemLegs", "ItemFeet"],
SetPose: ["Hogtied"],
Difficulty: 3,
},
Expression: [{ Group: "Blush", Name: "Medium", Timer: 10 }],
Random: false,
},
{
Name: "AllFours",
BondageLevel: 6,
Property: {
Effect: [E.NotSelfPickable],
Block: ["ItemLegs", "ItemFeet"],
AllowActivityOn: ["ItemLegs", "ItemFeet"],
SetPose: ["AllFours"],
Difficulty: 3,
},
Expression: [{ Group: "Blush", Name: "Medium", Timer: 10 }],
Random: false,
},
{
Name: "SuspensionHogtied",
BondageLevel: 8,
Property: {
Effect: [E.Freeze, E.NotSelfPickable, E.Suspended],
Block: ["ItemHands", "ItemLegs", "ItemFeet", "ItemBoots"],
AllowActivityOn: ["ItemHands", "ItemLegs", "ItemFeet", "ItemBoots"],
SetPose: ["Hogtied"],
Difficulty: 6,
},
Expression: [{ Group: "Blush", Name: "Medium", Timer: 10 }],
Random: false,
HasSubscreen: true,
ArchetypeConfig: {
Archetype: ExtendedArchetype.VARIABLEHEIGHT,
MaxHeight: 0,
MinHeight: -575,
DrawData: {
elementData: [
{ position: [1140, 650, 100, 500], icon: "player" },
],
},
DialogPrefix: {
Chat: "SuspensionChange",
},
},
},
],
DialogPrefix: {
Header: "SelectChainBondage",
Option: "ChainBondage",
Chat: "ArmsChainSet",
Npc: "ChainBondage",
},
ChangeWhenLocked: false,
}, // Chains
HighSecurityStraitJacket: {
Archetype: ExtendedArchetype.MODULAR,
Modules: [
{
Name: "Crotch",
Key: "c",
Options: [
{}, // c0 - No crotch panel
{
// c1 - Crotch panel
Property: {
Difficulty: 1,
Block: [
"ItemPelvis",
"ItemVulva",
"ItemVulvaPiercings",
"ItemButt",
],
Hide: ["ItemVulvaPiercings", "Pussy"],
HideItem: ["ItemButtAnalBeads2"],
},
},
],
},
{
Name: "Arms",
Key: "a",
Options: [
{}, // a0 - Arms loose
{ Property: { Difficulty: 2 }, SelfBondageLevel: 8 }, // a1 - Arms in front
{ Property: { Difficulty: 3 }, SelfBondageLevel: 8 }, // a2 - Arms behind
],
},
{
Name: "Straps",
Key: "s",
Options: [
{}, // s0 - No crotch straps
{
// s1 - One crotch strap
Property: {
Difficulty: 1,
Block: [
"ItemPelvis",
"ItemVulva",
"ItemVulvaPiercings",
"ItemButt",
],
Hide: ["ItemVulvaPiercings", "Pussy"],
HideItem: ["ItemButtAnalBeads2"],
},
},
{
Property: {
Difficulty: 2,
Block: ["ItemPelvis"],
Hide: ["Pussy"],
},
}, // s2 - Two crotch straps
{
// s3 - Three crotch straps
Property: {
Difficulty: 2,
Block: [
"ItemPelvis",
"ItemVulva",
"ItemVulvaPiercings",
"ItemButt",
],
Hide: ["ItemVulvaPiercings", "Pussy"],
HideItem: ["ItemButtAnalBeads2"],
},
},
],
},
],
ChangeWhenLocked: false,
}, // HighSecurityStraitJacket
LatexButterflyLeotard: {
Archetype: ExtendedArchetype.TYPED,
Options: [
{
Name: "Unpolished",
},
{
Name: "Polished",
},
],
DialogPrefix: {
Header: "ItemArmsLatexLeotardSelect",
Option: "ItemArmsLatexLeotard",
Chat: "ItemArmsLatexLeotardSet",
},
}, // LatexButterflyLeotard
LatexBoxtieLeotard: {
Archetype: ExtendedArchetype.TYPED,
CopyConfig: { AssetName: "LatexButterflyLeotard" },
},
LatexSleevelessLeotard: {
Archetype: ExtendedArchetype.TYPED,
CopyConfig: { AssetName: "LatexButterflyLeotard" },
},
CeilingShackles: {
Archetype: ExtendedArchetype.TYPED,
ChatTags: [CommonChatTags.SOURCE_CHAR, CommonChatTags.TARGET_CHAR],
Options: [
{
Name: "HeadLevel",
Property: {
SetPose: ["Yoked"],
},
},
{
Name: "Overhead",
Property: {
SetPose: ["OverTheHead"],
},
},
],
DialogPrefix: {
Header: "SelectBondagePosition",
Chat: ({ C }) =>
`ItemArmsCeilingShacklesSet${
C.PoseMapping.BodyFull === "Suspension" ? "Suspension" : ""
}`,
},
}, // CeilingShackles
BitchSuit: {
Archetype: ExtendedArchetype.MODULAR,
ChatTags: [
CommonChatTags.SOURCE_CHAR,
CommonChatTags.DEST_CHAR,
CommonChatTags.ASSET_NAME,
],
Modules: [
{
Name: "Zipped",
Key: "z",
Options: [
{
// z0 - Zipped up
Property: {
Block: [
"ItemPelvis",
"ItemTorso",
"ItemTorso2",
"ItemHands",
"ItemHandheld",
"ItemBreast",
"ItemNipples",
"ItemNipplesPiercings",
"ItemVulva",
"ItemVulvaPiercings",
"ItemButt",
],
Hide: [
"ItemNipples",
"ItemNipplesPiercings",
"ItemBreast",
"ItemVulva",
"ItemVulvaPiercings",
"Suit",
"SuitLower",
],
},
},
{
// z1 - Unzipped
Property: {
Block: [
"ItemPelvis",
"ItemTorso",
"ItemTorso2",
"ItemHands",
"ItemHandheld",
],
},
},
{
// z2 - Seemless
Property: {
Block: [
"ItemPelvis",
"ItemTorso",
"ItemTorso2",
"ItemHands",
"ItemHandheld",
"ItemBreast",
"ItemNipples",
"ItemNipplesPiercings",
"ItemVulva",
"ItemVulvaPiercings",
"ItemButt",
],
Hide: [
"ItemNipples",
"ItemNipplesPiercings",
"ItemBreast",
"ItemVulva",
"ItemVulvaPiercings",
"Suit",
"SuitLower",
],
},
},
{
// z3 - Exposed
Property: {
Block: [
"ItemPelvis",
"ItemTorso",
"ItemTorso2",
"ItemHands",
"ItemHandheld",
],
},
},
],
},
{
Name: "Straps",
Key: "st",
Options: [{}, { Property: { Difficulty: 3 } }],
},
{
Name: "Clothes",
Key: "cl",
Options: [{ Property: { Hide: ["Cloth", "ClothLower"] } }, {}],
},
{
Name: "Underwear",
Key: "un",
Options: [
{
Property: {
Hide: ["Corset", "Garters", "Socks", "SocksLeft", "SocksRight"],
},
},
{
Property: {
OverridePriority: 14,
Hide: ["Suit", "SuitLower", "Socks", "SocksLeft", "SocksRight"],
},
},
{ Property: { OverridePriority: 14 } },
],
},
],
ChangeWhenLocked: false,
}, // BitchSuit
ShinyPetSuit: {
Archetype: ExtendedArchetype.TYPED,
ChatTags: [CommonChatTags.SOURCE_CHAR, CommonChatTags.DEST_CHAR],
Options: [
{
Name: "Exposed",
Property: {
Block: ["ItemLegs", "ItemFeet", "ItemHands", "ItemHandheld"],
},
},
{
Name: "Closed",
Property: {
Block: [
"ItemPelvis",
"ItemTorso",
"ItemTorso2",
"ItemLegs",
"ItemFeet",
"ItemHands",
"ItemHandheld",
"ItemBreast",
"ItemNipples",
"ItemNipplesPiercings",
"ItemVulva",
"ItemVulvaPiercings",
"ItemButt",
],
Hide: [
"Bra",
"Panties",
"ItemNipples",
"ItemNipplesPiercings",
"ItemBreast",
"Socks",
"Suit",
"SuitLower",
],
},
},
{
Name: "Open",
Property: {
Block: ["ItemLegs", "ItemFeet", "ItemHands", "ItemHandheld"],
},
},
{
Name: "Classic",
Property: {
Block: [
"ItemPelvis",
"ItemTorso",
"ItemTorso2",
"ItemLegs",
"ItemFeet",
"ItemHands",
"ItemHandheld",
"ItemBreast",
"ItemNipples",
"ItemNipplesPiercings",
"ItemVulva",
"ItemVulvaPiercings",
"ItemButt",
],
Hide: [
"Bra",
"Panties",
"ItemNipples",
"ItemNipplesPiercings",
"ItemBreast",
"Socks",
"Suit",
"SuitLower",
],
},
},
],
ChangeWhenLocked: false,
}, // ShinyPetSuit
ShinyStraitjacket: {
Archetype: ExtendedArchetype.TYPED,
ChatTags: [
CommonChatTags.SOURCE_CHAR,
CommonChatTags.DEST_CHAR,
CommonChatTags.ASSET_NAME,
],
Options: [
{
Name: "Crosstie",
},
{
Name: "Asylum",
Property: {
Block: [
"ItemPelvis",
"ItemTorso",
"ItemTorso2",
"ItemBreast",
"ItemNipples",
"ItemNipplesPiercings",
"ItemVulva",
"ItemVulvaPiercings",
"ItemButt",
],
Hide: [
"Bra",
"Panties",
"ItemNipples",
"ItemNipplesPiercings",
"ItemBreast",
],
},
},
{
Name: "Hardbinder",
Property: {
Block: [
"ItemPelvis",
"ItemTorso",
"ItemTorso2",
"ItemBreast",
"ItemNipples",
"ItemNipplesPiercings",
"ItemVulva",
"ItemVulvaPiercings",
"ItemButt",
],
Hide: [
"Bra",
"Panties",
"ItemNipples",
"ItemNipplesPiercings",
"ItemBreast",
],
},
},
{
Name: "Classic",
Property: {
Block: [
"ItemPelvis",
"ItemTorso",
"ItemTorso2",
"ItemBreast",
"ItemNipples",
"ItemNipplesPiercings",
"ItemVulva",
"ItemVulvaPiercings",
"ItemButt",
],
Hide: [
"Bra",
"Panties",
"ItemNipples",
"ItemNipplesPiercings",
"ItemBreast",
],
},
},
],
ChangeWhenLocked: false,
}, // ShinyStraitjacket
ShinyArmbinder: {
Archetype: ExtendedArchetype.TYPED,
ChatTags: [
CommonChatTags.SOURCE_CHAR,
CommonChatTags.DEST_CHAR,
CommonChatTags.ASSET_NAME,
],
Options: [
{
Name: "Armbinder",
},
{
Name: "Hard",
},
{
Name: "Reverse",
},
{
Name: "Xcross",
},
],
ChangeWhenLocked: false,
}, // ShinyArmbinder
LeatherArmbinder: {
Archetype: ExtendedArchetype.TYPED,
Options: [
{
Name: "None",
Property: { Difficulty: 0 },
},
{
Name: "Strap",
Property: { Difficulty: 3 },
},
{
Name: "WrapStrap",
Property: { Difficulty: 3 },
},
],
DialogPrefix: {
Header: "ItemArmsLeatherArmbinderSelect",
Option: "ItemArmsLeatherArmbinder",
Chat: "ItemArmsLeatherArmbinderSet",
},
}, // LeatherArmbinder
WristShackles: {
Archetype: ExtendedArchetype.TYPED,
Options: [
{
Name: "InFront",
},
{
Name: "Behind",
Property: {
SetPose: ["BackCuffs"],
Effect: [E.Block],
Difficulty: 3,
},
},
{
Name: "Overhead",
Property: {
SetPose: ["OverTheHead"],
Effect: [E.Block],
Difficulty: 3,
},
},
],
DialogPrefix: {
Header: "SelectBondagePosition",
},
}, // WristShackles
FuturisticCuffs: {
Archetype: ExtendedArchetype.TYPED,
Options: [
{
Name: "None",
Property: {
Difficulty: 0,
Effect: [],
SetPose: [],
SelfUnlock: true,
},
},
{
Name: "Wrist",
Property: {
Difficulty: 2,
Effect: [E.Block, E.BlockWardrobe],
SetPose: ["BackBoxTie"],
SelfUnlock: true,
},
},
{
Name: "Elbow",
Property: {
Difficulty: 4,
Effect: [E.Block, E.BlockWardrobe, E.NotSelfPickable],
SetPose: ["BackElbowTouch"],
SelfUnlock: false,
},
},
{
Name: "Both",
Property: {
Difficulty: 6,
Effect: [E.Block, E.BlockWardrobe, E.NotSelfPickable],
SetPose: ["BackElbowTouch"],
SelfUnlock: false,
},
},
],
DialogPrefix: {
Header: "SelectBondagePosition",
Option: "ItemArmsCuffs",
Chat: "FuturisticCuffsRestrain",
},
ScriptHooks: {
Load: FuturisticAccessLoad,
Click: FuturisticAccessClick,
Draw: FuturisticAccessDraw,
Exit: FuturisticAccessExit,
Validate: FuturisticAccessValidate,
},
}, // FuturisticCuffs
FuturisticArmbinder: {
Archetype: ExtendedArchetype.TYPED,
Options: [
{
Name: "Normal",
Property: { Difficulty: 0 },
},
{
Name: "Tight",
Property: { Difficulty: 7 },
},
],
DialogPrefix: {
Header: "SelectFuturisticArmbinderType",
Option: "FuturisticArmbinderType",
Chat: "FuturisticArmbinderSet",
},
ScriptHooks: {
Load: FuturisticAccessLoad,
Click: FuturisticAccessClick,
Draw: FuturisticAccessDraw,
Exit: FuturisticAccessExit,
Validate: FuturisticAccessValidate,
},
}, // FuturisticArmbinder
LeatherCuffs: {
Archetype: ExtendedArchetype.TYPED,
Options: [
{
Name: "None",
Property: {
Difficulty: 0,
Effect: [],
SetPose: [],
SelfUnlock: true,
},
},
{
Name: "Wrist",
Property: {
Difficulty: 2,
Effect: [E.Block, E.BlockWardrobe],
SetPose: ["BackBoxTie"],
SelfUnlock: true,
},
},
{
Name: "Elbow",
Property: {
Difficulty: 4,
Effect: [E.Block, E.BlockWardrobe, E.NotSelfPickable],
SetPose: ["BackElbowTouch"],
SelfUnlock: false,
},
},
{
Name: "Both",
Property: {
Difficulty: 6,
Effect: [E.Block, E.BlockWardrobe, E.NotSelfPickable],
SetPose: ["BackElbowTouch"],
SelfUnlock: false,
},
},
{
Name: "Hogtie",
Property: {
Difficulty: 6,
Effect: [E.Block, E.BlockWardrobe, E.Freeze, E.NotSelfPickable],
Block: ["ItemHands", "ItemLegs", "ItemFeet"],
AllowActivityOn: ["ItemHands", "ItemLegs", "ItemFeet"],
SetPose: ["Hogtied"],
SelfUnlock: false,
},
},
],
DialogPrefix: {
Header: "SelectBondagePosition",
Option: "ItemArmsCuffs",
},
}, // LeatherCuffs
LeatherDeluxeCuffs: {
Archetype: ExtendedArchetype.TYPED,
CopyConfig: { AssetName: "LeatherCuffs" },
}, // LeatherDeluxeCuffs
OrnateCuffs: {
Archetype: ExtendedArchetype.TYPED,
CopyConfig: { AssetName: "LeatherCuffs" },
}, // OrnateCuffs
HighStyleSteelCuffs: {
Archetype: ExtendedArchetype.TYPED,
CopyConfig: { AssetName: "SteelCuffs" },
}, // HighStyleSteelCuffs
SteelCuffs: {
Archetype: ExtendedArchetype.TYPED,
CopyConfig: { AssetName: "LeatherCuffs" },
Options: [
{
Name: "None",
},
{
Name: "Wrist",
Property: {
Effect: [E.Block, E.BlockWardrobe],
SetPose: ["BackBoxTie"],
},
},
],
}, // SteelCuffs
StraitJacket: {
Archetype: ExtendedArchetype.TYPED,
Options: [
{
Name: "Loose",
Property: {
Difficulty: 0,
},
},
{
Name: "Normal",
Property: {
Difficulty: 3,
},
},
{
Name: "Snug",
Property: {
Difficulty: 6,
},
},
{
Name: "Tight",
Property: {
Difficulty: 9,
},
},
],
DialogPrefix: {
Header: "ItemArmsStraitJacketSelect",
Option: "ItemArmsStraitJacket",
},
}, // StraitJacket
LeatherStraitJacket: {
Archetype: ExtendedArchetype.TYPED,
CopyConfig: { AssetName: "StraitJacket" },
}, // LeatherStraitJacket
CollarCuffs: {
Archetype: ExtendedArchetype.TYPED,
Options: [
{
Name: "Loose",
Property: {
Difficulty: 0,
},
},
{
Name: "Normal",
Property: {
Difficulty: 3,
},
},
{
Name: "Snug",
Property: {
Difficulty: 6,
},
},
{
Name: "Tight",
Property: {
Difficulty: 9,
},
},
],
DrawImages: false,
}, // CollarCuffs
DuctTape: {
Archetype: ExtendedArchetype.TYPED,
Options: [
{
Name: "Arms",
Property: { Difficulty: 1 },
},
{
Name: "Bottom",
SelfBondageLevel: 4,
Prerequisite: ["NoOuterClothes"],
Property: {
SetPose: ["BackElbowTouch"],
Block: [
"ItemVulva",
"ItemButt",
"ItemPelvis",
"ItemVulvaPiercings",
],
HideItem: [
"PantiesPoofyDiaper",
"PantiesBulkyDiaper",
"ItemPelvisPoofyDiaper",
"ItemPelvisBulkyDiaper",
],
Difficulty: 2,
},
},
{
Name: "Top",
SelfBondageLevel: 6,
Prerequisite: ["NoOuterClothes"],
Property: {
SetPose: ["BackElbowTouch"],
Block: [
"ItemTorso",
"ItemBreast",
"ItemNipples",
"ItemNipplesPiercings",
],
Difficulty: 4,
},
},
{
Name: "Full",
SelfBondageLevel: 8,
Prerequisite: ["NoOuterClothes"],
Property: {
SetPose: ["BackElbowTouch"],
Block: [
"ItemVulva",
"ItemButt",
"ItemPelvis",
"ItemTorso",
"ItemBreast",
"ItemNipples",
"ItemVulvaPiercings",
"ItemNipplesPiercings",
],
HideItem: [
"PantiesPoofyDiaper",
"PantiesBulkyDiaper",
"ItemPelvisPoofyDiaper",
"ItemPelvisBulkyDiaper",
],
Difficulty: 6,
},
},
{
Name: "Complete",
SelfBondageLevel: 10,
Prerequisite: ["NoOuterClothes"],
Property: {
SetPose: ["BackElbowTouch"],
Block: [
"ItemVulva",
"ItemButt",
"ItemPelvis",
"ItemTorso",
"ItemBreast",
"ItemNipples",
"ItemVulvaPiercings",
"ItemNipplesPiercings",
],
HideItem: [
"PantiesPoofyDiaper",
"PantiesBulkyDiaper",
"ItemPelvisPoofyDiaper",
"ItemPelvisBulkyDiaper",
],
Difficulty: 7,
},
},
{
Name: "ExposedComplete",
SelfBondageLevel: 10,
Prerequisite: ["NoOuterClothes"],
Property: {
SetPose: ["BackElbowTouch"],
Block: [
"ItemVulva",
"ItemButt",
"ItemPelvis",
"ItemTorso",
"ItemVulvaPiercings",
"ItemBreast",
],
HideItem: [
"PantiesPoofyDiaper",
"PantiesBulkyDiaper",
"ItemPelvisPoofyDiaper",
"ItemPelvisBulkyDiaper",
],
Difficulty: 7,
},
},
{
Name: "PetTape",
SelfBondageLevel: 10,
Property: {
SetPose: ["BackElbowTouch"],
AllowActivePose: ["AllFours"],
Block: ["ItemHands"],
HideItem: ["ClothAccessoryPoncho"],
Difficulty: 7,
},
},
],
DialogPrefix: {
Header: "SelectTapeWrapping",
},
ChatTags: [
CommonChatTags.SOURCE_CHAR,
CommonChatTags.TARGET_CHAR,
CommonChatTags.DEST_CHAR,
],
}, // DuctTape
Zipties: {
Archetype: ExtendedArchetype.TYPED,
Options: [
{
Name: "ZipLight",
Property: {
SetPose: ["BackElbowTouch"],
Difficulty: 1,
},
},
{
Name: "ZipMedium",
Property: {
SetPose: ["BackElbowTouch"],
Difficulty: 2,
},
Expression: [{ Group: "Blush", Name: "Low", Timer: 5 }],
},
{
Name: "ZipFull",
Property: {
SetPose: ["BackElbowTouch"],
Difficulty: 3,
},
Expression: [{ Group: "Blush", Name: "Low", Timer: 5 }],
},
{
Name: "ZipElbowWrist",
Property: {
SetPose: ["BackElbowTouch"],
Difficulty: 1,
},
Expression: [{ Group: "Blush", Name: "Medium", Timer: 5 }],
},
{
Name: "ZipWristLight",
Property: {
SetPose: ["BackBoxTie"],
Difficulty: 3,
},
Expression: [{ Group: "Blush", Name: "Medium", Timer: 5 }],
},
{
Name: "ZipWristMedium",
Property: {
SetPose: ["BackBoxTie"],
Difficulty: 3,
},
Expression: [{ Group: "Blush", Name: "Medium", Timer: 5 }],
},
{
Name: "ZipWristFull",
Property: {
SetPose: ["BackBoxTie"],
Difficulty: 3,
},
Expression: [{ Group: "Blush", Name: "Medium", Timer: 5 }],
},
{
Name: "ZipWrist",
Property: {
SetPose: ["BackBoxTie"],
Difficulty: 1,
},
Expression: [{ Group: "Blush", Name: "Medium", Timer: 5 }],
},
{
Name: "ZipKneelingHogtie",
Property: {
Effect: [E.Freeze],
Block: [
"ItemHands",
"ItemLegs",
"ItemFeet",
"ItemBoots",
"ItemDevices",
],
AllowActivityOn: ["ItemHands", "ItemLegs", "ItemFeet", "ItemBoots"],
SetPose: ["Kneel", "BackElbowTouch"],
Difficulty: 3,
},
Expression: [{ Group: "Blush", Name: "Medium", Timer: 10 }],
Random: false,
},
{
Name: "ZipHogtied",
Property: {
Effect: [E.Freeze],
Block: ["ItemHands", "ItemLegs", "ItemFeet"],
AllowActivityOn: ["ItemHands", "ItemLegs", "ItemFeet"],
SetPose: ["Hogtied"],
Difficulty: 3,
},
Expression: [{ Group: "Blush", Name: "Medium", Timer: 10 }],
Random: false,
},
{
Name: "ZipAllFours",
Property: {
Block: ["ItemLegs", "ItemFeet"],
AllowActivityOn: ["ItemLegs", "ItemFeet"],
SetPose: ["AllFours"],
Difficulty: 3,
},
Expression: [{ Group: "Blush", Name: "Medium", Timer: 10 }],
Random: false,
},
],
ChatTags: [CommonChatTags.SOURCE_CHAR, CommonChatTags.TARGET_CHAR],
DialogPrefix: {
Header: "SelectZipTie",
},
}, // Zipties
ThinLeatherStraps: {
Archetype: ExtendedArchetype.TYPED,
Options: [
{ Name: "Wrist", Property: { SetPose: ["BackBoxTie"] } },
{
Name: "Boxtie",
Property: { SetPose: ["BackBoxTie"], Difficulty: 4 },
NPCDefault: true,
},
{
Name: "WristElbow",
Property: { SetPose: ["BackElbowTouch"], Difficulty: 3 },
},
{
Name: "WristElbowHarness",
Property: { SetPose: ["BackElbowTouch"], Difficulty: 5 },
},
{
Name: "Hogtie",
Property: {
SetPose: ["Hogtied"],
Effect: [E.Freeze],
Difficulty: 6,
},
Random: false,
},
],
}, //ThinLeatherStraps
MermaidSuit: {
Archetype: ExtendedArchetype.TYPED,
Options: [
{
Name: "Zipped",
Property: {
Difficulty: 0,
Block: [
"ItemBreast",
"ItemNipples",
"ItemNipplesPiercings",
"ItemVulva",
"ItemVulvaPiercings",
"ItemButt",
],
},
},
{
Name: "UnZip",
Property: {
Block: [],
},
},
],
}, // MermaidSuit
TightJacket: {
Archetype: ExtendedArchetype.TYPED,
Options: [
{
Name: "Basic",
Property: {
Difficulty: 1,
},
},
{
Name: "PulledStraps",
Property: {
Difficulty: 1,
},
},
{
Name: "LiningStraps",
Property: {
Difficulty: 2,
},
},
{
Name: "ExtraPadding",
Property: {
Difficulty: 2,
},
},
{
Name: "PulledLining",
Property: {
Difficulty: 3,
},
},
{
Name: "PulledPadding",
Property: {
Difficulty: 3,
},
},
{
Name: "PaddedLining",
Property: {
Difficulty: 3,
},
},
{
Name: "FullJacket",
Property: {
Difficulty: 4,
},
},
],
DialogPrefix: {
Header: "ItemArmsTightJacketSelect",
Option: "ItemArmsTightJacket",
Chat: "ItemArmsTightJacketSet",
},
}, // TightJacket
TightJacketCrotch: {
Archetype: ExtendedArchetype.TYPED,
CopyConfig: { AssetName: "TightJacket" },
}, // TightJacketCrotch
WrappedBlanket: {
Archetype: ExtendedArchetype.TYPED,
ChatTags: [CommonChatTags.SOURCE_CHAR, CommonChatTags.TARGET_CHAR],
Options: [
{
Name: "NormalWrapped",
},
{
Name: "ShouldersWrapped",
},
{
Name: "FeetWrapped",
},
{
Name: "FullWrapped",
},
],
}, // WrappedBlanket
Ribbons: {
Archetype: ExtendedArchetype.TYPED,
Options: [
{
Name: "Cross",
Property: { Difficulty: 1 },
},
{
Name: "Heavy",
SelfBondageLevel: 4,
Property: { Difficulty: 2 },
},
],
DialogPrefix: {
Header: "SelectRibbonType",
},
}, // Ribbons
SturdyLeatherBelts: {
Archetype: ExtendedArchetype.TYPED,
ChatTags: [CommonChatTags.SOURCE_CHAR, CommonChatTags.TARGET_CHAR],
ChangeWhenLocked: false,
DialogPrefix: {
Header: "SturdyLeatherBeltsSelectTightness",
Option: "SturdyLeatherBeltsPose",
Chat: "SturdyLeatherBeltsRestrain",
},
Options: [
{
Name: "One",
},
{
Name: "Two",
Property: { Difficulty: 2 },
},
{
Name: "Three",
Property: { Difficulty: 4 },
},
],
}, // SturdyLeatherBelts
StraitLeotard: {
Archetype: ExtendedArchetype.MODULAR,
ChatTags: [CommonChatTags.DEST_CHAR_NAME, CommonChatTags.ASSET_NAME],
Modules: [
{
Name: "Cloth",
Key: "cl",
Options: [{ Property: { Hide: ["Cloth"] } }, {}],
},
{
Name: "Corset",
Key: "co",
Options: [{ Property: { Hide: ["Corset", "ItemTorso"] } }, {}],
},
{
Name: "NipplesPiercings",
Key: "np",
Options: [
{
Property: {
Hide: ["ItemNipplesPiercings", "ItemNipples", "ItemBreast"],
},
},
{},
],
},
{
Name: "VulvaPiercings",
Key: "vp",
Options: [
{
Property: {
Hide: ["ItemVulvaPiercings", "Panties", "ItemPelvis"],
},
},
{},
],
},
],
ChangeWhenLocked: false,
}, // StraitLeotard
FuturisticStraitjacket: {
Archetype: ExtendedArchetype.MODULAR,
Modules: [
{
Name: "Cloth",
Key: "cl",
Options: [{ Property: { Hide: ["Cloth"] } }, {}],
},
{
Name: "Corset",
Key: "co",
Options: [{ Property: { Hide: ["Corset", "ItemTorso"] } }, {}],
},
{
Name: "NipplesPiercings",
Key: "np",
Options: [
{
Property: {
Hide: ["ItemNipplesPiercings", "ItemNipples", "ItemBreast"],
},
},
{},
],
},
{
Name: "VulvaPiercings",
Key: "vp",
Options: [
{
Property: {
Hide: ["ItemVulvaPiercings", "Panties", "ItemPelvis"],
},
},
{},
],
},
{
Name: "Arms",
Key: "a",
Options: [
{}, // a0 - Arms front
{
// a1 - Arms behind
Property: {
Difficulty: 2,
},
},
],
},
],
ScriptHooks: {
Load: FuturisticAccessLoad,
Click: FuturisticAccessClick,
Draw: FuturisticAccessDraw,
Exit: FuturisticAccessExit,
Validate: FuturisticAccessValidate,
},
}, // FuturisticStraitjacket
Tentacles: {
Archetype: ExtendedArchetype.TYPED,
Options: [
{
Name: "BehindBack",
Property: {
SetPose: ["BackElbowTouch"],
},
},
{
Name: "OverTheHead",
Property: {
SetPose: ["OverTheHead"],
HideItem: [
"ClothAdmiralTop",
"ClothFurCoat",
"ClothStudentOutfit2",
"ClothSweater1",
"ClothTeacherOutfit1",
],
},
},
],
}, // Tentacles
NylonRope: {
Archetype: ExtendedArchetype.TYPED,
ChatTags: [
CommonChatTags.SOURCE_CHAR,
CommonChatTags.TARGET_CHAR,
CommonChatTags.DEST_CHAR,
],
Options: [
{
Name: "WristTie",
Property: { SetPose: ["BackBoxTie"], Difficulty: 1 },
Expression: [{ Group: "Blush", Name: "Low", Timer: 5 }],
},
{
Name: "BoxTie",
Property: { SetPose: ["BackBoxTie"], Difficulty: 1 },
NPCDefault: true,
},
{
Name: "WristElbowTie",
BondageLevel: 2,
Property: { SetPose: ["BackElbowTouch"], Difficulty: 2 },
Expression: [{ Group: "Blush", Name: "Medium", Timer: 5 }],
},
{
Name: "SimpleHogtie",
BondageLevel: 2,
Property: { SetPose: ["Hogtied"], Difficulty: 2 },
Expression: [{ Group: "Blush", Name: "Medium", Timer: 5 }],
Random: false,
},
{
Name: "TightBoxtie",
BondageLevel: 3,
Property: { SetPose: ["BackBoxTie"], Difficulty: 3 },
Expression: [{ Group: "Blush", Name: "Medium", Timer: 5 }],
},
{
Name: "WristElbowHarnessTie",
BondageLevel: 3,
Property: { SetPose: ["BackElbowTouch"], Difficulty: 3 },
Expression: [{ Group: "Blush", Name: "Medium", Timer: 5 }],
},
{
Name: "KneelingHogtie",
BondageLevel: 4,
Property: {
Effect: [E.Freeze],
Block: [
"ItemHands",
"ItemLegs",
"ItemFeet",
"ItemBoots",
"ItemDevices",
],
AllowActivityOn: ["ItemHands", "ItemLegs", "ItemFeet", "ItemBoots"],
SetPose: ["Kneel", "BackElbowTouch"],
Difficulty: 3,
AllowActivePose: [...PoseAllKneeling],
},
Expression: [{ Group: "Blush", Name: "Medium", Timer: 10 }],
Random: false,
},
{
Name: "Hogtied",
BondageLevel: 4,
Property: {
Effect: [E.Freeze],
Block: ["ItemHands", "ItemLegs", "ItemFeet"],
AllowActivityOn: ["ItemHands", "ItemLegs", "ItemFeet"],
SetPose: ["Hogtied"],
Difficulty: 3,
},
Expression: [{ Group: "Blush", Name: "Medium", Timer: 10 }],
Random: false,
},
{
Name: "AllFours",
BondageLevel: 6,
Property: {
Block: ["ItemLegs", "ItemFeet"],
AllowActivityOn: ["ItemLegs", "ItemFeet"],
SetPose: ["AllFours"],
Difficulty: 3,
},
Expression: [{ Group: "Blush", Name: "Medium", Timer: 10 }],
Random: false,
},
{
Name: "BedSpreadEagle",
BondageLevel: 1,
Prerequisite: ["OnBed"],
Property: {
Effect: [E.Freeze],
Block: ["ItemDevices"],
SetPose: ["Yoked"],
Difficulty: 5,
},
Expression: [{ Group: "Blush", Name: "Medium", Timer: 10 }],
Random: false,
},
],
DialogPrefix: {
Header: "SelectRopeBondage",
Option: "RopeBondage",
Chat: "ArmsRopeSet",
Npc: "RopeBondage",
},
}, // NylonRope
HempRope: {
Archetype: ExtendedArchetype.TYPED,
ChatTags: [
CommonChatTags.SOURCE_CHAR,
CommonChatTags.TARGET_CHAR,
CommonChatTags.DEST_CHAR,
],
Options: [
{
Name: "WristTie",
Property: { SetPose: ["BackBoxTie"], Difficulty: 1 },
Expression: [{ Group: "Blush", Name: "Low", Timer: 5 }],
},
{
Name: "BoxTie",
Property: { SetPose: ["BackBoxTie"], Difficulty: 1 },
NPCDefault: true,
},
{
Name: "CrossedBoxtie",
Property: { SetPose: ["BackBoxTie"], Difficulty: 1 },
Expression: [{ Group: "Blush", Name: "Low", Timer: 5 }],
},
{
Name: "RopeCuffs",
Property: {
SetPose: ["BackCuffs"],
Difficulty: 1,
OverridePriority: 29,
},
Expression: [{ Group: "Blush", Name: "Low", Timer: 5 }],
},
{
Name: "WristElbowTie",
BondageLevel: 2,
Property: { SetPose: ["BackElbowTouch"], Difficulty: 2 },
Expression: [{ Group: "Blush", Name: "Medium", Timer: 5 }],
},
{
Name: "SimpleHogtie",
BondageLevel: 2,
Property: { SetPose: ["Hogtied"], Difficulty: 2 },
Expression: [{ Group: "Blush", Name: "Medium", Timer: 5 }],
Random: false,
},
{
Name: "TightBoxtie",
BondageLevel: 3,
Property: { SetPose: ["BackBoxTie"], Difficulty: 3 },
Expression: [{ Group: "Blush", Name: "Medium", Timer: 5 }],
},
{
Name: "WristElbowHarnessTie",
BondageLevel: 3,
Property: { SetPose: ["BackElbowTouch"], Difficulty: 3 },
Expression: [{ Group: "Blush", Name: "Medium", Timer: 5 }],
},
{
Name: "KneelingHogtie",
BondageLevel: 4,
Property: {
Effect: [E.Freeze],
Block: ["ItemHands", "ItemLegs", "ItemFeet"],
AllowActivityOn: ["ItemHands", "ItemLegs", "ItemFeet"],
SetPose: ["Kneel", "BackElbowTouch"],
Difficulty: 3,
AllowActivePose: [...PoseAllKneeling],
},
Expression: [{ Group: "Blush", Name: "Medium", Timer: 10 }],
Random: false,
},
{
Name: "Hogtied",
BondageLevel: 4,
Property: {
Effect: [E.Freeze],
Block: ["ItemHands", "ItemLegs", "ItemFeet"],
AllowActivityOn: ["ItemHands", "ItemLegs", "ItemFeet"],
SetPose: ["Hogtied"],
Difficulty: 3,
},
Expression: [{ Group: "Blush", Name: "Medium", Timer: 10 }],
Random: false,
},
{
Name: "AllFours",
BondageLevel: 6,
Property: {
Block: ["ItemLegs", "ItemFeet"],
AllowActivityOn: ["ItemLegs", "ItemFeet"],
SetPose: ["AllFours"],
Difficulty: 3,
},
Expression: [{ Group: "Blush", Name: "Medium", Timer: 10 }],
Random: false,
},
{
Name: "BedSpreadEagle",
BondageLevel: 1,
Prerequisite: ["OnBed"],
Property: {
Effect: [E.Freeze],
Block: ["ItemDevices"],
SetPose: ["Yoked"],
Difficulty: 5,
},
Expression: [{ Group: "Blush", Name: "Medium", Timer: 10 }],
Random: false,
},
{
Name: "SuspensionKneelingHogtie",
BondageLevel: 6,
Property: {
Effect: [E.Freeze, E.Suspended],
Block: ["ItemHands", "ItemLegs", "ItemFeet", "ItemBoots"],
AllowActivityOn: ["ItemHands", "ItemLegs", "ItemFeet", "ItemBoots"],
SetPose: ["Kneel", "BackElbowTouch"],
AllowActivePose: [...PoseAllKneeling],
Difficulty: 6,
},
Expression: [{ Group: "Blush", Name: "Medium", Timer: 10 }],
Random: false,
HasSubscreen: true,
ArchetypeConfig: {
Archetype: ExtendedArchetype.VARIABLEHEIGHT,
MaxHeight: 0,
MinHeight: -250,
DrawData: {
elementData: [{ position: [1140, 650, 100, 500], icon: "rope" }],
},
DialogPrefix: {
Chat: "SuspensionChange",
},
},
},
{
Name: "SuspensionHogtied",
BondageLevel: 8,
Property: {
Effect: [E.Freeze, E.Suspended],
Block: ["ItemHands", "ItemLegs", "ItemFeet"],
AllowActivityOn: ["ItemHands", "ItemLegs", "ItemFeet"],
SetPose: ["Hogtied"],
Difficulty: 6,
},
Expression: [{ Group: "Blush", Name: "Medium", Timer: 10 }],
Random: false,
HasSubscreen: true,
ArchetypeConfig: {
Archetype: ExtendedArchetype.VARIABLEHEIGHT,
MaxHeight: 0,
MinHeight: -575,
DrawData: {
elementData: [{ position: [1140, 650, 100, 500], icon: "rope" }],
},
DialogPrefix: {
Chat: "SuspensionChange",
},
},
},
{
Name: "SuspensionAllFours",
BondageLevel: 8,
Property: {
Effect: [E.Freeze, E.Suspended],
Block: ["ItemLegs", "ItemFeet", "ItemDevices"],
AllowActivityOn: ["ItemLegs", "ItemFeet"],
SetPose: ["AllFours"],
Difficulty: 6,
},
Expression: [{ Group: "Blush", Name: "Medium", Timer: 10 }],
Random: false,
HasSubscreen: true,
ArchetypeConfig: {
Archetype: ExtendedArchetype.VARIABLEHEIGHT,
MaxHeight: 0,
MinHeight: -560,
DrawData: {
elementData: [{ position: [1140, 650, 100, 500], icon: "rope" }],
},
DialogPrefix: {
Chat: "SuspensionChange",
},
},
},
{
Name: "InvertedSuspensionHogtied",
BondageLevel: 8,
Property: {
Effect: [E.Freeze, E.Suspended],
Block: ["ItemHands", "ItemLegs", "ItemFeet", "ItemBoots"],
AllowActivityOn: ["ItemHands", "ItemLegs", "ItemFeet", "ItemBoots"],
SetPose: ["Hogtied", "Suspension"],
Difficulty: 6,
},
Expression: [{ Group: "Blush", Name: "Medium", Timer: 10 }],
Random: false,
HasSubscreen: true,
ArchetypeConfig: {
Archetype: ExtendedArchetype.VARIABLEHEIGHT,
MaxHeight: -50,
MinHeight: -600,
DrawData: {
elementData: [{ position: [1140, 650, 100, 500], icon: "rope" }],
},
DialogPrefix: {
Chat: "SuspensionChange",
},
},
},
{
Name: "InvertedSuspensionAllFours",
BondageLevel: 8,
Property: {
Effect: [E.Freeze, E.Suspended],
Block: ["ItemLegs", "ItemFeet", "ItemBoots", "ItemDevices"],
AllowActivityOn: ["ItemLegs", "ItemFeet", "ItemBoots"],
SetPose: ["AllFours", "Suspension"],
Difficulty: 6,
},
Expression: [{ Group: "Blush", Name: "Medium", Timer: 10 }],
Random: false,
HasSubscreen: true,
ArchetypeConfig: {
Archetype: ExtendedArchetype.VARIABLEHEIGHT,
MaxHeight: 0,
MinHeight: -560,
DrawData: {
elementData: [{ position: [1140, 650, 100, 500], icon: "rope" }],
},
DialogPrefix: {
Chat: "SuspensionChange",
},
},
},
],
DialogPrefix: {
Header: "SelectRopeBondage",
Option: "RopeBondage",
Chat: "ArmsRopeSet",
Npc: "RopeBondage",
},
},
Slime: {
Archetype: ExtendedArchetype.MODULAR,
Modules: [
{
Name: "Position",
Key: "p",
Options: [
{}, // p0 - Arms behind back
{ Property: { Difficulty: 2, SetPose: ["Hogtied"] } }, // p1 - Hogtied
],
},
{
Name: "Type",
Key: "t",
Options: [
{}, // t0 - Normal slime
{ Property: { Difficulty: 3 } }, // t1 - Slime girl
],
},
],
ChatTags: [CommonChatTags.DEST_CHAR, CommonChatTags.TARGET_CHAR],
},
WoodenCuffs: {
Archetype: ExtendedArchetype.TYPED,
Options: [
{
Name: "HandsFront",
Property: {
Difficulty: 2,
SetPose: ["BaseUpper"],
SelfUnlock: true,
},
},
{
Name: "HandsBack",
Property: {
Difficulty: 3,
SetPose: ["BackCuffs"],
SelfUnlock: false,
},
},
{
Name: "HandsHead",
Property: {
Difficulty: 4,
Effect: [E.NotSelfPickable],
SetPose: ["Yoked"],
SelfUnlock: false,
},
},
{
Name: "Hogtied",
Property: {
Difficulty: 5,
Effect: [E.Freeze, E.NotSelfPickable],
SetPose: ["Hogtied"],
Block: ["ItemHands", "ItemLegs", "ItemFeet"],
AllowActivityOn: ["ItemHands", "ItemLegs", "ItemFeet"],
SelfUnlock: false,
},
Expression: [{ Group: "Blush", Name: "Medium", Timer: 5 }],
},
],
DialogPrefix: {
Header: "SelectBondagePosition",
Option: "ItemArmsWoodenCuffs",
},
}, // WoodenCuffs
FullLatexSuit: {
Archetype: ExtendedArchetype.TYPED,
Options: [
{
Name: "Latex",
Property: {
Block: [
"ItemBreast",
"ItemNipples",
"ItemNipplesPiercings",
"ItemVulva",
"ItemVulvaPiercings",
"ItemButt",
],
},
},
{
Name: "UnZip",
},
],
DrawData: {
elementData: [
{ position: ExtendedXY[6][0] },
{ position: ExtendedXY[6][2] },
],
},
ScriptHooks: {
Draw: InventoryItemArmsFullLatexSuitDrawHook,
Click: InventoryItemArmsFullLatexSuitClickHook,
},
}, // FullLatexSuit
PrisonLockdownSuit: {
Archetype: ExtendedArchetype.MODULAR,
Modules: [
{
Name: "Restraints",
Key: "r",
Options: [
{
Property: {
Difficulty: 0,
},
}, // r0 - Free
{
Property: {
Difficulty: 2,
},
}, // r1 - Ankles
{
Property: {
Difficulty: 1,
},
}, // r2 - Thighs
{
Property: {
Difficulty: 3,
Effect: [E.Freeze],
},
}, // r3 - Full
],
},
{
Name: "ShockModule",
Key: "s",
DrawImages: false,
Options: [
{ Property: { ShockLevel: 0 } },
{ Property: { ShockLevel: 1 } },
{ Property: { ShockLevel: 2 } },
],
},
],
DrawData: {
elementData: [
{}, // Restraints
{
imagePath:
"Screens/Inventory/ItemArms/PrisonLockdownSuit/ShockModule.png",
}, // ShockModule
],
},
BaselineProperty: { TriggerCount: 0, ShowText: true },
ScriptHooks: {
Click: InventoryItemArmsPrisonLockdownSuitClickHook,
Draw: InventoryItemArmsPrisonLockdownSuitDrawHook,
},
DrawImages: true,
}, // PrisonLockdownSuit
SmoothLeatherArmbinder1: {
Archetype: ExtendedArchetype.MODULAR,
Modules: [
{
Name: "BinderPosition",
Key: "b",
Options: [
{}, // b0 Left
{}, // b1 Back
{}, // b2 Right
],
},
{
Name: "ShoulderStraps",
Key: "s",
Options: [
{}, // s0 No Straps
{
Property: {
Difficulty: 20,
},
}, // s1 Basic Shoulder Straps
{
Property: {
Difficulty: 30,
},
}, // s2 Wrapping Shoulder Straps
{
Property: {
Difficulty: 40,
},
}, // s3 Harness Shoulder Straps
],
AllowSelfSelect: false,
},
],
}, // SmoothLeatherArmbinder1
TransportJacket: {
Archetype: ExtendedArchetype.TYPED,
ChatTags: [
CommonChatTags.SOURCE_CHAR,
CommonChatTags.DEST_CHAR,
CommonChatTags.DEST_CHAR_NAME,
CommonChatTags.ASSET_NAME,
],
Options: [
{
Name: "NoShorts",
Property: { Difficulty: 0 },
},
{
Name: "Shorts",
Property: {
Block: ["ItemVulva", "ItemVulvaPiercings", "ItemButt"],
Hide: [
"ItemVulva",
"ItemVulvaPiercings",
"ItemButt",
"Panties",
"Corset",
],
},
},
{
Name: "ShortsAndStraps",
Property: {
Block: ["ItemVulva", "ItemVulvaPiercings", "ItemButt"],
Hide: [
"ItemVulva",
"ItemVulvaPiercings",
"ItemButt",
"Panties",
"Corset",
],
},
},
],
BaselineProperty: { Text: "" },
ChatSetting: TypedItemChatSetting.FROM_TO,
ScriptHooks: {
Load: InventoryItemArmsTransportJacketLoadHook,
Draw: InventoryItemArmsTransportJacketDrawHook,
Exit: InventoryItemArmsTransportJacketExitHook,
PublishAction: InventoryItemArmsTransportJacketPublishActionHook,
},
}, // TransportJacket
PrisonSJ: {
Archetype: ExtendedArchetype.MODULAR,
ChangeWhenLocked: false,
Modules: [
{
Name: "Stripes",
Key: "p",
Options: [
{
// p0 - No Stripes
Property: { Effect: [] },
},
{
// p1 - Prison Stripes
Property: { Effect: [] },
},
{
// p2 - Sides
Property: { Effect: [] },
},
],
},
{
Name: "Zipper",
Key: "c",
Options: [
{
// c0 - closed
Property: {
Effect: [E.Chaste],
Block: ["ItemVulva", "ItemVulvaPiercings"],
},
},
{
// c1 - Exposed
Property: {
Effect: [],
Block: [],
},
},
],
},
],
}, //PrisonSJ
}, // ItemArms
ItemNeck: {
ShinySteelCollar: {
Archetype: ExtendedArchetype.TYPED,
Options: [{ Name: "NoRing" }, { Name: "Ring" }],
DrawImages: false,
}, // ShinySteelCollar
TechnoCollar: {
Archetype: ExtendedArchetype.MODULAR,
Modules: [
{
Name: "CollarType",
Key: "c",
Options: [
{}, // c0 Slender Collar
{
Property: {
Difficulty: 65,
},
}, //c1 Choker Collar
{
Property: {
Difficulty: 70,
},
}, //c2 Full Collar
{
Property: {
Difficulty: 75,
},
}, //c3 Posture Collar
{
Property: {
Difficulty: 80,
},
}, //c4 Strict Posture Collar
],
},
{
Name: "ShockModule",
Key: "s",
DrawImages: false,
Options: [
{ Property: { ShockLevel: 0 } },
{ Property: { ShockLevel: 1 } },
{ Property: { ShockLevel: 2 } },
],
},
],
DrawData: {
elementData: [
{}, // CollarType
{
imagePath:
"Screens/Inventory/ItemArms/PrisonLockdownSuit/ShockModule.png",
}, // ShockModule
],
},
BaselineProperty: { TriggerCount: 0, ShowText: true },
ScriptHooks: {
Click: InventoryItemArmsPrisonLockdownSuitClickHook,
Draw: InventoryItemArmsPrisonLockdownSuitDrawHook,
},
DrawImages: true,
}, //TechnoCollar
ComboHarness: {
Archetype: ExtendedArchetype.TYPED,
CopyConfig: { AssetName: "BallGag", GroupName: "ItemMouth" },
}, // ComboHarness
BonedNeckCorset: {
Archetype: ExtendedArchetype.TYPED,
Options: [{ Name: "NoRing" }, { Name: "Ring" }],
}, // BonedNeckCorset
ShockCollar: {
Archetype: ExtendedArchetype.TYPED,
CopyConfig: {
GroupName: "ItemNeckAccessories",
AssetName: "CollarShockUnit",
},
DialogPrefix: {
Header: "ItemNeckAccessoriesCollarShockUnitSelect",
Option: "ItemNeckAccessoriesCollarShockUnit",
Chat: "ItemNeckAccessoriesCollarShockUnitSet",
Npc: "ItemNeckAccessoriesCollarShockUnit",
},
}, // ShockCollar
AutoShockCollar: {
Archetype: ExtendedArchetype.MODULAR,
CopyConfig: {
GroupName: "ItemNeckAccessories",
AssetName: "CollarAutoShockUnit",
},
DialogPrefix: {
Header: "ItemNeckAccessoriesCollarAutoShockUnitSelect",
Module: "ItemNeckAccessoriesCollarAutoShockUnitModule",
Option: "ItemNeckAccessoriesCollarAutoShockUnitOption",
Chat: "ItemNeckAccessoriesCollarAutoShockUnitSet",
},
}, // AutoShockCollar
PetSuitShockCollar: {
Archetype: ExtendedArchetype.MODULAR,
ChatTags: [
CommonChatTags.SOURCE_CHAR,
CommonChatTags.DEST_CHAR,
CommonChatTags.ASSET_NAME,
],
DrawImages: false,
Modules: [
{
DrawImages: false,
Name: "ShockModule",
Key: "s",
Options: [
{}, // 0 - disabled
{
HasSubscreen: true,
ArchetypeConfig: {
Archetype: ExtendedArchetype.NOARCH,
ScriptHooks: {
Draw: InventoryItemNeckPetSuitShockCollars1DrawHook,
Click: InventoryItemNeckPetSuitShockCollars1ClickHook,
},
DialogPrefix: {
Header: "ShockLevel",
},
},
}, // 1 - enabled
],
},
],
ChangeWhenLocked: false,
BaselineProperty: {
TriggerCount: 0,
ShowText: true,
BlinkState: false,
ShockLevel: 0,
PunishActivity: false,
PunishStandup: false,
PunishStruggle: false,
},
}, // PetSuitShockCollar
ExtendablePostureCollar: {
Archetype: ExtendedArchetype.MODULAR,
DrawImages: false,
Modules: [
{
Name: "Style",
Key: "s",
Options: [
{}, // s0 - Black
{}, // s1 - Micro
],
},
{
Name: "Hood",
Key: "h",
DrawData: {
elementData: [
{ position: [1375, 450, 250, 58] },
{ position: [1248, 532, 250, 58] },
{ position: [1522, 532, 250, 58] },
{ position: [1248, 610, 250, 58] },
{ position: [1522, 610, 250, 58] },
{ position: [1248, 688, 250, 58] },
{ position: [1522, 688, 250, 58] },
{ position: [1248, 766, 250, 58] },
{ position: [1522, 766, 250, 58] },
{ position: [1248, 844, 250, 58] },
{ position: [1522, 844, 250, 58] },
],
itemsPerPage: 11,
},
Options: [
{}, // h0 - None
{}, // h1 - Normal
{
Property: {
Hide: ["HairFront", "HairBack"],
},
}, // h2 - Normal (no hair)
{}, // h3 - Round
{
Property: {
Hide: ["HairFront", "HairBack"],
},
}, // h4 - Round (no hair)
{}, // h5 - Small
{
Property: {
Hide: ["HairFront", "HairBack"],
},
}, // h6 - Small (no hair)
{}, // h7 - Wide
{
Property: {
Hide: ["HairFront", "HairBack"],
},
}, // h8 - Wide (no hair)
{
Property: {
Tint: [{ Color: 0x000, Strength: 0.1 }],
},
}, // h9 - Grided
{
Property: {
Hide: ["HairFront", "HairBack"],
Tint: [{ Color: 0x000, Strength: 0.1 }],
},
}, // h10 - Grided (no hair)
],
},
{
Name: "Gag",
Key: "g",
Options: [
{}, // g0 - None
{}, // g1 - Panel
{
Property: {
Effect: [E.GagMedium],
},
}, // g2 - Ballgag
],
},
{
Name: "Cover",
Key: "c",
Options: [
{}, // c0 - None
{}, // c1 - Low
{
Property: {
Effect: ["BlindLight"],
},
}, // c2 - Med
{
Property: {
Effect: ["BlindHeavy"],
},
}, // c3 - High
{
Property: {
Effect: ["BlindTotal"],
},
}, // c4 - Full
],
},
],
},
FuturisticCollar: {
Archetype: ExtendedArchetype.NOARCH,
ScriptHooks: {
Load: InventoryItemNeckFuturisticCollarLoadHook,
Draw: InventoryItemNeckFuturisticCollarDrawHook,
Click: InventoryItemNeckFuturisticCollarClickHook,
Exit: InventoryItemNeckFuturisticCollarExitHook,
Validate: FuturisticAccessValidate,
},
BaselineProperty: {
OpenPermission: false,
OpenPermissionChastity: false,
OpenPermissionArm: false,
OpenPermissionLeg: false,
BlockRemotes: false,
},
AllowEffect: [
E.BlockRemotes,
E.OpenPermission,
E.OpenPermissionArm,
E.OpenPermissionLeg,
E.OpenPermissionChastity,
],
}, // FuturisticCollar
SlaveCollar: {
Archetype: ExtendedArchetype.NOARCH,
DialogPrefix: {
Header: "SlaveCollarSelectType",
},
ScriptHooks: {
Load: InventoryItemNeckSlaveCollarLoadHook,
Draw: InventoryItemNeckSlaveCollarDrawHook,
Click: InventoryItemNeckSlaveCollarClickHook,
},
BaselineProperty: {
TypeRecord: { noarch: 0 },
},
AllowEffect: [E.GagNormal, E.FixedHead],
}, // SlaveCollar
}, // ItemNeck
ItemNeckAccessories: {
CustomCollarTag: {
Archetype: ExtendedArchetype.MODULAR,
ChatSetting: ModularItemChatSetting.PER_MODULE,
Modules: [
{
Name: "Tag",
Key: "t",
Options: [{}, {}, {}, {}, {}, {}],
},
{
Name: "Txt",
Key: "x",
Options: [
{
HasSubscreen: true,
ArchetypeConfig: {
Archetype: ExtendedArchetype.TEXT,
MaxLength: { Text: 9 },
Font: "sans-serif",
ScriptHooks: {
AfterDraw:
AssetsItemNeckAccessoriesCustomCollarTagAfterDrawHook,
},
},
},
],
},
],
ChangeWhenLocked: false,
BaselineProperty: { Text: "Tag" },
}, // CustomCollarTag
CollarNameTag: {
Archetype: ExtendedArchetype.TYPED,
Options: [
{ Name: "Blank" },
{ Name: "Angel" },
{ Name: "BadGirl" },
{ Name: "BindMe" },
{ Name: "Bitch" },
{ Name: "Boobs" },
{ Name: "Cupcake" },
{ Name: "Devil" },
{ Name: "Dom" },
{ Name: "Free" },
{ Name: "FuckMe" },
{ Name: "GagMe" },
{ Name: "Goddess" },
{ Name: "GoodGirl" },
{ Name: "HoldMe" },
{ Name: "Jewel" },
{ Name: "Love" },
{ Name: "Maid" },
{ Name: "Meat" },
{ Name: "Miss" },
{ Name: "Mummy" },
{ Name: "Nice" },
{ Name: "Needy" },
{ Name: "Owned" },
{ Name: "Precious" },
{ Name: "Pudding" },
{ Name: "Queen" },
{ Name: "Slave" },
{ Name: "Slut" },
{ Name: "Sub" },
{ Name: "Sweetie" },
{ Name: "Taken" },
{ Name: "Toy" },
{ Name: "Useless" },
{ Name: "UseMe" },
{ Name: "Whore" },
],
DrawData: InventoryItemNeckAccessoriesCollarNameTagGetDrawData(36),
ScriptHooks: {
PublishAction:
InventoryItemNeckAccessoriesCollarNameTagPublishActionHook,
},
DrawImages: false,
ChangeWhenLocked: false,
ChatSetting: TypedItemChatSetting.SILENT,
}, // CollarNameTag
CollarNameTagOval: {
Archetype: ExtendedArchetype.TYPED,
CopyConfig: {
GroupName: "ItemNeckAccessories",
AssetName: "CollarNameTag",
},
Options: [
{ Name: "Blank" },
{ Name: "AnalSlut" },
{ Name: "Babe" },
{ Name: "Bandit" },
{ Name: "Bimbo" },
{ Name: "Bratty" },
{ Name: "ButtSlut" },
{ Name: "Chair" },
{ Name: "Chaste" },
{ Name: "Crazy" },
{ Name: "Cumslut" },
{ Name: "Cutie" },
{ Name: "Damsel" },
{ Name: "Doll" },
{ Name: "EdgeMe" },
{ Name: "Evil" },
{ Name: "ForSale" },
{ Name: "Greedy" },
{ Name: "Happy" },
{ Name: "Horny" },
{ Name: "Kinky" },
{ Name: "Lady" },
{ Name: "LockMe" },
{ Name: "Nude" },
{ Name: "Nurse" },
{ Name: "Nympho" },
{ Name: "Painslut" },
{ Name: "Pillow" },
{ Name: "Punish" },
{ Name: "Robber" },
{ Name: "Sad" },
{ Name: "Switch" },
{ Name: "Table" },
{ Name: "Ticklish" },
{ Name: "Undress" },
{ Name: "Victim" },
{ Name: "Violent" },
{ Name: "Worm" },
],
DrawData: InventoryItemNeckAccessoriesCollarNameTagGetDrawData(38),
}, // CollarNameTagOval
CollarNameTagPet: {
Archetype: ExtendedArchetype.TYPED,
CopyConfig: {
GroupName: "ItemNeckAccessories",
AssetName: "CollarNameTag",
},
Options: [
{ Name: "Blank" },
{ Name: "Bunny" },
{ Name: "Cat" },
{ Name: "Dog" },
{ Name: "Foxy" },
{ Name: "Kitten" },
{ Name: "Kitty" },
{ Name: "Mochi" },
{ Name: "Panda" },
{ Name: "Pet" },
{ Name: "PetMe" },
{ Name: "Pixie" },
{ Name: "Pony" },
{ Name: "Puppy" },
{ Name: "Racoon" },
{ Name: "Sloth" },
{ Name: "Mummy" },
],
DrawData: InventoryItemNeckAccessoriesCollarNameTagGetDrawData(17),
}, // CollarNameTagPet
CollarNameTagLover: {
Archetype: ExtendedArchetype.TYPED,
CopyConfig: {
GroupName: "ItemNeckAccessories",
AssetName: "CollarNameTag",
},
Options: [
{ Name: "Blank" },
{ Name: "Cookie" },
{ Name: "Feather" },
{ Name: "Lover" },
{ Name: "Muffin" },
],
DrawData: InventoryItemNeckAccessoriesCollarNameTagGetDrawData(5),
}, // CollarNameTagLover
CollarNameTagLivestock: {
Archetype: ExtendedArchetype.TYPED,
CopyConfig: {
GroupName: "ItemNeckAccessories",
AssetName: "CollarNameTag",
},
Options: [
{ Name: "Blank" },
{ Name: "Animal" },
{ Name: "BreedMe" },
{ Name: "Cow" },
{ Name: "Meat" },
{ Name: "MilkMe" },
{ Name: "Pig" },
],
DrawData: InventoryItemNeckAccessoriesCollarNameTagGetDrawData(7),
}, // CollarNameTagLivestock
CollarShockUnit: {
Archetype: ExtendedArchetype.TYPED,
ChatTags: [
CommonChatTags.ASSET_NAME,
CommonChatTags.SOURCE_CHAR,
CommonChatTags.DEST_CHAR,
],
Options: [
{ Name: "Low", Property: { ShockLevel: 0 } },
{ Name: "Medium", Property: { ShockLevel: 1 } },
{ Name: "High", Property: { ShockLevel: 2 } },
],
ScriptHooks: {
Draw: InventoryItemNeckAccessoriesCollarShockUnitDrawHook,
Click: InventoryItemNeckAccessoriesCollarShockUnitClickHook,
BeforeDraw: AssetsItemNeckAccessoriesCollarShockUnitBeforeDrawHook,
ScriptDraw: AssetsItemNeckAccessoriesCollarShockUnitScriptDrawHook,
},
DrawImages: false,
BaselineProperty: { TriggerCount: 0, ShowText: true, BlinkState: false },
}, // CollarShockUnit
CollarAutoShockUnit: {
Archetype: ExtendedArchetype.MODULAR,
ChatTags: [
CommonChatTags.ASSET_NAME,
CommonChatTags.SOURCE_CHAR,
CommonChatTags.DEST_CHAR,
],
Modules: [
{
Name: "ShockLevel",
Key: "s",
DrawImages: false,
Options: [
{ Property: { ShockLevel: 0 } }, // s0 - Level 1
{ Property: { ShockLevel: 1 } }, // s1 - Level 2
{ Property: { ShockLevel: 2 } }, // s2 - Level 3
],
},
{
Name: "AutoPunish",
Key: "y",
DrawImages: false,
Options: [
{ Property: { AutoPunish: 0 } }, // y0 - Off
{ Property: { AutoPunish: 1 } }, // y1 - Low
{ Property: { AutoPunish: 2 } }, // y2 - Medium
{ Property: { AutoPunish: 3 } }, // y3 - High
],
},
],
ScriptHooks: {
Draw: InventoryItemNeckAccessoriesCollarAutoShockUnitDrawHook,
Click: InventoryItemNeckAccessoriesCollarAutoShockUnitClickHook,
BeforeDraw: AssetsItemNeckAccessoriesCollarAutoShockUnitBeforeDrawHook,
ScriptDraw: AssetsItemNeckAccessoriesCollarAutoShockUnitScriptDrawHook,
},
BaselineProperty: { TriggerCount: 0, ShowText: true, BlinkState: false },
}, // CollarAutoShockUnit
ElectronicTag: {
Archetype: ExtendedArchetype.TEXT,
MaxLength: { Text: 9 },
Font: "sansserif",
ScriptHooks: {
AfterDraw: AssetsItemNeckAccessoriesElectronicTagAfterDrawHook,
},
}, // ElectronicTag
}, // ItemNeckAccessories
ItemNeckRestraints: {
PetPost: {
Archetype: ExtendedArchetype.MODULAR,
Modules: [
{
Name: "Plaque",
Key: "p",
Options: [
{}, //p0 - Border
{}, //p1 - Border
],
},
{
Name: "Dirt",
Key: "d",
Options: [
{}, //d0 - Clean
{}, //d1 - Dirty
],
},
{
Name: "Leash",
Key: "l",
Options: [
{}, //l0 - Leash
{ Property: { Difficulty: 5 } }, //l1 - Rope
{ AllowLock: true, Property: { Difficulty: 6 } }, //l2 - Chain
],
},
{
Name: "Sticker",
Key: "s",
Options: [
{}, //s0 - Paw
{}, //s1 - Triskel
{}, //s2 - Moon
{}, //s3 - LGBT
{}, //s4 - Trans
{}, //s5 - Bi
{}, //s6 - NoSwim
{}, //s7 - None
],
},
{
Name: "PostIt",
Key: "m",
Options: [
{}, //m0 - Postit
{}, //m1 - No PostIt
],
},
{
Name: "Txt",
Key: "x",
Options: [
{
HasSubscreen: true,
ArchetypeConfig: {
Archetype: ExtendedArchetype.TEXT,
MaxLength: { Text: 14, Text2: 14, Text3: 14 },
Font: "sans-serif",
ScriptHooks: {
AfterDraw: AssetsItemNeckRestraintsPetPostAfterDrawHook,
},
},
}, // text
],
},
],
ChangeWhenLocked: false,
BaselineProperty: { Text: "Pet", Text2: "Leashing", Text3: "Post" },
}, //PetPost
}, //ItemNeckRestraints
ItemHood: {
OldGasMask: {
Archetype: ExtendedArchetype.MODULAR,
Modules: [
{
Name: "Lenses",
Key: "l",
Options: [{}, { Property: { Effect: [E.BlindHeavy] } }],
},
{
Name: "Addons",
Key: "a",
Options: [
{},
{ Property: { Effect: [E.GagEasy] } },
{ Property: { Effect: [E.GagEasy] } },
{ Property: { Effect: [E.GagEasy] } },
],
},
],
ChangeWhenLocked: false,
},
InflatedBallHood: {
Archetype: ExtendedArchetype.TYPED,
Options: [
{
Name: "Empty",
Property: {
Difficulty: 0,
InflateLevel: 0,
Effect: [],
},
},
{
Name: "Light",
Property: {
Difficulty: 2,
InflateLevel: 1,
Effect: [E.GagLight],
},
},
{
Name: "Inflated",
Property: {
Difficulty: 4,
InflateLevel: 2,
Effect: [E.GagEasy],
},
},
{
Name: "Bloated",
Property: {
Difficulty: 6,
InflateLevel: 3,
Effect: [E.GagMedium],
},
},
{
Name: "Maximum",
Property: {
Difficulty: 8,
InflateLevel: 4,
Effect: [E.GagVeryHeavy],
},
},
],
DialogPrefix: {
Header: "SelectInflateLevel",
Option: "InflateLevel",
Chat: ({ newIndex, previousIndex }) =>
`InflatedHood${newIndex > previousIndex ? "pumps" : "deflates"}To`,
},
DrawImages: false,
}, // InflatedBallHood
KirugumiMask: {
Archetype: ExtendedArchetype.MODULAR,
ChatSetting: ModularItemChatSetting.PER_MODULE,
ChatTags: [
CommonChatTags.SOURCE_CHAR,
CommonChatTags.DEST_CHAR,
CommonChatTags.TARGET_CHAR,
],
Modules: [
{
Name: "Eyes",
Key: "e",
Options: [{}, {}, {}, {}], // All options are merely cosmetic
},
{
Name: "Mouth",
Key: "m",
Options: [{}, {}, {}, {}], // All options are merely cosmetic,
},
{
Name: "Blush",
Key: "b",
Options: [{}, {}, {}, {}], // All options are merely cosmetic,
},
{
Name: "Brows",
Key: "br",
Options: [{}, {}, {}, {}], // All options are merely cosmetic,
},
{
Name: "Opacity",
Key: "op",
Options: [
{},
{
Property: {
Effect: [E.BlindLight],
},
},
{
Property: {
Effect: [E.BlindHeavy, E.BlockWardrobe],
},
},
], // Opacity
},
{
Name: "MaskStyle",
Key: "ms",
Options: [
{
Property: {
Effect: [E.BlockMouth],
Hide: [
"Glasses",
"ItemMouth",
"ItemMouth2",
"ItemMouth3",
"Mask",
"ItemHead",
],
HideItem: ["ItemHeadSnorkel"],
Block: [
"ItemMouth",
"ItemMouth2",
"ItemMouth3",
"ItemHead",
"ItemNose",
"ItemEars",
],
},
},
{
Property: {
OverridePriority: 35,
Hide: ["Head"],
},
},
],
},
],
ChangeWhenLocked: false,
}, // KirugumiMask
GwenHood: {
Archetype: ExtendedArchetype.TYPED,
ChatTags: [CommonChatTags.SOURCE_CHAR, CommonChatTags.DEST_CHAR],
Options: [
{
Name: "HairOutAccOut",
Property: {
Hide: [],
},
},
{
Name: "HairInAccOut",
Property: {
Hide: ["HairBack"],
},
},
{
Name: "HairOutAccIn",
Property: {
Hide: ["HairAccessory1", "HairAccessory2", "HairAccessory3"],
},
},
{
Name: "HairInAccIn",
Property: {
Hide: [
"HairAccessory1",
"HairAccessory2",
"HairAccessory3",
"HairBack",
],
},
},
],
DialogPrefix: {
Header: "GwenHoodSelectStyle",
Option: "GwenHoodStyle",
Chat: "GwenHoodChangeStyle",
},
DrawImages: false,
}, // GwenHood
OpenFaceHood: {
Archetype: ExtendedArchetype.TYPED,
Options: [
{
Name: "HideBackHair",
Property: { Hide: ["HairBack"] },
},
{
Name: "ShowBackHair",
NPCDefault: true,
},
],
DialogPrefix: {
Header: "SelectOpenFaceHoodStyle",
Option: "OpenFaceHoodStyle",
},
DrawImages: false,
}, // OpenFaceHood
TechnoHelmet1: {
Archetype: ExtendedArchetype.MODULAR,
Modules: [
{
Name: "Visor",
Key: "v",
Options: [
{
Property: {
CustomBlindBackground: "",
Effect: [],
},
}, //v0 No Visor
{
Property: {
CustomBlindBackground: "",
Effect: [],
Tint: [{ Color: 0, Strength: 0.1 }],
},
}, // v1 Transparent Visor
{
Property: {
CustomBlindBackground: "",
Effect: [E.BlindLight, E.BlockWardrobe],
Tint: [{ Color: 0, Strength: 0.2 }],
},
}, // v2 Lightly Tinted Visor
{
Property: {
CustomBlindBackground: "",
Effect: [E.BlindNormal, E.BlockWardrobe],
Tint: [{ Color: 0, Strength: 0.5 }],
},
}, // v3 Heavily Tinted Visor
{
Property: {
CustomBlindBackground: "",
Effect: [E.BlindHeavy, E.BlockWardrobe],
Tint: [{ Color: 0, Strength: 1 }],
},
}, // v4 Opaque Visor
{
Property: {
CustomBlindBackground: "HypnoSpiral2",
Effect: [E.BlindHeavy, E.BlockWardrobe],
},
}, // v5 Hypnotic Visor
],
},
{
Name: "DeafeningModule",
Key: "d",
Options: [
{}, //h0 Disabled
{
Property: {
Effect: [E.DeafLight],
},
}, //h1 Light
{
Property: {
Effect: [E.DeafHeavy],
},
}, //h2 Heavy
{
Property: {
Effect: [E.DeafTotal],
},
}, //h3 Noise-Cancelling
],
},
{
Name: "ChinStrap",
Key: "c",
Options: [
{}, //c0 No Chin Strap
{
Property: {
Difficulty: 10,
},
}, //h1 Chin Strap
],
},
],
ChangeWhenLocked: false,
}, // TechnoHelmet1
GGTSHelmet: {
Archetype: ExtendedArchetype.TYPED,
Options: [
{
Name: "GoodGirl",
},
{
Name: "GoodSlaveGirl",
},
{
Name: "SlaveGirl",
},
{
Name: "PSlaveGirl",
},
{
Name: "PGirl",
},
],
ChangeWhenLocked: false,
}, // GGTSHelmet
ZipperHood: {
Archetype: ExtendedArchetype.TYPED,
Options: [
{
Name: "ZippersOpen",
},
{
Name: "ZippersClosed",
Property: { Effect: [E.BlindHeavy] },
},
{
Name: "ZippersClosedEyes",
Property: { Effect: [E.BlindHeavy] },
},
{
Name: "ZippersClosedMouth",
},
],
}, // ZipperHood
HeadboxSeethrough: {
Archetype: ExtendedArchetype.TYPED,
ChatTags: [CommonChatTags.SOURCE_CHAR, CommonChatTags.DEST_CHAR],
Options: [
{
Name: "Seethrough",
Property: {
Tint: [{ Color: 0, Strength: 1 }],
},
},
{
Name: "Opaque",
},
],
DrawImages: false,
}, // HeadboxSeethrough
KittyHood: {
Archetype: ExtendedArchetype.MODULAR,
ChatTags: [CommonChatTags.SOURCE_CHAR, CommonChatTags.DEST_CHAR],
Modules: [
{
Name: "Blindfold",
Key: "b",
Options: [
{}, // b0 - None
{
Property: {
Effect: [E.BlindHeavy],
},
}, // b1 - Blindfold
],
},
{
Name: "Gag",
Key: "g",
Options: [
{}, // g0 - None
{
Property: {
Effect: [E.GagLight],
Block: ["ItemMouth", "ItemMouth2", "ItemMouth3"],
},
}, // g1 - Gag
],
},
{
Name: "Expression",
Key: "e",
Options: [
{}, // e0 - Neutral
{}, // e1 - OwO
{}, // e2 - UwU
],
},
{
Name: "Tightness",
Key: "t",
Options: [{}, {}], // t0 - Loose, t1 - Tight
},
],
}, //KittyHood
DroneMask: {
Archetype: ExtendedArchetype.MODULAR,
CopyConfig: { GroupName: "ItemHead", AssetName: "DroneMask" },
Modules: [
{
Name: "Mouth",
Key: "m",
Options: [
{
// m0 - None
Property: { Effect: [E.BlockMouth] },
},
{
// m1 - Onahole
Property: { Effect: [E.GagMedium, E.OpenMouth] },
},
{
// m2 - Fleshlight
Property: { Effect: [E.GagMedium, E.OpenMouth] },
},
{
// m3 - Smile
Property: { Effect: [E.BlockMouth] },
},
{
// m4 - Holes
Property: { Effect: [E.BlockMouth] },
},
{
// m5 - Sculpted
Property: { Effect: [E.BlockMouth] },
},
{
// m6 - Subtle
Property: { Effect: [E.BlockMouth] },
},
],
},
{
Name: "Eyes",
Key: "e",
Options: [
{
// e0 - None
Property: { Effect: [E.BlindLight] },
},
{
// e1 - Regular
Property: { Effect: [] },
},
{
// e2 - Spiral
Property: { Effect: [] },
},
{
// e3 - Smile
Property: { Effect: [] },
},
{
// e4 - Holes
Property: { Effect: [E.BlindLight] },
},
{
// e5 - Sculpted
Property: { Effect: [] },
},
{
// e6 - Concave
Property: { Effect: [E.BlindLight] },
},
],
},
{
Name: "Pattern",
Key: "p",
Options: [
{}, // Blank
{}, // Barcode
{}, // Scarab
{}, // Hex
{}, // Lines
{
HasSubscreen: true,
ArchetypeConfig: {
Archetype: ExtendedArchetype.TEXT,
MaxLength: { Text: 16 },
Font: "Impact",
ScriptHooks: {
AfterDraw: AssetsItemHeadDroneMaskAfterDrawHook,
},
},
Property: {
HideItem: ["ItemHeadDroneMask"],
},
}, // text
],
},
{
Name: "Glow",
Key: "g",
Options: [{}, {}], // Glow Off, Glow On
},
{
Name: "Sight",
Key: "s",
Options: [
{
// s0 - Opaque
Property: { Effect: [E.BlindHeavy, E.BlockWardrobe] },
},
{
// s1 - One Way
Property: { Effect: [] },
},
],
},
{
Name: "Helmet",
Key: "h",
Options: [
{}, // h0 - Mask
{
Property: {
Hide: ["HairFront", "HairBack"], //"HairAccessory1", "HairAccessory2"],
HideItem: [
"HatBonnet1",
"HatBonnet2",
"HatBunnySuccubus2",
"HatCrown1",
"HatCrown2",
"HatCrown4",
"HatCrown5",
"HatBand1",
"HatBand2",
"HatPirateBandana1",
"HatVeil1",
"HatVeil2", // Hat items
"MaskFuturisticVisor",
"MaskShinobiMask", // Mask items
"HairAccessory3Ribbons4", // HairAccessory items
"HairAccessory1Antennae",
"HairAccessory1BunnyEars1",
"HairAccessory1BunnyEars2",
"HairAccessory1CowHorns",
"HairAccessory1ElfEars",
"HairAccessory1Ears1",
"HairAccessory1Ears2",
"HairAccessory1FoxEars1",
"HairAccessory1FoxEars2",
"HairAccessory1FoxEars3",
"HairAccessory1KittenEars1",
"HairAccessory1KittenEars2",
"HairAccessory1MouseEars1",
"HairAccessory1MouseEars2",
"HairAccessory1PuppyEars1",
"HairAccessory1Ribbons2",
"HairAccessory1WolfEars1",
"HairAccessory1WolfEars2",
"HairAccessory1Ribbons4", // Ear items (HA1)
"HairAccessory2Antennae",
"HairAccessory2BunnyEars1",
"HairAccessory2BunnyEars2",
"HairAccessory2CowHorns",
"HairAccessory2ElfEars",
"HairAccessory2Ears1",
"HairAccessory2Ears2",
"HairAccessory2FoxEars1",
"HairAccessory2FoxEars2",
"HairAccessory2FoxEars3",
"HairAccessory2KittenEars1",
"HairAccessory2KittenEars2",
"HairAccessory2MouseEars1",
"HairAccessory2MouseEars2",
"HairAccessory2PuppyEars1",
"HairAccessory2Ribbons2",
"HairAccessory2WolfEars1",
"HairAccessory2WolfEars2", // Ear items (HA2)
], // These items are hidden because they have clear mismatch issues with the hood.
},
}, // h1 - Helmet (hood)
{
// h2 - Helmet ( hood but nothing shows)
Property: {
Hide: [
"HairFront",
"HairBack",
"Hat",
"HairAccessory1",
"HairAccessory2",
"HairAccessory3",
],
HideItem: ["MaskFuturisticVisor", "MaskShinobiMask"],
},
},
],
},
{
Name: "Layering",
Key: "j",
Options: [
{
Property: {
Block: ["ItemMouth", "ItemMouth2", "ItemMouth3", "ItemHead"],
Hide: [
"ItemMouth",
"ItemMouth2",
"ItemMouth3",
"ItemHead",
"Glasses",
],
},
}, // No gags or blindfolds visible
{
Property: {
OverridePriority: 12,
Block: ["ItemMouth", "ItemMouth2", "ItemHead"],
Hide: ["ItemMouth", "ItemMouth2", "ItemHead", "Glasses"],
},
}, // Highest layer gag visible
{
Property: {
OverridePriority: 12,
Block: ["ItemHead"],
Hide: ["ItemHead", "Glasses"],
},
}, // All gags visible
{
Property: {
OverridePriority: 12,
Block: ["ItemMouth", "ItemMouth2", "ItemMouth3"],
Hide: ["ItemMouth", "ItemMouth2", "ItemMouth3"],
},
}, // Blindfold items visible
{
Property: {
OverridePriority: 12,
Block: ["ItemMouth", "ItemMouth2"],
Hide: ["ItemMouth", "ItemMouth2"],
},
}, // Blindfold and highest layer gag
{
Property: {
OverridePriority: 12,
Block: [],
Hide: [],
},
}, // Blindfold and all gags
],
},
],
}, // DroneMask
CustomLatexHood: {
Archetype: ExtendedArchetype.MODULAR,
ChatSetting: ModularItemChatSetting.PER_MODULE,
Modules: [
{
Name: "MPanel",
Key: "m",
DrawImages: true,
Options: [
{
// m0 - No Mouth
Property: {
Effect: [E.GagEasy, E.BlockMouth],
OverridePriority: {
PanelHead: 38,
PanelHeadTransparent: 38,
PanelHeadHighlight: 38,
PanelNoEye: 38,
PanelNoEyeTransparent: 38,
PanelHoleNoEye: 38,
PanelHoleNoEyeTransparent: 38,
PanelNoEyeHighlight: 38,
PanelRoundEye: 38,
PanelRoundEyeTransparent: 38,
PanelRoundEyeHighlight: 38,
PanelShapedEye: 38,
PanelShapedEyeTransparent: 38,
PanelShapedEyeHighlight: 38,
PanelCircleEye: 38,
PanelCircleEyeTransparent: 38,
PanelCircleEyeHighlight: 38,
FillRoundEye: 38,
FillRoundEyeTransparent: 38,
FillHoleRoundEye: 38,
FillHoleRoundEyeTransparent: 38,
FillRoundEyeHighlight: 38,
FillShapedEye: 38,
FillShapedEyeTransparent: 38,
FillHoleShapedEye: 38,
FillHoleShapedEyeTransparent: 38,
FillShapedEyeHighlight: 38,
FillCircleEye: 38,
FillCircleEyeTransparent: 38,
PanelNoMouth: 38,
PanelNoMouthTransparent: 38,
PanelHoleNoMouth: 38,
PanelHoleNoMouthTransparent: 38,
PanelNoMouthHighlight: 38,
PanelRoundMouth: 38,
PanelRoundMouthTransparent: 38,
PanelRoundMouthHighlight: 38,
PanelShapedMouth: 38,
PanelShapedMouthTransparent: 38,
PanelShapedMouthHighlight: 38,
PanelFishnetMouth: 38,
PanelCircleMouth: 38,
PanelCircleMouthTransparent: 38,
PanelCircleMouthHighlight: 38,
FillRoundMouth: 38,
FillRoundMouthTransparent: 38,
FillHoleRoundMouth: 38,
FillHoleRoundMouthTransparent: 38,
FillShapedMouth: 38,
FillShapedMouthTransparent: 38,
FillHoleShapedMouth: 38,
FillHoleShapedMouthTransparent: 38,
FillCircleMouth: 38,
FillCircleMouthTransparent: 38,
LiningRoundFace: 38,
LiningRoundFaceHighlight: 38,
LiningCrossFace: 38,
LiningCrossFaceHighlight: 38,
LiningRoundEye: 38,
LiningRoundEyeHighlight: 38,
LiningShapedEye: 38,
LiningShapedEyeHighlight: 38,
LiningRoundMouth: 38,
LiningShapedMouth: 38,
LiningCircleEye: 38,
LiningCircleEyeHighlight: 38,
LiningCircleMouth: 38,
},
Block: ["ItemMouth", "ItemMouth2", "ItemMouth3"],
},
},
{
// m1 - Hole Only
Property: {
Effect: [E.BlockMouth],
OverridePriority: {
PanelHead: 38,
PanelHeadTransparent: 38,
PanelHeadHighlight: 38,
PanelNoEye: 38,
PanelNoEyeTransparent: 38,
PanelHoleNoEye: 38,
PanelHoleNoEyeTransparent: 38,
PanelNoEyeHighlight: 38,
PanelRoundEye: 38,
PanelRoundEyeTransparent: 38,
PanelRoundEyeHighlight: 38,
PanelShapedEye: 38,
PanelShapedEyeTransparent: 38,
PanelShapedEyeHighlight: 38,
PanelCircleEye: 38,
PanelCircleEyeTransparent: 38,
PanelCircleEyeHighlight: 38,
FillRoundEye: 38,
FillRoundEyeTransparent: 38,
FillHoleRoundEye: 38,
FillHoleRoundEyeTransparent: 38,
FillRoundEyeHighlight: 38,
FillShapedEye: 38,
FillShapedEyeTransparent: 38,
FillHoleShapedEye: 38,
FillHoleShapedEyeTransparent: 38,
FillShapedEyeHighlight: 38,
FillCircleEye: 38,
FillCircleEyeTransparent: 38,
PanelNoMouth: 38,
PanelNoMouthTransparent: 38,
PanelHoleNoMouth: 38,
PanelHoleNoMouthTransparent: 38,
PanelNoMouthHighlight: 38,
PanelRoundMouth: 38,
PanelRoundMouthTransparent: 38,
PanelRoundMouthHighlight: 38,
PanelShapedMouth: 38,
PanelShapedMouthTransparent: 38,
PanelShapedMouthHighlight: 38,
PanelFishnetMouth: 38,
PanelCircleMouth: 38,
PanelCircleMouthTransparent: 38,
PanelCircleMouthHighlight: 38,
FillRoundMouth: 38,
FillRoundMouthTransparent: 38,
FillHoleRoundMouth: 38,
FillHoleRoundMouthTransparent: 38,
FillShapedMouth: 38,
FillShapedMouthTransparent: 38,
FillHoleShapedMouth: 38,
FillHoleShapedMouthTransparent: 38,
FillCircleMouth: 38,
FillCircleMouthTransparent: 38,
LiningRoundFace: 38,
LiningRoundFaceHighlight: 38,
LiningCrossFace: 38,
LiningCrossFaceHighlight: 38,
LiningRoundEye: 38,
LiningRoundEyeHighlight: 38,
LiningShapedEye: 38,
LiningShapedEyeHighlight: 38,
LiningRoundMouth: 38,
LiningShapedMouth: 38,
LiningCircleEye: 38,
LiningCircleEyeHighlight: 38,
LiningCircleMouth: 38,
},
Block: ["ItemMouth", "ItemMouth2", "ItemMouth3"],
},
},
{
// m2 - Round Mouth
Property: { Effect: [E.OpenMouth] },
},
{
// m3 - Shaped Mouth
Property: { Effect: [E.OpenMouth] },
},
{
// m4 - No Mouth Transparent
Property: {
Effect: [E.GagEasy, E.BlockMouth],
OverridePriority: {
PanelHead: 38,
PanelHeadTransparent: 38,
PanelHeadHighlight: 38,
PanelNoEye: 38,
PanelNoEyeTransparent: 38,
PanelHoleNoEye: 38,
PanelHoleNoEyeTransparent: 38,
PanelNoEyeHighlight: 38,
PanelRoundEye: 38,
PanelRoundEyeTransparent: 38,
PanelRoundEyeHighlight: 38,
PanelShapedEye: 38,
PanelShapedEyeTransparent: 38,
PanelShapedEyeHighlight: 38,
PanelCircleEye: 38,
PanelCircleEyeTransparent: 38,
PanelCircleEyeHighlight: 38,
FillRoundEye: 38,
FillRoundEyeTransparent: 38,
FillHoleRoundEye: 38,
FillHoleRoundEyeTransparent: 38,
FillRoundEyeHighlight: 38,
FillShapedEye: 38,
FillShapedEyeTransparent: 38,
FillHoleShapedEye: 38,
FillHoleShapedEyeTransparent: 38,
FillShapedEyeHighlight: 38,
FillCircleEye: 38,
FillCircleEyeTransparent: 38,
PanelNoMouth: 38,
PanelNoMouthTransparent: 38,
PanelHoleNoMouth: 38,
PanelHoleNoMouthTransparent: 38,
PanelNoMouthHighlight: 38,
PanelRoundMouth: 38,
PanelRoundMouthTransparent: 38,
PanelRoundMouthHighlight: 38,
PanelShapedMouth: 38,
PanelShapedMouthTransparent: 38,
PanelShapedMouthHighlight: 38,
PanelFishnetMouth: 38,
PanelCircleMouth: 38,
PanelCircleMouthTransparent: 38,
PanelCircleMouthHighlight: 38,
FillRoundMouth: 38,
FillRoundMouthTransparent: 38,
FillHoleRoundMouth: 38,
FillHoleRoundMouthTransparent: 38,
FillShapedMouth: 38,
FillShapedMouthTransparent: 38,
FillHoleShapedMouth: 38,
FillHoleShapedMouthTransparent: 38,
FillCircleMouth: 38,
FillCircleMouthTransparent: 38,
LiningRoundFace: 38,
LiningRoundFaceHighlight: 38,
LiningCrossFace: 38,
LiningCrossFaceHighlight: 38,
LiningRoundEye: 38,
LiningRoundEyeHighlight: 38,
LiningShapedEye: 38,
LiningShapedEyeHighlight: 38,
LiningRoundMouth: 38,
LiningShapedMouth: 38,
LiningCircleEye: 38,
LiningCircleEyeHighlight: 38,
LiningCircleMouth: 38,
},
Block: ["ItemMouth", "ItemMouth2", "ItemMouth3"],
},
},
{
// m5 - Hole Only Transparent
Property: {
Effect: [E.BlockMouth],
OverridePriority: {
PanelHead: 38,
PanelHeadTransparent: 38,
PanelHeadHighlight: 38,
PanelNoEye: 38,
PanelNoEyeTransparent: 38,
PanelHoleNoEye: 38,
PanelHoleNoEyeTransparent: 38,
PanelNoEyeHighlight: 38,
PanelRoundEye: 38,
PanelRoundEyeTransparent: 38,
PanelRoundEyeHighlight: 38,
PanelShapedEye: 38,
PanelShapedEyeTransparent: 38,
PanelShapedEyeHighlight: 38,
PanelCircleEye: 38,
PanelCircleEyeTransparent: 38,
PanelCircleEyeHighlight: 38,
FillRoundEye: 38,
FillRoundEyeTransparent: 38,
FillHoleRoundEye: 38,
FillHoleRoundEyeTransparent: 38,
FillRoundEyeHighlight: 38,
FillShapedEye: 38,
FillShapedEyeTransparent: 38,
FillHoleShapedEye: 38,
FillHoleShapedEyeTransparent: 38,
FillShapedEyeHighlight: 38,
FillCircleEye: 38,
FillCircleEyeTransparent: 38,
PanelNoMouth: 38,
PanelNoMouthTransparent: 38,
PanelHoleNoMouth: 38,
PanelHoleNoMouthTransparent: 38,
PanelNoMouthHighlight: 38,
PanelRoundMouth: 38,
PanelRoundMouthTransparent: 38,
PanelRoundMouthHighlight: 38,
PanelShapedMouth: 38,
PanelShapedMouthTransparent: 38,
PanelShapedMouthHighlight: 38,
PanelFishnetMouth: 38,
PanelCircleMouth: 38,
PanelCircleMouthTransparent: 38,
PanelCircleMouthHighlight: 38,
FillRoundMouth: 38,
FillRoundMouthTransparent: 38,
FillHoleRoundMouth: 38,
FillHoleRoundMouthTransparent: 38,
FillShapedMouth: 38,
FillShapedMouthTransparent: 38,
FillHoleShapedMouth: 38,
FillHoleShapedMouthTransparent: 38,
FillCircleMouth: 38,
FillCircleMouthTransparent: 38,
LiningRoundFace: 38,
LiningRoundFaceHighlight: 38,
LiningCrossFace: 38,
LiningCrossFaceHighlight: 38,
LiningRoundEye: 38,
LiningRoundEyeHighlight: 38,
LiningShapedEye: 38,
LiningShapedEyeHighlight: 38,
LiningRoundMouth: 38,
LiningShapedMouth: 38,
LiningCircleEye: 38,
LiningCircleEyeHighlight: 38,
LiningCircleMouth: 38,
},
Block: ["ItemMouth", "ItemMouth2", "ItemMouth3"],
},
},
{
// m6 - Round Mouth Transparent
Property: { Effect: [E.OpenMouth] },
},
{
// m7 - Shaped Mouth Transparent
Property: { Effect: [E.OpenMouth] },
},
{
// m8 - Round Mouth Opaque, filled Opaque
Property: {
Effect: [E.GagEasy, E.BlockMouth],
OverridePriority: {
PanelHead: 38,
PanelHeadTransparent: 38,
PanelHeadHighlight: 38,
PanelNoEye: 38,
PanelNoEyeTransparent: 38,
PanelHoleNoEye: 38,
PanelHoleNoEyeTransparent: 38,
PanelNoEyeHighlight: 38,
PanelRoundEye: 38,
PanelRoundEyeTransparent: 38,
PanelRoundEyeHighlight: 38,
PanelShapedEye: 38,
PanelShapedEyeTransparent: 38,
PanelShapedEyeHighlight: 38,
PanelCircleEye: 38,
PanelCircleEyeTransparent: 38,
PanelCircleEyeHighlight: 38,
FillRoundEye: 38,
FillRoundEyeTransparent: 38,
FillHoleRoundEye: 38,
FillHoleRoundEyeTransparent: 38,
FillRoundEyeHighlight: 38,
FillShapedEye: 38,
FillShapedEyeTransparent: 38,
FillHoleShapedEye: 38,
FillHoleShapedEyeTransparent: 38,
FillShapedEyeHighlight: 38,
FillCircleEye: 38,
FillCircleEyeTransparent: 38,
PanelNoMouth: 38,
PanelNoMouthTransparent: 38,
PanelHoleNoMouth: 38,
PanelHoleNoMouthTransparent: 38,
PanelNoMouthHighlight: 38,
PanelRoundMouth: 38,
PanelRoundMouthTransparent: 38,
PanelRoundMouthHighlight: 38,
PanelShapedMouth: 38,
PanelShapedMouthTransparent: 38,
PanelShapedMouthHighlight: 38,
PanelFishnetMouth: 38,
PanelCircleMouth: 38,
PanelCircleMouthTransparent: 38,
PanelCircleMouthHighlight: 38,
FillRoundMouth: 38,
FillRoundMouthTransparent: 38,
FillHoleRoundMouth: 38,
FillHoleRoundMouthTransparent: 38,
FillShapedMouth: 38,
FillShapedMouthTransparent: 38,
FillHoleShapedMouth: 38,
FillHoleShapedMouthTransparent: 38,
FillCircleMouth: 38,
FillCircleMouthTransparent: 38,
LiningRoundFace: 38,
LiningRoundFaceHighlight: 38,
LiningCrossFace: 38,
LiningCrossFaceHighlight: 38,
LiningRoundEye: 38,
LiningRoundEyeHighlight: 38,
LiningShapedEye: 38,
LiningShapedEyeHighlight: 38,
LiningRoundMouth: 38,
LiningShapedMouth: 38,
LiningCircleEye: 38,
LiningCircleEyeHighlight: 38,
LiningCircleMouth: 38,
},
Block: ["ItemMouth", "ItemMouth2", "ItemMouth3"],
},
},
{
// m9 - Round Mouth Opaque, filled Opaque + pinhole
Property: {
Effect: [E.BlockMouth],
OverridePriority: {
PanelHead: 38,
PanelHeadTransparent: 38,
PanelHeadHighlight: 38,
PanelNoEye: 38,
PanelNoEyeTransparent: 38,
PanelHoleNoEye: 38,
PanelHoleNoEyeTransparent: 38,
PanelNoEyeHighlight: 38,
PanelRoundEye: 38,
PanelRoundEyeTransparent: 38,
PanelRoundEyeHighlight: 38,
PanelShapedEye: 38,
PanelShapedEyeTransparent: 38,
PanelShapedEyeHighlight: 38,
PanelCircleEye: 38,
PanelCircleEyeTransparent: 38,
PanelCircleEyeHighlight: 38,
FillRoundEye: 38,
FillRoundEyeTransparent: 38,
FillHoleRoundEye: 38,
FillHoleRoundEyeTransparent: 38,
FillRoundEyeHighlight: 38,
FillShapedEye: 38,
FillShapedEyeTransparent: 38,
FillHoleShapedEye: 38,
FillHoleShapedEyeTransparent: 38,
FillShapedEyeHighlight: 38,
FillCircleEye: 38,
FillCircleEyeTransparent: 38,
PanelNoMouth: 38,
PanelNoMouthTransparent: 38,
PanelHoleNoMouth: 38,
PanelHoleNoMouthTransparent: 38,
PanelNoMouthHighlight: 38,
PanelRoundMouth: 38,
PanelRoundMouthTransparent: 38,
PanelRoundMouthHighlight: 38,
PanelShapedMouth: 38,
PanelShapedMouthTransparent: 38,
PanelShapedMouthHighlight: 38,
PanelFishnetMouth: 38,
PanelCircleMouth: 38,
PanelCircleMouthTransparent: 38,
PanelCircleMouthHighlight: 38,
FillRoundMouth: 38,
FillRoundMouthTransparent: 38,
FillHoleRoundMouth: 38,
FillHoleRoundMouthTransparent: 38,
FillShapedMouth: 38,
FillShapedMouthTransparent: 38,
FillHoleShapedMouth: 38,
FillHoleShapedMouthTransparent: 38,
FillCircleMouth: 38,
FillCircleMouthTransparent: 38,
LiningRoundFace: 38,
LiningRoundFaceHighlight: 38,
LiningCrossFace: 38,
LiningCrossFaceHighlight: 38,
LiningRoundEye: 38,
LiningRoundEyeHighlight: 38,
LiningShapedEye: 38,
LiningShapedEyeHighlight: 38,
LiningRoundMouth: 38,
LiningShapedMouth: 38,
LiningCircleEye: 38,
LiningCircleEyeHighlight: 38,
LiningCircleMouth: 38,
},
Block: ["ItemMouth", "ItemMouth2", "ItemMouth3"],
},
},
{
// m10 - Round Mouth Opaque, filled Transparent
Property: {
Effect: [E.GagEasy, E.BlockMouth],
OverridePriority: {
PanelHead: 38,
PanelHeadTransparent: 38,
PanelHeadHighlight: 38,
PanelNoEye: 38,
PanelNoEyeTransparent: 38,
PanelHoleNoEye: 38,
PanelHoleNoEyeTransparent: 38,
PanelNoEyeHighlight: 38,
PanelRoundEye: 38,
PanelRoundEyeTransparent: 38,
PanelRoundEyeHighlight: 38,
PanelShapedEye: 38,
PanelShapedEyeTransparent: 38,
PanelShapedEyeHighlight: 38,
PanelCircleEye: 38,
PanelCircleEyeTransparent: 38,
PanelCircleEyeHighlight: 38,
FillRoundEye: 38,
FillRoundEyeTransparent: 38,
FillHoleRoundEye: 38,
FillHoleRoundEyeTransparent: 38,
FillRoundEyeHighlight: 38,
FillShapedEye: 38,
FillShapedEyeTransparent: 38,
FillHoleShapedEye: 38,
FillHoleShapedEyeTransparent: 38,
FillShapedEyeHighlight: 38,
FillCircleEye: 38,
FillCircleEyeTransparent: 38,
PanelNoMouth: 38,
PanelNoMouthTransparent: 38,
PanelHoleNoMouth: 38,
PanelHoleNoMouthTransparent: 38,
PanelNoMouthHighlight: 38,
PanelRoundMouth: 38,
PanelRoundMouthTransparent: 38,
PanelRoundMouthHighlight: 38,
PanelShapedMouth: 38,
PanelShapedMouthTransparent: 38,
PanelShapedMouthHighlight: 38,
PanelFishnetMouth: 38,
PanelCircleMouth: 38,
PanelCircleMouthTransparent: 38,
PanelCircleMouthHighlight: 38,
FillRoundMouth: 38,
FillRoundMouthTransparent: 38,
FillHoleRoundMouth: 38,
FillHoleRoundMouthTransparent: 38,
FillShapedMouth: 38,
FillShapedMouthTransparent: 38,
FillHoleShapedMouth: 38,
FillHoleShapedMouthTransparent: 38,
FillCircleMouth: 38,
FillCircleMouthTransparent: 38,
LiningRoundFace: 38,
LiningRoundFaceHighlight: 38,
LiningCrossFace: 38,
LiningCrossFaceHighlight: 38,
LiningRoundEye: 38,
LiningRoundEyeHighlight: 38,
LiningShapedEye: 38,
LiningShapedEyeHighlight: 38,
LiningRoundMouth: 38,
LiningShapedMouth: 38,
LiningCircleEye: 38,
LiningCircleEyeHighlight: 38,
LiningCircleMouth: 38,
},
Block: ["ItemMouth", "ItemMouth2", "ItemMouth3"],
},
},
{
// m11 - Round Mouth Opaque, filled Transparent + pinhole
Property: {
Effect: [E.BlockMouth],
OverridePriority: {
PanelHead: 38,
PanelHeadTransparent: 38,
PanelHeadHighlight: 38,
PanelNoEye: 38,
PanelNoEyeTransparent: 38,
PanelHoleNoEye: 38,
PanelHoleNoEyeTransparent: 38,
PanelNoEyeHighlight: 38,
PanelRoundEye: 38,
PanelRoundEyeTransparent: 38,
PanelRoundEyeHighlight: 38,
PanelShapedEye: 38,
PanelShapedEyeTransparent: 38,
PanelShapedEyeHighlight: 38,
PanelCircleEye: 38,
PanelCircleEyeTransparent: 38,
PanelCircleEyeHighlight: 38,
FillRoundEye: 38,
FillRoundEyeTransparent: 38,
FillHoleRoundEye: 38,
FillHoleRoundEyeTransparent: 38,
FillRoundEyeHighlight: 38,
FillShapedEye: 38,
FillShapedEyeTransparent: 38,
FillHoleShapedEye: 38,
FillHoleShapedEyeTransparent: 38,
FillShapedEyeHighlight: 38,
FillCircleEye: 38,
FillCircleEyeTransparent: 38,
PanelNoMouth: 38,
PanelNoMouthTransparent: 38,
PanelHoleNoMouth: 38,
PanelHoleNoMouthTransparent: 38,
PanelNoMouthHighlight: 38,
PanelRoundMouth: 38,
PanelRoundMouthTransparent: 38,
PanelRoundMouthHighlight: 38,
PanelShapedMouth: 38,
PanelShapedMouthTransparent: 38,
PanelShapedMouthHighlight: 38,
PanelFishnetMouth: 38,
PanelCircleMouth: 38,
PanelCircleMouthTransparent: 38,
PanelCircleMouthHighlight: 38,
FillRoundMouth: 38,
FillRoundMouthTransparent: 38,
FillHoleRoundMouth: 38,
FillHoleRoundMouthTransparent: 38,
FillShapedMouth: 38,
FillShapedMouthTransparent: 38,
FillHoleShapedMouth: 38,
FillHoleShapedMouthTransparent: 38,
FillCircleMouth: 38,
FillCircleMouthTransparent: 38,
LiningRoundFace: 38,
LiningRoundFaceHighlight: 38,
LiningCrossFace: 38,
LiningCrossFaceHighlight: 38,
LiningRoundEye: 38,
LiningRoundEyeHighlight: 38,
LiningShapedEye: 38,
LiningShapedEyeHighlight: 38,
LiningRoundMouth: 38,
LiningShapedMouth: 38,
LiningCircleEye: 38,
LiningCircleEyeHighlight: 38,
LiningCircleMouth: 38,
},
Block: ["ItemMouth", "ItemMouth2", "ItemMouth3"],
},
},
{
// m12 - Shaped Mouth Opaque, filled Opaque
Property: {
Effect: [E.GagEasy, E.BlockMouth],
OverridePriority: {
PanelHead: 38,
PanelHeadTransparent: 38,
PanelHeadHighlight: 38,
PanelNoEye: 38,
PanelNoEyeTransparent: 38,
PanelHoleNoEye: 38,
PanelHoleNoEyeTransparent: 38,
PanelNoEyeHighlight: 38,
PanelRoundEye: 38,
PanelRoundEyeTransparent: 38,
PanelRoundEyeHighlight: 38,
PanelShapedEye: 38,
PanelShapedEyeTransparent: 38,
PanelShapedEyeHighlight: 38,
PanelCircleEye: 38,
PanelCircleEyeTransparent: 38,
PanelCircleEyeHighlight: 38,
FillRoundEye: 38,
FillRoundEyeTransparent: 38,
FillHoleRoundEye: 38,
FillHoleRoundEyeTransparent: 38,
FillRoundEyeHighlight: 38,
FillShapedEye: 38,
FillShapedEyeTransparent: 38,
FillHoleShapedEye: 38,
FillHoleShapedEyeTransparent: 38,
FillShapedEyeHighlight: 38,
FillCircleEye: 38,
FillCircleEyeTransparent: 38,
PanelNoMouth: 38,
PanelNoMouthTransparent: 38,
PanelHoleNoMouth: 38,
PanelHoleNoMouthTransparent: 38,
PanelNoMouthHighlight: 38,
PanelRoundMouth: 38,
PanelRoundMouthTransparent: 38,
PanelRoundMouthHighlight: 38,
PanelShapedMouth: 38,
PanelShapedMouthTransparent: 38,
PanelShapedMouthHighlight: 38,
PanelFishnetMouth: 38,
PanelCircleMouth: 38,
PanelCircleMouthTransparent: 38,
PanelCircleMouthHighlight: 38,
FillRoundMouth: 38,
FillRoundMouthTransparent: 38,
FillHoleRoundMouth: 38,
FillHoleRoundMouthTransparent: 38,
FillShapedMouth: 38,
FillShapedMouthTransparent: 38,
FillHoleShapedMouth: 38,
FillHoleShapedMouthTransparent: 38,
FillCircleMouth: 38,
FillCircleMouthTransparent: 38,
LiningRoundFace: 38,
LiningRoundFaceHighlight: 38,
LiningCrossFace: 38,
LiningCrossFaceHighlight: 38,
LiningRoundEye: 38,
LiningRoundEyeHighlight: 38,
LiningShapedEye: 38,
LiningShapedEyeHighlight: 38,
LiningRoundMouth: 38,
LiningShapedMouth: 38,
LiningCircleEye: 38,
LiningCircleEyeHighlight: 38,
LiningCircleMouth: 38,
},
Block: ["ItemMouth", "ItemMouth2", "ItemMouth3"],
},
},
{
// m13 - Shaped Mouth Opaque, filled Opaque + pinhole
Property: {
Effect: [E.BlockMouth],
OverridePriority: {
PanelHead: 38,
PanelHeadTransparent: 38,
PanelHeadHighlight: 38,
PanelNoEye: 38,
PanelNoEyeTransparent: 38,
PanelHoleNoEye: 38,
PanelHoleNoEyeTransparent: 38,
PanelNoEyeHighlight: 38,
PanelRoundEye: 38,
PanelRoundEyeTransparent: 38,
PanelRoundEyeHighlight: 38,
PanelShapedEye: 38,
PanelShapedEyeTransparent: 38,
PanelShapedEyeHighlight: 38,
PanelCircleEye: 38,
PanelCircleEyeTransparent: 38,
PanelCircleEyeHighlight: 38,
FillRoundEye: 38,
FillRoundEyeTransparent: 38,
FillHoleRoundEye: 38,
FillHoleRoundEyeTransparent: 38,
FillRoundEyeHighlight: 38,
FillShapedEye: 38,
FillShapedEyeTransparent: 38,
FillHoleShapedEye: 38,
FillHoleShapedEyeTransparent: 38,
FillShapedEyeHighlight: 38,
FillCircleEye: 38,
FillCircleEyeTransparent: 38,
PanelNoMouth: 38,
PanelNoMouthTransparent: 38,
PanelHoleNoMouth: 38,
PanelHoleNoMouthTransparent: 38,
PanelNoMouthHighlight: 38,
PanelRoundMouth: 38,
PanelRoundMouthTransparent: 38,
PanelRoundMouthHighlight: 38,
PanelShapedMouth: 38,
PanelShapedMouthTransparent: 38,
PanelShapedMouthHighlight: 38,
PanelFishnetMouth: 38,
PanelCircleMouth: 38,
PanelCircleMouthTransparent: 38,
PanelCircleMouthHighlight: 38,
FillRoundMouth: 38,
FillRoundMouthTransparent: 38,
FillHoleRoundMouth: 38,
FillHoleRoundMouthTransparent: 38,
FillShapedMouth: 38,
FillShapedMouthTransparent: 38,
FillHoleShapedMouth: 38,
FillHoleShapedMouthTransparent: 38,
FillCircleMouth: 38,
FillCircleMouthTransparent: 38,
LiningRoundFace: 38,
LiningRoundFaceHighlight: 38,
LiningCrossFace: 38,
LiningCrossFaceHighlight: 38,
LiningRoundEye: 38,
LiningRoundEyeHighlight: 38,
LiningShapedEye: 38,
LiningShapedEyeHighlight: 38,
LiningRoundMouth: 38,
LiningShapedMouth: 38,
LiningCircleEye: 38,
LiningCircleEyeHighlight: 38,
LiningCircleMouth: 38,
},
Block: ["ItemMouth", "ItemMouth2", "ItemMouth3"],
},
},
{
// m14 - Shaped Mouth Opaque, filled Transparent
Property: {
Effect: [E.GagEasy, E.BlockMouth],
OverridePriority: {
PanelHead: 38,
PanelHeadTransparent: 38,
PanelHeadHighlight: 38,
PanelNoEye: 38,
PanelNoEyeTransparent: 38,
PanelHoleNoEye: 38,
PanelHoleNoEyeTransparent: 38,
PanelNoEyeHighlight: 38,
PanelRoundEye: 38,
PanelRoundEyeTransparent: 38,
PanelRoundEyeHighlight: 38,
PanelShapedEye: 38,
PanelShapedEyeTransparent: 38,
PanelShapedEyeHighlight: 38,
PanelCircleEye: 38,
PanelCircleEyeTransparent: 38,
PanelCircleEyeHighlight: 38,
FillRoundEye: 38,
FillRoundEyeTransparent: 38,
FillHoleRoundEye: 38,
FillHoleRoundEyeTransparent: 38,
FillRoundEyeHighlight: 38,
FillShapedEye: 38,
FillShapedEyeTransparent: 38,
FillHoleShapedEye: 38,
FillHoleShapedEyeTransparent: 38,
FillShapedEyeHighlight: 38,
FillCircleEye: 38,
FillCircleEyeTransparent: 38,
PanelNoMouth: 38,
PanelNoMouthTransparent: 38,
PanelHoleNoMouth: 38,
PanelHoleNoMouthTransparent: 38,
PanelNoMouthHighlight: 38,
PanelRoundMouth: 38,
PanelRoundMouthTransparent: 38,
PanelRoundMouthHighlight: 38,
PanelShapedMouth: 38,
PanelShapedMouthTransparent: 38,
PanelShapedMouthHighlight: 38,
PanelFishnetMouth: 38,
PanelCircleMouth: 38,
PanelCircleMouthTransparent: 38,
PanelCircleMouthHighlight: 38,
FillRoundMouth: 38,
FillRoundMouthTransparent: 38,
FillHoleRoundMouth: 38,
FillHoleRoundMouthTransparent: 38,
FillShapedMouth: 38,
FillShapedMouthTransparent: 38,
FillHoleShapedMouth: 38,
FillHoleShapedMouthTransparent: 38,
FillCircleMouth: 38,
FillCircleMouthTransparent: 38,
LiningRoundFace: 38,
LiningRoundFaceHighlight: 38,
LiningCrossFace: 38,
LiningCrossFaceHighlight: 38,
LiningRoundEye: 38,
LiningRoundEyeHighlight: 38,
LiningShapedEye: 38,
LiningShapedEyeHighlight: 38,
LiningRoundMouth: 38,
LiningShapedMouth: 38,
LiningCircleEye: 38,
LiningCircleEyeHighlight: 38,
LiningCircleMouth: 38,
},
Block: ["ItemMouth", "ItemMouth2", "ItemMouth3"],
},
},
{
// m15 - Shaped Mouth Opaque, filled Transparent + pinhole
Property: {
Effect: [E.BlockMouth],
OverridePriority: {
PanelHead: 38,
PanelHeadTransparent: 38,
PanelHeadHighlight: 38,
PanelNoEye: 38,
PanelNoEyeTransparent: 38,
PanelHoleNoEye: 38,
PanelHoleNoEyeTransparent: 38,
PanelNoEyeHighlight: 38,
PanelRoundEye: 38,
PanelRoundEyeTransparent: 38,
PanelRoundEyeHighlight: 38,
PanelShapedEye: 38,
PanelShapedEyeTransparent: 38,
PanelShapedEyeHighlight: 38,
PanelCircleEye: 38,
PanelCircleEyeTransparent: 38,
PanelCircleEyeHighlight: 38,
FillRoundEye: 38,
FillRoundEyeTransparent: 38,
FillHoleRoundEye: 38,
FillHoleRoundEyeTransparent: 38,
FillRoundEyeHighlight: 38,
FillShapedEye: 38,
FillShapedEyeTransparent: 38,
FillHoleShapedEye: 38,
FillHoleShapedEyeTransparent: 38,
FillShapedEyeHighlight: 38,
FillCircleEye: 38,
FillCircleEyeTransparent: 38,
PanelNoMouth: 38,
PanelNoMouthTransparent: 38,
PanelHoleNoMouth: 38,
PanelHoleNoMouthTransparent: 38,
PanelNoMouthHighlight: 38,
PanelRoundMouth: 38,
PanelRoundMouthTransparent: 38,
PanelRoundMouthHighlight: 38,
PanelShapedMouth: 38,
PanelShapedMouthTransparent: 38,
PanelShapedMouthHighlight: 38,
PanelFishnetMouth: 38,
PanelCircleMouth: 38,
PanelCircleMouthTransparent: 38,
PanelCircleMouthHighlight: 38,
FillRoundMouth: 38,
FillRoundMouthTransparent: 38,
FillHoleRoundMouth: 38,
FillHoleRoundMouthTransparent: 38,
FillShapedMouth: 38,
FillShapedMouthTransparent: 38,
FillHoleShapedMouth: 38,
FillHoleShapedMouthTransparent: 38,
FillCircleMouth: 38,
FillCircleMouthTransparent: 38,
LiningRoundFace: 38,
LiningRoundFaceHighlight: 38,
LiningCrossFace: 38,
LiningCrossFaceHighlight: 38,
LiningRoundEye: 38,
LiningRoundEyeHighlight: 38,
LiningShapedEye: 38,
LiningShapedEyeHighlight: 38,
LiningRoundMouth: 38,
LiningShapedMouth: 38,
LiningCircleEye: 38,
LiningCircleEyeHighlight: 38,
LiningCircleMouth: 38,
},
Block: ["ItemMouth", "ItemMouth2", "ItemMouth3"],
},
},
{
// m16 - Round Mouth Transparent, filled Opaque
Property: {
Effect: [E.GagEasy, E.BlockMouth],
OverridePriority: {
PanelHead: 38,
PanelHeadTransparent: 38,
PanelHeadHighlight: 38,
PanelNoEye: 38,
PanelNoEyeTransparent: 38,
PanelHoleNoEye: 38,
PanelHoleNoEyeTransparent: 38,
PanelNoEyeHighlight: 38,
PanelRoundEye: 38,
PanelRoundEyeTransparent: 38,
PanelRoundEyeHighlight: 38,
PanelShapedEye: 38,
PanelShapedEyeTransparent: 38,
PanelShapedEyeHighlight: 38,
PanelCircleEye: 38,
PanelCircleEyeTransparent: 38,
PanelCircleEyeHighlight: 38,
FillRoundEye: 38,
FillRoundEyeTransparent: 38,
FillHoleRoundEye: 38,
FillHoleRoundEyeTransparent: 38,
FillRoundEyeHighlight: 38,
FillShapedEye: 38,
FillShapedEyeTransparent: 38,
FillHoleShapedEye: 38,
FillHoleShapedEyeTransparent: 38,
FillShapedEyeHighlight: 38,
FillCircleEye: 38,
FillCircleEyeTransparent: 38,
PanelNoMouth: 38,
PanelNoMouthTransparent: 38,
PanelHoleNoMouth: 38,
PanelHoleNoMouthTransparent: 38,
PanelNoMouthHighlight: 38,
PanelRoundMouth: 38,
PanelRoundMouthTransparent: 38,
PanelRoundMouthHighlight: 38,
PanelShapedMouth: 38,
PanelShapedMouthTransparent: 38,
PanelShapedMouthHighlight: 38,
PanelFishnetMouth: 38,
PanelCircleMouth: 38,
PanelCircleMouthTransparent: 38,
PanelCircleMouthHighlight: 38,
FillRoundMouth: 38,
FillRoundMouthTransparent: 38,
FillHoleRoundMouth: 38,
FillHoleRoundMouthTransparent: 38,
FillShapedMouth: 38,
FillShapedMouthTransparent: 38,
FillHoleShapedMouth: 38,
FillHoleShapedMouthTransparent: 38,
FillCircleMouth: 38,
FillCircleMouthTransparent: 38,
LiningRoundFace: 38,
LiningRoundFaceHighlight: 38,
LiningCrossFace: 38,
LiningCrossFaceHighlight: 38,
LiningRoundEye: 38,
LiningRoundEyeHighlight: 38,
LiningShapedEye: 38,
LiningShapedEyeHighlight: 38,
LiningRoundMouth: 38,
LiningShapedMouth: 38,
LiningCircleEye: 38,
LiningCircleEyeHighlight: 38,
LiningCircleMouth: 38,
},
Block: ["ItemMouth", "ItemMouth2", "ItemMouth3"],
},
},
{
// m17 - Round Mouth Transparent, filled Opaque + pinhole
Property: {
Effect: [E.BlockMouth],
OverridePriority: {
PanelHead: 38,
PanelHeadTransparent: 38,
PanelHeadHighlight: 38,
PanelNoEye: 38,
PanelNoEyeTransparent: 38,
PanelHoleNoEye: 38,
PanelHoleNoEyeTransparent: 38,
PanelNoEyeHighlight: 38,
PanelRoundEye: 38,
PanelRoundEyeTransparent: 38,
PanelRoundEyeHighlight: 38,
PanelShapedEye: 38,
PanelShapedEyeTransparent: 38,
PanelShapedEyeHighlight: 38,
PanelCircleEye: 38,
PanelCircleEyeTransparent: 38,
PanelCircleEyeHighlight: 38,
FillRoundEye: 38,
FillRoundEyeTransparent: 38,
FillHoleRoundEye: 38,
FillHoleRoundEyeTransparent: 38,
FillRoundEyeHighlight: 38,
FillShapedEye: 38,
FillShapedEyeTransparent: 38,
FillHoleShapedEye: 38,
FillHoleShapedEyeTransparent: 38,
FillShapedEyeHighlight: 38,
FillCircleEye: 38,
FillCircleEyeTransparent: 38,
PanelNoMouth: 38,
PanelNoMouthTransparent: 38,
PanelHoleNoMouth: 38,
PanelHoleNoMouthTransparent: 38,
PanelNoMouthHighlight: 38,
PanelRoundMouth: 38,
PanelRoundMouthTransparent: 38,
PanelRoundMouthHighlight: 38,
PanelShapedMouth: 38,
PanelShapedMouthTransparent: 38,
PanelShapedMouthHighlight: 38,
PanelFishnetMouth: 38,
PanelCircleMouth: 38,
PanelCircleMouthTransparent: 38,
PanelCircleMouthHighlight: 38,
FillRoundMouth: 38,
FillRoundMouthTransparent: 38,
FillHoleRoundMouth: 38,
FillHoleRoundMouthTransparent: 38,
FillShapedMouth: 38,
FillShapedMouthTransparent: 38,
FillHoleShapedMouth: 38,
FillHoleShapedMouthTransparent: 38,
FillCircleMouth: 38,
FillCircleMouthTransparent: 38,
LiningRoundFace: 38,
LiningRoundFaceHighlight: 38,
LiningCrossFace: 38,
LiningCrossFaceHighlight: 38,
LiningRoundEye: 38,
LiningRoundEyeHighlight: 38,
LiningShapedEye: 38,
LiningShapedEyeHighlight: 38,
LiningRoundMouth: 38,
LiningShapedMouth: 38,
LiningCircleEye: 38,
LiningCircleEyeHighlight: 38,
LiningCircleMouth: 38,
},
Block: ["ItemMouth", "ItemMouth2", "ItemMouth3"],
},
},
{
// m18 - Round Mouth Transparent, filled Transparent
Property: {
Effect: [E.GagEasy, E.BlockMouth],
OverridePriority: {
PanelHead: 38,
PanelHeadTransparent: 38,
PanelHeadHighlight: 38,
PanelNoEye: 38,
PanelNoEyeTransparent: 38,
PanelHoleNoEye: 38,
PanelHoleNoEyeTransparent: 38,
PanelNoEyeHighlight: 38,
PanelRoundEye: 38,
PanelRoundEyeTransparent: 38,
PanelRoundEyeHighlight: 38,
PanelShapedEye: 38,
PanelShapedEyeTransparent: 38,
PanelShapedEyeHighlight: 38,
PanelCircleEye: 38,
PanelCircleEyeTransparent: 38,
PanelCircleEyeHighlight: 38,
FillRoundEye: 38,
FillRoundEyeTransparent: 38,
FillHoleRoundEye: 38,
FillHoleRoundEyeTransparent: 38,
FillRoundEyeHighlight: 38,
FillShapedEye: 38,
FillShapedEyeTransparent: 38,
FillHoleShapedEye: 38,
FillHoleShapedEyeTransparent: 38,
FillShapedEyeHighlight: 38,
FillCircleEye: 38,
FillCircleEyeTransparent: 38,
PanelNoMouth: 38,
PanelNoMouthTransparent: 38,
PanelHoleNoMouth: 38,
PanelHoleNoMouthTransparent: 38,
PanelNoMouthHighlight: 38,
PanelRoundMouth: 38,
PanelRoundMouthTransparent: 38,
PanelRoundMouthHighlight: 38,
PanelShapedMouth: 38,
PanelShapedMouthTransparent: 38,
PanelShapedMouthHighlight: 38,
PanelFishnetMouth: 38,
PanelCircleMouth: 38,
PanelCircleMouthTransparent: 38,
PanelCircleMouthHighlight: 38,
FillRoundMouth: 38,
FillRoundMouthTransparent: 38,
FillHoleRoundMouth: 38,
FillHoleRoundMouthTransparent: 38,
FillShapedMouth: 38,
FillShapedMouthTransparent: 38,
FillHoleShapedMouth: 38,
FillHoleShapedMouthTransparent: 38,
FillCircleMouth: 38,
FillCircleMouthTransparent: 38,
LiningRoundFace: 38,
LiningRoundFaceHighlight: 38,
LiningCrossFace: 38,
LiningCrossFaceHighlight: 38,
LiningRoundEye: 38,
LiningRoundEyeHighlight: 38,
LiningShapedEye: 38,
LiningShapedEyeHighlight: 38,
LiningRoundMouth: 38,
LiningShapedMouth: 38,
LiningCircleEye: 38,
LiningCircleEyeHighlight: 38,
LiningCircleMouth: 38,
},
Block: ["ItemMouth", "ItemMouth2", "ItemMouth3"],
},
},
{
// m19 - Round Mouth Transparent, filled Transparent + pinhole
Property: {
Effect: [E.BlockMouth],
OverridePriority: {
PanelHead: 38,
PanelHeadTransparent: 38,
PanelHeadHighlight: 38,
PanelNoEye: 38,
PanelNoEyeTransparent: 38,
PanelHoleNoEye: 38,
PanelHoleNoEyeTransparent: 38,
PanelNoEyeHighlight: 38,
PanelRoundEye: 38,
PanelRoundEyeTransparent: 38,
PanelRoundEyeHighlight: 38,
PanelShapedEye: 38,
PanelShapedEyeTransparent: 38,
PanelShapedEyeHighlight: 38,
PanelCircleEye: 38,
PanelCircleEyeTransparent: 38,
PanelCircleEyeHighlight: 38,
FillRoundEye: 38,
FillRoundEyeTransparent: 38,
FillHoleRoundEye: 38,
FillHoleRoundEyeTransparent: 38,
FillRoundEyeHighlight: 38,
FillShapedEye: 38,
FillShapedEyeTransparent: 38,
FillHoleShapedEye: 38,
FillHoleShapedEyeTransparent: 38,
FillShapedEyeHighlight: 38,
FillCircleEye: 38,
FillCircleEyeTransparent: 38,
PanelNoMouth: 38,
PanelNoMouthTransparent: 38,
PanelHoleNoMouth: 38,
PanelHoleNoMouthTransparent: 38,
PanelNoMouthHighlight: 38,
PanelRoundMouth: 38,
PanelRoundMouthTransparent: 38,
PanelRoundMouthHighlight: 38,
PanelShapedMouth: 38,
PanelShapedMouthTransparent: 38,
PanelShapedMouthHighlight: 38,
PanelFishnetMouth: 38,
PanelCircleMouth: 38,
PanelCircleMouthTransparent: 38,
PanelCircleMouthHighlight: 38,
FillRoundMouth: 38,
FillRoundMouthTransparent: 38,
FillHoleRoundMouth: 38,
FillHoleRoundMouthTransparent: 38,
FillShapedMouth: 38,
FillShapedMouthTransparent: 38,
FillHoleShapedMouth: 38,
FillHoleShapedMouthTransparent: 38,
FillCircleMouth: 38,
FillCircleMouthTransparent: 38,
LiningRoundFace: 38,
LiningRoundFaceHighlight: 38,
LiningCrossFace: 38,
LiningCrossFaceHighlight: 38,
LiningRoundEye: 38,
LiningRoundEyeHighlight: 38,
LiningShapedEye: 38,
LiningShapedEyeHighlight: 38,
LiningRoundMouth: 38,
LiningShapedMouth: 38,
LiningCircleEye: 38,
LiningCircleEyeHighlight: 38,
LiningCircleMouth: 38,
},
Block: ["ItemMouth", "ItemMouth2", "ItemMouth3"],
},
},
{
// m20 - Shaped Mouth Transparent, filled Opaque
Property: {
Effect: [E.GagEasy, E.BlockMouth],
OverridePriority: {
PanelHead: 38,
PanelHeadTransparent: 38,
PanelHeadHighlight: 38,
PanelNoEye: 38,
PanelNoEyeTransparent: 38,
PanelHoleNoEye: 38,
PanelHoleNoEyeTransparent: 38,
PanelNoEyeHighlight: 38,
PanelRoundEye: 38,
PanelRoundEyeTransparent: 38,
PanelRoundEyeHighlight: 38,
PanelShapedEye: 38,
PanelShapedEyeTransparent: 38,
PanelShapedEyeHighlight: 38,
PanelCircleEye: 38,
PanelCircleEyeTransparent: 38,
PanelCircleEyeHighlight: 38,
FillRoundEye: 38,
FillRoundEyeTransparent: 38,
FillHoleRoundEye: 38,
FillHoleRoundEyeTransparent: 38,
FillRoundEyeHighlight: 38,
FillShapedEye: 38,
FillShapedEyeTransparent: 38,
FillHoleShapedEye: 38,
FillHoleShapedEyeTransparent: 38,
FillShapedEyeHighlight: 38,
FillCircleEye: 38,
FillCircleEyeTransparent: 38,
PanelNoMouth: 38,
PanelNoMouthTransparent: 38,
PanelHoleNoMouth: 38,
PanelHoleNoMouthTransparent: 38,
PanelNoMouthHighlight: 38,
PanelRoundMouth: 38,
PanelRoundMouthTransparent: 38,
PanelRoundMouthHighlight: 38,
PanelShapedMouth: 38,
PanelShapedMouthTransparent: 38,
PanelShapedMouthHighlight: 38,
PanelFishnetMouth: 38,
PanelCircleMouth: 38,
PanelCircleMouthTransparent: 38,
PanelCircleMouthHighlight: 38,
FillRoundMouth: 38,
FillRoundMouthTransparent: 38,
FillHoleRoundMouth: 38,
FillHoleRoundMouthTransparent: 38,
FillShapedMouth: 38,
FillShapedMouthTransparent: 38,
FillHoleShapedMouth: 38,
FillHoleShapedMouthTransparent: 38,
FillCircleMouth: 38,
FillCircleMouthTransparent: 38,
LiningRoundFace: 38,
LiningRoundFaceHighlight: 38,
LiningCrossFace: 38,
LiningCrossFaceHighlight: 38,
LiningRoundEye: 38,
LiningRoundEyeHighlight: 38,
LiningShapedEye: 38,
LiningShapedEyeHighlight: 38,
LiningRoundMouth: 38,
LiningShapedMouth: 38,
LiningCircleEye: 38,
LiningCircleEyeHighlight: 38,
LiningCircleMouth: 38,
},
Block: ["ItemMouth", "ItemMouth2", "ItemMouth3"],
},
},
{
// m21 - Shaped Mouth Transparent, filled Opaque + pinhole
Property: {
Effect: [E.BlockMouth],
OverridePriority: {
PanelHead: 38,
PanelHeadTransparent: 38,
PanelHeadHighlight: 38,
PanelNoEye: 38,
PanelNoEyeTransparent: 38,
PanelHoleNoEye: 38,
PanelHoleNoEyeTransparent: 38,
PanelNoEyeHighlight: 38,
PanelRoundEye: 38,
PanelRoundEyeTransparent: 38,
PanelRoundEyeHighlight: 38,
PanelShapedEye: 38,
PanelShapedEyeTransparent: 38,
PanelShapedEyeHighlight: 38,
PanelCircleEye: 38,
PanelCircleEyeTransparent: 38,
PanelCircleEyeHighlight: 38,
FillRoundEye: 38,
FillRoundEyeTransparent: 38,
FillHoleRoundEye: 38,
FillHoleRoundEyeTransparent: 38,
FillRoundEyeHighlight: 38,
FillShapedEye: 38,
FillShapedEyeTransparent: 38,
FillHoleShapedEye: 38,
FillHoleShapedEyeTransparent: 38,
FillShapedEyeHighlight: 38,
FillCircleEye: 38,
FillCircleEyeTransparent: 38,
PanelNoMouth: 38,
PanelNoMouthTransparent: 38,
PanelHoleNoMouth: 38,
PanelHoleNoMouthTransparent: 38,
PanelNoMouthHighlight: 38,
PanelRoundMouth: 38,
PanelRoundMouthTransparent: 38,
PanelRoundMouthHighlight: 38,
PanelShapedMouth: 38,
PanelShapedMouthTransparent: 38,
PanelShapedMouthHighlight: 38,
PanelFishnetMouth: 38,
PanelCircleMouth: 38,
PanelCircleMouthTransparent: 38,
PanelCircleMouthHighlight: 38,
FillRoundMouth: 38,
FillRoundMouthTransparent: 38,
FillHoleRoundMouth: 38,
FillHoleRoundMouthTransparent: 38,
FillShapedMouth: 38,
FillShapedMouthTransparent: 38,
FillHoleShapedMouth: 38,
FillHoleShapedMouthTransparent: 38,
FillCircleMouth: 38,
FillCircleMouthTransparent: 38,
LiningRoundFace: 38,
LiningRoundFaceHighlight: 38,
LiningCrossFace: 38,
LiningCrossFaceHighlight: 38,
LiningRoundEye: 38,
LiningRoundEyeHighlight: 38,
LiningShapedEye: 38,
LiningShapedEyeHighlight: 38,
LiningRoundMouth: 38,
LiningShapedMouth: 38,
LiningCircleEye: 38,
LiningCircleEyeHighlight: 38,
LiningCircleMouth: 38,
},
Block: ["ItemMouth", "ItemMouth2", "ItemMouth3"],
},
},
{
// m22 - Shaped Mouth Transparent, filled Transparent
Property: {
Effect: [E.GagEasy, E.BlockMouth],
OverridePriority: {
PanelHead: 38,
PanelHeadTransparent: 38,
PanelHeadHighlight: 38,
PanelNoEye: 38,
PanelNoEyeTransparent: 38,
PanelHoleNoEye: 38,
PanelHoleNoEyeTransparent: 38,
PanelNoEyeHighlight: 38,
PanelRoundEye: 38,
PanelRoundEyeTransparent: 38,
PanelRoundEyeHighlight: 38,
PanelShapedEye: 38,
PanelShapedEyeTransparent: 38,
PanelShapedEyeHighlight: 38,
PanelCircleEye: 38,
PanelCircleEyeTransparent: 38,
PanelCircleEyeHighlight: 38,
FillRoundEye: 38,
FillRoundEyeTransparent: 38,
FillHoleRoundEye: 38,
FillHoleRoundEyeTransparent: 38,
FillRoundEyeHighlight: 38,
FillShapedEye: 38,
FillShapedEyeTransparent: 38,
FillHoleShapedEye: 38,
FillHoleShapedEyeTransparent: 38,
FillShapedEyeHighlight: 38,
FillCircleEye: 38,
FillCircleEyeTransparent: 38,
PanelNoMouth: 38,
PanelNoMouthTransparent: 38,
PanelHoleNoMouth: 38,
PanelHoleNoMouthTransparent: 38,
PanelNoMouthHighlight: 38,
PanelRoundMouth: 38,
PanelRoundMouthTransparent: 38,
PanelRoundMouthHighlight: 38,
PanelShapedMouth: 38,
PanelShapedMouthTransparent: 38,
PanelShapedMouthHighlight: 38,
PanelFishnetMouth: 38,
PanelCircleMouth: 38,
PanelCircleMouthTransparent: 38,
PanelCircleMouthHighlight: 38,
FillRoundMouth: 38,
FillRoundMouthTransparent: 38,
FillHoleRoundMouth: 38,
FillHoleRoundMouthTransparent: 38,
FillShapedMouth: 38,
FillShapedMouthTransparent: 38,
FillHoleShapedMouth: 38,
FillHoleShapedMouthTransparent: 38,
FillCircleMouth: 38,
FillCircleMouthTransparent: 38,
LiningRoundFace: 38,
LiningRoundFaceHighlight: 38,
LiningCrossFace: 38,
LiningCrossFaceHighlight: 38,
LiningRoundEye: 38,
LiningRoundEyeHighlight: 38,
LiningShapedEye: 38,
LiningShapedEyeHighlight: 38,
LiningRoundMouth: 38,
LiningShapedMouth: 38,
LiningCircleEye: 38,
LiningCircleEyeHighlight: 38,
LiningCircleMouth: 38,
},
Block: ["ItemMouth", "ItemMouth2", "ItemMouth3"],
},
},
{
// m23 - Shaped Mouth Transparent, filled Transparent + pinhole
Property: {
Effect: [E.BlockMouth],
OverridePriority: {
PanelHead: 38,
PanelHeadTransparent: 38,
PanelHeadHighlight: 38,
PanelNoEye: 38,
PanelNoEyeTransparent: 38,
PanelHoleNoEye: 38,
PanelHoleNoEyeTransparent: 38,
PanelNoEyeHighlight: 38,
PanelRoundEye: 38,
PanelRoundEyeTransparent: 38,
PanelRoundEyeHighlight: 38,
PanelShapedEye: 38,
PanelShapedEyeTransparent: 38,
PanelShapedEyeHighlight: 38,
PanelCircleEye: 38,
PanelCircleEyeTransparent: 38,
PanelCircleEyeHighlight: 38,
FillRoundEye: 38,
FillRoundEyeTransparent: 38,
FillHoleRoundEye: 38,
FillHoleRoundEyeTransparent: 38,
FillRoundEyeHighlight: 38,
FillShapedEye: 38,
FillShapedEyeTransparent: 38,
FillHoleShapedEye: 38,
FillHoleShapedEyeTransparent: 38,
FillShapedEyeHighlight: 38,
FillCircleEye: 38,
FillCircleEyeTransparent: 38,
PanelNoMouth: 38,
PanelNoMouthTransparent: 38,
PanelHoleNoMouth: 38,
PanelHoleNoMouthTransparent: 38,
PanelNoMouthHighlight: 38,
PanelRoundMouth: 38,
PanelRoundMouthTransparent: 38,
PanelRoundMouthHighlight: 38,
PanelShapedMouth: 38,
PanelShapedMouthTransparent: 38,
PanelShapedMouthHighlight: 38,
PanelFishnetMouth: 38,
PanelCircleMouth: 38,
PanelCircleMouthTransparent: 38,
PanelCircleMouthHighlight: 38,
FillRoundMouth: 38,
FillRoundMouthTransparent: 38,
FillHoleRoundMouth: 38,
FillHoleRoundMouthTransparent: 38,
FillShapedMouth: 38,
FillShapedMouthTransparent: 38,
FillHoleShapedMouth: 38,
FillHoleShapedMouthTransparent: 38,
FillCircleMouth: 38,
FillCircleMouthTransparent: 38,
LiningRoundFace: 38,
LiningRoundFaceHighlight: 38,
LiningCrossFace: 38,
LiningCrossFaceHighlight: 38,
LiningRoundEye: 38,
LiningRoundEyeHighlight: 38,
LiningShapedEye: 38,
LiningShapedEyeHighlight: 38,
LiningRoundMouth: 38,
LiningShapedMouth: 38,
LiningCircleEye: 38,
LiningCircleEyeHighlight: 38,
LiningCircleMouth: 38,
},
Block: ["ItemMouth", "ItemMouth2", "ItemMouth3"],
},
},
{
// m24 - Open
Property: { Effect: [] },
},
{
// m25 - Fishnet Mouth
Property: {
Effect: [E.BlockMouth],
OverridePriority: {
PanelHead: 38,
PanelHeadTransparent: 38,
PanelHeadHighlight: 38,
PanelNoEye: 38,
PanelNoEyeTransparent: 38,
PanelHoleNoEye: 38,
PanelHoleNoEyeTransparent: 38,
PanelNoEyeHighlight: 38,
PanelRoundEye: 38,
PanelRoundEyeTransparent: 38,
PanelRoundEyeHighlight: 38,
PanelShapedEye: 38,
PanelShapedEyeTransparent: 38,
PanelShapedEyeHighlight: 38,
PanelCircleEye: 38,
PanelCircleEyeTransparent: 38,
PanelCircleEyeHighlight: 38,
FillRoundEye: 38,
FillRoundEyeTransparent: 38,
FillHoleRoundEye: 38,
FillHoleRoundEyeTransparent: 38,
FillRoundEyeHighlight: 38,
FillShapedEye: 38,
FillShapedEyeTransparent: 38,
FillHoleShapedEye: 38,
FillHoleShapedEyeTransparent: 38,
FillShapedEyeHighlight: 38,
FillCircleEye: 38,
FillCircleEyeTransparent: 38,
PanelNoMouth: 38,
PanelNoMouthTransparent: 38,
PanelHoleNoMouth: 38,
PanelHoleNoMouthTransparent: 38,
PanelNoMouthHighlight: 38,
PanelRoundMouth: 38,
PanelRoundMouthTransparent: 38,
PanelRoundMouthHighlight: 38,
PanelShapedMouth: 38,
PanelShapedMouthTransparent: 38,
PanelShapedMouthHighlight: 38,
PanelFishnetMouth: 38,
PanelCircleMouth: 38,
PanelCircleMouthTransparent: 38,
PanelCircleMouthHighlight: 38,
FillRoundMouth: 38,
FillRoundMouthTransparent: 38,
FillHoleRoundMouth: 38,
FillHoleRoundMouthTransparent: 38,
FillShapedMouth: 38,
FillShapedMouthTransparent: 38,
FillHoleShapedMouth: 38,
FillHoleShapedMouthTransparent: 38,
FillCircleMouth: 38,
FillCircleMouthTransparent: 38,
LiningRoundFace: 38,
LiningRoundFaceHighlight: 38,
LiningCrossFace: 38,
LiningCrossFaceHighlight: 38,
LiningRoundEye: 38,
LiningRoundEyeHighlight: 38,
LiningShapedEye: 38,
LiningShapedEyeHighlight: 38,
LiningRoundMouth: 38,
LiningShapedMouth: 38,
LiningCircleEye: 38,
LiningCircleEyeHighlight: 38,
LiningCircleMouth: 38,
},
Block: ["ItemMouth", "ItemMouth2", "ItemMouth3"],
},
},
{
// m26 - Circle Mouth
Property: { Effect: [E.OpenMouth] },
},
{
// m27 - Circle Mouth Transparent
Property: { Effect: [E.OpenMouth] },
},
{
// m28 - Circle Mouth Opaque, filled Opaque
Property: {
Effect: [E.GagEasy, E.BlockMouth],
OverridePriority: {
PanelHead: 38,
PanelHeadTransparent: 38,
PanelHeadHighlight: 38,
PanelNoEye: 38,
PanelNoEyeTransparent: 38,
PanelHoleNoEye: 38,
PanelHoleNoEyeTransparent: 38,
PanelNoEyeHighlight: 38,
PanelRoundEye: 38,
PanelRoundEyeTransparent: 38,
PanelRoundEyeHighlight: 38,
PanelShapedEye: 38,
PanelShapedEyeTransparent: 38,
PanelShapedEyeHighlight: 38,
PanelCircleEye: 38,
PanelCircleEyeTransparent: 38,
PanelCircleEyeHighlight: 38,
FillRoundEye: 38,
FillRoundEyeTransparent: 38,
FillHoleRoundEye: 38,
FillHoleRoundEyeTransparent: 38,
FillRoundEyeHighlight: 38,
FillShapedEye: 38,
FillShapedEyeTransparent: 38,
FillHoleShapedEye: 38,
FillHoleShapedEyeTransparent: 38,
FillShapedEyeHighlight: 38,
FillCircleEye: 38,
FillCircleEyeTransparent: 38,
PanelNoMouth: 38,
PanelNoMouthTransparent: 38,
PanelHoleNoMouth: 38,
PanelHoleNoMouthTransparent: 38,
PanelNoMouthHighlight: 38,
PanelRoundMouth: 38,
PanelRoundMouthTransparent: 38,
PanelRoundMouthHighlight: 38,
PanelShapedMouth: 38,
PanelShapedMouthTransparent: 38,
PanelShapedMouthHighlight: 38,
PanelFishnetMouth: 38,
PanelCircleMouth: 38,
PanelCircleMouthTransparent: 38,
PanelCircleMouthHighlight: 38,
FillRoundMouth: 38,
FillRoundMouthTransparent: 38,
FillHoleRoundMouth: 38,
FillHoleRoundMouthTransparent: 38,
FillShapedMouth: 38,
FillShapedMouthTransparent: 38,
FillHoleShapedMouth: 38,
FillHoleShapedMouthTransparent: 38,
FillCircleMouth: 38,
FillCircleMouthTransparent: 38,
LiningRoundFace: 38,
LiningRoundFaceHighlight: 38,
LiningCrossFace: 38,
LiningCrossFaceHighlight: 38,
LiningRoundEye: 38,
LiningRoundEyeHighlight: 38,
LiningShapedEye: 38,
LiningShapedEyeHighlight: 38,
LiningRoundMouth: 38,
LiningShapedMouth: 38,
LiningCircleEye: 38,
LiningCircleEyeHighlight: 38,
LiningCircleMouth: 38,
},
Block: ["ItemMouth", "ItemMouth2", "ItemMouth3"],
},
},
{
// m29 - Circle Mouth Transparent, filled Opaque
Property: {
Effect: [E.GagEasy, E.BlockMouth],
OverridePriority: {
PanelHead: 38,
PanelHeadTransparent: 38,
PanelHeadHighlight: 38,
PanelNoEye: 38,
PanelNoEyeTransparent: 38,
PanelHoleNoEye: 38,
PanelHoleNoEyeTransparent: 38,
PanelNoEyeHighlight: 38,
PanelRoundEye: 38,
PanelRoundEyeTransparent: 38,
PanelRoundEyeHighlight: 38,
PanelShapedEye: 38,
PanelShapedEyeTransparent: 38,
PanelShapedEyeHighlight: 38,
PanelCircleEye: 38,
PanelCircleEyeTransparent: 38,
PanelCircleEyeHighlight: 38,
FillRoundEye: 38,
FillRoundEyeTransparent: 38,
FillHoleRoundEye: 38,
FillHoleRoundEyeTransparent: 38,
FillRoundEyeHighlight: 38,
FillShapedEye: 38,
FillShapedEyeTransparent: 38,
FillHoleShapedEye: 38,
FillHoleShapedEyeTransparent: 38,
FillShapedEyeHighlight: 38,
FillCircleEye: 38,
FillCircleEyeTransparent: 38,
PanelNoMouth: 38,
PanelNoMouthTransparent: 38,
PanelHoleNoMouth: 38,
PanelHoleNoMouthTransparent: 38,
PanelNoMouthHighlight: 38,
PanelRoundMouth: 38,
PanelRoundMouthTransparent: 38,
PanelRoundMouthHighlight: 38,
PanelShapedMouth: 38,
PanelShapedMouthTransparent: 38,
PanelShapedMouthHighlight: 38,
PanelFishnetMouth: 38,
PanelCircleMouth: 38,
PanelCircleMouthTransparent: 38,
PanelCircleMouthHighlight: 38,
FillRoundMouth: 38,
FillRoundMouthTransparent: 38,
FillHoleRoundMouth: 38,
FillHoleRoundMouthTransparent: 38,
FillShapedMouth: 38,
FillShapedMouthTransparent: 38,
FillHoleShapedMouth: 38,
FillHoleShapedMouthTransparent: 38,
FillCircleMouth: 38,
FillCircleMouthTransparent: 38,
LiningRoundFace: 38,
LiningRoundFaceHighlight: 38,
LiningCrossFace: 38,
LiningCrossFaceHighlight: 38,
LiningRoundEye: 38,
LiningRoundEyeHighlight: 38,
LiningShapedEye: 38,
LiningShapedEyeHighlight: 38,
LiningRoundMouth: 38,
LiningShapedMouth: 38,
LiningCircleEye: 38,
LiningCircleEyeHighlight: 38,
LiningCircleMouth: 38,
},
Block: ["ItemMouth", "ItemMouth2", "ItemMouth3"],
},
},
{
// m30 - Circle Mouth Opaque, filled Transparent
Property: {
Effect: [E.GagEasy, E.BlockMouth],
OverridePriority: {
PanelHead: 38,
PanelHeadTransparent: 38,
PanelHeadHighlight: 38,
PanelNoEye: 38,
PanelNoEyeTransparent: 38,
PanelHoleNoEye: 38,
PanelHoleNoEyeTransparent: 38,
PanelNoEyeHighlight: 38,
PanelRoundEye: 38,
PanelRoundEyeTransparent: 38,
PanelRoundEyeHighlight: 38,
PanelShapedEye: 38,
PanelShapedEyeTransparent: 38,
PanelShapedEyeHighlight: 38,
PanelCircleEye: 38,
PanelCircleEyeTransparent: 38,
PanelCircleEyeHighlight: 38,
FillRoundEye: 38,
FillRoundEyeTransparent: 38,
FillHoleRoundEye: 38,
FillHoleRoundEyeTransparent: 38,
FillRoundEyeHighlight: 38,
FillShapedEye: 38,
FillShapedEyeTransparent: 38,
FillHoleShapedEye: 38,
FillHoleShapedEyeTransparent: 38,
FillShapedEyeHighlight: 38,
FillCircleEye: 38,
FillCircleEyeTransparent: 38,
PanelNoMouth: 38,
PanelNoMouthTransparent: 38,
PanelHoleNoMouth: 38,
PanelHoleNoMouthTransparent: 38,
PanelNoMouthHighlight: 38,
PanelRoundMouth: 38,
PanelRoundMouthTransparent: 38,
PanelRoundMouthHighlight: 38,
PanelShapedMouth: 38,
PanelShapedMouthTransparent: 38,
PanelShapedMouthHighlight: 38,
PanelFishnetMouth: 38,
PanelCircleMouth: 38,
PanelCircleMouthTransparent: 38,
PanelCircleMouthHighlight: 38,
FillRoundMouth: 38,
FillRoundMouthTransparent: 38,
FillHoleRoundMouth: 38,
FillHoleRoundMouthTransparent: 38,
FillShapedMouth: 38,
FillShapedMouthTransparent: 38,
FillHoleShapedMouth: 38,
FillHoleShapedMouthTransparent: 38,
FillCircleMouth: 38,
FillCircleMouthTransparent: 38,
LiningRoundFace: 38,
LiningRoundFaceHighlight: 38,
LiningCrossFace: 38,
LiningCrossFaceHighlight: 38,
LiningRoundEye: 38,
LiningRoundEyeHighlight: 38,
LiningShapedEye: 38,
LiningShapedEyeHighlight: 38,
LiningRoundMouth: 38,
LiningShapedMouth: 38,
LiningCircleEye: 38,
LiningCircleEyeHighlight: 38,
LiningCircleMouth: 38,
},
Block: ["ItemMouth", "ItemMouth2", "ItemMouth3"],
},
},
{
// m31 - Circle Mouth Transparent, filled Transparent
Property: {
Effect: [E.GagEasy, E.BlockMouth],
OverridePriority: {
PanelHead: 38,
PanelHeadTransparent: 38,
PanelHeadHighlight: 38,
PanelNoEye: 38,
PanelNoEyeTransparent: 38,
PanelHoleNoEye: 38,
PanelHoleNoEyeTransparent: 38,
PanelNoEyeHighlight: 38,
PanelRoundEye: 38,
PanelRoundEyeTransparent: 38,
PanelRoundEyeHighlight: 38,
PanelShapedEye: 38,
PanelShapedEyeTransparent: 38,
PanelShapedEyeHighlight: 38,
PanelCircleEye: 38,
PanelCircleEyeTransparent: 38,
PanelCircleEyeHighlight: 38,
FillRoundEye: 38,
FillRoundEyeTransparent: 38,
FillHoleRoundEye: 38,
FillHoleRoundEyeTransparent: 38,
FillRoundEyeHighlight: 38,
FillShapedEye: 38,
FillShapedEyeTransparent: 38,
FillHoleShapedEye: 38,
FillHoleShapedEyeTransparent: 38,
FillShapedEyeHighlight: 38,
FillCircleEye: 38,
FillCircleEyeTransparent: 38,
PanelNoMouth: 38,
PanelNoMouthTransparent: 38,
PanelHoleNoMouth: 38,
PanelHoleNoMouthTransparent: 38,
PanelNoMouthHighlight: 38,
PanelRoundMouth: 38,
PanelRoundMouthTransparent: 38,
PanelRoundMouthHighlight: 38,
PanelShapedMouth: 38,
PanelShapedMouthTransparent: 38,
PanelShapedMouthHighlight: 38,
PanelFishnetMouth: 38,
PanelCircleMouth: 38,
PanelCircleMouthTransparent: 38,
PanelCircleMouthHighlight: 38,
FillRoundMouth: 38,
FillRoundMouthTransparent: 38,
FillHoleRoundMouth: 38,
FillHoleRoundMouthTransparent: 38,
FillShapedMouth: 38,
FillShapedMouthTransparent: 38,
FillHoleShapedMouth: 38,
FillHoleShapedMouthTransparent: 38,
FillCircleMouth: 38,
FillCircleMouthTransparent: 38,
LiningRoundFace: 38,
LiningRoundFaceHighlight: 38,
LiningCrossFace: 38,
LiningCrossFaceHighlight: 38,
LiningRoundEye: 38,
LiningRoundEyeHighlight: 38,
LiningShapedEye: 38,
LiningShapedEyeHighlight: 38,
LiningRoundMouth: 38,
LiningShapedMouth: 38,
LiningCircleEye: 38,
LiningCircleEyeHighlight: 38,
LiningCircleMouth: 38,
},
Block: ["ItemMouth", "ItemMouth2", "ItemMouth3"],
},
},
],
},
{
Name: "EPanel",
Key: "e",
DrawImages: true,
Options: [
{
// e0 - No Eyes
Property: { Effect: [E.BlindHeavy] },
},
{
// e1 - Hole Only
Property: { Effect: [E.BlindLight] },
},
{
// e2 - Round Eyes
Property: { Effect: [] },
},
{
// e3 - Shaped Eyes
Property: { Effect: [] },
},
{
// e4 - No Eyes Transparent
Property: { Effect: [E.BlindLight] },
},
{
// e5 - Hole Only Transparent
Property: { Effect: [] },
},
{
// e6 - Round Eyes Transparent
Property: { Effect: [] },
},
{
// e7 - Shaped Eyes Transparent
Property: { Effect: [] },
},
{
// e8 - Round Eyes Opaque, filled Opaque
Property: { Effect: [E.BlindHeavy] },
},
{
// e9 - Round Eyes Opaque, filled Opaque + pinhole
Property: { Effect: [E.BlindLight] },
},
{
// e10 - Round Eyes Opaque, filled Transparent
Property: { Effect: [E.BlindLight] },
},
{
// e11 - Round Eyes Opaque, filled Transparent + pinhole
Property: { Effect: [] },
},
{
// e12 - Shaped Eyes Opaque, filled Opaque
Property: { Effect: [E.BlindHeavy] },
},
{
// e13 - Shaped Eyes Opaque, filled Opaque + pinhole
Property: { Effect: [E.BlindLight] },
},
{
// e14 - Shaped Eyes Opaque, filled Transparent
Property: { Effect: [E.BlindLight] },
},
{
// e15 - Shaped Eyes Opaque, filled Transparent + pinhole
Property: { Effect: [] },
},
{
// e16 - Round Eyes Transparent, filled Opaque
Property: { Effect: [E.BlindHeavy] },
},
{
// e17 - Round Eyes Transparent, filled Opaque + pinhole
Property: { Effect: [E.BlindLight] },
},
{
// e18 - Round Eyes Transparent, filled Transparent
Property: { Effect: [E.BlindLight] },
},
{
// e19 - Round Eyes Transparent, filled Transparent + pinhole
Property: { Effect: [] },
},
{
// e20 - Shaped Eyes Transparent, filled Opaque
Property: { Effect: [E.BlindHeavy] },
},
{
// e21 - Shaped Eyes Transparent, filled Opaque + pinhole
Property: { Effect: [E.BlindLight] },
},
{
// e22 - Shaped Eyes Transparent, filled Transparent
Property: { Effect: [E.BlindLight] },
},
{
// e23 - Shaped Eyes Transparent, filled Transparent + pinhole
Property: { Effect: [] },
},
{
// e24 - Circle Eyes
Property: { Effect: [] },
},
{
// e25 - Circle Eyes Transparent
Property: { Effect: [] },
},
{
// e26 - Circle Eyes Opaque, filled Opaque
Property: { Effect: [E.BlindHeavy] },
},
{
// e27 - Circle Eyes Opaque, filled Transparent
Property: { Effect: [E.BlindLight] },
},
{
// e28 - Circle Eyes Transparent, filled Opaque
Property: { Effect: [E.BlindHeavy] },
},
{
// e29 - Circle Eyes Transparent, filled Transparent
Property: { Effect: [E.BlindLight] },
},
],
},
{
Name: "HeadT",
Key: "x",
Options: [{}, {}], // Opaque, Transparent
},
{
Name: "HairShow",
Key: "h",
Options: [
{}, // h0 - Show Hair
{
// h1 - Hide Hair
Property: {
Hide: ["HairFront", "HairBack"],
Attribute: ["ShortHair"],
},
},
{
// h2 - Show Back Hair
Property: {
Hide: ["HairFront"],
Attribute: ["ShortHair"],
},
},
{
// h3 - Hide Hair and Accessories
Property: {
Hide: [
"HairFront",
"HairBack",
"HairAccessory1",
"HairAccessory2",
"HairAccessory3",
],
Attribute: ["ShortHair"],
},
},
],
},
{
Name: "ZHood",
Key: "z",
Options: [
{
// z0 - None
Property: { Effect: [] },
},
{
// z1 - Open
Property: {
Effect: [],
Hide: ["HairFront"],
HideItem: ["MaskOpenFaceHood", "MaskFaceVeil", "MaskFoxMask"],
},
},
{
// z2 - Closed
Property: {
Effect: [E.BlindHeavy, E.GagEasy, E.BlockMouth],
Hide: ["HairFront", "Mask"],
Block: [
"ItemMouth",
"ItemMouth2",
"ItemMouth3",
"ItemHead",
"ItemNose",
],
},
},
{
// z3 - Open Transparent
Property: {
Effect: [],
Hide: ["HairFront"],
HideItem: ["MaskOpenFaceHood", "MaskFaceVeil", "MaskFoxMask"],
},
},
{
// z4 - Closed Transparent
Property: {
Effect: [E.BlindLight, E.GagEasy, E.BlockMouth],
Hide: ["HairFront"],
HideItem: ["MaskOpenFaceHood", "MaskFaceVeil", "MaskFoxMask"],
Block: [
"ItemMouth",
"ItemMouth2",
"ItemMouth3",
"ItemHead",
"ItemNose",
],
},
},
],
},
],
ChangeWhenLocked: false,
DrawImages: false,
}, // CustomLatexHood
HarnessCatMask: {
Archetype: ExtendedArchetype.TYPED,
Options: [{ Name: "NoEars" }, { Name: "Ears" }],
ChangeWhenLocked: false,
}, // HarnessCatMask
InflatableGagMask: {
Archetype: ExtendedArchetype.MODULAR,
ChatSetting: ModularItemChatSetting.PER_MODULE,
Modules: [
{
Name: "Lenses",
Key: "l",
Options: [
{
Property: { Effect: [] },
},
{
Property: {
Effect: [E.BlindLight],
Tint: [{ Color: 2, Strength: 0.2 }],
},
},
{
Property: { Effect: [E.BlindHeavy] },
},
],
},
{
Name: "GagLevel",
Key: "g",
Options: [
{ Property: { Effect: [E.BlockMouth] } },
{ Property: { Effect: [E.BlockMouth, E.GagLight] } },
{ Property: { Effect: [E.BlockMouth, E.GagMedium] } },
{ Property: { Effect: [E.BlockMouth, E.GagVeryHeavy] } },
],
},
{
Name: "Hair",
Key: "h",
Options: [
{ Property: { Hide: ["HairBack"] } },
{ Property: { Hide: [] } },
],
},
],
}, //Inflatable Gag Mask
BigMouthHood: {
Archetype: ExtendedArchetype.TYPED,
Options: [
{ Name: "Empty", Property: { Effect: [] } },
{
Name: "Lenses",
Property: {
Effect: [E.BlindLight],
Tint: [{ Color: 2, Strength: 0.2 }],
},
},
{
Name: "Mesh",
Property: {
Effect: [E.BlindNormal, E.BlockWardrobe],
},
},
{
Name: "Slim",
Property: {
Effect: [E.BlindHeavy, E.BlockWardrobe],
},
},
],
}, //BigMouthHood
OpenMouthPlugHood: {
Archetype: ExtendedArchetype.MODULAR,
ChatSetting: ModularItemChatSetting.PER_MODULE,
Modules: [
{
Name: "FakeMouth",
Key: "m",
Options: [
{ Property: { Effect: [] } },
{ Property: { Effect: [E.BlockMouth] } },
], //None, Fake Mouth
},
{
Name: "Thickness",
Key: "t",
Options: [{}, {}],
}, // Thick, Thin
],
}, // Open Mouth Plug Hood
LatexDogHood: {
Archetype: ExtendedArchetype.TYPED,
Options: [{ Name: "Thick" }, { Name: "Thin" }],
}, //Latex Dog Hood
VacHood: {
Archetype: ExtendedArchetype.MODULAR,
Modules: [
{
Name: "Breathplay",
Key: "bp",
Options: [
{
// hp0 - None
Property: { Effect: [] },
},
{
// hp1 - Hand Pump
Property: {
Effect: [E.GagMedium, E.BlockMouth],
},
},
{
// r1 - Rebreather
Property: {
Effect: [E.GagMedium, E.BlockMouth],
},
},
],
},
{
Name: "PlasticClip",
Key: "pc",
Options: [
{
// pc0 - None
Property: { Effect: [] },
},
{
// pc1 - Tube Clamped
Property: {
Effect: [E.GagMedium, E.BlockMouth],
},
},
],
},
],
}, //VacHood
LatexHabit: {
Archetype: ExtendedArchetype.TYPED,
CopyConfig: { GroupName: "Hat", AssetName: "LatexHabit" },
}, // Latex Habit
LatexDogMask: {
Archetype: ExtendedArchetype.MODULAR,
Modules: [
{
Name: "Muzzle",
Key: "m",
Options: [
{
// M0 - None
Property: { Effect: [] },
},
{
// M1 - muzzled
Property: { Effect: [E.GagMedium, E.BlockMouth] },
},
],
},
{
Name: "Lenses",
Key: "l",
Options: [
{
// l0 - None
Property: { Effect: [] },
},
{
// l1 - Covered
Property: { Effect: [E.BlindLight] },
},
],
},
{
Name: "Collar",
Key: "c",
Options: [
{
// M0 - None
Property: { Effect: [] },
},
{
// M1 - Collar
Property: { Effect: [] },
},
],
},
],
}, //Latex Dog Mask
CanvasHood: {
Archetype: ExtendedArchetype.TEXT,
MaxLength: { Text: 12 },
Font: "'Saira Stencil One', 'Arial', sans-serif",
ScriptHooks: {
AfterDraw: AssetsItemHoodCanvasHoodAfterDrawHook,
},
}, // CanvasHood
SpaceMask: {
Archetype: ExtendedArchetype.TYPED,
ChatTags: [CommonChatTags.SOURCE_CHAR, CommonChatTags.DEST_CHAR],
Options: [
{
Name: "One",
Property: {
Hide: [
"HairFront",
"HairBack",
"Hat",
"HairAccessory1",
"HairAccessory2",
"HairAccessory3",
"ItemEars",
],
HideItem: ["MaskFuturisticVisor", "MaskShinobiMask"],
},
},
{
Name: "Two",
Property: {
Hide: [
"HairFront",
"HairBack",
"Hat",
"HairAccessory1",
"HairAccessory2",
"HairAccessory3",
"ItemEars",
],
HideItem: ["MaskFuturisticVisor", "MaskShinobiMask"],
},
},
{
Name: "Three",
Property: {
Hide: [
"HairFront",
"HairBack",
"Hat",
"HairAccessory1",
"HairAccessory2",
"HairAccessory3",
"ItemEars",
],
HideItem: ["MaskFuturisticVisor", "MaskShinobiMask"],
},
},
{
Name: "Four",
Property: {
Hide: [
"HairFront",
"HairBack",
"Hat",
"HairAccessory1",
"HairAccessory2",
"HairAccessory3",
"ItemEars",
],
HideItem: ["MaskFuturisticVisor", "MaskShinobiMask"],
},
},
{
Name: "Five",
Property: {
Hide: [
"HairFront",
"HairBack",
"Hat",
"HairAccessory1",
"HairAccessory2",
"HairAccessory3",
"ItemEars",
],
HideItem: ["MaskFuturisticVisor", "MaskShinobiMask"],
},
},
{
Name: "Six",
Property: {
Hide: [
"HairFront",
"HairBack",
"Hat",
"HairAccessory1",
"HairAccessory2",
"HairAccessory3",
"ItemEars",
],
HideItem: ["MaskFuturisticVisor", "MaskShinobiMask"],
},
},
],
ChangeWhenLocked: false,
}, // SpaceMask
}, // ItemHood
Jewelry: {
JewelrySet: {
Archetype: ExtendedArchetype.MODULAR,
Modules: [
{
Name: "Ears1",
Key: "e", // Left Ear!
Options: [
{}, // e0 - none
{}, // e1 - stud
{}, // e2 - ring
{}, // e3 - hoop
{}, // e4 - indust
{}, // e5 - bigstud
{}, // e6 - 2stud
{}, // e7 - 3stud
{}, // e8 - 2ring
{}, // e9 - 3ring
{}, // e10 - carti
{}, // e11 - indust mix
],
},
{
Name: "Ears2",
Key: "a", // Right Ear!
Options: [
{}, // a0 - none
{}, // a1 - stud
{}, // a2 - ring
{}, // a3 - hoop
{}, // a4 - indust
{}, // a5 - bigstud
{}, // a6 - 2stud
{}, // a7 - 3stud
{}, // a8 - 2ring
{}, // a9 - 3ring
{}, // a10 - carti
{}, // a11 - indust mix
],
},
{
Name: "Nose",
Key: "n",
Options: [
{}, // n0 - none
{}, // n1 - septum ring
{}, // n2 - stud right
{}, // n3 - stud left
{}, // n4 - ring right
{}, // n5 - ring left
],
},
{
Name: "Face",
Key: "f",
Options: [
{}, // f0 - none
{}, // f1 - dermals both
{}, // f2 - dermals right
{}, // f3 - dermals left
{}, // f4 - bridge
{}, // f5 - monroe right
{}, // f6 - monroe left
{}, // f7 - cheeks
{}, // f8 - combo 1
{}, // f9 - combo 2
{}, // f10 - combo 3
{}, // f11 - combo 4
],
},
],
}, //JewelrySet
}, // Jewelry
Eyebrows: {
Eyebrows2: {
Archetype: ExtendedArchetype.MODULAR,
Modules: [
{
Name: "Style",
Key: "s",
Options: [
{}, // s0 eyebrows2
{}, // s1 eyebrows3
{}, // s2 eyebrows4
{}, // s3 eyebrows5
{}, // s4 eyebrows6
],
},
{
Name: "LeftPiercing",
Key: "p",
Options: [
{}, // p0 none
{ PrerequisiteBuyGroup: "JewelrySet" }, // p1 1Bar
{ PrerequisiteBuyGroup: "JewelrySet" }, // p2 2Bar
{ PrerequisiteBuyGroup: "JewelrySet" }, // p3 1Ring
{ PrerequisiteBuyGroup: "JewelrySet" }, // p4 2Ring
],
},
{
Name: "RightPiercing",
Key: "r",
Options: [
{}, // r0 none
{ PrerequisiteBuyGroup: "JewelrySet" }, // r1 1Bar
{ PrerequisiteBuyGroup: "JewelrySet" }, // r2 2Bar
{ PrerequisiteBuyGroup: "JewelrySet" }, // r3 1Ring
{ PrerequisiteBuyGroup: "JewelrySet" }, // r4 2Ring
],
},
],
},
},
Mouth: {
Regular: {
Archetype: ExtendedArchetype.MODULAR,
Modules: [
{
Name: "Lips",
Key: "l",
Options: [
{}, // l0 - none
{ PrerequisiteBuyGroup: "JewelrySet" }, // l1 - middle
{ PrerequisiteBuyGroup: "JewelrySet" }, // l2 - left
{ PrerequisiteBuyGroup: "JewelrySet" }, // l3 - right
{ PrerequisiteBuyGroup: "JewelrySet" }, // l4 - both sides
{ PrerequisiteBuyGroup: "JewelrySet" }, // l5 - triple
{ PrerequisiteBuyGroup: "JewelrySet" }, // l6 - vertical labret
{ PrerequisiteBuyGroup: "JewelrySet" }, // l7 - vertical labret with rings
],
},
{
Name: "Tongue",
Key: "t",
Options: [
{}, // t0 - none
{ PrerequisiteBuyGroup: "JewelrySet" }, // t1 - one stud
{ PrerequisiteBuyGroup: "JewelrySet" }, // t2 - double studs
],
},
],
},
Full: {
Archetype: ExtendedArchetype.MODULAR,
Modules: [
{
Name: "Lips",
Key: "l",
Options: [
{}, // l0 - none
{ PrerequisiteBuyGroup: "JewelrySet" }, // l1 - middle
{ PrerequisiteBuyGroup: "JewelrySet" }, // l2 - left
{ PrerequisiteBuyGroup: "JewelrySet" }, // l3 - right
{ PrerequisiteBuyGroup: "JewelrySet" }, // l4 - both sides
{ PrerequisiteBuyGroup: "JewelrySet" }, // l5 - triple
{ PrerequisiteBuyGroup: "JewelrySet" }, // l6 - vertical labret
{ PrerequisiteBuyGroup: "JewelrySet" }, // l7 - vertical labret with rings
],
},
{
Name: "Tongue",
Key: "t",
Options: [
{}, // t0 - none
{ PrerequisiteBuyGroup: "JewelrySet" }, // t1 - one stud
{ PrerequisiteBuyGroup: "JewelrySet" }, // t2 - double studs
],
},
],
},
},
ItemDevices: {
FuturisticCrate: {
Archetype: ExtendedArchetype.MODULAR,
Modules: [
{
Name: "Window",
Key: "w",
Options: [
{}, // d0 - Open
{
Property: {
Difficulty: 20,
Effect: [E.BlockWardrobe, E.Freeze, E.Enclose],
},
}, // d1 - Window
{
Property: {
Difficulty: 22,
Effect: [E.BlindLight, E.BlockWardrobe, E.Freeze, E.Enclose],
},
}, // d2 - Normal Window
{
Property: {
Difficulty: 22,
Effect: [E.BlindNormal, E.BlockWardrobe, E.Freeze, E.Enclose],
},
}, // d3 - Small window
{
Property: {
Difficulty: 52,
Effect: [
E.BlindHeavy,
E.GagLight,
E.BlockWardrobe,
E.Freeze,
E.Enclose,
],
},
}, // d4 - Closed
],
},
{
Name: "LegCuffs",
Key: "l",
Options: [
{}, // l0 - No leg straps
{
// l1 - Kneel leg restraints
Prerequisite: ["CuffedLegsOrEmpty", "CuffedFeetOrEmpty"],
Property: {
Difficulty: 18,
SetPose: ["Kneel"],
Block: ["ItemFeet"],
Effect: [E.BlockWardrobe, E.Freeze, E.Mounted],
Hide: ["ItemBoots", "Shoes"],
OverrideHeight: { Height: 0, Priority: 60 },
},
},
{
// l2 - Closed leg restraints
Prerequisite: ["CuffedLegsOrEmpty", "CuffedFeetOrEmpty"],
Property: {
Difficulty: 22,
SetPose: ["LegsClosed"],
Block: ["ItemFeet"],
Effect: [E.BlockWardrobe, E.Freeze, E.Mounted],
Hide: ["ItemBoots", "Shoes"],
},
},
{
// l3 - Spread leg restraints
Prerequisite: ["CuffedLegsOrEmpty", "CuffedFeetOrEmpty"],
Property: {
Difficulty: 22,
SetPose: ["Spread"],
Block: ["ItemFeet"],
Effect: [E.BlockWardrobe, E.Freeze, E.Mounted],
Hide: ["ItemBoots", "Shoes"],
},
},
],
},
{
Name: "ArmCuffs",
Key: "a",
Options: [
{}, // s0 - No arm cuffs
{
// s1 - Elbow cuffs
Prerequisite: ["CuffedArmsOrEmpty"],
Property: {
Difficulty: 18,
SetPose: ["BackElbowTouch"],
AllowActivePose: [...PoseAllStanding],
Block: ["ItemArms"],
Effect: [E.BlockWardrobe, E.Freeze, E.Block, E.Mounted],
OverrideHeight: { Height: 0, Priority: 60 },
},
},
{
// s2 - Box cuffs
Prerequisite: ["CuffedArmsOrEmpty"],
Property: {
Difficulty: 18,
SetPose: ["BackBoxTie"],
AllowActivePose: [...PoseAllStanding],
Block: ["ItemArms"],
Effect: [E.BlockWardrobe, E.Freeze, E.Block, E.Mounted],
OverrideHeight: { Height: 0, Priority: 60 },
},
},
{
// s3 - Overhead restraints
Prerequisite: ["CuffedArmsOrEmpty"],
Property: {
Difficulty: 22,
SetPose: ["OverTheHead"],
AllowActivePose: [...PoseAllStanding],
Block: ["ItemArms"],
Effect: [E.BlockWardrobe, E.Freeze, E.Block, E.Mounted],
OverrideHeight: { Height: 0, Priority: 60 },
},
},
],
},
{
Name: "Device",
Key: "d",
Options: [
{}, // d0 - No devvice
{
// s1 - Pleasure module
HasSubscreen: true,
Prerequisite: ["AccessVulva", "VulvaEmpty"],
Property: {
SetPose: ["BaseLower"],
AllowActivePose: [...PoseAllStanding],
Effect: [E.BlockWardrobe, E.Freeze, E.VulvaShaft],
OverrideHeight: { Height: 0, Priority: 60 },
},
ArchetypeConfig: {
Archetype: ExtendedArchetype.VIBRATING,
ScriptHooks: {
ScriptDraw: AssetsItemDevicesFuturisticCrateScriptDrawHook,
},
},
},
],
},
{
Name: "Structure",
Key: "t",
Options: [
{}, // t0 - No harness
{}, // t1 - X
{}, // t2 - +
{}, // t3 - H
],
},
{
Name: "Harness",
Key: "h",
Options: [
{}, // h0 - None
{
// h1 - Minimal
Property: {
Difficulty: 12,
Effect: [E.BlockWardrobe, E.Freeze],
OverrideHeight: { Height: 0, Priority: 60 },
},
},
{
// h2 - Comprehensive
Property: {
Difficulty: 18,
Effect: [E.BlockWardrobe, E.Freeze],
OverrideHeight: { Height: 0, Priority: 60 },
},
},
{
// h3 - Comprehensive (breast)
Property: {
Difficulty: 18,
Effect: [E.BlockWardrobe, E.Freeze],
OverrideHeight: { Height: 0, Priority: 60 },
},
},
{
// h4 - High Security
Property: {
Difficulty: 24,
Effect: [E.BlockWardrobe, E.Freeze],
OverrideHeight: { Height: 0, Priority: 60 },
},
},
],
},
],
ChangeWhenLocked: false,
ScriptHooks: {
Load: FuturisticAccessLoad,
Click: FuturisticAccessClick,
Draw: FuturisticAccessDraw,
Exit: FuturisticAccessExit,
Validate: FuturisticAccessValidate,
},
}, // FuturisticCrate
PersonalCage: {
Archetype: ExtendedArchetype.TYPED,
ChatTags: [CommonChatTags.SOURCE_CHAR, CommonChatTags.TARGET_CHAR],
Options: [
{
Name: "Lowered",
Property: {
Difficulty: 10,
},
},
{
Name: "Suspended",
Property: {
Difficulty: 15,
OverrideHeight: {
Height: 30,
Priority: 51,
HeightRatioProportion: 0,
},
Effect: [E.Lifted],
},
},
],
DialogPrefix: {
Header: "SelectPersonalCageHeight",
Option: "PersonalCageHeight",
Chat: "PersonalCageHeightSet",
Npc: "PersonalCageHeight",
},
ChangeWhenLocked: false,
}, // PersonalCage
BondageBench: {
Archetype: ExtendedArchetype.TYPED,
ChatTags: [
CommonChatTags.SOURCE_CHAR,
CommonChatTags.DEST_CHAR,
CommonChatTags.TARGET_CHAR,
],
Options: [
{
Name: "None",
AllowLock: false,
Property: {
Difficulty: 0,
SetPose: ["LegsClosed"],
},
},
{
Name: "Light",
SelfBondageLevel: 2,
Prerequisite: ["NoOuterClothes"],
Property: {
Difficulty: 2,
SetPose: ["LegsClosed", "BaseUpper"],
AllowActivePose: ["BackCuffs", "BackBoxTie", "BackElbowTouch"],
Effect: [E.Block, E.BlockWardrobe, E.Freeze],
Hide: ["HairBack", "Wings", "TailStraps", "ItemButt"],
},
},
{
Name: "Normal",
SelfBondageLevel: 3,
Prerequisite: ["NoOuterClothes"],
Property: {
Difficulty: 3,
SetPose: ["LegsClosed", "BaseUpper"],
AllowActivePose: ["BackCuffs", "BackBoxTie", "BackElbowTouch"],
Effect: [E.Block, E.BlockWardrobe, E.Freeze],
Hide: ["HairBack", "Wings", "TailStraps", "ItemButt"],
},
},
{
Name: "Heavy",
SelfBondageLevel: 6,
Prerequisite: ["NoOuterClothes"],
Property: {
Difficulty: 6,
SetPose: ["LegsClosed", "BaseUpper"],
AllowActivePose: ["BackCuffs", "BackBoxTie", "BackElbowTouch"],
Effect: [E.Block, E.BlockWardrobe, E.Freeze],
Hide: ["HairBack", "Wings", "TailStraps", "ItemButt"],
HideItem: [
"PantiesPoofyDiaper",
"PantiesBulkyDiaper",
"ItemPelvisPoofyDiaper",
"ItemPelvisBulkyDiaper",
],
},
},
{
Name: "Full",
SelfBondageLevel: 9,
Prerequisite: ["NoOuterClothes"],
Property: {
Difficulty: 9,
SetPose: ["LegsClosed", "BaseUpper"],
AllowActivePose: ["BackCuffs", "BackBoxTie", "BackElbowTouch"],
Effect: [E.Block, E.BlockWardrobe, E.Freeze],
Hide: ["HairBack", "Wings", "TailStraps", "ItemButt"],
HideItem: [
"PantiesPoofyDiaper",
"PantiesBulkyDiaper",
"ItemPelvisPoofyDiaper",
"ItemPelvisBulkyDiaper",
],
},
},
],
DialogPrefix: {
Header: "BondageBenchStrapsSelectTightness",
Option: "BondageBenchStrapsPose",
Chat: "BondageBenchStrapsRestrain",
},
}, // BondageBench
Cushion: {
Archetype: ExtendedArchetype.TYPED,
Options: [
{
Name: "Hold",
Property: {
HideItem: ["ItemMiscTeddyBear"],
AllowActivity: ["SpankItem"],
},
},
{
Name: "Kneel",
Property: {
OverrideHeight: { Height: -200, Priority: 21 },
OverridePriority: 1,
SetPose: ["Kneel"],
},
},
],
DialogPrefix: {
Header: "SelectCushionStyle",
Option: "CushionType",
},
ChatSetting: TypedItemChatSetting.SILENT,
}, // Cushion
Crib: {
Archetype: ExtendedArchetype.MODULAR,
Modules: [
{
Name: "Gate",
Key: "g",
Options: [
{}, // g0 - Gate open
{ Property: { Difficulty: 15 } }, // g1 - Gate closed
],
},
{
Name: "Plushies",
Key: "p",
Options: [
{}, // p0 - No plushies
{}, // p1 - Plushies
],
},
],
}, // Crib
PetBed: {
Archetype: ExtendedArchetype.TYPED,
ChatTags: [CommonChatTags.SOURCE_CHAR, CommonChatTags.TARGET_CHAR],
Options: [
{
Name: "NoBlanket",
},
{
Name: "Blanket",
Property: {
SetPose: ["AllFours"],
AllowActivePose: ["Hogtied"],
Hide: ["ItemArms", "ItemButt", "TailStraps", "Wings"],
HideItem: ["ItemMiscTeddyBear"],
HideItemExclude: [
"ItemArmsBitchSuit",
"ItemArmsBitchSuitExposed",
"ItemArmsShinyPetSuit",
],
Block: [
"ItemArms",
"ItemBreast",
"ItemButt",
"ItemFeet",
"ItemBoots",
"ItemLegs",
"ItemMisc",
"ItemNipples",
"ItemNipplesPiercings",
"ItemPelvis",
"ItemTorso",
"ItemVulva",
"ItemVulvaPiercings",
],
},
Random: false,
},
],
}, // PetBed
Vacbed: {
Archetype: ExtendedArchetype.TYPED,
ChatTags: [CommonChatTags.SOURCE_CHAR, CommonChatTags.DEST_CHAR],
Options: [
{
Name: "Normal",
},
{
Name: "Nohair",
Property: {
Hide: [
"HairFront",
"HairAccessory1",
"HairAccessory2",
"HairAccessory3",
"Hat",
],
},
},
],
}, // Vacbed
Familiar: {
Archetype: ExtendedArchetype.TYPED,
ChatTags: [CommonChatTags.SOURCE_CHAR, CommonChatTags.TARGET_CHAR],
Options: [
{
Name: "Bat",
},
{
Name: "Cat",
},
{
Name: "Skeleton",
},
{
Name: "Parrot",
},
],
}, // Familiar
LittleMonster: {
Archetype: ExtendedArchetype.TYPED,
ChatTags: [CommonChatTags.SOURCE_CHAR, CommonChatTags.TARGET_CHAR],
Options: [
{
Name: "Black",
},
{
Name: "Red",
},
{
Name: "Green",
},
{
Name: "Blue",
},
],
}, // LitteMonster
InflatableBodyBag: {
Archetype: ExtendedArchetype.TYPED,
ChatTags: [CommonChatTags.SOURCE_CHAR, CommonChatTags.DEST_CHAR],
Options: [
{
Name: "Light",
Property: {
Difficulty: 0,
},
},
{
Name: "Inflated",
Property: {
Difficulty: 3,
},
},
{
Name: "Bloated",
Property: {
Difficulty: 6,
},
},
{
Name: "Max",
Property: {
Difficulty: 9,
},
},
],
}, // InflatableBodyBag
TheHangingFrame: {
Archetype: ExtendedArchetype.TYPED,
ChatTags: [CommonChatTags.SOURCE_CHAR, CommonChatTags.DEST_CHAR],
Options: [
{
Name: "Normal",
},
{
Name: "Inflated",
Property: {
Block: ["ItemLegs"],
Hide: [
"HairFront",
"HairBack",
"HairAccessory1",
"Cloth",
"ClothLower",
"Hat",
],
},
},
],
DrawImages: false,
}, // TheHangingFrame
FurBlanketWrap: {
Archetype: ExtendedArchetype.TYPED,
ChatTags: [CommonChatTags.SOURCE_CHAR, CommonChatTags.TARGET_CHAR_NAME],
Options: [
{
Name: "Loose",
Property: {
Difficulty: 3,
},
},
{
Name: "Tight",
Property: {
Difficulty: 5,
},
},
{
Name: "Belts",
AllowLock: true,
Property: {
Difficulty: 8,
},
},
],
DrawImages: false,
ChangeWhenLocked: false,
}, // FurBlanketWrap
Pole: {
Archetype: ExtendedArchetype.TYPED,
ChatTags: [CommonChatTags.SOURCE_CHAR, CommonChatTags.TARGET_CHAR],
Options: [
{
Name: "Untied",
},
{
Name: "Tied",
SelfBondageLevel: 2,
Property: {
Difficulty: 8,
SetPose: ["BackBoxTie"],
Effect: [E.Block, E.Freeze, E.BlockWardrobe],
},
},
],
}, // Pole
CryoCapsule: {
Archetype: ExtendedArchetype.TYPED,
ChatTags: [CommonChatTags.SOURCE_CHAR, CommonChatTags.DEST_CHAR],
Options: [
{
Name: "Open",
Property: {
Difficulty: 0,
Effect: [E.Freeze],
SelfUnlock: true,
},
},
{
Name: "Closed",
Property: {
Difficulty: 50,
Effect: [
E.Freeze,
E.GagMedium,
E.BlockWardrobe,
E.Enclose,
E.BlindLight,
],
SelfUnlock: false,
},
},
],
ChangeWhenLocked: false,
DialogPrefix: {
Header: "SelectCryoCapsuleType",
Option: "CryoCapsuleType",
Chat: "CryoCapsuleSet",
},
}, // CryoCapsule
Coffin: {
Archetype: ExtendedArchetype.TYPED,
CopyConfig: { AssetName: "CryoCapsule" },
Options: [
{
Name: "Open",
Property: {
Difficulty: 0,
Effect: [E.Freeze],
SelfUnlock: true,
},
},
{
Name: "Closed",
Property: {
Difficulty: 50,
Effect: [
E.Freeze,
E.GagMedium,
E.BlockWardrobe,
E.Enclose,
E.BlindLight,
],
SelfUnlock: false,
},
},
],
DialogPrefix: {
Header: "SelectCoffinType",
Option: "CoffinType",
Chat: "CoffinSet",
},
}, // Coffin
Net: {
Archetype: ExtendedArchetype.TYPED,
ChatTags: [CommonChatTags.SOURCE_CHAR, CommonChatTags.TARGET_CHAR_NAME],
Options: [
{
Name: "Kneel",
Property: {
Difficulty: 3,
SetPose: ["Kneel"],
},
},
{
Name: "AllFours",
Property: {
Difficulty: 6,
SetPose: ["AllFours"],
AllowActivePose: ["Hogtied"],
},
},
{
Name: "Suspended",
Property: {
Difficulty: 7,
Effect: [E.Suspended],
SetPose: ["Hogtied"],
Block: [
"ItemArms",
"ItemVulva",
"ItemVulvaPiercings",
"ItemButt",
"ItemPelvis",
"ItemTorso",
"ItemHands",
"ItemLegs",
"ItemFeet",
"ItemBoots",
"ItemNipples",
"ItemNipplesPiercings",
"ItemBreast",
],
Hide: [
"ItemArms",
"ItemVulva",
"ItemVulvaPiercings",
"ItemButt",
"ItemPelvis",
"ItemTorso",
"ItemHands",
"ItemLegs",
"ItemFeet",
"ItemBoots",
"ItemNipples",
"ItemNipplesPiercings",
"ItemBreast",
],
HideItem: [
"PantiesPoofyDiaper",
"PantiesBulkyDiaper",
"ItemPelvisPoofyDiaper",
"ItemPelvisBulkyDiaper",
],
OverrideHeight: {
Height: 25,
Priority: 51,
HeightRatioProportion: 0,
},
},
},
],
DialogPrefix: {
Header: "SelectBondagePosition",
Option: "ItemDevicesNet",
},
}, // Net
WoodenRack: {
Archetype: ExtendedArchetype.MODULAR,
ChatTags: [
CommonChatTags.SOURCE_CHAR,
CommonChatTags.DEST_CHAR,
CommonChatTags.DEST_CHAR_NAME,
CommonChatTags.TARGET_CHAR_NAME,
],
Modules: [
{
Name: "Frame",
Key: "f",
Options: [
{}, // f0 - Normal
{}, // f1 - Stained
{}, // f2 - HalfBack
{}, // f3 - NoBack
],
},
{
Name: "TopRestraints",
Key: "t",
Options: [
{}, // t0 - No
{
Prerequisite: ["CuffedArmsOrEmpty"],
Property: {
Difficulty: 6,
SetPose: ["Yoked"],
AllowActivePose: [...PoseAllStanding],
Block: ["ItemArms"],
Effect: [E.BlockWardrobe, E.Block],
},
}, // t1 - Rope
{
Prerequisite: ["CuffedArmsOrEmpty"],
Property: {
Difficulty: 6,
SetPose: ["OverTheHead"],
AllowActivePose: [...PoseAllStanding],
Block: ["ItemArms"],
Effect: [E.BlockWardrobe, E.Block],
},
}, // t2 - RopeTight
{
AllowLock: true,
Prerequisite: ["CuffedArms"],
Property: {
Difficulty: 10,
SetPose: ["Yoked"],
AllowActivePose: [...PoseAllStanding],
Block: ["ItemArms"],
Effect: [E.BlockWardrobe, E.Block],
},
}, // t3 - Chains
{
AllowLock: true,
Prerequisite: ["CuffedArms"],
Property: {
Difficulty: 10,
SetPose: ["OverTheHead"],
AllowActivePose: [...PoseAllStanding],
Block: ["ItemArms"],
Effect: [E.BlockWardrobe, E.Block],
},
}, // t4 - ChainsTight
{
AllowLock: true,
Property: {
Difficulty: 12,
SetPose: ["Yoked"],
AllowActivePose: [...PoseAllStanding],
Block: ["ItemArms"],
Effect: [E.BlockWardrobe],
},
}, // t5 - Stocks
],
},
{
Name: "BotRestraints",
Key: "b",
Options: [
{}, // b0 - No
{
Property: {
Difficulty: 6,
SetPose: ["Spread"],
Block: ["ItemFeet"],
Effect: [E.BlockWardrobe],
Hide: ["ItemBoots", "Shoes"],
},
}, // b1 - Rope
{
Property: {
Difficulty: 6,
SetPose: ["LegsClosed"],
Block: ["ItemFeet"],
Effect: [E.BlockWardrobe],
Hide: ["ItemBoots", "Shoes"],
},
}, // b2 - RopeTight
{
AllowLock: true,
Prerequisite: ["CuffedLegs"],
Property: {
Difficulty: 10,
SetPose: ["Spread"],
Block: ["ItemFeet"],
Effect: [E.BlockWardrobe],
Hide: ["ItemBoots", "Shoes"],
},
}, // b3 - Chains
{
AllowLock: true,
Prerequisite: ["CuffedLegs"],
Property: {
Difficulty: 10,
SetPose: ["LegsClosed"],
Block: ["ItemFeet"],
Effect: [E.BlockWardrobe],
Hide: ["ItemBoots", "Shoes"],
},
}, // b4 - ChainsTogether
{
AllowLock: true,
Property: {
Difficulty: 12,
SetPose: ["LegsOpen"],
Block: ["ItemFeet"],
Effect: [E.BlockWardrobe],
Hide: ["ItemBoots", "Shoes"],
},
}, // b5 - Stocks
],
},
],
}, //WoodenRack
Sybian: {
Archetype: ExtendedArchetype.VIBRATING,
}, // Sybian
FuckMachine: {
Archetype: ExtendedArchetype.VIBRATING,
ScriptHooks: {
ScriptDraw: AssetsItemDevicesFuckMachineScriptDrawHook,
BeforeDraw: AssetsItemDevicesFuckMachineBeforeDrawHook,
},
}, // FuckMachine
Kennel: {
Archetype: ExtendedArchetype.MODULAR,
Modules: [
{
Name: "Door",
Key: "d",
Options: [
{ Property: { Difficulty: -100, Door: false } },
{
Property: {
Difficulty: 10,
Effect: [E.OneWayEnclose, E.BlockWardrobe, E.Freeze],
Door: true,
},
},
],
},
{
Name: "Padding",
Key: "p",
Options: [
{ Property: { Padding: false } },
{ Property: { Padding: true } },
],
},
],
ChangeWhenLocked: false,
}, // Kennel
Locker: {
Archetype: ExtendedArchetype.TYPED,
Options: [
{
Name: "Vents",
Property: { Effect: [E.BlindLight] },
},
{
Name: "Ventless",
Property: { Effect: [E.GagLight, E.BlindHeavy] },
},
],
BaselineProperty: { Opacity: 0 },
ScriptHooks: {
Init: PropertyOpacityInit,
Load: PropertyOpacityLoad,
Draw: PropertyOpacityDraw,
Exit: PropertyOpacityExit,
},
DialogPrefix: {
Npc: (C, Option, PreviousOption) => `ItemDevicesLocker${Option.Name}`,
},
}, // Locker
SmallLocker: {
Archetype: ExtendedArchetype.TYPED,
CopyConfig: { GroupName: "ItemDevices", AssetName: "Locker" },
DialogPrefix: {
Header: "ItemDevicesLockerSelect",
Option: "ItemDevicesLocker",
Chat: "ItemDevicesLockerSet",
Npc: (C, Option, PreviousOption) => `ItemDevicesLocker${Option.Name}`,
},
}, // SmallLocker
VacBedDeluxe: {
Archetype: ExtendedArchetype.MODULAR,
Modules: [
{
Name: "Legs",
Key: "l",
Options: [
{
Property: { SetPose: ["BaseLower"] },
}, // l0 - Legs spread
{
Property: { SetPose: ["LegsClosed"] },
}, // l1 - Legs closed
],
},
{
Name: "Arms",
Key: "a",
Options: [
{ Property: { SetPose: ["BaseUpper"] } }, // a0 - Arms down
{ Property: { SetPose: ["Yoked"] } }, // a1 - Arms yoked
],
},
],
BaselineProperty: { Opacity: 1 },
ScriptHooks: {
Init: PropertyOpacityInit,
Load: PropertyOpacityLoad,
Draw: InventoryItemDevicesVacBedDeluxeDrawHook,
Exit: PropertyOpacityExit,
},
}, // VacBedDeluxe
WoodenBox: {
Archetype: ExtendedArchetype.TYPED,
ChatTags: [
CommonChatTags.SOURCE_CHAR,
CommonChatTags.DEST_CHAR_NAME,
CommonChatTags.ASSET_NAME,
],
Options: [
{
Name: "SWNE",
},
{
Name: "NWSE",
},
],
BaselineProperty: { Opacity: 0, Text: "" },
ScriptHooks: {
Load: InventoryItemDevicesWoodenBoxLoadHook,
Draw: InventoryItemDevicesWoodenBoxDrawHook,
Exit: InventoryItemDevicesWoodenBoxExitHook,
PublishAction: InventoryItemDevicesWoodenBoxPublishActionHook,
AfterDraw: AssetsItemDevicesWoodenBoxAfterDrawHook,
},
AllowEffect: [E.BlindNormal, E.GagLight],
}, // WoodenBox
TransportWoodenBox: {
Archetype: ExtendedArchetype.TYPED,
CopyConfig: { GroupName: "ItemDevices", AssetName: "WoodenBox" },
DialogPrefix: {
Header: "ItemDevicesWoodenBoxSelect",
Option: "ItemDevicesWoodenBox",
Chat: "ItemDevicesWoodenBoxSet",
},
}, // TransportWoodenBox
LuckyWheel: {
Archetype: ExtendedArchetype.MODULAR,
Modules: [
{
Name: "Game",
Key: "g",
Options: [
{
HasSubscreen: true,
ArchetypeConfig: {
Archetype: ExtendedArchetype.NOARCH,
ScriptHooks: {
Load: InventoryItemDevicesLuckyWheelg0LoadHook,
Draw: InventoryItemDevicesLuckyWheelg0DrawHook,
Click: InventoryItemDevicesLuckyWheelg0ClickHook,
Exit: InventoryItemDevicesLuckyWheelg0ExitHook,
},
},
},
],
},
{
Name: "Stand",
Key: "s",
Options: [
{},
{}, // s0 - WoodenBase, s1 - MetalBase
],
},
{
Name: "Misc",
Key: "m",
Options: [
{},
{}, // m0 - MiscOn, m1 - MiscOff
],
},
{
Name: "Arrow",
Key: "a",
Options: [
{},
{},
{}, // a0 - DefaultArrow, a1 - AlternateArrow, a2 - PlugArrow
],
},
{
Name: "Position",
Key: "p",
Options: [
{}, // p0 - WheelFront
{
// p1 - WheelBack
Property: {
OverridePriority: 0,
},
},
],
},
],
ScriptHooks: {
Draw: InventoryItemDevicesLuckyWheelDrawHook,
Click: InventoryItemDevicesLuckyWheelClickHook,
Init: InventoryItemDevicesLuckyWheelInitHook,
},
BaselineProperty: { TargetAngle: 0 },
}, //LuckyWheel
FoldingScreen: {
Archetype: ExtendedArchetype.TYPED,
ChatTags: [
CommonChatTags.SOURCE_CHAR,
CommonChatTags.DEST_CHAR_NAME,
CommonChatTags.ASSET_NAME,
],
Options: [
{
Name: "Opaque",
Property: {
Hide: [
"BodyLower",
"BodyUpper",
"Hands",
"HairFront",
"HairBack",
"Glasses",
"ItemMouth",
"ItemMouth2",
"ItemMouth3",
"FacialHair",
"HairAccessory1",
"HairAccessory2",
"HairAccessory3",
"Hat",
"Mask",
"ItemEars",
"ItemHead",
"Cloth",
"ClothLower",
"ClothAccessory",
"Necklace",
"Suit",
"SuitLower",
"Bra",
"Panties",
"Garters",
"Socks",
"RightAnklet",
"LeftAnklet",
"Shoes",
"Gloves",
"TailStraps",
"Wings",
"ItemFeet",
"ItemLegs",
"ItemVulva",
"ItemVulvaPiercings",
"ItemButt",
"ItemPelvis",
"ItemTorso",
"ItemTorso2",
"ItemNipples",
"ItemNipplesPiercings",
"ItemBreast",
"ItemArms",
"ItemHands",
"ItemHandheld",
"ItemBoots",
"Pussy",
"Corset",
"Bracelet",
"LeftHand",
"RightHand",
],
},
},
{
Name: "Shadow",
Property: { Hide: [] },
},
],
BaselineProperty: { Opacity: 1 },
}, // FoldingScreen
DollBox: {
Archetype: ExtendedArchetype.TEXT,
ScriptHooks: {
AfterDraw: AssetsItemDevicesDollBoxAfterDrawHook,
},
MaxLength: { Text: 22, Text2: 22 },
Font: "'Satisfy', cursive",
}, // DollBox
PetBowl: {
Archetype: ExtendedArchetype.TEXT,
ScriptHooks: {
AfterDraw: AssetsItemDevicesPetBowlAfterDrawHook,
},
MaxLength: { Text: 12 },
Font: "'Saira Stencil One', 'Arial', sans-serif",
}, // PetBowl
KabeshiriWall: {
Archetype: ExtendedArchetype.MODULAR,
ChatSetting: ModularItemChatSetting.PER_MODULE,
ChatTags: [
CommonChatTags.SOURCE_CHAR,
CommonChatTags.DEST_CHAR_NAME,
CommonChatTags.ASSET_NAME,
],
Modules: [
{
Name: "Legs",
Key: "l",
Options: [
{}, // l0 - Cuffed
{
Property: {
AllowActivityOn: ["ItemLegs", "ItemFeet"],
},
}, // l1 - Visible & uncuffed
{
Property: {
Block: ["ItemBoots"],
},
}, // l2 - Hidden
],
},
{
Name: "Arms",
Key: "a",
Options: [
{}, // a0 - Cuffed
{
Property: {
Block: ["ItemHands"],
},
}, // a1 - Hidden
],
},
{
Name: "Cum",
Key: "c",
Options: [
{}, // c0 - none
{}, // c1 - butt
{ Prerequisite: ["HasVagina"] }, // c2 - pussy
{ Prerequisite: ["HasVagina"] }, // c3 - both
],
},
{
Name: "Wall",
Key: "w",
Options: [
{}, // w0 - monitor
{}, // w1 - photo
{}, // w2 - blank
],
},
],
DrawData: {
elementData: [
{ position: ExtendedXY[8][0] },
{ position: ExtendedXY[8][1] },
{ position: ExtendedXY[8][2] },
{ position: ExtendedXY[8][3] },
],
},
ScriptHooks: {
Load: InventoryItemDevicesKabeshiriWallLoadHook,
Draw: InventoryItemDevicesKabeshiriWallDrawHook,
PublishAction: InventoryItemDevicesKabeshiriWallPublishActionHook,
Exit: InventoryItemDevicesKabeshiriWallExitHook,
AfterDraw: AssetsItemDevicesKabeshiriWallAfterDrawHook,
},
BaselineProperty: { Text: "", Text2: "" },
}, // KabeshiriWall
Trolley: {
Archetype: ExtendedArchetype.TYPED,
ChatTags: [CommonChatTags.SOURCE_CHAR, CommonChatTags.TARGET_CHAR_NAME],
Options: [
{
Name: "Open",
Property: {
Difficulty: -2,
},
},
{
Name: "Closed",
AllowLock: true,
Property: {
Difficulty: 5,
SetPose: ["BaseLower"],
AllowActivePose: [...PoseAllStanding],
},
},
],
DrawImages: false,
ChangeWhenLocked: false,
}, // Trolley
WheelFortune: {
Archetype: ExtendedArchetype.NOARCH,
ScriptHooks: {
Load: InventoryItemDevicesWheelFortuneLoadHook,
Draw: CommonNoop,
Click: CommonNoop,
},
}, // WheelFortune
}, // ItemDevices
ItemBoots: {
ToeTape: {
Archetype: ExtendedArchetype.TYPED,
ChatTags: [CommonChatTags.SOURCE_CHAR, CommonChatTags.TARGET_CHAR],
Options: [
{
Name: "Toes",
Property: { Difficulty: 0 },
},
{
Name: "Full",
Property: { Difficulty: 2 },
},
],
DialogPrefix: {
Header: "SelectTapeWrapping",
Option: "ToeTapePose",
Chat: "ToeTapeSet",
Npc: "",
},
}, // ToeTape
FuturisticHeels: {
Archetype: ExtendedArchetype.TYPED,
Options: [
{
Name: "Shoes",
Property: { HeightModifier: 6 },
},
{
Name: "Heel",
Property: { HeightModifier: 16 },
},
],
ScriptHooks: {
Load: FuturisticAccessLoad,
Click: FuturisticAccessClick,
Draw: FuturisticAccessDraw,
Exit: FuturisticAccessExit,
Validate: FuturisticAccessValidate,
},
}, // FuturisticHeels
FuturisticHeels2: {
Archetype: ExtendedArchetype.TYPED,
Options: [{ Name: "Shiny" }, { Name: "Matte" }],
ScriptHooks: {
Load: FuturisticAccessLoad,
Click: FuturisticAccessClick,
Draw: FuturisticAccessDraw,
Exit: FuturisticAccessExit,
Validate: FuturisticAccessValidate,
},
}, // FuturisticHeels2
MonoHeel: {
Archetype: ExtendedArchetype.TYPED,
ChatTags: [
CommonChatTags.SOURCE_CHAR,
CommonChatTags.DEST_CHAR,
CommonChatTags.ASSET_NAME,
],
Options: [
{
Name: "Full",
Property: { Difficulty: 1 },
},
{
Name: "Half",
Property: { Difficulty: 0 },
},
],
}, // MonoHeel
}, // ItemBoots
ItemVulva: {
ClitSuctionCup: {
Archetype: ExtendedArchetype.TYPED,
ChatTags: [CommonChatTags.SOURCE_CHAR, CommonChatTags.DEST_CHAR],
Options: [
{
Name: "Loose",
Property: {
SuctionLevel: 0,
},
},
{
Name: "Light",
Property: {
SuctionLevel: 1,
},
},
{
Name: "Medium",
Property: {
SuctionLevel: 2,
},
},
{
Name: "Heavy",
Property: {
SuctionLevel: 3,
},
},
{
Name: "Maximum",
Property: {
SuctionLevel: 4,
},
},
],
DialogPrefix: {
Header: "SelectSuctionLevel",
Option: "SuctionLevel",
Chat: ({ newIndex, previousIndex }) =>
`ClitSuc${newIndex > previousIndex ? "tightens" : "loosens"}To`,
Npc: "ItemVulvaClitSuctionCupNPCReaction",
},
DrawImages: false,
}, // ClitSuctionCup
DoubleEndDildo: {
Archetype: ExtendedArchetype.TYPED,
ChatTags: [CommonChatTags.DEST_CHAR_NAME, CommonChatTags.ASSET_NAME],
Options: [
{
Name: "Normal",
},
{
Name: "Large",
},
],
DrawImages: false,
}, // DoubleEndDildo
VibratingDildo: {
Archetype: ExtendedArchetype.VIBRATING,
}, // VibratingDildo
ClitoralStimulator: {
Archetype: ExtendedArchetype.VIBRATING,
}, // ClitoralStimulator
VibratingEgg: {
Archetype: ExtendedArchetype.VIBRATING,
}, // VibratingEgg
VibratingLatexPanties: {
Archetype: ExtendedArchetype.VIBRATING,
}, // VibratingLatexPanties
InflatableVibratingPanties: {
Archetype: ExtendedArchetype.MODULAR,
ChatTags: [
CommonChatTags.SOURCE_CHAR,
CommonChatTags.DEST_CHAR_NAME,
CommonChatTags.ASSET_NAME,
],
Modules: [
{
Name: "InflateLevel",
Key: "f",
DrawImages: false,
Options: [
{ Property: { InflateLevel: 0 } }, // f0 - Empty
{ Property: { InflateLevel: 1 } }, // f1 - Light
{ Property: { InflateLevel: 2 } }, // f2 - Inflated
{ Property: { InflateLevel: 3 } }, // f3 - Bloated
{ Property: { InflateLevel: 4 } }, // f4 - Maximum
],
},
{
Name: "Intensity",
Key: "i",
DrawImages: false,
Options: [
{ Property: { Intensity: -1 } }, // i0 - Turn Off
{ Property: { Intensity: 0, Effect: [E.Vibrating] } }, // i1 - Low
{ Property: { Intensity: 1, Effect: [E.Vibrating] } }, // i2 - Medium
{ Property: { Intensity: 2, Effect: [E.Vibrating] } }, // i3 - High
{ Property: { Intensity: 3, Effect: [E.Vibrating] } }, // i4 - Maximum
],
},
],
ScriptHooks: {
Draw: InventoryItemButtInflVibeButtPlugDrawHook,
},
DialogPrefix: {
Header: "InflatableVibratingPantiesSelect",
Module: "InflatableVibratingPantiesModule",
Option: "InflatableVibratingPantiesOption",
Chat: ({ previousOption, newOption }) => {
const Prefix = "InflatableVibratingPanties";
const Change =
Number.parseInt(newOption.Name[1]) -
Number.parseInt(previousOption.Name[1]);
const StateChange = Change > 0 ? "Increase" : "Decrease";
return `${Prefix}${StateChange}To`;
},
},
}, // InflatableVibratingPanties
WandBelt: {
Archetype: ExtendedArchetype.VIBRATING,
}, // WandBelt
FullLatexSuitWand: {
Archetype: ExtendedArchetype.VIBRATING,
}, // FullLatexSuitWand
HempRopeBelt: {
Archetype: ExtendedArchetype.VIBRATING,
}, // HempRopeBelt
WiredEgg: {
Archetype: ExtendedArchetype.VIBRATING,
}, // WiredEgg
Stitches: {
Archetype: ExtendedArchetype.TYPED,
Options: [
{
Name: "Straight",
},
{
Name: "ZigZag",
},
{
Name: "Skewed",
},
{
Name: "Cross",
},
],
}, // Stitches
VibeEggPenisBase: {
Archetype: ExtendedArchetype.VIBRATING,
}, // VibeEggPenisBase
InflatableVibeDildo: {
Archetype: ExtendedArchetype.MODULAR,
CopyConfig: { GroupName: "ItemButt", AssetName: "InflVibeButtPlug" },
}, // InflatableVibeDildo
ShockDildo: {
Archetype: ExtendedArchetype.TYPED,
CopyConfig: {
GroupName: "ItemNeckAccessories",
AssetName: "CollarShockUnit",
},
DialogPrefix: {
Header: "ItemNeckAccessoriesCollarShockUnitSelect",
Option: "ItemNeckAccessoriesCollarShockUnit",
Chat: "ItemNeckAccessoriesCollarShockUnitSet",
Npc: "ItemNeckAccessoriesCollarShockUnit",
},
}, // ShockDildo
ClitAndDildoVibratorbelt: {
Archetype: ExtendedArchetype.MODULAR,
ChatTags: [CommonChatTags.DEST_CHAR_NAME, CommonChatTags.ASSET_NAME],
Modules: [
{
Name: "DildoIntensity",
Key: "d",
DrawImages: false,
Options: [
{ Property: { Intensity: -1 } }, // d0 - Turn Off
{ Property: { Intensity: 0, Effect: [E.Vibrating] } }, // d1 - Low
{ Property: { Intensity: 1, Effect: [E.Vibrating] } }, // d2 - Medium
{ Property: { Intensity: 2, Effect: [E.Vibrating] } }, // d3 - High
{ Property: { Intensity: 3, Effect: [E.Vibrating] } }, // d4 - Maximum
],
},
{
Name: "EggIntensity",
Key: "e",
DrawImages: false,
Options: [
{ Property: { Intensity: -1 } }, // e0 - Turn Off
{ Property: { Intensity: 0, Effect: [E.Vibrating] } }, // e1 - Low
{ Property: { Intensity: 1, Effect: [E.Vibrating] } }, // e2 - Medium
{ Property: { Intensity: 2, Effect: [E.Vibrating] } }, // e3 - High
{ Property: { Intensity: 3, Effect: [E.Vibrating] } }, // e4 - Maximum
],
},
],
ScriptHooks: {
Draw: InventoryItemVulvaClitAndDildoVibratorbeltDrawHook,
SetOption: InventoryItemVulvaClitAndDildoVibratorbeltSetOptionHook,
},
DialogPrefix: {
Chat: ({ previousOption, newOption }) => {
if (DialogFocusItem == null) {
return "";
}
const Prefix =
DialogFocusItem.Asset.Group.Name + DialogFocusItem.Asset.Name;
const Change =
Number.parseInt(newOption.Name[1]) -
Number.parseInt(previousOption.Name[1]);
const StateChange = Change > 0 ? "Increase" : "Decrease";
return `${Prefix}${StateChange}`;
},
},
}, // ClitAndDildoVibratorbelt
LoversVibrator: {
Archetype: ExtendedArchetype.VIBRATING,
DrawData: VibratorModeGetDrawData(
[VibratorModeSet.ADVANCED, VibratorModeSet.STANDARD],
{},
525,
),
ScriptHooks: {
Draw: InventoryItemVulvaLoversVibratorDrawHook,
},
}, // LoversVibrator
FuturisticVibrator: {
Archetype: ExtendedArchetype.VIBRATING,
ChatTags: [
CommonChatTags.SOURCE_CHAR,
CommonChatTags.DEST_CHAR,
CommonChatTags.ASSET_NAME,
CommonChatTags.AUTOMATIC,
],
ScriptHooks: {
Load: InventoryItemVulvaFuturisticVibratorLoadHook,
Draw: InventoryItemVulvaFuturisticVibratorDrawHook,
Click: InventoryItemVulvaFuturisticVibratorClickHook,
Exit: InventoryItemVulvaFuturisticVibratorExitHook,
Validate: FuturisticAccessValidate,
ScriptDraw: AssetsItemVulvaFuturisticVibratorScriptDrawHook,
},
DialogPrefix: {
Header: (data, C, item) =>
`${DialogFindPlayer("CurrentMode")} ${DialogFindPlayer(
item.Property?.Mode ?? "Off",
)}`,
},
BaselineProperty: {
AccessMode: "",
TriggerValues: CommonConvertArrayToString(
ItemVulvaFuturisticVibratorTriggers,
),
},
}, // FuturisticVibrator
}, // ItemVulva
ItemVulvaPiercings: {
ClitRing: {
Archetype: ExtendedArchetype.TYPED,
ChatTags: [CommonChatTags.SOURCE_CHAR, CommonChatTags.DEST_CHAR],
Options: [
{
Name: "Base",
Property: {
Effect: [],
},
},
{
Name: "Leash",
Prerequisite: ["NotSuspended"],
Property: {
Effect: [E.Leash, E.Wiggling],
},
},
],
DialogPrefix: {
Header: "SelectAttachmentState",
Option: "ClitRingPose",
Chat: "ClitRingRestrain",
},
}, // ClitRing
RoundClitPiercing: {
Archetype: ExtendedArchetype.TYPED,
ChatTags: [CommonChatTags.SOURCE_CHAR, CommonChatTags.DEST_CHAR],
Options: [
{
Name: "Ring",
Property: {
Effect: [],
},
},
{
Name: "Weight",
Property: {
Effect: [E.Wiggling],
},
},
{
Name: "Bell",
Property: {
Effect: [E.Wiggling],
},
},
{
Name: "Chain",
Property: {
Effect: [E.Wiggling],
Block: ["ItemNipplesPiercings"],
},
Prerequisite: ["NeedsNippleRings"],
},
{
Name: "HaremChain",
Property: {
Effect: [E.Wiggling],
Block: ["ItemNipplesPiercings"],
},
Prerequisite: ["NeedsNippleRings"],
},
],
}, // RoundClitPiercings
VibeHeartClitPiercing: {
Archetype: ExtendedArchetype.VIBRATING,
}, // VibeHeartClitPiercing
TapedClitEgg: {
Archetype: ExtendedArchetype.VIBRATING,
}, // TapedClitEgg
VibeEggGlans: {
Archetype: ExtendedArchetype.VIBRATING,
}, // VibeEggGlans
}, // ItemVulvaPiercings
ItemButt: {
AnalHook: {
Archetype: ExtendedArchetype.TYPED,
ChatTags: [CommonChatTags.SOURCE_CHAR, CommonChatTags.DEST_CHAR],
Options: [
{
Name: "Base",
Property: {
Difficulty: 0,
Intensity: 0,
},
},
{
Name: "Chain",
Property: {
Difficulty: 8,
Intensity: 1,
Effect: [E.Freeze, E.Egged],
},
Random: false,
},
{
Name: "Hair",
Property: {
Difficulty: 4,
Intensity: 1,
Effect: [E.Egged],
},
},
],
DialogPrefix: {
Header: "SelectAttachmentState",
Option: "AnalHookPose",
Chat: "AnalHookRestrain",
Npc: "InventoryItemButtAnalHookNPCReaction",
},
}, // AnalHook
ButtPlugLock: {
Archetype: ExtendedArchetype.TYPED,
ChatTags: [CommonChatTags.SOURCE_CHAR, CommonChatTags.DEST_CHAR],
Options: [
{
Name: "Base",
},
{
Name: "ChainShort",
Property: {
Effect: [E.Freeze, E.IsChained],
SetPose: ["Kneel"],
},
Random: false,
},
{
Name: "ChainLong",
Prerequisite: ["NotSuspended"],
Property: {
Effect: [E.Tethered, E.IsChained],
},
Random: false,
},
],
DialogPrefix: {
Header: "SelectAttachmentState",
Option: "ButtPlugLockPose",
Chat: "ButtPlugLockRestrain",
Npc: "ButtPlugLockSet",
},
}, // ButtPlugLock
ButtPump: {
Archetype: ExtendedArchetype.TYPED,
ChatTags: [CommonChatTags.SOURCE_CHAR, CommonChatTags.DEST_CHAR],
Options: [
{
Name: "Empty",
Property: {
InflateLevel: 0,
},
},
{
Name: "Light",
Property: {
InflateLevel: 1,
},
},
{
Name: "Inflated",
Property: {
InflateLevel: 2,
},
},
{
Name: "Bloated",
Property: {
InflateLevel: 3,
},
},
{
Name: "Maximum",
Property: {
InflateLevel: 4,
},
},
],
DialogPrefix: {
Header: "SelectInflateLevel",
Option: "InflateLevel",
Chat: ({ newIndex, previousIndex }) =>
`BPumps${newIndex > previousIndex ? "pumps" : "deflates"}To`,
Npc: "InventoryItemButtButtPumpNPCReaction",
},
DrawImages: false,
}, // ButtPump
VibratingButtplug: {
Archetype: ExtendedArchetype.VIBRATING,
}, // VibratingButtplug
VibratingDildoPlug: {
Archetype: ExtendedArchetype.VIBRATING,
}, // VibratingDildoPlug
BunnyTailVibePlug: {
Archetype: ExtendedArchetype.VIBRATING,
}, // BunnyTailVibePlug
EggVibePlugXXL: {
Archetype: ExtendedArchetype.VIBRATING,
}, // EggVibePlugXXL
LockingVibePlug: {
Archetype: ExtendedArchetype.VIBRATING,
}, // LockingVibePlug
AnalBeads2: {
Archetype: ExtendedArchetype.TYPED,
ChatTags: [
CommonChatTags.SOURCE_CHAR,
CommonChatTags.DEST_CHAR,
CommonChatTags.ASSET_NAME,
],
Options: [
{ Name: "_1in", Property: { InsertedBeads: 1 } },
{ Name: "_2in", Property: { InsertedBeads: 2 } },
{ Name: "_3in", Property: { InsertedBeads: 3 } },
{ Name: "_4in", Property: { InsertedBeads: 4 } },
{ Name: "_5in", Property: { InsertedBeads: 5 } },
],
DrawImages: false,
ChatSetting: TypedItemChatSetting.SILENT,
ScriptHooks: {
PublishAction: InventoryItemButtAnalBeads2PublishActionHook,
},
}, // AnalBeads2
InflVibeButtPlug: {
Archetype: ExtendedArchetype.MODULAR,
ChatTags: [
CommonChatTags.SOURCE_CHAR,
CommonChatTags.DEST_CHAR,
CommonChatTags.DEST_CHAR_NAME,
CommonChatTags.ASSET_NAME,
],
Modules: [
{
Name: "InflateLevel",
Key: "f",
DrawImages: false,
Options: [
{ Property: { InflateLevel: 0 } }, // f0 - Empty
{ Property: { InflateLevel: 1 } }, // f1 - Light
{ Property: { InflateLevel: 2 } }, // f2 - Inflated
{ Property: { InflateLevel: 3 } }, // f3 - Bloated
{ Property: { InflateLevel: 4 } }, // f4 - Maximum
],
},
{
Name: "Intensity",
Key: "i",
DrawImages: false,
Options: [
{ Property: { Intensity: -1, Effect: [E.Egged] } }, // i0 - Turn Off
{ Property: { Intensity: 0, Effect: [E.Egged, E.Vibrating] } }, // i1 - Low
{ Property: { Intensity: 1, Effect: [E.Egged, E.Vibrating] } }, // i2 - Medium
{ Property: { Intensity: 2, Effect: [E.Egged, E.Vibrating] } }, // i3 - High
{ Property: { Intensity: 3, Effect: [E.Egged, E.Vibrating] } }, // i4 - Maximum
],
},
],
ScriptHooks: {
Draw: InventoryItemButtInflVibeButtPlugDrawHook,
},
DialogPrefix: {
Header: "ItemButtInflVibeButtPlugSelect",
Module: "ItemButtInflVibeButtPlugModule",
Option: "ItemButtInflVibeButtPlugOption",
Chat: ({ previousOption, newOption }) => {
const Prefix = "ItemButtInflVibeButtPlug";
const Change =
Number.parseInt(newOption.Name[1]) -
Number.parseInt(previousOption.Name[1]);
const StateChange = Change > 0 ? "Increase" : "Decrease";
return `${Prefix}${StateChange}To`;
},
},
}, // InflVibeButtPlug
ShockPlug: {
Archetype: ExtendedArchetype.TYPED,
CopyConfig: {
GroupName: "ItemNeckAccessories",
AssetName: "CollarShockUnit",
},
DialogPrefix: {
Header: "ItemNeckAccessoriesCollarShockUnitSelect",
Option: "ItemNeckAccessoriesCollarShockUnit",
Chat: "ItemNeckAccessoriesCollarShockUnitSet",
Npc: "ItemNeckAccessoriesCollarShockUnit",
},
}, // ShockPlug
}, // ItemButt
ItemNipplesPiercings: {
RoundPiercing: {
Archetype: ExtendedArchetype.TYPED,
ChatTags: [CommonChatTags.SOURCE_CHAR, CommonChatTags.DEST_CHAR],
Options: [
{
Name: "Base",
BondageLevel: 0,
Prerequisite: ["AccessBreast", "AccessBreastSuitZip"],
Property: {
Difficulty: 0,
},
},
{
Name: "Chain",
BondageLevel: 0,
Prerequisite: ["AccessBreast", "AccessBreastSuitZip", "Collared"],
Property: {
Difficulty: 0,
Block: ["ItemNeck"],
AllowActivityOn: ["ItemNeck"],
},
},
{
Name: "Weighted",
BondageLevel: 0,
Prerequisite: ["AccessBreast", "AccessBreastSuitZip"],
Property: {
Difficulty: 0,
Effect: [E.Wiggling],
},
},
{
Name: "WeightedChain",
BondageLevel: 0,
Prerequisite: ["AccessBreast", "AccessBreastSuitZip", "Collared"],
Property: {
Difficulty: 0,
Block: ["ItemNeck"],
AllowActivityOn: ["ItemNeck"],
Effect: [E.Wiggling],
},
},
],
DialogPrefix: {
Header: "SelectPiercingState",
Option: "RoundPiercingPose",
Chat: "RoundPiercingRestrain",
Npc: "RoundPiercingNPCReaction",
},
}, // RoundPiercing
VibeHeartPiercings: {
Archetype: ExtendedArchetype.VIBRATING,
}, // VibeHeartPiercings
}, // ItemNipplesPiercings
ItemNipples: {
ChainClamp: {
Archetype: ExtendedArchetype.TYPED,
ChatTags: [CommonChatTags.SOURCE_CHAR, CommonChatTags.DEST_CHAR],
Options: [
{
Name: "Chain",
},
{
Name: "Chain2",
},
],
DialogPrefix: {
Header: "SelectChainType",
Option: "ChainClapNipples",
Chat: "ChainClampSet",
Npc: "ItemNipplesChainClamp",
},
}, //ChainClamp
LactationPump: {
Archetype: ExtendedArchetype.TYPED,
ChatTags: [CommonChatTags.SOURCE_CHAR, CommonChatTags.DEST_CHAR],
Options: [
{
Name: "Off",
Property: {
SuctionLevel: 0,
},
},
{
Name: "LowSuction",
Property: {
SuctionLevel: 1,
},
},
{
Name: "MediumSuction",
Property: {
SuctionLevel: 2,
},
},
{
Name: "HighSuction",
Property: {
SuctionLevel: 3,
},
},
{
Name: "MaximumSuction",
Property: {
SuctionLevel: 4,
},
},
],
DialogPrefix: {
Header: "LactationPumpSelectSetting",
Option: "LactationPump",
Chat: ({ newIndex, previousIndex }) =>
`LactationPumpPower${
newIndex > previousIndex ? "tightens" : "loosens"
}To`,
},
DrawImages: false,
}, // LactationPump
NippleSuctionCups: {
Archetype: ExtendedArchetype.TYPED,
ChatTags: [CommonChatTags.SOURCE_CHAR, CommonChatTags.DEST_CHAR],
Options: [
{
Name: "Loose",
Property: {
SuctionLevel: 0,
},
},
{
Name: "Light",
Property: {
SuctionLevel: 1,
},
},
{
Name: "Medium",
Property: {
SuctionLevel: 2,
},
},
{
Name: "Heavy",
Property: {
SuctionLevel: 3,
},
},
{
Name: "Maximum",
Property: {
SuctionLevel: 4,
},
},
],
DialogPrefix: {
Header: "SelectSuctionLevel",
Option: "SuctionLevel",
Chat: ({ newIndex, previousIndex }) =>
`NipSuc${newIndex > previousIndex ? "tightens" : "loosens"}To`,
},
DrawImages: false,
}, // NippleSuctionCups
PlateClamps: {
Archetype: ExtendedArchetype.TYPED,
ChatTags: [CommonChatTags.SOURCE_CHAR, CommonChatTags.DEST_CHAR],
Options: [
{
Name: "Loose",
},
{
Name: "Tight",
},
],
DialogPrefix: {
Header: "ItemNipplesPlateClampsSelectTightness",
Option: "ItemNipplesPlateClampsTightnessLevel",
Chat: "ItemNipplesPlateClamps",
},
DrawImages: false,
}, // PlateClamps
VibeNippleClamp: {
Archetype: ExtendedArchetype.VIBRATING,
}, // VibeNippleClamp
TapedVibeEggs: {
Archetype: ExtendedArchetype.VIBRATING,
}, // TapedVibeEggs
NippleVibe: {
Archetype: ExtendedArchetype.VIBRATING,
}, // NippleVibe
ShockClamps: {
Archetype: ExtendedArchetype.TYPED,
CopyConfig: {
GroupName: "ItemNeckAccessories",
AssetName: "CollarShockUnit",
},
DialogPrefix: {
Header: "ItemNeckAccessoriesCollarShockUnitSelect",
Option: "ItemNeckAccessoriesCollarShockUnit",
Chat: "ItemNeckAccessoriesCollarShockUnitSet",
Npc: "ItemNeckAccessoriesCollarShockUnit",
},
}, // ShockClamps
}, // ItemNipples
Corset: {
LatexCorset1: {
Archetype: ExtendedArchetype.TYPED,
Options: [
{
Name: "Garter",
},
{
Name: "Garterless",
},
],
DialogPrefix: {
Header: "LatexCorset1Select",
Option: "LatexCorset1",
Chat: "LatexCorset1Set",
},
}, // LatexCorset1
CorsetDress: {
Archetype: ExtendedArchetype.TYPED,
CopyConfig: { GroupName: "Cloth", AssetName: "CorsetDress" },
}, // CorsetDress
}, // Corset
ItemTorso: {
HeavyLatexCorset: {
Archetype: ExtendedArchetype.TYPED,
ChatTags: [CommonChatTags.SOURCE_CHAR, CommonChatTags.DEST_CHAR],
Options: [
{
Name: "Normal",
},
{
Name: "Straps",
},
],
DialogPrefix: {
Header: "SelectHeavyLatexCorsetType",
Option: "HeavyLatexCorsetType",
Chat: "HeavyLatexCorsetSet",
Npc: "HeavyLatexCorset",
},
}, // HeavyLatexCorset
Ribbons: {
Archetype: ExtendedArchetype.TYPED,
ChatTags: [CommonChatTags.SOURCE_CHAR, CommonChatTags.DEST_CHAR],
Options: [
{
Name: "Basic",
Property: { Difficulty: 1 },
},
{
Name: "Harness1",
BondageLevel: 2,
Property: { Difficulty: 3, Effect: [E.CrotchRope] },
},
{
Name: "Harness2",
BondageLevel: 3,
Property: { Difficulty: 4, Effect: [E.CrotchRope] },
},
],
DialogPrefix: {
Header: "SelectRibbonType",
Option: "RibbonsTorso",
Chat: "TorsoRibbonsSet",
Npc: "ItemTorsoRibbons",
},
}, // Ribbons
HighSecurityHarness: {
Archetype: ExtendedArchetype.TYPED,
Options: [
{
Name: "LowSec",
},
{
Name: "h2", // MedSec
Property: { Difficulty: 5, Effect: [E.CrotchRope] },
},
{
Name: "h3", // MedSecBreast
Property: { Difficulty: 5 },
},
{
Name: "h4", // MaxSec
Property: { Difficulty: 10, Effect: [E.CrotchRope] },
},
],
DialogPrefix: {
Header: "HighSecurityHarnessType",
Option: "HighSecurityHarnessType",
Chat: "HighSecurityHarnessSet",
},
}, // HighSecurityHarness
LatexCorset1: {
Archetype: ExtendedArchetype.TYPED,
CopyConfig: { GroupName: "Corset", AssetName: "LatexCorset1" },
}, //LatexCorset1
ThinLeatherStraps: {
Archetype: ExtendedArchetype.TYPED,
Options: [{ Name: "Crotch" }, { Name: "Waist" }, { Name: "Harness" }],
}, // ThinLeatherStraps
NylonRopeHarness: {
Archetype: ExtendedArchetype.TYPED,
CopyConfig: { AssetName: "HempRopeHarness" },
}, // NylonRopeHarness
HempRopeHarness: {
Archetype: ExtendedArchetype.TYPED,
ChatTags: [CommonChatTags.SOURCE_CHAR, CommonChatTags.TARGET_CHAR],
Options: [
{
Name: "Crotch",
Property: { Difficulty: 1, Effect: [E.CrotchRope] },
},
{
Name: "Waist",
Property: { Difficulty: 1 },
},
{
Name: "Harness",
BondageLevel: 2,
Property: { Difficulty: 1, Effect: [E.CrotchRope] },
},
{
Name: "Star",
BondageLevel: 3,
Property: { Difficulty: 2 },
},
{
Name: "Diamond",
BondageLevel: 4,
Property: { Difficulty: 3, Effect: [E.CrotchRope] },
},
],
DialogPrefix: {
Header: "SelectRopeBondage",
Option: "RopeBondage",
Chat: "RopeHarnessSet",
Npc: "RopeBondage",
},
}, // HempRopeHarness
LockingSwimsuit: {
Archetype: ExtendedArchetype.TYPED,
Options: [
{
Name: "Shiny",
},
{
Name: "Dull",
},
],
}, //LockingSwimsuit
FuturisticHarness: {
Archetype: ExtendedArchetype.TYPED,
Options: [
{
Name: "Full",
Property: { Difficulty: 2 },
},
{
Name: "Upper",
Property: { Difficulty: 0 },
},
{
Name: "Lower",
Property: { Difficulty: 0 },
},
],
ScriptHooks: {
Load: FuturisticAccessLoad,
Click: InventoryItemTorsoFuturisticHarnessClickHook,
Draw: InventoryItemTorsoFuturisticHarnessDrawHook,
Exit: FuturisticAccessExit,
Validate: FuturisticAccessValidate,
},
}, // FuturisticHarness
NavelBar1: {
Archetype: ExtendedArchetype.MODULAR,
Modules: [
{
Name: "Jewel",
Key: "j",
DrawImages: false,
Options: [
{ Property: {} }, // j0 - Detached
{ Property: {} }, // j1 - Attached
],
},
{
Name: "Chain",
Key: "c",
DrawImages: false,
Options: [
{ Property: {} }, // c0 - Detached
{ Property: {} }, // c1 - Single Chain
{ Property: {} }, // c2 - Waist Chain
],
},
],
}, // NavelBar1
}, // ItemTorso
ItemTorso2: {
LockingSwimsuit: {
Archetype: ExtendedArchetype.TYPED,
CopyConfig: { GroupName: "ItemTorso", AssetName: "LockingSwimsuit" },
}, // LockingSwimsuit
NylonRopeHarness: {
Archetype: ExtendedArchetype.TYPED,
CopyConfig: { GroupName: "ItemTorso", AssetName: "HempRopeHarness" },
}, // NylonRopeHarness
HempRopeHarness: {
Archetype: ExtendedArchetype.TYPED,
CopyConfig: { GroupName: "ItemTorso", AssetName: "HempRopeHarness" },
}, // HempRopeHarness
HighSecurityHarness: {
Archetype: ExtendedArchetype.TYPED,
CopyConfig: { GroupName: "ItemTorso", AssetName: "HighSecurityHarness" },
}, // HighSecurityHarness
LatexCorset1: {
Archetype: ExtendedArchetype.TYPED,
CopyConfig: { GroupName: "Corset", AssetName: "LatexCorset1" },
}, // LatexCorset1
HeavyLatexCorset: {
Archetype: ExtendedArchetype.TYPED,
CopyConfig: { GroupName: "ItemTorso", AssetName: "HeavyLatexCorset" },
}, // HeavyLatexCorset
Ribbons: {
Archetype: ExtendedArchetype.TYPED,
CopyConfig: { GroupName: "ItemTorso", AssetName: "Ribbons" },
}, // Ribbons
ThinLeatherStraps: {
Archetype: ExtendedArchetype.TYPED,
CopyConfig: { GroupName: "ItemTorso", AssetName: "ThinLeatherStraps" },
}, // ThinLeatherStraps
FuturisticHarness: {
Archetype: ExtendedArchetype.TYPED,
CopyConfig: { GroupName: "ItemTorso", AssetName: "FuturisticHarness" },
DialogPrefix: {
Header: "ItemTorsoFuturisticHarnessSelect",
Option: "ItemTorsoFuturisticHarness",
Chat: "ItemTorsoFuturisticHarnessSet",
},
}, // FuturisticHarness
NavelBar1: {
Archetype: ExtendedArchetype.MODULAR,
CopyConfig: { GroupName: "ItemTorso", AssetName: "NavelBar1" },
}, // NavelBar1
}, //ItemTorso2
Shoes: {
FuturisticHeels2: {
Archetype: ExtendedArchetype.TYPED,
Options: [{ Name: "Shiny" }, { Name: "Matte" }],
}, // FuturisticHeels2
TallerBoots: {
Archetype: ExtendedArchetype.MODULAR,
Modules: [
{
Name: "Legs",
Key: "l",
Options: [
{
// l0 - Short Boots
Property: { Effect: [] },
},
{
// l1 - High Boots
Property: { Effect: [] },
},
],
},
{
Name: "Belt",
Key: "b",
Options: [
{
// b0 - No Belt
Property: { Effect: [] },
},
{
// b1 - Belt
Property: { Effect: [] },
},
],
},
{
Name: "Metal",
Key: "m",
Options: [
{
// m0 - No Details
Property: { Effect: [] },
},
{
// m1 - Metal Details
Property: { Effect: [] },
},
],
},
],
}, // TallerBoots
ThighBoots: {
Archetype: ExtendedArchetype.MODULAR,
Modules: [
{
Name: "Layer",
Key: "l",
Options: [{}, {}, {}], // None, Sock, Thigh High
},
{
Name: "Band",
Key: "b",
Options: [{}, {}], // None, Band
},
],
}, // Thighboots
StilettoHeels: {
Archetype: ExtendedArchetype.MODULAR,
DrawImages: false,
Modules: [
{
Name: "Layer",
Key: "t",
Options: [{}, {}], // Normal, Round
},
{
Name: "Center",
Key: "c",
Options: [{}, {}], // None, Center
},
],
}, // StilettoHeels
}, // Shoes
HairAccessory1: {
ElfEars: {
Archetype: ExtendedArchetype.TYPED,
Options: [
{
Name: "InFront",
},
{
Name: "Behind",
Property: { OverridePriority: 51 },
},
],
DialogPrefix: {
Header: "HairAccessory1ElfEarsSelect",
Option: "HairAccessory1ElfEars",
},
}, // ElfEars
Halo: {
Archetype: ExtendedArchetype.TYPED,
ChatTags: [
CommonChatTags.SOURCE_CHAR,
CommonChatTags.TARGET_CHAR,
CommonChatTags.ASSET_NAME,
],
Options: [
{
Name: "Default",
},
{
Name: "Broken",
},
],
ScriptHooks: {
Init: PropertyOpacityInit,
Load: (...args) => PropertyOpacityLoad(...args, "lightbulb"),
Draw: (...args) => PropertyOpacityDraw(...args, 0, -50, "Brightness"),
Exit: PropertyOpacityExit,
},
BaselineProperty: { Opacity: 0 },
}, // Halo
}, // HairAccessory1
HairAccessory2: {
ElfEars: {
Archetype: ExtendedArchetype.TYPED,
CopyConfig: { GroupName: "HairAccessory1", AssetName: "ElfEars" },
},
}, // HairAccessory2
HairAccessory3: {
Halo: {
Archetype: ExtendedArchetype.TYPED,
CopyConfig: { GroupName: "HairAccessory1", AssetName: "Halo" },
DialogPrefix: {
Header: "HairAccessory1HaloSelect",
Option: "HairAccessory1Halo",
Chat: "HairAccessory1HaloSet",
Npc: "HairAccessory1Halo",
},
},
}, // HairAccessory3
ItemMouth: {
ClothGag: {
Archetype: ExtendedArchetype.TYPED,
Options: [
{
Name: "Small",
Property: {
Effect: [E.GagVeryLight],
},
},
{
Name: "Cleave",
Property: {
Effect: [E.GagLight],
},
},
{
Name: "Knotted",
Property: {
Effect: [E.GagLight],
},
},
{
Name: "OTM",
Property: {
Effect: [E.GagLight],
},
},
{
Name: "OTN",
Property: {
Effect: [E.GagLight],
},
},
],
DialogPrefix: {
Header: "SelectGagType",
Option: "ClothGagType",
Chat: "ClothGagSet",
},
}, // ClothGag
ScarfGag: {
Archetype: ExtendedArchetype.TYPED,
Options: [
{
Name: "Loose",
Property: {
Effect: [E.GagVeryLight],
},
},
{
Name: "OTN",
Property: {
Effect: [E.GagLight],
},
},
],
DialogPrefix: {
Header: "SelectGagType",
Option: "ScarfGagType",
Chat: "ScarfGagSet",
},
}, // ScarfGag
WiffleGag: {
Archetype: ExtendedArchetype.TYPED,
Options: [
{
Name: "Normal",
},
{
Name: "Tight",
},
],
DialogPrefix: {
Header: "SelectGagType",
Option: "BallGagMouthType",
Chat: "BallGagMouthSet",
},
}, // WiffleGag
BallGag: {
Archetype: ExtendedArchetype.TYPED,
Options: [
{
Name: "Normal",
},
{
Name: "Shiny",
},
{
Name: "Tight",
},
],
DialogPrefix: {
Header: "SelectGagType",
Option: "BallGagMouthType",
Chat: "BallGagMouthSet",
},
}, // BallGag
RopeBallGag: {
Archetype: ExtendedArchetype.TYPED,
Options: [
{
Name: "Normal",
Property: {
Effect: [E.GagEasy],
},
},
{
Name: "Tight",
Property: {
Effect: [E.GagNormal],
},
},
],
DialogPrefix: {
Header: "SelectGagType",
Option: "BallGagMouthType",
Chat: "BallGagMouthSet",
},
}, // RopeBallGag
HarnessBallGag: {
Archetype: ExtendedArchetype.TYPED,
CopyConfig: { AssetName: "BallGag" },
},
DuctTape: {
Archetype: ExtendedArchetype.TYPED,
Options: [
{
Name: "Small",
Property: {
Effect: [E.GagVeryLight],
},
},
{
Name: "Crossed",
Property: {
Effect: [E.GagLight],
},
},
{
Name: "Full",
Property: {
Effect: [E.GagEasy],
},
},
{
Name: "Double",
Property: {
Effect: [E.GagNormal],
},
},
{
Name: "Cover",
Property: {
Effect: [E.GagMedium],
},
},
],
DialogPrefix: {
Header: "SelectGagType",
Option: "DuctTapeMouthType",
Chat: "DuctTapeMouthSet",
},
}, // DuctTape
HarnessBallGag1: {
Archetype: ExtendedArchetype.TYPED,
Options: [
{
Name: "Normal",
},
{
Name: "Tight",
},
],
DialogPrefix: {
Header: "SelectGagType",
Option: "BallGagMouthType",
Chat: "BallGagMouthSet",
},
}, // HarnessBallGag1
CupholderGag: {
Archetype: ExtendedArchetype.TYPED,
Options: [
{
Name: "NoCup",
},
{
Name: "Tip",
},
{
Name: "Cup",
},
],
DialogPrefix: {
Header: "CupholderGagOptions",
Option: "CupholderGagOptions",
Chat: "CupholderGagSet",
},
DrawImages: false,
}, // CupholderGag
PumpGag: {
Archetype: ExtendedArchetype.TYPED,
Options: [
{
Name: "Empty",
Property: {
InflateLevel: 0,
Difficulty: 0,
},
},
{
Name: "Light",
Property: {
InflateLevel: 1,
Difficulty: 2,
Effect: [E.GagLight],
},
},
{
Name: "Inflated",
Property: {
InflateLevel: 2,
Difficulty: 4,
Effect: [E.GagEasy],
},
},
{
Name: "Bloated",
Property: {
InflateLevel: 3,
Difficulty: 6,
Effect: [E.GagMedium],
},
},
{
Name: "Maximum",
Property: {
InflateLevel: 4,
Difficulty: 8,
Effect: [E.GagVeryHeavy],
},
},
],
DialogPrefix: {
Header: "SelectInflateLevel",
Option: "InflateLevel",
Chat: ({ previousIndex, newIndex }) =>
`PumpGag${newIndex > previousIndex ? "pumps" : "deflates"}To`,
},
DrawImages: false,
}, // PumpGag
PlugGag: {
Archetype: ExtendedArchetype.TYPED,
Options: [
{
Name: "Open",
Property: {
Effect: [E.GagMedium, E.OpenMouth],
},
},
{
Name: "Plug",
Property: {
Effect: [E.BlockMouth, E.GagTotal],
},
},
],
DialogPrefix: {
Header: "SelectGagType",
Option: "PlugGagMouthType",
Chat: "PlugGagMouthSet",
},
}, // PlugGag
DildoPlugGag: {
Archetype: ExtendedArchetype.TYPED,
Options: [
{
Name: "Open",
Property: {
Effect: [E.GagEasy, E.OpenMouth],
},
},
{
Name: "Plug",
Property: {
Effect: [E.BlockMouth, E.GagTotal2],
},
},
],
DialogPrefix: {
Header: "SelectGagType",
Option: "PlugGagMouthType",
Chat: "DildoPlugGagMouthSet",
},
}, // DildoPlugGag
MilkBottle: {
Archetype: ExtendedArchetype.TYPED,
Options: [
{
Name: "Rest",
},
{
Name: "Raised",
},
{
Name: "Chug",
},
],
DialogPrefix: {
Header: "SelectMilkBottleState",
Option: "MilkBottle",
Chat: "MilkBottleSet",
},
}, // MilkBottle
FunnelGag: {
Archetype: ExtendedArchetype.TYPED,
Options: [
{
Name: "None",
Property: {
Effect: [E.OpenMouth],
},
},
{
Name: "Funnel",
Property: {
Effect: [E.BlockMouth, E.ProtrudingMouth],
},
},
],
DialogPrefix: {
Header: "SelectGagType",
Option: "FunnelGagMouthType",
Chat: "FunnelGagMouthSet",
},
}, // FunnelGag
HarnessPonyBits: {
Archetype: ExtendedArchetype.TYPED,
Options: [
{
Name: "Attached",
Property: {
Effect: [E.BlockMouth, E.GagLight],
},
},
{
Name: "Detached",
Property: {
Effect: [E.OpenMouth],
},
},
],
DialogPrefix: {
Header: "ItemMouthHarnessPonyBitsSelect",
Option: "ItemMouthHarnessPonyBits",
Chat: "ItemMouthHarnessPonyBitsSet",
Npc: "ItemMouthHarnessPonyBits",
},
}, // PonyBit
DentalGag: {
Archetype: ExtendedArchetype.TYPED,
ChatTags: [CommonChatTags.SOURCE_CHAR, CommonChatTags.TARGET_CHAR],
Options: [
{
Name: "Open",
Property: {
Effect: [E.OpenMouth, E.GagLight],
},
},
{
Name: "Closed",
Property: {
Effect: [E.BlockMouth, E.GagMedium],
},
},
],
ChangeWhenLocked: false,
}, // DentalGag
Ribbons: {
Archetype: ExtendedArchetype.TYPED,
Options: [
{
Name: "Basic",
Property: {
Effect: [E.GagVeryLight],
},
},
{
Name: "Bow",
Property: {
Effect: [E.GagLight],
},
},
],
DialogPrefix: {
Header: "SelectRibbonType",
Option: "RibbonType",
Chat: "RibbonsGagSet",
},
}, // Ribbons
BigMouth: {
Archetype: ExtendedArchetype.TYPED,
Options: [
{
Name: "Default",
},
{
Name: "Open",
},
{
Name: "Serious",
},
{
Name: "Grin",
},
],
DialogPrefix: {
Header: "BigMouthSelectMouthStyle",
Option: "BigMouthMouthStyle",
},
}, // BigMouth
FuturisticMuzzle: {
Archetype: ExtendedArchetype.MODULAR,
Modules: [
{
Name: "Nose",
Key: "n",
Options: [
{}, // n0 - No nose
{
// n1 - OTN
Property: {
Difficulty: 1,
},
},
],
},
{
Name: "Harness",
Key: "h",
Options: [
{}, // h0 - No straps
{
// h1 - Harness straps
Property: {
Difficulty: 1,
},
},
],
},
{
Name: "Symbol",
Key: "s",
Options: [
{}, // s0 - Nothing
{}, // s1 - Lock symbol
{}, // s2 - Mute symbol
{}, // s3 - X symbol
],
},
],
ScriptHooks: {
Load: FuturisticAccessLoad,
Click: FuturisticAccessClick,
Draw: FuturisticAccessDraw,
Exit: FuturisticAccessExit,
},
}, // FuturisticMuzzle
OTNPlugGag: {
Archetype: ExtendedArchetype.TYPED,
Options: [
{
Name: "Open",
Property: {
Effect: [E.GagMedium, E.OpenMouth],
},
},
{
Name: "Plug",
Property: {
Effect: [E.BlockMouth, E.GagTotal],
},
},
],
DialogPrefix: {
Header: "SelectGagType",
Option: "PlugGagMouthType",
Chat: "PlugGagMouthSet",
},
}, // OTNPlugGag
TechnoGag: {
Archetype: ExtendedArchetype.TYPED,
Options: [
{
Name: "Masked",
Property: {
Effect: [E.BlockMouth],
},
},
{
Name: "Gagged",
Property: {
Effect: [E.BlockMouth, E.GagMedium],
},
},
],
DialogPrefix: {
Header: "SelectGagType",
},
}, // TechnoGag
PonyGag: {
Archetype: ExtendedArchetype.MODULAR,
ChatTags: [
CommonChatTags.SOURCE_CHAR,
CommonChatTags.TARGET_CHAR,
CommonChatTags.DEST_CHAR,
],
Modules: [
{
Name: "Gag",
Key: "g",
Options: [
{ Property: { Effect: [E.BlockMouth, E.GagLight] } }, //g0 - Regular BitGag
{ Property: {} }, //g1 - No Gag
{ Property: { Effect: [E.BlockMouth, E.GagMedium] } }, //g2 - Thick BitGag
{ Property: { Effect: [E.BlockMouth, E.GagHeavy] } }, //g3 - Tongue Depresor
{ Property: { Effect: [E.BlockMouth, E.GagMedium] } }, //g4 - Ballgag
{
Property: {
Effect: [E.BlockMouth, E.GagVeryHeavy],
Hide: ["Mouth"],
},
}, //g5 - DildoGag
],
},
{
Name: "Panel",
Key: "p",
Options: [
{}, //None
{}, //p1 - Panel
{}, //p2 - PanelShield
{}, //p3 - PanelHex
{}, //p4 - PanelSun
{}, //p5 - PanelMoon
{}, //p6 - PanelHeart
{}, //p7 - PanelHorse
{}, //p8 - PanelTriskel
{}, //p9 - PanelPentacle
],
},
{
Name: "Reins",
Key: "r",
Options: [
{}, //r0 - None
{ Property: { Effect: [E.Leash] } }, //r1 - Reins
{ Property: { Effect: [E.Leash] } }, //r2 - Rope
{
Property: {
Effect: [E.Tethered, E.IsChained],
Block: ["ItemAddon", "ItemDevices"],
},
}, //r3 - Pole
],
},
{
Name: "Top",
Key: "t",
Options: [
{}, //t0 - None
{}, //t1 - Plume
{ Property: { Hide: ["HairFront"] } }, //t2 - Mane Left
{ Property: { Hide: ["HairFront"] } }, //t3 - Mane Right
{ Property: { Hide: ["HairFront"] } }, //t4 - Mohawk
],
},
{
Name: "Extra",
Key: "e",
Options: [
{}, //e0 - None
{ Property: { Difficulty: 7 } }, //e1 - ExtraStraps
{}, //e2 - Flags
],
},
{
Name: "Horn",
Key: "h",
Options: [
{}, //h0 - None
{ Property: { AllowActivity: ["PenetrateItem"] } }, //h1 - Horn
{ Property: { AllowActivity: ["PenetrateItem"] } }, //h2 - Dildocorn
],
},
{
Name: "Blinders",
Key: "b",
Options: [
{}, //b0 - None
{}, //b1 - Blinders
],
},
],
ChangeWhenLocked: false,
DialogPrefix: {
Header: "ItemMouthPonyGagSelect",
Module: "ItemMouthPonyGagModule",
Option: "ItemMouthPonyGagOption",
Chat: "ItemMouthPonyGagSet",
},
}, // PonyGag
LatexSheathGag: {
Archetype: ExtendedArchetype.TYPED,
Options: [
{
Name: "Thin",
},
{
Name: "Thick",
Property: { Effect: [E.GagVeryLight] },
},
{
Name: "VeryThick",
Property: { Effect: [E.GagMedium] },
},
],
DrawImages: false,
}, //LatexSheathGag
FuturisticPanelGag: {
Archetype: ExtendedArchetype.MODULAR,
ChatTags: [
CommonChatTags.SOURCE_CHAR,
CommonChatTags.ASSET_NAME,
CommonChatTags.DEST_CHAR,
CommonChatTags.DEST_CHAR_NAME,
],
Modules: [
{
Name: "Gag",
Key: "g",
DrawImages: true,
Options: [
{}, // g0 - Padded
{
Property: { Effect: [E.GagVeryLight] },
Prerequisite: ["GagUnique"],
}, // g1 - LightBall
{
Property: { Effect: [E.GagMedium] },
Prerequisite: ["AccessMouth", "GagUnique"],
}, // g2 - Ball
{
Property: { Effect: [E.GagTotal] },
Prerequisite: ["AccessMouth", "GagUnique"],
}, // g3 - Plug
],
},
{
Name: "AutoPunish",
Key: "p",
DrawImages: false,
Options: [
{ Property: { AutoPunish: 0 } }, // p0 - Off
{ Property: { AutoPunish: 1 } }, // p1 - Low
{ Property: { AutoPunish: 2 } }, // p2 - Medium
{ Property: { AutoPunish: 3 } }, // p3 - Maximum
],
},
{
Name: "DeflationTime",
Key: "t",
DrawImages: false,
Options: [
{ Property: { AutoPunishUndoTimeSetting: 120000 } }, // t0 - 2 min
{ Property: { AutoPunishUndoTimeSetting: 300000 } }, // t1 - 5 min
{ Property: { AutoPunishUndoTimeSetting: 900000 } }, // t2 - 15 min
{ Property: { AutoPunishUndoTimeSetting: 3600000 } }, // t3 - 1 hour
{ Property: { AutoPunishUndoTimeSetting: 72000000 } }, // t4 - 24 hours
],
},
],
BaselineProperty: {
ShowText: true,
BlinkState: false,
AutoPunishUndoTime: 0,
OriginalSetting: 0,
},
ScriptHooks: {
Load: FuturisticAccessLoad,
Click: InventoryItemMouthFuturisticPanelGagClickHook,
Draw: InventoryItemMouthFuturisticPanelGagDrawHook,
SetOption: InventoryItemMouthFuturisticPanelGagSetOptionHook,
Exit: FuturisticAccessExit,
Validate: FuturisticAccessValidate,
ScriptDraw: AssetsItemMouthFuturisticPanelGagScriptDrawHook,
BeforeDraw: AssetsItemMouthFuturisticPanelGagBeforeDrawHook,
},
DialogPrefix: {
Header: "ItemMouthFuturisticPanelGagSelect",
Module: "ItemMouthFuturisticPanelGagModule",
Option: "ItemMouthFuturisticPanelGagOption",
Chat: "ItemMouthFuturisticPanelGagSet",
},
}, // FuturisticPanelGag
FuturisticHarnessPanelGag: {
Archetype: ExtendedArchetype.MODULAR,
CopyConfig: { GroupName: "ItemMouth", AssetName: "FuturisticPanelGag" },
}, // FuturisticHarnessPanelGag
FuturisticHarnessBallGag: {
Archetype: ExtendedArchetype.MODULAR,
CopyConfig: { GroupName: "ItemMouth", AssetName: "FuturisticPanelGag" },
Modules: [
{
Name: "Gag",
Key: "g",
DrawImages: true,
Options: [
{ Property: { Effect: [E.GagLight] } }, // g0 - LightBall
{
Property: { Effect: [E.GagMedium] },
Prerequisite: ["AccessMouth"],
}, // g1 - Ball
{
Property: { Effect: [E.GagTotal] },
Prerequisite: ["AccessMouth"],
}, // g2 - Plug
],
},
{
Name: "AutoPunish",
Key: "p",
DrawImages: false,
Options: [
{ Property: { AutoPunish: 0 } }, // p0 - Off
{ Property: { AutoPunish: 1 } }, // p1 - Low
{ Property: { AutoPunish: 2 } }, // p2 - Medium
{ Property: { AutoPunish: 3 } }, // p3 - Maximum
],
},
{
Name: "DeflationTime",
Key: "t",
DrawImages: false,
Options: [
{ Property: { AutoPunishUndoTimeSetting: 120000 } }, // t0 - 2 min
{ Property: { AutoPunishUndoTimeSetting: 300000 } }, // t1 - 5 min
{ Property: { AutoPunishUndoTimeSetting: 900000 } }, // t2 - 15 min
{ Property: { AutoPunishUndoTimeSetting: 3600000 } }, // t3 - 1 hour
{ Property: { AutoPunishUndoTimeSetting: 72000000 } }, // t4 - 24 hours
],
},
],
DialogPrefix: {
Header: "ItemMouthFuturisticPanelGagSelect",
Module: "ItemMouthFuturisticPanelGagModule",
Option: "ItemMouthFuturisticHarnessBallGagOption",
Chat: "ItemMouthFuturisticHarnessBallGagSet",
},
}, // FuturisticHarnessBallGag
BallGagMask: {
Archetype: ExtendedArchetype.TYPED,
Options: [
{
Name: "Normal",
Property: {},
},
{
Name: "Shiny",
Property: {},
},
{
Name: "Tight",
Property: {},
},
],
DialogPrefix: {
Header: "SelectGagType",
Option: "BallGagMouthType",
Chat: "BallGagMouthSet",
},
}, // BallGagMask
LatexMuzzleMask: {
Archetype: ExtendedArchetype.TYPED,
Options: [
{
Name: "Normal",
Property: {
Effect: [E.GagLight],
Difficulty: 4,
},
},
{
Name: "Loose",
Property: {
Effect: [E.GagVeryLight],
Difficulty: 3,
},
},
{
Name: "Panel",
Property: {
Effect: [E.GagHeavy],
Difficulty: 6,
},
ChangeWhenLocked: false,
},
],
DialogPrefix: {
Header: "SelectGagType",
Option: "LatexMuzzleMaskMouthType",
Chat: "LatexMuzzleMaskMouthSet",
},
}, // LatexMuzzleMask
ModularGag: {
Archetype: ExtendedArchetype.MODULAR,
DrawImages: false,
Modules: [
{
Name: "Gag",
Key: "g",
DrawImages: true,
Options: [
{
// 0 - BallGag
Property: {
Fetish: ["Gagged"],
Effect: ["BlockMouth", "GagMedium"],
Hide: ["Mouth"],
},
},
{}, // 1 - Detached
{
// 2 Dildo BallGag
Property: {
Fetish: ["Gagged"],
Effect: ["BlockMouth", "GagTotal"],
Hide: ["Mouth"],
},
},
{
// 3 - RingGag
Property: {
Fetish: ["Gagged"],
Effect: ["OpenMouth", "GagMedium"],
Hide: ["Mouth"],
},
},
{
// 4 - RingGag with Depressor
Property: {
Fetish: ["Gagged"],
Effect: ["OpenMouth", "GagHeavy"],
Hide: ["Mouth"],
},
},
{
// 5 - BitGag
Property: {
Fetish: ["Gagged", "Pony", "Pet"],
Effect: ["BlockMouth", "GagMedium"],
Hide: ["Mouth"],
},
},
{
// 6 - BitGagDepressor
Property: {
Fetish: ["Gagged", "Pony", "Pet"],
Effect: ["BlockMouth", "GagHeavy"],
Hide: ["Mouth"],
},
},
],
},
{
Name: "Headress",
Key: "h",
DrawImages: true,
Options: [
{}, // 0 - Detached
{}, // 1 - Attached
],
},
{
Name: "ChinStrap",
Key: "c",
DrawImages: true,
Options: [
{}, // 0 - Detached
{}, // 1 - Attached
],
},
],
}, //ModularGag
TonguePiercingGag: {
Archetype: ExtendedArchetype.TYPED,
DrawImages: false,
Options: [
{
Name: "Hook",
Property: {},
},
{
Name: "Ring",
Property: {},
},
{
Name: "Bells",
Property: {},
},
{
Name: "Chain",
Property: {},
Prerequisite: ["Collared"],
},
{
Name: "Nail",
Property: {},
},
{
Name: "Padlock",
Property: {},
},
{
Name: "Peg",
Property: {},
},
{
Name: "BitGag1",
Property: {},
},
{
Name: "BitGag2",
Property: {},
},
],
DialogPrefix: {
Header: "SelectGagType",
Option: "TonguePiercingGagMouthType",
Chat: "TonguePiercingGagMouthSet",
},
},
}, // ItemMouth
ItemMouth2: {
ClothGag: {
Archetype: ExtendedArchetype.TYPED,
CopyConfig: { GroupName: "ItemMouth", AssetName: "ClothGag" },
},
ScarfGag: {
Archetype: ExtendedArchetype.TYPED,
CopyConfig: { GroupName: "ItemMouth", AssetName: "ScarfGag" },
},
WiffleGag: {
Archetype: ExtendedArchetype.TYPED,
CopyConfig: { GroupName: "ItemMouth", AssetName: "WiffleGag" },
},
BallGag: {
Archetype: ExtendedArchetype.TYPED,
CopyConfig: { GroupName: "ItemMouth", AssetName: "BallGag" },
},
RopeBallGag: {
Archetype: ExtendedArchetype.TYPED,
CopyConfig: { GroupName: "ItemMouth", AssetName: "RopeBallGag" },
},
HarnessBallGag: {
Archetype: ExtendedArchetype.TYPED,
CopyConfig: { GroupName: "ItemMouth", AssetName: "BallGag" },
},
HarnessPonyBits: {
Archetype: ExtendedArchetype.TYPED,
CopyConfig: { GroupName: "ItemMouth", AssetName: "HarnessPonyBits" },
},
DuctTape: {
Archetype: ExtendedArchetype.TYPED,
CopyConfig: { GroupName: "ItemMouth", AssetName: "DuctTape" },
},
HarnessBallGag1: {
Archetype: ExtendedArchetype.TYPED,
CopyConfig: { GroupName: "ItemMouth", AssetName: "HarnessBallGag1" },
},
CupholderGag: {
Archetype: ExtendedArchetype.TYPED,
CopyConfig: { GroupName: "ItemMouth", AssetName: "CupholderGag" },
},
Ribbons: {
Archetype: ExtendedArchetype.TYPED,
CopyConfig: { GroupName: "ItemMouth", AssetName: "Ribbons" },
},
FuturisticMuzzle: {
Archetype: ExtendedArchetype.MODULAR,
CopyConfig: { GroupName: "ItemMouth", AssetName: "FuturisticMuzzle" },
},
PonyGag: {
Archetype: ExtendedArchetype.MODULAR,
CopyConfig: { GroupName: "ItemMouth", AssetName: "PonyGag" },
},
FuturisticPanelGag: {
Archetype: ExtendedArchetype.MODULAR,
CopyConfig: { GroupName: "ItemMouth", AssetName: "FuturisticPanelGag" },
},
FuturisticHarnessPanelGag: {
Archetype: ExtendedArchetype.MODULAR,
CopyConfig: {
GroupName: "ItemMouth",
AssetName: "FuturisticHarnessPanelGag",
},
},
FuturisticHarnessBallGag: {
Archetype: ExtendedArchetype.MODULAR,
CopyConfig: {
GroupName: "ItemMouth",
AssetName: "FuturisticHarnessBallGag",
},
},
BallGagMask: {
Archetype: ExtendedArchetype.TYPED,
CopyConfig: { GroupName: "ItemMouth", AssetName: "BallGagMask" },
},
LatexMuzzleMask: {
Archetype: ExtendedArchetype.TYPED,
CopyConfig: { GroupName: "ItemMouth", AssetName: "LatexMuzzleMask" },
},
ModularGag: {
Archetype: ExtendedArchetype.MODULAR,
CopyConfig: { GroupName: "ItemMouth", AssetName: "ModularGag" },
},
}, // ItemMouth2
ItemMouth3: {
ClothGag: {
Archetype: ExtendedArchetype.TYPED,
CopyConfig: { GroupName: "ItemMouth", AssetName: "ClothGag" },
},
ScarfGag: {
Archetype: ExtendedArchetype.TYPED,
CopyConfig: { GroupName: "ItemMouth", AssetName: "ScarfGag" },
},
WiffleGag: {
Archetype: ExtendedArchetype.TYPED,
CopyConfig: { GroupName: "ItemMouth", AssetName: "WiffleGag" },
},
BallGag: {
Archetype: ExtendedArchetype.TYPED,
CopyConfig: { GroupName: "ItemMouth", AssetName: "BallGag" },
},
RopeBallGag: {
Archetype: ExtendedArchetype.TYPED,
CopyConfig: { GroupName: "ItemMouth", AssetName: "RopeBallGag" },
},
HarnessBallGag: {
Archetype: ExtendedArchetype.TYPED,
CopyConfig: { GroupName: "ItemMouth", AssetName: "BallGag" },
},
HarnessPonyBits: {
Archetype: ExtendedArchetype.TYPED,
CopyConfig: { GroupName: "ItemMouth", AssetName: "HarnessPonyBits" },
},
DuctTape: {
Archetype: ExtendedArchetype.TYPED,
CopyConfig: { GroupName: "ItemMouth", AssetName: "DuctTape" },
},
HarnessBallGag1: {
Archetype: ExtendedArchetype.TYPED,
CopyConfig: { GroupName: "ItemMouth", AssetName: "HarnessBallGag1" },
},
CupholderGag: {
Archetype: ExtendedArchetype.TYPED,
CopyConfig: { GroupName: "ItemMouth", AssetName: "CupholderGag" },
},
Ribbons: {
Archetype: ExtendedArchetype.TYPED,
CopyConfig: { GroupName: "ItemMouth", AssetName: "Ribbons" },
},
FuturisticMuzzle: {
Archetype: ExtendedArchetype.MODULAR,
CopyConfig: { GroupName: "ItemMouth", AssetName: "FuturisticMuzzle" },
},
PonyGag: {
Archetype: ExtendedArchetype.MODULAR,
CopyConfig: { GroupName: "ItemMouth", AssetName: "PonyGag" },
},
FuturisticPanelGag: {
Archetype: ExtendedArchetype.MODULAR,
CopyConfig: { GroupName: "ItemMouth", AssetName: "FuturisticPanelGag" },
},
FuturisticHarnessPanelGag: {
Archetype: ExtendedArchetype.MODULAR,
CopyConfig: {
GroupName: "ItemMouth",
AssetName: "FuturisticHarnessPanelGag",
},
},
FuturisticHarnessBallGag: {
Archetype: ExtendedArchetype.MODULAR,
CopyConfig: {
GroupName: "ItemMouth",
AssetName: "FuturisticHarnessBallGag",
},
},
Stitches: {
Archetype: ExtendedArchetype.TYPED,
Options: [
{
Name: "Straight",
},
{
Name: "ZigZag",
},
{
Name: "Skewed",
},
{
Name: "Cross",
},
],
}, //StitchGag
LatexRespirator: {
Archetype: ExtendedArchetype.MODULAR,
ChatSetting: ModularItemChatSetting.PER_MODULE,
Modules: [
{
Name: "Filter",
Key: "f",
Options: [{}, {}, {}, {}], // None,Filter,SmallTubes,LargeTubes
},
{
Name: "Glow",
Key: "g",
Options: [{}, {}], // Glow off or on
},
{
Name: "Straps",
Key: "s",
Options: [{}, {}], // No Straps, Straps
},
{
Name: "Mask",
Key: "m",
Options: [
{ Property: { Effect: [E.BlockMouth] } },
{ Property: { Effect: [E.BlockMouth, E.GagVeryLight] } },
{ Property: { Effect: [] } },
], // Mask, Thick Filters, No Mask
},
{
Name: "Length",
Key: "l",
Options: [
{},
{
Property: {
OverridePriority: {
Filter: 55,
FilterFixing: 55,
FilterGlow: 55,
SmallTube: 55,
SmallTubeGlow: 55,
Tube: 55,
TubeGlow: 55,
},
},
},
], // Behind Hair, Over Hair
},
],
}, //LatexRespirator
PaddedFaceMask: {
Archetype: ExtendedArchetype.MODULAR,
ChatSetting: ModularItemChatSetting.PER_MODULE,
Modules: [
{
Name: "Thickness",
Key: "t",
Options: [
{},
{
Property: { Effect: [E.GagLight] },
},
],
},
{
Name: "Pattern",
Key: "p",
Options: [{}, {}, {}], //None, Lips, Heart
},
],
}, //PaddedFaceMask
BallGagMask: {
Archetype: ExtendedArchetype.TYPED,
CopyConfig: { GroupName: "ItemMouth", AssetName: "BallGagMask" },
},
LatexMuzzleMask: {
Archetype: ExtendedArchetype.TYPED,
CopyConfig: { GroupName: "ItemMouth", AssetName: "LatexMuzzleMask" },
},
ModularGag: {
Archetype: ExtendedArchetype.MODULAR,
CopyConfig: { GroupName: "ItemMouth", AssetName: "ModularGag" },
},
}, // ItemMouth3
Mask: {
BunnyMask1: {
Archetype: ExtendedArchetype.TYPED,
Options: [
{
Name: "Ears",
},
{
Name: "Earless",
Property: { OverridePriority: 51 },
},
],
DialogPrefix: {
Header: "SelectBunnyMaskStyle",
Option: "BunnyMaskType",
},
}, // BunnyMask1
OpenFaceHood: {
Archetype: ExtendedArchetype.TYPED,
Options: [
{
Name: "HideBackHair",
Property: { Hide: ["HairBack"] },
},
{
Name: "ShowBackHair",
NPCDefault: true,
},
],
DialogPrefix: {
Header: "SelectOpenFaceHoodStyle",
Option: "OpenFaceHoodStyle",
},
DrawImages: false,
}, // OpenFaceHood
PetNose: {
Archetype: ExtendedArchetype.MODULAR,
Modules: [
{
Name: "Nose",
Key: "n",
Options: [
{}, // n0 - Nose
{}, // n1 - No Nose
],
},
{
Name: "Cheeks",
Key: "c",
Options: [
{}, // c0 - No Cheeks
{}, // c1 - Small Cheeks
{}, // c2 - Big Cheeks
],
},
{
Name: "Whiskers",
Key: "w",
Options: [
{}, // w0 - No Whiskers
{}, // w1 - Short Whiskers
{}, // w2 - Long Whiskers
],
},
{
Name: "Mouth",
Key: "m",
Options: [
{}, // m0 - Show Mouth
{ Property: { Hide: ["Mouth"] } }, // m1 - Hide Mouth
],
},
],
}, //PetNose
Glitter: {
Archetype: ExtendedArchetype.TYPED,
Options: [
{
Name: "Freckles",
},
{
Name: "MidFreckles",
},
{
Name: "SplitFreckles",
},
{
Name: "FrecklesSmall",
},
{
Name: "MidFrecklesSmall",
},
{
Name: "SplitFrecklesSmall",
},
{
Name: "StarsBoth",
},
{
Name: "StarsLeft",
},
{
Name: "StarsRight",
},
{
Name: "DotsBoth",
},
{
Name: "DotsLeft",
},
{
Name: "DotsRight",
},
],
}, //Glitter
HeadHarness: {
Archetype: ExtendedArchetype.TYPED,
Options: [
{
Name: "Simple",
},
{
Name: "Heavy",
},
],
}, //HeadHarness
Kissmark: {
Archetype: ExtendedArchetype.MODULAR,
CopyConfig: { GroupName: "ClothAccessory", AssetName: "Kissmark" },
DialogPrefix: {
Header: "ClothAccessoryKissmarkSelect",
Module: "ClothAccessoryKissmarkModule",
Option: "ClothAccessoryKissmarkOption",
Chat: "ClothAccessoryKissmarkSet",
},
}, //KissMark
SwimCap: {
Archetype: ExtendedArchetype.MODULAR,
CopyConfig: { GroupName: "Hat", AssetName: "SwimCap" },
},
DroneMask: {
Archetype: ExtendedArchetype.MODULAR,
CopyConfig: { GroupName: "ItemHead", AssetName: "DroneMask" },
Modules: [
{
Name: "Mouth",
Key: "m",
Options: [{}, {}, {}, {}, {}, {}, {}], // none, onahole, fleshlight, smile, holes, sculpted, subtle
},
{
Name: "Eyes",
Key: "e",
Options: [{}, {}, {}, {}, {}, {}, {}], // none, regular, spiral, smile, holes, sculpted, concave
},
{
Name: "Pattern",
Key: "p",
Options: [
{}, // Blank
{}, // Barcode
{}, // Scarab
{}, // Hex
{}, // Lines
{
HasSubscreen: true,
ArchetypeConfig: {
Archetype: ExtendedArchetype.TEXT,
MaxLength: { Text: 16 },
Font: "Impact",
ScriptHooks: {
AfterDraw: AssetsItemHeadDroneMaskAfterDrawHook,
},
},
Property: {
HideItem: ["ItemHeadDroneMask", "ItemHoodDroneMask"],
},
}, // text
],
},
{
Name: "Glow",
Key: "g",
Options: [{}, {}], // Glow Off, Glow On
},
{
Name: "Helmet",
Key: "h",
Options: [
{}, // h0 - Mask
{
Property: {
Hide: ["HairFront", "HairBack"], //"HairAccessory1", "HairAccessory2"],
HideItem: [
"HatBonnet1",
"HatBonnet2",
"HatBunnySuccubus2",
"HatCrown1",
"HatCrown2",
"HatCrown4",
"HatCrown5",
"HatBand1",
"HatBand2",
"HatPirateBandana1",
"HatVeil1",
"HatVeil2", // Hat items
"MaskFuturisticVisor",
"MaskShinobiMask", // Mask items
"HairAccessory3Ribbons4", // HairAccessory items
"HairAccessory1Antennae",
"HairAccessory1BunnyEars1",
"HairAccessory1BunnyEars2",
"HairAccessory1CowHorns",
"HairAccessory1ElfEars",
"HairAccessory1Ears1",
"HairAccessory1Ears2",
"HairAccessory1FoxEars1",
"HairAccessory1FoxEars2",
"HairAccessory1FoxEars3",
"HairAccessory1KittenEars1",
"HairAccessory1KittenEars2",
"HairAccessory1MouseEars1",
"HairAccessory1MouseEars2",
"HairAccessory1PuppyEars1",
"HairAccessory1Ribbons2",
"HairAccessory1WolfEars1",
"HairAccessory1WolfEars2",
"HairAccessory1Ribbons4", // Ear items (HA1)
"HairAccessory2Antennae",
"HairAccessory2BunnyEars1",
"HairAccessory2BunnyEars2",
"HairAccessory2CowHorns",
"HairAccessory2ElfEars",
"HairAccessory2Ears1",
"HairAccessory2Ears2",
"HairAccessory2FoxEars1",
"HairAccessory2FoxEars2",
"HairAccessory2FoxEars3",
"HairAccessory2KittenEars1",
"HairAccessory2KittenEars2",
"HairAccessory2MouseEars1",
"HairAccessory2MouseEars2",
"HairAccessory2PuppyEars1",
"HairAccessory2Ribbons2",
"HairAccessory2WolfEars1",
"HairAccessory2WolfEars2", // Ear items (HA2)
], // These items are hidden because they have clear mismatch issues with the hood.
},
}, // h1 - Helmet (hood)
{
// h2 - Helmet ( hood but nothing shows)
Property: {
Hide: [
"HairFront",
"HairBack",
"Hat",
"HairAccessory1",
"HairAccessory2",
"HairAccessory3",
],
HideItem: ["MaskFuturisticVisor", "MaskShinobiMask"],
},
},
],
},
{
Name: "Layering",
Key: "j",
Options: [
{
Property: {
Block: ["ItemMouth", "ItemMouth2", "ItemMouth3", "ItemHead"],
Hide: [
"ItemMouth",
"ItemMouth2",
"ItemMouth3",
"ItemHead",
"Glasses",
],
},
}, // No gags or blindfolds visible
{
Property: {
OverridePriority: 12,
Block: ["ItemMouth", "ItemMouth2", "ItemHead"],
Hide: ["ItemMouth", "ItemMouth2", "ItemHead", "Glasses"],
},
}, // Highest layer gag visible
{
Property: {
OverridePriority: 12,
Block: ["ItemHead"],
Hide: ["ItemHead", "Glasses"],
},
}, // All gags visible
{
Property: {
OverridePriority: 12,
Block: ["ItemMouth", "ItemMouth2", "ItemMouth3"],
Hide: ["ItemMouth", "ItemMouth2", "ItemMouth3"],
},
}, // Blindfold items visible
{
Property: {
OverridePriority: 12,
Block: ["ItemMouth", "ItemMouth2"],
Hide: ["ItemMouth", "ItemMouth2"],
},
}, // Blindfold and highest layer gag
{
Property: {
OverridePriority: 12,
Block: [],
Hide: [],
},
}, // Blindfold and all gags
],
},
],
}, // DroneMask
}, // Mask
ItemLegs: {
DuctTape: {
Archetype: ExtendedArchetype.TYPED,
ChatTags: [CommonChatTags.SOURCE_CHAR, CommonChatTags.DEST_CHAR],
Options: [
{
Name: "Legs",
Property: {
Difficulty: 0,
SetPose: ["LegsClosed"],
AllowActivePose: ["Kneel"],
},
},
{
Name: "HalfLegs",
Prerequisite: ["NoClothLower"],
Property: {
Hide: ["ClothLower", "Garters"],
Difficulty: 2,
SetPose: ["LegsClosed"],
AllowActivePose: ["Kneel"],
},
},
{
Name: "MostLegs",
Prerequisite: ["NoClothLower"],
Property: {
Hide: ["ClothLower", "Garters"],
Difficulty: 4,
SetPose: ["LegsClosed"],
AllowActivePose: ["Kneel"],
HideItem: [
"PantiesPoofyDiaper",
"PantiesBulkyDiaper",
"ItemPelvisPoofyDiaper",
"ItemPelvisBulkyDiaper",
],
},
},
{
Name: "CompleteLegs",
Prerequisite: ["NoClothLower"],
Property: {
Hide: ["ClothLower", "Garters"],
Block: ["ItemVulva", "ItemVulvaPiercings", "ItemButt"],
Difficulty: 6,
SetPose: ["LegsClosed"],
AllowActivePose: ["Kneel"],
HideItem: [
"PantiesPoofyDiaper",
"PantiesBulkyDiaper",
"ItemPelvisPoofyDiaper",
"ItemPelvisBulkyDiaper",
],
},
},
{
Name: "PetLegs",
Prerequisite: ["NoClothLower"],
Property: {
Hide: ["ClothLower", "Garters"],
SetPose: ["Kneel"],
Difficulty: 6,
},
Random: false,
},
{
Name: "CutOut",
Prerequisite: ["NoClothLower"],
Property: {
Hide: ["ClothLower", "Garters"],
SetPose: ["LegsClosed"],
AllowActivePose: ["Kneel"],
Difficulty: 6,
},
},
],
DialogPrefix: {
Header: "SelectTapeWrapping",
Option: "DuctTapePose",
Chat: "DuctTapeRestrain",
Npc: "DuctTapePose",
},
}, // DuctTape
NylonRope: {
Archetype: ExtendedArchetype.TYPED,
ChatTags: [CommonChatTags.SOURCE_CHAR, CommonChatTags.TARGET_CHAR],
Options: [
{
Name: "Knees",
Property: {
SetPose: ["LegsClosed"],
AllowActivePose: ["Kneel"],
Difficulty: 1,
},
},
{
Name: "Thighs",
Property: {
SetPose: ["LegsClosed"],
AllowActivePose: ["Kneel"],
Difficulty: 1,
},
},
{
Name: "KneesThighs",
Property: {
SetPose: ["LegsClosed"],
AllowActivePose: ["Kneel"],
Difficulty: 2,
},
},
{
Name: "Frogtie",
BondageLevel: 3,
Property: {
SetPose: ["Kneel"],
AllowActivePose: [...PoseAllKneeling, "AllFours", "Hogtied"],
Difficulty: 3,
},
Random: false,
},
],
DialogPrefix: {
Header: "SelectRopeBondage",
Option: "RopeBondage",
Chat: "LegRopeSet",
Npc: "RopeBondage",
},
}, // NylonRope
HempRope: {
Archetype: ExtendedArchetype.TYPED,
ChatTags: [CommonChatTags.SOURCE_CHAR, CommonChatTags.TARGET_CHAR],
Options: [
{
Name: "Basic",
Property: {
SetPose: ["LegsClosed"],
AllowActivePose: ["Kneel"],
Difficulty: 1,
},
},
{
Name: "FullBinding",
BondageLevel: 2,
Property: {
SetPose: ["LegsClosed"],
AllowActivePose: ["Kneel"],
Difficulty: 2,
},
},
{
Name: "Link",
BondageLevel: 2,
Property: {
SetPose: ["LegsClosed"],
AllowActivePose: ["Kneel"],
Difficulty: 2,
},
},
{
Name: "Frogtie",
BondageLevel: 3,
Property: {
SetPose: ["Kneel"],
AllowActivePose: ["Kneel", "KneelingSpread", "Hogtied", "AllFours"],
Difficulty: 3,
},
Random: false,
},
{
Name: "Crossed",
BondageLevel: 4,
Property: {
SetPose: ["LegsClosed"],
AllowActivePose: ["Kneel"],
Difficulty: 4,
},
},
{
Name: "Mermaid",
BondageLevel: 4,
Property: {
SetPose: ["LegsClosed"],
AllowActivePose: ["Kneel"],
Difficulty: 4,
},
},
],
DialogPrefix: {
Header: "SelectRopeBondage",
Option: "RopeBondage",
Chat: "LegRopeSet",
Npc: "RopeBondage",
},
}, // HempRope
Chains: {
Archetype: ExtendedArchetype.TYPED,
ChatTags: [CommonChatTags.SOURCE_CHAR, CommonChatTags.TARGET_CHAR],
Options: [
{
Name: "Basic",
BondageLevel: 0,
Property: { Difficulty: 0 },
},
{
Name: "Strict",
BondageLevel: 2,
Property: { Difficulty: 2 },
},
],
DialogPrefix: {
Header: "SelectChainBondage",
Option: "ChainBondage",
Chat: "LegChainSet",
Npc: "ChainBondage",
},
ChangeWhenLocked: false,
}, // Chains
SturdyLeatherBelts: {
Archetype: ExtendedArchetype.TYPED,
CopyConfig: { GroupName: "ItemArms", AssetName: "SturdyLeatherBelts" },
Options: [
{
Name: "One",
},
{
Name: "Two",
Property: { Difficulty: 2 },
},
],
}, // SturdyLeatherBelts
FuturisticLegCuffs: {
Archetype: ExtendedArchetype.TYPED,
CopyConfig: { GroupName: "ItemLegs", AssetName: "LeatherLegCuffs" },
DialogPrefix: {
Header: "SelectBondagePosition",
Option: "ItemLegsLeatherLegCuffs",
Chat: "FuturisticLegCuffsRestrain",
},
ScriptHooks: {
Load: FuturisticAccessLoad,
Click: FuturisticAccessClick,
Draw: FuturisticAccessDraw,
Exit: FuturisticAccessExit,
Validate: FuturisticAccessValidate,
},
}, // FuturisticLegCuffs
ShinyLegBinder: {
Archetype: ExtendedArchetype.TYPED,
ChatTags: [
CommonChatTags.SOURCE_CHAR,
CommonChatTags.DEST_CHAR,
CommonChatTags.ASSET_NAME,
],
Options: [
{
Name: "Laced",
},
{
Name: "Asylum",
},
{
Name: "Beltbinder",
},
{
Name: "Classic",
},
],
ChangeWhenLocked: false,
}, // ShinyLegBinder
LeatherLegCuffs: {
Archetype: ExtendedArchetype.TYPED,
ChatTags: [CommonChatTags.SOURCE_CHAR, CommonChatTags.DEST_CHAR],
Options: [
{
Name: "None",
},
{
Name: "Closed",
Property: {
SetPose: ["LegsClosed"],
Effect: [E.BlockWardrobe, E.Slow],
AllowActivePose: ["Kneel", "LegsClosed"],
Difficulty: 6,
},
},
{
Name: "Chained",
Property: {
Effect: [E.Slow],
SetPose: ["BaseLower"],
AllowActivePose: ["Kneel", ...PoseAllStanding],
},
},
],
DialogPrefix: {
Header: "SelectBondagePosition",
},
}, // LeatherLegCuffs
LeatherDeluxeLegCuffs: {
Archetype: ExtendedArchetype.TYPED,
CopyConfig: { GroupName: "ItemLegs", AssetName: "LeatherLegCuffs" },
}, // LeatherDeluxeLegCuffs
Ribbons: {
Archetype: ExtendedArchetype.TYPED,
ChatTags: [CommonChatTags.SOURCE_CHAR, CommonChatTags.DEST_CHAR],
Options: [
{
Name: "Messystyle",
Property: { Difficulty: 3 },
},
{
Name: "MessyWrap",
Property: { Difficulty: 4 },
},
{
Name: "Cross",
Property: { Difficulty: 5 },
},
],
DialogPrefix: {
Header: "SelectRibbonType",
},
}, // Ribbons
OrnateLegCuffs: {
Archetype: ExtendedArchetype.TYPED,
CopyConfig: { AssetName: "LeatherLegCuffs" },
}, // OrnateLegCuffs
Zipties: {
Archetype: ExtendedArchetype.TYPED,
ChatTags: [CommonChatTags.SOURCE_CHAR, CommonChatTags.TARGET_CHAR],
Options: [
{
Name: "ZipLegLight",
Property: {
SetPose: ["LegsClosed"],
AllowActivePose: ["Kneel"],
Difficulty: 1,
},
},
{
Name: "ZipLegMedium",
Property: {
SetPose: ["LegsClosed"],
AllowActivePose: ["Kneel"],
Difficulty: 2,
},
},
{
Name: "ZipLegFull",
Property: {
SetPose: ["LegsClosed"],
AllowActivePose: ["Kneel"],
Difficulty: 2,
},
},
{
Name: "ZipFrogtie",
Property: {
SetPose: ["Kneel"],
AllowActivePose: ["AllFours", "Hogtied"],
Difficulty: 3,
},
Random: false,
},
],
DialogPrefix: {
Header: "SelectZipTie",
Option: "ZipBondage",
Npc: "Zip",
},
}, // Zipties
MermaidTail: {
Archetype: ExtendedArchetype.VIBRATING,
}, // MermaidTail
}, // ItemLegs
ItemFeet: {
SpreaderMetal: {
Archetype: ExtendedArchetype.TYPED,
Options: [
{
Name: "Narrow",
Property: {
SetPose: ["LegsOpen"],
},
},
{
Name: "Wide",
Property: {
SetPose: ["Spread"],
},
},
],
DialogPrefix: {
Header: "SelectSpreaderType",
Option: "SpreaderMetalPose",
},
ChatSetting: TypedItemChatSetting.SILENT,
}, // SpreaderMetal
HeavySpreaderMetal: {
Archetype: ExtendedArchetype.TYPED,
CopyConfig: { GroupName: "ItemFeet", AssetName: "SpreaderMetal" },
DialogPrefix: {
Header: "SelectSpreaderType",
Option: "HeavySpreaderMetalPose",
},
}, // HeavySpreaderMetal
Chains: {
Archetype: ExtendedArchetype.TYPED,
ChatTags: [CommonChatTags.SOURCE_CHAR, CommonChatTags.TARGET_CHAR],
Options: [
{
Name: "Basic",
BondageLevel: 0,
Property: {
Difficulty: 0,
SetPose: ["LegsClosed"],
AllowActivePose: ["Kneel"],
},
},
{
Name: "Strict",
BondageLevel: 2,
Property: {
Difficulty: 2,
SetPose: ["LegsClosed"],
AllowActivePose: ["Kneel"],
},
},
{
Name: "Suspension",
BondageLevel: 6,
Property: {
Difficulty: 4,
SetPose: ["Suspension", "LegsClosed"],
},
Random: false,
},
],
DialogPrefix: {
Header: "SelectChainBondage",
Option: "ChainBondage",
Chat: "LegChainSet",
Npc: "ChainBondage",
},
ChangeWhenLocked: false,
}, // Chains
FuturisticAnkleCuffs: {
Archetype: ExtendedArchetype.TYPED,
CopyConfig: { GroupName: "ItemFeet", AssetName: "SteelAnkleCuffs" },
ScriptHooks: {
Load: FuturisticAccessLoad,
Click: FuturisticAccessClick,
Draw: FuturisticAccessDraw,
Exit: FuturisticAccessExit,
Validate: FuturisticAccessValidate,
},
}, // FuturisticAnkleCuffs
SteelAnkleCuffs: {
Archetype: ExtendedArchetype.TYPED,
ChatTags: [
CommonChatTags.SOURCE_CHAR,
CommonChatTags.DEST_CHAR,
CommonChatTags.ASSET_NAME,
],
Options: [
{
Name: "None",
Property: {
Difficulty: 0,
},
},
{
Name: "Closed",
Property: {
Effect: [E.BlockWardrobe, E.Freeze],
SetPose: ["LegsClosed"],
Difficulty: 6,
AllowActivePose: ["Kneel"],
},
},
{
Name: "Chained",
Property: {
Effect: [E.Slow],
},
},
],
DialogPrefix: {
Header: "SelectBondagePosition",
Option: "ItemFeetSteelAnkleCuffs",
Chat: "ItemFeetSteelAnkleCuffsSet",
},
}, // SteelAnkleCuffs
SturdyLeatherBelts: {
Archetype: ExtendedArchetype.TYPED,
CopyConfig: { GroupName: "ItemArms", AssetName: "SturdyLeatherBelts" },
}, // SturdyLeatherBelts
LeatherAnkleCuffs: {
Archetype: ExtendedArchetype.TYPED,
CopyConfig: { AssetName: "SteelAnkleCuffs" },
}, // LeatherAnkleCuffs
LeatherDeluxeAnkleCuffs: {
Archetype: ExtendedArchetype.TYPED,
CopyConfig: { AssetName: "SteelAnkleCuffs" },
}, // LeatherDeluxeAnkleCuffs
OrnateAnkleCuffs: {
Archetype: ExtendedArchetype.TYPED,
CopyConfig: { AssetName: "SteelAnkleCuffs" },
}, // OrnateAnkleCuffs
HighStyleSteelAnkleCuffs: {
Archetype: ExtendedArchetype.TYPED,
CopyConfig: { AssetName: "SteelAnkleCuffs" },
}, // HighStyleSteelAnkleCuffs
DuctTape: {
Archetype: ExtendedArchetype.TYPED,
Options: [
{
Name: "Feet",
Property: {
Difficulty: 0,
Hide: [],
SetPose: ["LegsClosed"],
AllowActivePose: ["Kneel"],
},
},
{
Name: "HalfFeet",
Property: {
Difficulty: 2,
Hide: ["ClothLower", "Shoes"],
SetPose: ["LegsClosed"],
AllowActivePose: ["Kneel"],
},
},
{
Name: "MostFeet",
Property: {
Difficulty: 4,
Hide: ["ClothLower", "Shoes"],
SetPose: ["LegsClosed"],
AllowActivePose: ["Kneel"],
},
},
{
Name: "CompleteFeet",
Property: {
Difficulty: 6,
Hide: ["ClothLower", "Shoes"],
SetPose: ["LegsClosed"],
AllowActivePose: ["Kneel"],
},
},
],
DialogPrefix: {
Header: "SelectTapeWrapping",
Chat: "DuctTapeRestrain",
Npc: "DuctTapeRestrain",
Option: "DuctTapePose",
},
}, // DuctTape
Zipties: {
Archetype: ExtendedArchetype.TYPED,
ChatTags: [CommonChatTags.SOURCE_CHAR, CommonChatTags.TARGET_CHAR],
Options: [
{
Name: "ZipFeetLight",
Property: {
SetPose: ["LegsClosed"],
AllowActivePose: ["Kneel"],
Difficulty: 1,
},
},
{
Name: "ZipFeetMedium",
Property: {
SetPose: ["LegsClosed"],
AllowActivePose: ["Kneel"],
Difficulty: 2,
},
},
{
Name: "ZipFeetFull",
Property: {
SetPose: ["LegsClosed"],
AllowActivePose: ["Kneel"],
Difficulty: 2,
},
},
],
DialogPrefix: {
Header: "SelectZipTie",
Chat: "ZipFeetSet",
Npc: "ZipFeetSet",
Option: "ZipBondage",
},
}, // Zipties
Tentacles: {
Archetype: ExtendedArchetype.TYPED,
Options: [
{
Name: "Closed",
Property: { SetPose: ["LegsClosed"], AllowActivePose: ["Kneel"] },
},
{
Name: "Spread",
Property: {
OverridePriority: 25,
SetPose: ["Spread"],
OverrideHeight: { Height: 0, Priority: 60 },
},
},
],
}, // Tentacles
WoodenCuffs: {
Archetype: ExtendedArchetype.TYPED,
Options: [
{
Name: "LegsOpen",
Property: {
Difficulty: 2,
SetPose: ["LegsOpen"],
SelfUnlock: true,
},
},
{
Name: "Spread2",
Property: {
Difficulty: 3,
SetPose: ["Spread"],
SelfUnlock: true,
},
},
{
Name: "Spread3",
Property: {
Difficulty: 3,
SetPose: ["LegsClosed"],
AllowActivePose: ["Kneel"],
SelfUnlock: true,
},
},
],
DialogPrefix: {
Header: "SelectBondagePosition",
Option: "ItemFeetWoodenCuffs",
},
}, // WoodenCuffs
NylonRope: {
Archetype: ExtendedArchetype.TYPED,
ChatTags: [CommonChatTags.SOURCE_CHAR, CommonChatTags.TARGET_CHAR],
Options: [
{
Name: "Ankles",
Property: {
SetPose: ["LegsClosed"],
AllowActivePose: ["Kneel"],
Difficulty: 1,
},
},
{
Name: "Knees",
Property: {
SetPose: ["LegsClosed"],
AllowActivePose: ["Kneel"],
Difficulty: 1,
},
},
{
Name: "AnklesKnees",
Property: {
SetPose: ["LegsClosed"],
AllowActivePose: ["Kneel"],
Difficulty: 2,
},
},
{
Name: "BedSpreadEagle",
BondageLevel: 1,
Property: {
Block: ["ItemDevices"],
SetPose: ["Spread"],
Difficulty: 5,
},
Prerequisite: ["OnBed"],
},
],
DialogPrefix: {
Header: "SelectRopeBondage",
Option: "RopeBondage",
Npc: "RopeBondage",
Chat: "FeetRopeSet",
},
}, // NylonRope
HempRope: {
Archetype: ExtendedArchetype.TYPED,
ChatTags: [CommonChatTags.SOURCE_CHAR, CommonChatTags.TARGET_CHAR],
Options: [
{
Name: "Basic",
Property: {
SetPose: ["LegsClosed"],
AllowActivePose: ["Kneel"],
Difficulty: 1,
},
},
{
Name: "FullBinding",
BondageLevel: 2,
Property: {
SetPose: ["LegsClosed"],
AllowActivePose: ["Kneel"],
Difficulty: 2,
},
},
{
Name: "Link",
BondageLevel: 2,
Property: {
SetPose: ["LegsClosed"],
AllowActivePose: ["Kneel"],
Difficulty: 2,
},
},
{
Name: "Diamond",
BondageLevel: 4,
Property: {
SetPose: ["LegsClosed"],
AllowActivePose: ["Kneel"],
Difficulty: 4,
},
},
{
Name: "Mermaid",
BondageLevel: 4,
Property: {
SetPose: ["LegsClosed"],
AllowActivePose: ["Kneel"],
Difficulty: 4,
},
},
{
Name: "Suspension",
BondageLevel: 6,
Property: {
SetPose: ["LegsClosed", "Suspension"],
Difficulty: 6,
},
Expression: [{ Group: "Blush", Name: "High", Timer: 30 }],
},
{
Name: "BedSpreadEagle",
BondageLevel: 1,
Property: {
Block: ["ItemDevices"],
SetPose: ["Spread"],
Difficulty: 5,
},
Prerequisite: ["OnBed"],
},
],
DialogPrefix: {
Header: "SelectRopeBondage",
Option: "RopeBondage",
Npc: "RopeBondage",
Chat: "LegRopeSet",
},
},
SpreaderVibratingDildoBar: {
Archetype: ExtendedArchetype.VIBRATING,
}, // SpreaderVibratingDildoBar
}, // ItemFeet
ItemMisc: {
ServingTray: {
Archetype: ExtendedArchetype.TYPED,
Options: [
{ Name: "Empty" },
{ Name: "Drinks" },
{ Name: "Cake" },
{ Name: "Cookies" },
{ Name: "Toys" },
],
}, // WoodenMaidTray
TeddyBear: {
Archetype: ExtendedArchetype.TYPED,
ChatTags: [CommonChatTags.SOURCE_CHAR, CommonChatTags.TARGET_CHAR],
Options: [
{
Name: "Bear",
},
{
Name: "Fox",
},
{
Name: "Pup",
},
{
Name: "Pony",
},
{
Name: "Kitty",
},
{
Name: "Bunny",
},
],
}, // TeddyBear
PetPost: {
Archetype: ExtendedArchetype.MODULAR,
CopyConfig: { GroupName: "ItemNeckRestraints", AssetName: "PetPost" },
Modules: [
{
Name: "Plaque",
Key: "p",
Options: [
{}, //p0 - Border
{}, //p1 - Border
],
},
{
Name: "Dirt",
Key: "d",
Options: [
{}, //d0 - Clean
{}, //d1 - Dirty
],
},
{
Name: "Sticker",
Key: "s",
Options: [
{}, //s0 - Paw
{}, //s1 - Triskel
{}, //s2 - Moon
{}, //s3 - LGBT
{}, //s4 - Trans
{}, //s5 - Bi
{}, //s6 - NoSwim
{}, //s7 - None
],
},
{
Name: "PostIt",
Key: "m",
Options: [
{}, //m0 - Postit
{}, //m1 - No PostIt
],
},
{
Name: "Txt",
Key: "x",
Options: [
{
HasSubscreen: true,
ArchetypeConfig: {
Archetype: ExtendedArchetype.TEXT,
MaxLength: { Text: 14, Text2: 14, Text3: 14 },
Font: "sans-serif",
ScriptHooks: {
AfterDraw: AssetsItemNeckRestraintsPetPostAfterDrawHook,
},
},
}, // text
],
},
],
DialogPrefix: {
Chat: "ItemNeckRestraintsPetPostSet",
},
}, //PetPost
WoodenSign: {
Archetype: ExtendedArchetype.TEXT,
MaxLength: { Text: 12, Text2: 12 },
Font: "'Calligraffitti', cursive",
ScriptHooks: {
AfterDraw: AssetsItemMiscWoodenSignAfterDrawHook,
},
}, // WoodenSign
PetPotato: {
Archetype: ExtendedArchetype.TYPED,
ChatTags: [CommonChatTags.SOURCE_CHAR, CommonChatTags.ASSET_NAME],
Options: [{ Name: "Lap" }, { Name: "Floor" }],
DrawImages: false,
DialogPrefix: {
Header: "ItemMiscPetPotatoSelect",
Option: "ItemMiscPetPotato",
Chat: "ItemMiscPetPotatoSet",
},
}, // PetPotato
Karl: {
Archetype: ExtendedArchetype.TYPED,
CopyConfig: { GroupName: "ItemMisc", AssetName: "PetPotato" },
}, // Karl
FoxPlush: {
Archetype: ExtendedArchetype.TYPED,
CopyConfig: { GroupName: "ItemMisc", AssetName: "PetPotato" },
}, // FoxPlush
BunPlush: {
Archetype: ExtendedArchetype.TYPED,
CopyConfig: { GroupName: "ItemMisc", AssetName: "PetPotato" },
}, // BunPlush
IntricatePadlock: {
Archetype: ExtendedArchetype.NOARCH,
ScriptHooks: {
Draw: InventoryItemMiscIntricatePadlockDrawHook,
},
}, // IntricatePadlock
HighSecurityPadlock: {
Archetype: ExtendedArchetype.NOARCH,
ScriptHooks: {
Init: InventoryItemMiscHighSecurityPadlockInitHook,
Load: InventoryItemMiscHighSecurityPadlockLoadHook,
Draw: InventoryItemMiscHighSecurityPadlockDrawHook,
Click: InventoryItemMiscHighSecurityPadlockClickHook,
Exit: InventoryItemMiscHighSecurityPadlockExitHook,
},
BaselineProperty: {
MemberNumberListKeys: "",
},
}, // HighSecurityPadlock
SafewordPadlock: {
Archetype: ExtendedArchetype.NOARCH,
CopyConfig: { GroupName: "ItemMisc", AssetName: "PasswordPadlock" },
ScriptHooks: {
Load: InventoryItemMiscSafewordPadlockLoadHook,
Draw: InventoryItemMiscSafewordPadlockDrawHook,
Click: InventoryItemMiscSafewordPadlockClickHook,
Exit: InventoryItemMiscPasswordPadlockExitHook,
},
}, // SafewordPadlock
TimerPadlock: {
Archetype: ExtendedArchetype.NOARCH,
ScriptHooks: {
Draw: InventoryItemMiscTimerPadlockDrawHook,
Click: InventoryItemMiscTimerPadlockClickHook,
},
}, // TimerPadlock
PasswordPadlock: {
Archetype: ExtendedArchetype.NOARCH,
DialogPrefix: {
Header: (data, C, item) => {
const lockmemberNumber = item.Property?.LockMemberNumber;
if (lockmemberNumber == null) {
return "";
}
return `${DialogFindPlayer("LockMemberNumber")} ${lockmemberNumber}`;
},
},
ScriptHooks: {
Load: InventoryItemMiscPasswordPadlockLoadHook,
Draw: InventoryItemMiscPasswordPadlockDrawHook,
Click: InventoryItemMiscPasswordPadlockClickHook,
Exit: InventoryItemMiscPasswordPadlockExitHook,
},
BaselineProperty: {
Password: "PASSWORD",
Hint: "Take a guess...",
LockSet: false,
RemoveOnUnlock: false,
},
}, // PasswordPadlock
MistressPadlock: {
Archetype: ExtendedArchetype.NOARCH,
ScriptHooks: {
Draw: InventoryItemMiscMistressPadlockDrawHook,
},
}, // MistressPadlock
PandoraPadlock: {
Archetype: ExtendedArchetype.NOARCH,
CopyConfig: { GroupName: "ItemMisc", AssetName: "MistressPadlock" },
}, // PandoraPadlock
OwnerTimerPadlock: {
Archetype: ExtendedArchetype.NOARCH,
ScriptHooks: {
Draw: InventoryItemMiscOwnerTimerPadlockDrawHook,
Click: InventoryItemMiscOwnerTimerPadlockClickHook,
},
BaselineProperty: {
RemoveItem: false,
ShowTimer: true,
EnableRandomInput: false,
MemberNumberList: [],
},
}, // OwnerTimerPadlock
LoversTimerPadlock: {
CopyConfig: { GroupName: "ItemMisc", AssetName: "OwnerTimerPadlock" },
Archetype: ExtendedArchetype.NOARCH,
ScriptHooks: {
Draw: (...args) =>
InventoryItemMiscOwnerTimerPadlockDrawHook(
...args,
InventoryItemMiscLoversTimerPadlockValidator,
),
Click: (...args) =>
InventoryItemMiscOwnerTimerPadlockClickHook(
...args,
InventoryItemMiscLoversTimerPadlockValidator,
),
},
}, // LoversTimerPadlock
OwnerPadlock: {
Archetype: ExtendedArchetype.NOARCH,
ScriptHooks: {
Draw: InventoryItemMiscOwnerPadlockDrawHook,
},
}, // OwnerPadlock
LoversPadlock: {
Archetype: ExtendedArchetype.NOARCH,
CopyConfig: { GroupName: "ItemMisc", AssetName: "OwnerPadlock" },
}, // LoversPadlock
FamilyPadlock: {
Archetype: ExtendedArchetype.NOARCH,
ScriptHooks: {
Draw: InventoryItemMiscFamilyPadlockDrawHook,
},
}, // FamilyPadlock
PortalLinkPadlock: {
Archetype: ExtendedArchetype.NOARCH,
CopyConfig: { GroupName: "ItemMisc", AssetName: "ExclusivePadlock" },
}, // PortalLinkPadlock
MistressTimerPadlock: {
Archetype: ExtendedArchetype.NOARCH,
ScriptHooks: {
Draw: InventoryItemMiscMistressTimerPadlockDrawHook,
Click: InventoryItemMiscMistressTimerPadlockClickHook,
},
BaselineProperty: {
RemoveItem: false,
ShowTimer: true,
EnableRandomInput: false,
MemberNumberList: [],
},
}, // MistressTimerPadlock
MetalPadlock: {
Archetype: ExtendedArchetype.NOARCH,
CopyConfig: { GroupName: "ItemMisc", AssetName: "IntricatePadlock" },
}, // MetalPadlock
ExclusivePadlock: {
Archetype: ExtendedArchetype.NOARCH,
ScriptHooks: {
Draw: InventoryItemMiscExclusivePadlockDrawHook,
},
}, // ExclusivePadlock
CombinationPadlock: {
Archetype: ExtendedArchetype.NOARCH,
ScriptHooks: {
Load: InventoryItemMiscCombinationPadlockLoadHook,
Draw: InventoryItemMiscCombinationPadlockDrawHook,
Click: InventoryItemMiscCombinationPadlockClickHook,
Exit: InventoryItemMiscCombinationPadlockExitHook,
},
BaselineProperty: {
CombinationNumber: "0000",
},
}, // ExclusivePadlock
TimerPasswordPadlock: {
Archetype: ExtendedArchetype.NOARCH,
ScriptHooks: {
Load: InventoryItemMiscTimerPasswordPadlockLoadHook,
Draw: InventoryItemMiscTimerPasswordPadlockDrawHook,
Click: InventoryItemMiscTimerPasswordPadlockClickHook,
Exit: InventoryItemMiscPasswordPadlockExitHook,
},
BaselineProperty: {
Password: "PASSWORD",
Hint: "Take a guess...",
LockSet: false,
RemoveItem: false,
ShowTimer: true,
EnableRandomInput: false,
MemberNumberList: [],
},
}, // TimerPasswordPadlock
}, // ItemMisc
ItemPelvis: {
FuturisticChastityBelt: {
Archetype: ExtendedArchetype.MODULAR,
Modules: [
{
Name: "Model",
Key: "m",
Options: [{}, {}, {}, {}],
},
{
Name: "Front",
Key: "f",
Options: [
{
Property: {},
},
{
Prerequisite: ["CanCoverVulva"],
Property: {
Block: ["ItemVulva", "ItemVulvaPiercings"],
Effect: [E.Chaste],
},
},
],
},
{
Name: "Back",
Key: "b",
Options: [
{
Property: {},
},
{
Property: {
Block: ["ItemButt"],
},
},
],
},
{
Name: "Tamper",
Key: "t",
Options: [{}, {}, {}],
},
{
Name: "Orgasm",
Key: "o",
Options: [{}, {}],
},
],
ScriptHooks: {
Load: FuturisticAccessLoad,
Click: FuturisticAccessClick,
Draw: FuturisticAccessDraw,
Exit: FuturisticAccessExit,
},
}, // FuturisticChastityBelt
MetalChastityBelt: {
Archetype: ExtendedArchetype.TYPED,
ChatTags: [CommonChatTags.SOURCE_CHAR, CommonChatTags.DEST_CHAR],
Options: [
{
Name: "OpenBack",
Property: {
Block: [],
},
},
{
Name: "ClosedBack",
Property: {
Block: ["ItemButt"],
},
},
],
DialogPrefix: {
Header: "SelectBackShield",
Option: "Chastity",
Npc: "Chastity",
Chat: "ChastityBeltBackShield",
},
ChangeWhenLocked: false,
}, // MetalChastityBelt
ForbiddenChastityBelt: {
Archetype: ExtendedArchetype.MODULAR,
ChatTags: [
CommonChatTags.SOURCE_CHAR,
CommonChatTags.DEST_CHAR,
CommonChatTags.ASSET_NAME,
],
DrawImages: true,
Modules: [
{
Name: "CrotchShield",
Key: "c",
Options: [
{}, // 0 - open
{
// 1 - close front
Prerequisite: ["CanCoverVulva"],
Property: {
Effect: [E.Chaste],
Block: ["ItemVulva", "ItemVulvaPiercings"],
},
},
{
// 2 - close back
Property: {
Effect: [E.ButtChaste],
Block: ["ItemButt"],
},
},
{
// 3 - close both
Prerequisite: ["CanCoverVulva"],
Property: {
Effect: [E.Chaste, E.ButtChaste],
Block: ["ItemVulva", "ItemVulvaPiercings", "ItemButt"],
},
},
],
},
{
Name: "ShockModule",
Key: "s",
DrawImages: false,
DrawData: {
elementData: [
{ position: ExtendedXYWithoutImages[8][0] },
{ position: ExtendedXYWithoutImages[8][1] },
{ position: ExtendedXYWithoutImages[8][2] },
{ position: ExtendedXYWithoutImages[8][3] },
],
},
Options: [
{}, // Off
{ Property: { ShockLevel: 0 } }, // Low
{ Property: { ShockLevel: 1 } }, // Medium
{ Property: { ShockLevel: 2 } }, // High
],
},
],
DrawData: {
elementData: [
{}, // CrotchShield
{
imagePath:
"Screens/Inventory/ItemPelvis/ForbiddenChastityBelt/s0.png",
}, // ShockModule
],
},
ScriptHooks: {
Draw: InventoryItemBreastForbiddenChastityBraDrawHook,
Click: InventoryItemBreastForbiddenChastityBraClickHook,
BeforeDraw: AssetsItemNeckAccessoriesCollarShockUnitBeforeDrawHook,
ScriptDraw: AssetsItemBreastForbiddenChastityBraScriptDrawHook,
},
ChangeWhenLocked: false,
BaselineProperty: {
TriggerCount: 0,
ShowText: true,
BlinkState: false,
PunishOrgasm: false,
PunishStandup: false,
PunishStruggle: false,
},
}, // ForbiddenChastityBelt
OrnateChastityBelt: {
Archetype: ExtendedArchetype.TYPED,
CopyConfig: { AssetName: "MetalChastityBelt" },
}, // OrnateChastityBelt
StuddedChastityBelt: {
Archetype: ExtendedArchetype.TYPED,
CopyConfig: { AssetName: "MetalChastityBelt" },
}, // StuddedChastityBelt
PolishedChastityBelt: {
Archetype: ExtendedArchetype.TYPED,
CopyConfig: { AssetName: "MetalChastityBelt" },
}, // PolishedChastityBelt
Ribbons: {
Archetype: ExtendedArchetype.TYPED,
ChatTags: [CommonChatTags.SOURCE_CHAR, CommonChatTags.DEST_CHAR],
Options: [
{
Name: "BowWrap",
Property: { Difficulty: 3, OverridePriority: 21 },
},
{
Name: "CrotchWrapping",
Property: { Difficulty: 4 },
},
],
DialogPrefix: {
Header: "SelectRibbonType",
Option: "RibbonsBelt",
Npc: "ItemPelvisRibbons",
Chat: "PelvisRibbonsSet",
},
}, // Ribbons
HempRope: {
Archetype: ExtendedArchetype.TYPED,
ChatTags: [CommonChatTags.SOURCE_CHAR, CommonChatTags.TARGET_CHAR],
Options: [
{
Name: "Crotch",
Property: { Difficulty: 1, Effect: [E.CrotchRope] },
},
{
Name: "OverPanties",
Property: {
Difficulty: 1,
OverridePriority: 21,
Effect: [E.CrotchRope],
},
},
{
Name: "SwissSeat",
BondageLevel: 4,
Property: { Difficulty: 4 },
},
{
Name: "KikkouHip",
BondageLevel: 5,
Property: { Difficulty: 5 },
},
],
DialogPrefix: {
Header: "SelectRopeBondage",
Option: "RopeBondage",
Npc: "RopeBondage",
Chat: "PelvisRopeSet",
},
}, // HempRope
PoofyDiaper: {
Archetype: ExtendedArchetype.TYPED,
ChatTags: [CommonChatTags.DEST_CHAR_NAME],
Options: [
{
Name: "RegularPadding",
},
{
Name: "Poofy",
Property: {
HideItem: ["ClothLowerSkirt3", "ClothLowerTennisSkirt1"],
},
},
],
}, // PoofyDiaper
ObedienceBelt: {
Archetype: ExtendedArchetype.MODULAR,
ChatTags: [CommonChatTags.SOURCE_CHAR, CommonChatTags.DEST_CHAR],
ChangeWhenLocked: false,
Modules: [
{
Name: "CrotchShield",
Key: "c",
Options: [
{}, // 0 - open
{
// 1 - close front
Prerequisite: ["CanCoverVulva"],
Property: {
Effect: [E.Chaste],
Block: ["ItemVulva", "ItemVulvaPiercings"],
HideItem: [
"ItemVulvaPiercingsChastityClitShield",
"ItemVulvaPiercingsHighSecurityVulvaShield",
],
},
},
{
// 2 - close back
Property: {
Effect: [E.ButtChaste],
Block: ["ItemButt"],
},
},
{
// 3 - close both
Prerequisite: ["CanCoverVulva"],
Property: {
Effect: [E.Chaste, E.ButtChaste],
Block: ["ItemVulva", "ItemVulvaPiercings", "ItemButt"],
HideItem: [
"ItemVulvaPiercingsChastityClitShield",
"ItemVulvaPiercingsHighSecurityVulvaShield",
],
},
},
],
},
{
Name: "ShockModule",
Key: "s",
Options: [
{}, // 0 - disabled
{
HasSubscreen: true,
ArchetypeConfig: {
Archetype: ExtendedArchetype.NOARCH,
ScriptHooks: {
Draw: InventoryItemPelvisObedienceBelts1DrawHook,
Click: InventoryItemPelvisObedienceBelts1ClickHook,
},
},
}, // 1 - enabled
],
},
{
Name: "Engraving",
Key: "e",
Options: [
{
HasSubscreen: true,
ArchetypeConfig: {
Archetype: ExtendedArchetype.TEXT,
MaxLength: { Text: 13 },
Font: "Arial, sans-serif",
DialogPrefix: {
Chat: "ObedienceBeltEngraving",
},
ScriptHooks: {
AfterDraw: AssetsItemPelvisObedienceBeltAfterDrawHook,
},
},
}, // text
],
},
],
BaselineProperty: {
Text: "",
ShowText: false,
PunishOrgasm: false,
PunishStandup: false,
NextShockTime: 0,
},
},
SciFiPleasurePanties: {
Archetype: ExtendedArchetype.MODULAR,
ChatTags: [
CommonChatTags.SOURCE_CHAR,
CommonChatTags.DEST_CHAR,
CommonChatTags.DEST_CHAR_NAME,
CommonChatTags.ASSET_NAME,
],
Modules: [
{
Name: "CrotchShield",
Key: "c",
DrawImages: false,
Options: [
{}, // 0 - open
{
// 1 - close front
Prerequisite: ["CanCoverVulva"],
Property: {
Effect: [E.Chaste],
Block: ["ItemVulva", "ItemVulvaPiercings"],
},
},
{
// 2 - close back
Property: {
Effect: [E.ButtChaste],
Block: ["ItemButt"],
},
},
{
// 3 - close both
Prerequisite: ["CanCoverVulva"],
Property: {
Effect: [E.Chaste, E.ButtChaste],
Block: ["ItemVulva", "ItemVulvaPiercings", "ItemButt"],
},
},
],
},
{
Name: "Intensity",
Key: "i",
DrawImages: false,
Options: [
{ Property: { Intensity: -1 } }, // i0 - Turn Off
{ Property: { Intensity: 0, Effect: [E.Vibrating] } }, // i1 - Low
{ Property: { Intensity: 1, Effect: [E.Vibrating] } }, // i2 - Medium
{ Property: { Intensity: 2, Effect: [E.Vibrating] } }, // i3 - High
{ Property: { Intensity: 3, Effect: [E.Vibrating] } }, // i4 - Maximum
],
},
{
Name: "OrgasmLock",
Key: "o",
DrawImages: false,
Options: [
{}, // o0 - Normal
{ Property: { Effect: [E.DenialMode] } }, // o1 - Edge
{ Property: { Effect: [E.DenialMode, E.RuinOrgasms] } }, // o2 - Deny
],
},
{
Name: "ShockLevel",
Key: "s",
DrawImages: false,
Options: [
{ Property: { ShockLevel: 0 } }, // s0 - Level 1
{ Property: { ShockLevel: 1 } }, // s1 - Level 2
{ Property: { ShockLevel: 2 } }, // s2 - Level 3
],
},
],
BaselineProperty: { ShowText: true },
ScriptHooks: {
Load: FuturisticAccessLoad,
Click: InventoryItemPelvisSciFiPleasurePantiesClickHook,
Draw: InventoryItemPelvisSciFiPleasurePantiesDrawHook,
Exit: FuturisticAccessExit,
Validate: FuturisticAccessValidate,
},
DialogPrefix: {
Chat: InventoryItemPelvisSciFiPleasurePantiesChatPrefix,
},
},
PortalPanties: {
Archetype: ExtendedArchetype.MODULAR,
ChatTags: [CommonChatTags.DEST_CHAR_NAME, CommonChatTags.ASSET_NAME],
Modules: [
{
Name: "Code",
Key: "o",
Options: [
{
HasSubscreen: true,
ChangeWhenLocked: false,
ArchetypeConfig: {
Archetype: ExtendedArchetype.NOARCH,
ScriptHooks: {
Load: PortalLinkRecieverLoadHook,
Draw: PortalLinkRecieverDrawHook,
Click: PortalLinkRecieverClickHook,
Exit: PortalLinkRecieverExitHook,
},
},
},
],
},
{
Name: "CrotchShield",
Key: "c",
Options: [
{}, // 0 - open
{
// 1 - close front
Property: {
Effect: [E.Chaste],
Block: ["ItemVulva", "ItemVulvaPiercings"],
Attribute: [
"PortalLinkTargetItemVulva",
"PortalLinkActivityCaress",
"PortalLinkActivityKiss",
"PortalLinkActivitySlap",
"PortalLinkActivityMasturbateHand",
"PortalLinkActivityMasturbateTongue",
],
Hide: ["Pussy"],
},
},
{
// 2 - close back
Property: {
Effect: [E.Chaste],
Block: ["ItemButt"],
Attribute: [
"PortalLinkTargetItemButt",
"PortalLinkActivityCaress",
"PortalLinkActivityKiss",
"PortalLinkActivitySlap",
"PortalLinkActivityMasturbateHand",
"PortalLinkActivityMasturbateTongue",
],
Hide: ["Pussy"],
},
},
{
// 3 - close both
Property: {
Effect: [E.Chaste],
Block: ["ItemVulva", "ItemVulvaPiercings", "ItemButt"],
Hide: ["Pussy"],
},
},
],
},
],
DrawData: {
elementData: [{ position: ExtendedXY[1][0] }, { hidden: true }],
},
BaselineProperty: {
PortalLinkCode: "00000000",
},
ScriptHooks: {
Load: FuturisticAccessLoad,
Click: FuturisticAccessClick,
Draw: FuturisticAccessDraw,
Exit: FuturisticAccessExit,
},
},
LoveChastityBelt: {
Archetype: ExtendedArchetype.MODULAR,
ChatTags: [
CommonChatTags.SOURCE_CHAR,
CommonChatTags.DEST_CHAR,
CommonChatTags.ASSET_NAME,
],
Modules: [
{
Name: "FrontShield",
Key: "f",
DrawImages: false,
Options: [
{
// 0 - open
Expression: [{ Name: "Low", Group: "Blush", Timer: 10 }],
},
{
// 1 - close front
Prerequisite: ["CanCoverVulva"],
Expression: [{ Name: "Medium", Group: "Blush", Timer: 10 }],
Property: {
Effect: [E.Chaste],
Block: ["ItemVulva", "ItemVulvaPiercings"],
},
},
{
// 2 - close front & vibrator
Prerequisite: ["CanCoverVulva"],
Expression: [{ Name: "Medium", Group: "Blush", Timer: 10 }],
Property: {
Effect: [E.Chaste, E.Egged],
Block: ["ItemVulva", "ItemVulvaPiercings"],
},
},
{
// 3 - close front & shock unit
Prerequisite: ["CanCoverVulva"],
Expression: [{ Name: "Medium", Group: "Blush", Timer: 10 }],
Property: {
Effect: [E.Chaste],
Block: ["ItemVulva", "ItemVulvaPiercings"],
},
},
],
},
{
Name: "BackShield",
Key: "b",
DrawImages: false,
Options: [
{}, // 0 - open
{
// 1 - closed
Property: {
Effect: [E.Chaste],
Block: ["ItemButt"],
},
},
],
},
{
Name: "Intensity",
Key: "i",
DrawImages: false,
Options: [
{ Property: { Intensity: -1 } }, // i0 - Turn Off
{ Property: { Intensity: 0, Effect: [E.Vibrating] } }, // i1 - Low
{ Property: { Intensity: 1, Effect: [E.Vibrating] } }, // i2 - Medium
{ Property: { Intensity: 2, Effect: [E.Vibrating] } }, // i3 - High
{ Property: { Intensity: 3, Effect: [E.Vibrating] } }, // i4 - Maximum
],
},
{
Name: "ShockLevel",
Key: "s",
DrawImages: false,
Options: [
{ Property: { ShockLevel: 0 } }, // s0 - Level 1
{ Property: { ShockLevel: 1 } }, // s1 - Level 2
{ Property: { ShockLevel: 2 } }, // s2 - Level 3
],
},
],
BaselineProperty: { ShowText: true },
ScriptHooks: {
SetOption: InventoryItemPelvisLoveChastityBeltSetOptionHook,
Draw: InventoryItemPelvisLoveChastityBeltDraw,
Validate: InventoryItemPelvisLoveChastityBeltValidate,
Click: (...args) => {
InventoryItemPelvisSciFiPleasurePantiesClickHook(...args, false);
},
},
DialogPrefix: {
Chat: InventoryItemPelvisSciFiPleasurePantiesChatPrefix,
},
}, // LoveChastityBelt
FuturisticTrainingBelt: {
Archetype: ExtendedArchetype.VIBRATING,
Options: [VibratorModeSet.STANDARD],
ScriptHooks: {
Load: InventoryItemPelvisFuturisticTrainingBeltLoadHook,
Click: InventoryItemPelvisFuturisticTrainingBeltClickHook,
Draw: InventoryItemPelvisFuturisticTrainingBeltDrawHook,
Exit: InventoryItemPelvisFuturisticTrainingBeltExitHook,
Validate: FuturisticAccessValidate,
ScriptDraw: AssetsItemPelvisFuturisticTrainingBeltScriptDraw,
},
BaselineProperty: {
ShowText: false,
NextShockTime: 0,
PunishStruggle: false,
PunishStruggleOther: false,
PunishOrgasm: false,
PunishStandup: false,
PunishSpeech: 0,
PunishRequiredSpeech: 0,
PunishRequiredSpeechWord: "Miss",
PunishProhibitedSpeech: 0,
PunishProhibitedSpeechWords: "I,me,am,my,im",
PublicModeCurrent: 0,
PublicModePermission: 0,
},
AllowEffect: [E.DenialMode, E.RuinOrgasms],
}, // FuturisticTrainingBelt
HeavyDutyBelt: {
Archetype: ExtendedArchetype.MODULAR,
ChatTags: [
CommonChatTags.SOURCE_CHAR,
CommonChatTags.DEST_CHAR,
CommonChatTags.DEST_CHAR_NAME,
CommonChatTags.ASSET_NAME,
],
ChangeWhenLocked: false,
Modules: [
{
Name: "CrotchShield",
Key: "c",
Options: [
{}, // 0 - open
{
// 1 - transparent
Prerequisite: ["CanCoverVulva"],
Property: {
Effect: [E.Chaste],
Block: ["ItemVulva", "ItemVulvaPiercings"],
Hide: ["Pussy"],
},
},
{
// 2 - metal
Prerequisite: ["CanCoverVulva"],
Property: {
Effect: [E.Chaste],
Block: ["ItemVulva", "ItemVulvaPiercings"],
HideItem: [
"ItemButtAnalBeads2",
"ItemVulvaVibratingDildo",
"ItemVulvaClitSuctionCup",
"ItemVulvaInflatableVibeDildo",
"ItemVulvaHeavyWeightClamp",
"ItemVulvaPenisDildo",
"ItemVulvaShockDildo",
"ItemVulvaPiercingsVibeHeartClitPiercing",
"ItemVulvaPiercingsClitRing",
"ItemVulvaPiercingsChastityClitShield",
"ItemVulvaPiercingsHighSecurityVulvaShield",
"ItemVulvaPlasticChastityCage1",
"ItemVulvaPlasticChastityCage2",
"ItemVulvaTechnoChastityCage",
"ItemVulvaFlatChastityCage",
"ItemVulvaVibeEggPenisBase",
"ItemVulvaChastityPouch",
],
Hide: ["Pussy"],
},
},
],
},
{
Name: "BackShield",
Key: "b",
DrawImages: false,
Options: [
{}, // 0 - open
{
// 1 - close back
Property: {
Block: ["ItemButt"],
},
},
],
},
{
Name: "Modules",
Key: "m",
Options: [
{}, // 0 - none
{
// 1 - cage/spreader
Prerequisite: ["CanCoverVulva"],
Property: {
Effect: [E.Chaste],
Block: ["ItemVulva", "ItemVulvaPiercings"],
Hide: ["Pussy"],
},
},
{
// 2 - rotors
Property: {
Hide: ["Pussy"],
},
},
{
// 3 - both
Prerequisite: ["CanCoverVulva"],
Property: {
Effect: [E.Chaste],
Block: ["ItemVulva", "ItemVulvaPiercings"],
Hide: ["Pussy"],
},
},
],
},
{
Name: "Intensity",
Key: "i",
DrawImages: false,
Options: [
{ Property: { Intensity: -1, Effect: [E.Egged] } }, // i0 - Turn Off
{ Property: { Intensity: 0, Effect: [E.Egged, E.Vibrating] } }, // i1 - Low
{ Property: { Intensity: 1, Effect: [E.Egged, E.Vibrating] } }, // i2 - Medium
{ Property: { Intensity: 2, Effect: [E.Egged, E.Vibrating] } }, // i3 - High
{ Property: { Intensity: 3, Effect: [E.Egged, E.Vibrating] } }, // i4 - Maximum
],
},
{
Name: "OrgasmLock",
Key: "o",
DrawImages: false,
Options: [
{}, // o0 - Normal
{ Property: { Effect: [E.DenialMode] } }, // o1 - Edge
{ Property: { Effect: [E.DenialMode, E.RuinOrgasms] } }, // o2 - Deny
],
},
],
}, //HeavyDutyBelt
ModularChastityBelt: {
Archetype: ExtendedArchetype.MODULAR,
ChatTags: [
CommonChatTags.SOURCE_CHAR,
CommonChatTags.DEST_CHAR,
CommonChatTags.DEST_CHAR_NAME,
CommonChatTags.ASSET_NAME,
],
ChangeWhenLocked: false,
Modules: [
{
Name: "BeltType",
Key: "a",
Options: [
{}, // 0 - Invisible
{}, // 1 - Standard
],
},
{
Name: "CrotchShield",
Key: "c",
DrawImages: false,
Options: [
{}, // 0 - open
{
// 1 - Close Front
Prerequisite: ["CanCoverVulva"],
Property: {
Effect: ["Chaste"],
Block: ["ItemVulva", "ItemVulvaPiercings"],
HideItem: [
"ItemButtAnalBeads2",
"ItemVulvaPenisDildo",
"ItemVulvaShockDildo",
"ItemVulvaVibratingDildo",
"ItemVulvaInflatableVibeDildo",
"ItemVulvaClitoralStimulator",
"ItemVulvaClitSuctionCup",
"ItemVulvaHeavyWeightClamp",
"ItemVulvaLoversVibrator",
"ItemVulvaDoubleEndDildo",
"ItemVulvaBasicCockring",
"ItemVulvaPlasticChastityCage1",
"ItemVulvaVibeEggPenisBase",
"ItemVulvaPlasticChastityCage2",
"ItemVulvaTechnoChastityCage",
"ItemVulvaFlatChastityCage",
"ItemVulvaChastityPouch",
"ItemVulvaPiercingsVibeHeartClitPiercing",
"ItemVulvaPiercingsClitRing",
"ItemVulvaPiercingsChastityClitShield",
"ItemVulvaPiercingsHighSecurityVulvaShield",
],
Hide: ["Pussy"],
},
},
{
// 2 - close back
Property: {
Effect: ["ButtChaste"],
Block: ["ItemButt"],
},
},
{
// 3 - Close both
Prerequisite: ["CanCoverVulva"],
Property: {
Effect: ["Chaste", "ButtChaste"],
Block: ["ItemVulva", "ItemVulvaPiercings", "ItemButt"],
HideItem: [
"ItemButtAnalBeads2",
"ItemVulvaPenisDildo",
"ItemVulvaShockDildo",
"ItemVulvaVibratingDildo",
"ItemVulvaInflatableVibeDildo",
"ItemVulvaClitoralStimulator",
"ItemVulvaClitSuctionCup",
"ItemVulvaHeavyWeightClamp",
"ItemVulvaLoversVibrator",
"ItemVulvaDoubleEndDildo",
"ItemVulvaBasicCockring",
"ItemVulvaPlasticChastityCage1",
"ItemVulvaVibeEggPenisBase",
"ItemVulvaPlasticChastityCage2",
"ItemVulvaTechnoChastityCage",
"ItemVulvaFlatChastityCage",
"ItemVulvaChastityPouch",
"ItemVulvaPiercingsVibeHeartClitPiercing",
"ItemVulvaPiercingsClitRing",
"ItemVulvaPiercingsChastityClitShield",
"ItemVulvaPiercingsHighSecurityVulvaShield",
],
Hide: ["Pussy"],
},
},
],
},
{
Name: "Intensity",
Key: "i",
DrawImages: false,
Options: [
{ Property: { Intensity: -1, Effect: ["Egged"] } }, // i0 - Turn Off
{ Property: { Intensity: 0, Effect: ["Egged", "Vibrating"] } }, // i1 - Low
{ Property: { Intensity: 1, Effect: ["Egged", "Vibrating"] } }, // i2 - Medium
{ Property: { Intensity: 2, Effect: ["Egged", "Vibrating"] } }, // i3 - High
{ Property: { Intensity: 3, Effect: ["Egged", "Vibrating"] } }, // i4 - Maximum
],
},
{
Name: "ShockModule",
Key: "s",
DrawImages: false,
Options: [
{ Property: { ShockLevel: 0 } }, // s0 - Off
{ Property: { ShockLevel: 0 } }, // s1 - Level 1
{ Property: { ShockLevel: 1 } }, // s2 - Level 2
{ Property: { ShockLevel: 2 } }, // s3 - Level 3
],
DrawData: {
elementData: [
{ position: ExtendedXYWithoutImages[8][0] },
{ position: ExtendedXYWithoutImages[8][1] },
{ position: ExtendedXYWithoutImages[8][2] },
{ position: ExtendedXYWithoutImages[8][3] },
],
},
},
{
Name: "VoiceControl",
Key: "v",
DrawImages: false,
Options: [
{}, //v0 - Off
{}, //v1 - On
],
},
{
Name: "OrgasmLock",
Key: "o",
DrawImages: false,
Options: [
{}, // o0 - Normal
{ Property: { Effect: ["DenialMode"] } }, // o1 - Edge
{ Property: { Effect: ["DenialMode", "RuinOrgasms"] } }, // o2 - Deny
],
},
],
ScriptHooks: {
Click: InventoryItemPelvisModularChastityBeltClickHook,
Draw: InventoryItemPelvisModularChastityBeltDrawHook,
Exit: InventoryItemPelvisModularChastityBeltExitHook,
ScriptDraw: InventoryItemPelvisModularChastityBeltScriptDrawHook,
},
BaselineProperty: {
TriggerCount: 0,
OrgasmCount: 0,
RuinedOrgasmCount: 0,
TimeWorn: CommonTime(),
TimeSinceLastOrgasm: CommonTime(),
ShowText: true,
ShockLevel: 0,
PunishOrgasm: false,
PunishStandup: false,
PunishStruggle: false,
PunishStruggleOther: false,
AccessMode: "",
TriggerValues: CommonConvertArrayToString(
InventoryItemPelvisModularChastityBeltVoiceTriggers,
),
},
}, // ModularChastityBelt
}, // ItemPelvis
ItemEars: {
FuturisticEarphones: {
Archetype: ExtendedArchetype.TYPED,
ChatTags: [
CommonChatTags.SOURCE_CHAR,
CommonChatTags.DEST_CHAR,
CommonChatTags.ASSET_NAME,
],
Options: [
{
Name: "Off",
Property: {
Effect: [],
},
},
{
Name: "Light",
Property: {
Effect: [E.DeafLight],
},
},
{
Name: "Heavy",
Property: {
Effect: [E.DeafHeavy],
},
},
{
Name: "NoiseCancelling",
Property: {
Effect: [E.DeafTotal],
},
},
],
DialogPrefix: {
Header: "HeadphoneEarPlugsSelectLoudness",
Option: "HeadphoneEarPlugsPose",
Chat: "HeadphoneEarPlugsRestrain",
Npc: "ItemEarsHeadphonePlugs",
},
ScriptHooks: {
Load: FuturisticAccessLoad,
Click: FuturisticAccessClick,
Draw: FuturisticAccessDraw,
Exit: FuturisticAccessExit,
Validate: FuturisticAccessValidate,
},
}, // FuturisticEarphones
HeadphoneEarPlugs: {
Archetype: ExtendedArchetype.TYPED,
ChatTags: [
CommonChatTags.SOURCE_CHAR,
CommonChatTags.DEST_CHAR,
CommonChatTags.ASSET_NAME,
],
Options: [
{
Name: "Off",
Property: {
Effect: [],
},
},
{
Name: "Light",
Property: {
Effect: [E.DeafLight],
},
},
{
Name: "Heavy",
Property: {
Effect: [E.DeafHeavy],
},
},
{
Name: "NoiseCancelling",
Property: {
Effect: [E.DeafTotal],
},
},
],
DialogPrefix: {
Header: "HeadphoneEarPlugsSelectLoudness",
Option: "HeadphoneEarPlugsPose",
Chat: "HeadphoneEarPlugsRestrain",
Npc: "ItemEarsHeadphonePlugs",
},
}, // HeadphoneEarPlugs
Headphones: {
Archetype: ExtendedArchetype.TYPED,
CopyConfig: { AssetName: "HeadphoneEarPlugs" },
}, // Headphones
BluetoothEarbuds: {
Archetype: ExtendedArchetype.TYPED,
CopyConfig: { AssetName: "HeadphoneEarPlugs" },
}, // BluetoothEarbuds
}, // ItemEars
Bra: {
Ribbons: {
Archetype: ExtendedArchetype.TYPED,
Options: [
{
Name: "Basic",
},
{
Name: "Bow",
},
{
Name: "Wrap",
},
],
DialogPrefix: {
Option: "RibbonBraType",
Header: "SelectRibbonStyle",
},
}, // Ribbons
SexyBikini1: {
Archetype: ExtendedArchetype.TYPED,
Options: [
{
Name: "Open",
},
{
Name: "Closed",
},
],
DialogPrefix: {
Option: "BikiniType",
Header: "SelectBikiniType",
},
}, // SexyBikini1
CuteBikini1: {
Archetype: ExtendedArchetype.TYPED,
CopyConfig: { AssetName: "SexyBikini1" },
}, // CuteBikini1
Swimsuit1: {
Archetype: ExtendedArchetype.TYPED,
Options: [
{
Name: "Shiny",
},
{
Name: "Dull",
},
],
}, // ChineseDress2
}, // Bra
Panties: {
Diapers4: {
Archetype: ExtendedArchetype.TYPED,
Options: [
{
Name: "None",
},
{
Name: "StrawBerry",
},
{
Name: "Flower",
},
{
Name: "Butterfly",
},
{
Name: "Spots",
},
],
}, // Diapers4
PoofyDiaper: {
Archetype: ExtendedArchetype.TYPED,
ChatTags: [CommonChatTags.DEST_CHAR_NAME],
Options: [
{
Name: "RegularPadding",
},
{
Name: "Poofy",
Property: {
HideItem: ["ClothLowerSkirt3", "ClothLowerTennisSkirt1"],
},
},
],
}, // PoofyDiaper
MaleCatsuitPanties: {
Archetype: ExtendedArchetype.TYPED,
CopyConfig: { GroupName: "SuitLower", AssetName: "MaleSeamlessCatsuit" },
}, // MaleCatsuitPanties - Panties
Jockstrap: {
Archetype: ExtendedArchetype.TYPED,
Options: [
{
Name: "String",
},
{
Name: "Sidestraps",
},
{
Name: "Holemesh",
},
],
}, // Jockstrap
}, // Panties
Glasses: {
EyePatch1: {
Archetype: ExtendedArchetype.TYPED,
Options: [
{
Name: "Left",
},
{
Name: "Right",
},
],
DialogPrefix: {
Header: "SelectEyePatchType",
Option: "EyePatchType",
},
}, // EyePatch1
CatGlasses: {
Archetype: ExtendedArchetype.TYPED,
Options: [
{
Name: "Front",
Property: {
OverridePriority: 53,
},
},
{
Name: "Back",
Property: {
OverridePriority: 27,
},
},
],
DialogPrefix: {
Header: "CatGlassesSelectStyle",
Option: "CatGlassesStyle",
},
DrawImages: false,
}, // CatGlasses
GradientSunglasses: {
Archetype: ExtendedArchetype.TYPED,
Options: [
{
Name: "GradUp",
},
{
Name: "GradDipped",
},
{
Name: "FlatUp",
},
{
Name: "FlatDipped",
},
],
DialogPrefix: {
Header: "GradientSunglassesSelectType",
Option: "GradientSunglassesType",
},
DrawImages: false,
}, // GradientSunglasses
StreetEyewear: {
Archetype: ExtendedArchetype.TYPED,
Options: [
{
Name: "Normal",
},
{
Name: "Half",
},
],
DialogPrefix: {
Header: "StreetEyewearSelectType",
Option: "StreetEyewearType",
},
DrawImages: false,
}, // StreetEyewear
}, // Glasses
Bracelet: {
Band1: {
Archetype: ExtendedArchetype.TYPED,
Options: [
{
Name: "Left",
},
{
Name: "Both",
},
{
Name: "Right",
},
],
DrawImages: false,
}, // Band1
SpikeBands: {
Archetype: ExtendedArchetype.TYPED,
Options: [
{
Name: "Both",
},
{
Name: "Right",
},
{
Name: "Left",
},
],
DialogPrefix: {
Header: "BraceletSpikeBandsSelect",
Option: "BraceletSpikeBands",
},
}, // SpikeBands
Wristband: {
Archetype: ExtendedArchetype.TYPED,
Options: [
{
Name: "Left",
},
{
Name: "Both",
},
{
Name: "Right",
},
],
}, // Wristband
}, //Bracelet
Garters: {
GarterBelt: {
Archetype: ExtendedArchetype.TYPED,
Options: [
{
Name: "Both",
},
{
Name: "Right",
},
{
Name: "Left",
},
],
DrawImages: false,
}, // GarterBelt
}, // Garters
Necklace: {
NecklaceKey: {
Archetype: ExtendedArchetype.TYPED,
Options: [
{
Name: "Normal",
Property: {
OverridePriority: 31,
},
},
{
Name: "Tucked",
Property: {
OverridePriority: 29,
},
},
],
DialogPrefix: {
Header: "SelectPriorityType",
Option: "ClothPriorityType",
},
}, // NecklaceKey
NecklaceLock: {
Archetype: ExtendedArchetype.TYPED,
CopyConfig: { AssetName: "NecklaceKey" },
}, // NecklaceLock
NecklaceRope: {
Archetype: ExtendedArchetype.TYPED,
Options: [
{
Name: "Short",
},
{
Name: "Long",
},
],
}, //NecklaceRope
ChokerTattoo: {
Archetype: ExtendedArchetype.TYPED,
Options: [
{
Name: "Loops",
},
{
Name: "Flowers",
},
],
}, //ChokerTattoo
}, // Necklace
Suit: {
Catsuit: {
Archetype: ExtendedArchetype.TYPED,
Options: [
{
Name: "NoGloves",
},
{
Name: "OpaqueGloves",
Property: {
Hide: ["Hands"],
},
},
{
Name: "TransparentGloves",
},
],
DialogPrefix: {
Header: "SelectSuitGloves",
Option: "SuitGloveType",
},
DrawImages: false,
}, // Catsuit
LatexCatsuit: {
Archetype: ExtendedArchetype.TYPED,
ChatTags: [
CommonChatTags.SOURCE_CHAR,
CommonChatTags.DEST_CHAR,
CommonChatTags.DEST_CHAR_NAME,
CommonChatTags.ASSET_NAME,
],
Options: [
{
Name: "Standard",
},
{
Name: "Prisoner",
},
{
Name: "Transparent",
},
{
Name: "PrisonerTransparent",
},
],
DrawImages: false,
BaselineProperty: { Text: "PRISONER", Text2: "#0000", Text3: "" },
ChatSetting: TypedItemChatSetting.FROM_TO,
ScriptHooks: {
Load: InventorySuitLatexCatsuitLoadHook,
Draw: InventorySuitLatexCatsuitDrawHook,
Exit: InventorySuitLatexCatsuitExitHook,
PublishAction: InventorySuitLatexCatsuitPublishActionHook,
},
}, // LatexCatsuit
SeamlessCatsuit: {
Archetype: ExtendedArchetype.TYPED,
CopyConfig: { GroupName: "Suit", AssetName: "Catsuit" },
}, // SeamlessCatsuit
PilotSuit: {
Archetype: ExtendedArchetype.TYPED,
CopyConfig: { GroupName: "Suit", AssetName: "Catsuit" },
}, // PilotSuit
SeethroughSuit: {
Archetype: ExtendedArchetype.TYPED,
Options: [
{
Name: "NoGloves",
},
{
Name: "TransparentGloves",
},
{
Name: "OpaqueGloves",
Property: {
Hide: ["Hands"],
},
},
],
DialogPrefix: {
Header: "SelectSuitGloves",
Option: "SuitGloveType",
},
DrawImages: false,
}, // SeethroughSuit
SeethroughSuitZip: {
Archetype: ExtendedArchetype.TYPED,
CopyConfig: { GroupName: "Suit", AssetName: "SeethroughSuit" },
}, // SeethroughSuitZip
ReverseBunnySuit: {
Archetype: ExtendedArchetype.TYPED,
CopyConfig: { GroupName: "Suit", AssetName: "Catsuit" },
}, // ReverseBunnySuit
MaleSeamlessCatsuit: {
Archetype: ExtendedArchetype.TYPED,
CopyConfig: { GroupName: "Suit", AssetName: "Catsuit" },
}, // MaleSeamlessCatsuit
FishnetTop: {
Archetype: ExtendedArchetype.MODULAR,
CopyConfig: { GroupName: "Cloth", AssetName: "FishnetTop" },
DialogPrefix: {
Header: "ClothFishnetTopSelect",
Module: "ClothFishnetTopModule",
Option: "ClothFishnetTopOption",
Chat: "ClothFishnetTopSet",
},
}, // FishnetTop
}, // Suit
SuitLower: {
MaleSeamlessCatsuit: {
Archetype: ExtendedArchetype.TYPED,
Options: [
{
Name: "Tucked",
},
{
Name: "Bulge",
},
{
Name: "SkinTight",
},
{
Name: "Lock",
},
],
}, // MaleSeamlessCatsuit
LatexCatsuit: {
Archetype: ExtendedArchetype.TYPED,
Options: [
{
Name: "Standard",
},
{
Name: "Prisoner",
},
{
Name: "Transparent",
},
{
Name: "PrisonerTransparent",
},
],
DialogPrefix: {
Header: "SuitLatexCatsuitSelect",
Option: "SuitLatexCatsuit",
},
DrawImages: false,
}, // LatexCatsuit
MaleCatsuitPanties: {
Archetype: ExtendedArchetype.TYPED,
CopyConfig: { GroupName: "SuitLower", AssetName: "MaleSeamlessCatsuit" },
}, // MaleCatsuitPanties - SuitLower
}, // SuitLower
ItemHead: {
DuctTape: {
Archetype: ExtendedArchetype.TYPED,
Options: [
{
Name: "Double",
Property: {
Block: ["ItemNose"],
Effect: [E.BlindNormal, E.BlockWardrobe],
},
},
{
Name: "Wrap",
Property: {
Block: ["ItemNose"],
Effect: [E.BlindNormal, E.BlockWardrobe],
},
},
{
Name: "Mummy",
Property: {
Hide: ["HairFront", "HairBack"],
Block: [
"ItemMouth",
"ItemMouth2",
"ItemMouth3",
"ItemEars",
"ItemHood",
"ItemNose",
],
Effect: [E.GagNormal, E.BlindNormal, E.BlockWardrobe, E.BlockMouth],
},
},
{
Name: "Open",
Property: {
Hide: ["HairFront", "HairBack"],
Block: [
"ItemMouth",
"ItemMouth2",
"ItemMouth3",
"ItemEars",
"ItemHood",
],
Effect: [E.GagNormal, E.BlockMouth],
},
},
],
}, // DuctTape
Ribbons: {
Archetype: ExtendedArchetype.TYPED,
Options: [
{
Name: "Basic",
Property: {
Effect: [E.BlindLight],
},
},
{
Name: "Wrap",
Property: {
Effect: [E.BlindNormal],
},
},
],
DialogPrefix: {
Header: "SelectRibbonType",
},
}, // Ribbons
WebBlindfold: {
Archetype: ExtendedArchetype.TYPED,
Options: [
{
Name: "Blindfold",
Property: {
Difficulty: 0,
Block: ["ItemNose"],
Effect: [E.BlindLight],
},
},
{
Name: "Cocoon",
Property: {
Difficulty: 30,
Hide: [
"HairFront",
"HairBack",
"Hat",
"ItemMouth",
"ItemMouth2",
"ItemMouth3",
],
Block: [
"ItemMouth",
"ItemMouth2",
"ItemMouth3",
"ItemEars",
"ItemHood",
"ItemNose",
],
Effect: [E.BlindHeavy, E.GagNormal, E.BlockMouth],
},
},
],
ChatTags: [CommonChatTags.SOURCE_CHAR, CommonChatTags.TARGET_CHAR],
DialogPrefix: {
Header: "WebBondageSelect",
},
}, // WebBlindfold
FuturisticMask: {
Archetype: ExtendedArchetype.TYPED,
Options: [
{
Name: "Transparent",
Property: {
SelfUnlock: true,
Effect: [],
},
},
{
Name: "LightTint",
Property: {
Effect: [E.BlindLight, E.BlockWardrobe],
Tint: [{ Color: 0, Strength: 0.2 }],
},
},
{
Name: "HeavyTint",
Property: {
Effect: [E.BlindNormal, E.BlockWardrobe],
Tint: [{ Color: 0, Strength: 0.5 }],
},
},
{
Name: "Blind",
Property: {
Effect: [E.BlindHeavy, E.BlockWardrobe],
},
},
],
DialogPrefix: {
Header: "SelectVisorType",
Option: "ItemHeadInteractiveVisorType",
Chat: "ItemHeadInteractiveVisorSet",
},
ScriptHooks: {
Load: FuturisticAccessLoad,
Click: FuturisticAccessClick,
Draw: FuturisticAccessDraw,
Exit: FuturisticAccessExit,
Validate: FuturisticAccessValidate,
},
}, // FuturisticMask
InteractiveVisor: {
Archetype: ExtendedArchetype.TYPED,
Options: [
{
Name: "Transparent",
Property: {
SelfUnlock: true,
Effect: [],
},
},
{
Name: "LightTint",
Property: {
Effect: [E.BlindLight, E.BlockWardrobe],
Tint: [{ Color: 0, Strength: 0.2 }],
},
},
{
Name: "HeavyTint",
Property: {
Effect: [E.BlindNormal, E.BlockWardrobe],
Tint: [{ Color: 0, Strength: 0.5 }],
},
},
{
Name: "Blind",
Property: {
Effect: [E.BlindHeavy, E.BlockWardrobe],
},
},
],
DialogPrefix: {
Header: "SelectVisorType",
Option: "ItemHeadInteractiveVisorType",
Chat: "ItemHeadInteractiveVisorSet",
},
ScriptHooks: {
Load: FuturisticAccessLoad,
Click: FuturisticAccessClick,
Draw: FuturisticAccessDraw,
Exit: FuturisticAccessExit,
Validate: FuturisticAccessValidate,
},
}, // InteractiveVisor
InteractiveVRHeadset: {
Archetype: ExtendedArchetype.MODULAR,
Modules: [
{
Name: "Background",
Key: "b",
Options: [
//CustomBlindBackground: {"None" : "SynthWave", "FreeVR" : "SynthWave", "Gaming" : "Dungeon", "Off" : "", "AR" : ""},
{
// b0 - Passthrough
Property: {
CustomBlindBackground: "",
},
},
{
// b1 - SynthWave
Property: {
CustomBlindBackground: "SynthWave",
Effect: [],
},
},
{
// b2 - Dungeon
Property: {
CustomBlindBackground: "Dungeon",
Effect: [],
},
},
{
// b3 - SciFiCell
Property: {
CustomBlindBackground: "SciFiCell",
Effect: [],
},
},
{
// b4 - AncientRuins
Property: {
CustomBlindBackground: "AncientRuins",
Effect: [],
},
},
{
// b5 - HypnoticSpiral
Property: {
CustomBlindBackground: "HypnoticSpiral",
Effect: [],
},
},
],
},
{
// Use `BlindTotal` for VR avatars to ensure that the `thin` property never reduces the blindness level below `BlindHeavy`,
// as lowering it any more will result in visual odities related to partial blindness
Name: "Function",
Key: "f",
Options: [
{
// f0 - Passthrough
Property: {
Effect: [],
},
},
{
// f1 - Off
Property: {
Effect: [E.BlindHeavy, E.BlockWardrobe],
},
},
{
// f2 - VR Avatar
Property: {
Effect: [E.BlindTotal, E.BlockWardrobe, E.VRAvatars],
},
},
{
// f3 - VR Avatar (hide restraints)
Property: {
Effect: [E.BlindTotal, E.VRAvatars, E.HideRestraints],
},
},
],
},
{
Name: "Game",
Key: "g",
Options: [
{
// g0 - None
Property: {
Effect: [],
},
},
{
// f1 - Kinky Dungeon
Property: {
Effect: [E.KinkyDungeonParty],
},
},
],
},
],
ScriptHooks: {
Load: FuturisticAccessLoad,
Click: FuturisticAccessClick,
Draw: FuturisticAccessDraw,
Exit: FuturisticAccessExit,
},
}, // InteractiveVRHeadset
MedicalPatch: {
ChatSetting: ModularItemChatSetting.PER_MODULE,
Archetype: ExtendedArchetype.MODULAR,
Modules: [
{
Name: "Eye",
Key: "e",
Options: [
{
Property: {
Effect: [E.BlindNormal, E.BlockWardrobe],
},
},
{},
{},
],
},
{
Name: "RightSticker",
Key: "r",
Options: [{}, {}, {}, {}, {}], //Just blank and cosmetic options
},
{
Name: "LeftSticker",
Key: "l",
Options: [{}, {}, {}, {}, {}], //Just blank and cosmetic options
},
],
}, //MedicalPatch
BigMouthHood: {
Archetype: ExtendedArchetype.TYPED,
CopyConfig: { GroupName: "ItemHood", AssetName: "BigMouthHood" },
Options: [
{ Name: "Empty", Property: { Effect: [] } },
{
Name: "Lenses",
Property: {
Effect: [E.BlindLight],
Tint: [{ Color: 2, Strength: 0.2 }],
},
},
{
Name: "Mesh",
Property: {
Effect: [E.BlindNormal, E.BlockWardrobe],
},
},
{
Name: "Slim",
Property: {
Effect: [E.BlindHeavy, E.BlockWardrobe],
},
},
],
}, //BigMouthHood
DroneMask: {
Archetype: ExtendedArchetype.MODULAR,
ChatSetting: ModularItemChatSetting.PER_MODULE,
Modules: [
{
Name: "Mouth",
Key: "m",
Options: [
{
// m0 - None
Property: { Effect: [E.BlockMouth] },
},
{
// m1 - Onahole
Property: { Effect: [E.GagMedium, E.OpenMouth] },
},
{
// m2 - Fleshlight
Property: { Effect: [E.GagMedium, E.OpenMouth] },
},
{
// m3 - Smile
Property: { Effect: [E.BlockMouth] },
},
{
// m4 - Holes
Property: { Effect: [E.BlockMouth] },
},
{
// m5 - Sculpted
Property: { Effect: [E.BlockMouth] },
},
{
// m6 - Subtle
Property: { Effect: [E.BlockMouth] },
},
],
},
{
Name: "Eyes",
Key: "e",
Options: [
{
// e0 - None
Property: { Effect: [E.BlindLight] },
},
{
// e1 - Regular
Property: { Effect: [] },
},
{
// e2 - Spiral
Property: { Effect: [] },
},
{
// e3 - Smile
Property: { Effect: [] },
},
{
// e4 - Holes
Property: { Effect: [E.BlindLight] },
},
{
// e5 - Sculpted
Property: { Effect: [] },
},
{
// e6 - Concave
Property: { Effect: [E.BlindLight] },
},
],
},
{
Name: "Pattern",
Key: "p",
Options: [
{}, // Blank
{}, // Barcode
{}, // Scarab
{}, // Hex
{}, // Lines
{
HasSubscreen: true,
ArchetypeConfig: {
Archetype: ExtendedArchetype.TEXT,
MaxLength: { Text: 16 },
Font: "Impact",
ScriptHooks: {
AfterDraw: AssetsItemHeadDroneMaskAfterDrawHook,
},
},
}, // text
],
},
{
Name: "Glow",
Key: "g",
Options: [{}, {}], // Glow Off, Glow On
},
{
Name: "Sight",
Key: "s",
Options: [
{
// s0 - Opaque
Property: { Effect: [E.BlindHeavy, E.BlockWardrobe] },
},
{
// s1 - One Way
Property: { Effect: [] },
},
],
},
{
Name: "Helmet",
Key: "h",
Options: [
{}, // h0 - Mask
{
Property: {
Hide: ["HairFront", "HairBack"], //"HairAccessory1", "HairAccessory2"],
HideItem: [
"HatBonnet1",
"HatBonnet2",
"HatBunnySuccubus2",
"HatCrown1",
"HatCrown2",
"HatCrown4",
"HatCrown5",
"HatBand1",
"HatBand2",
"HatPirateBandana1",
"HatVeil1",
"HatVeil2", // Hat items
"MaskFuturisticVisor",
"MaskShinobiMask", // Mask items
"HairAccessory3Ribbons4", // HairAccessory items
"HairAccessory1Antennae",
"HairAccessory1BunnyEars1",
"HairAccessory1BunnyEars2",
"HairAccessory1CowHorns",
"HairAccessory1ElfEars",
"HairAccessory1Ears1",
"HairAccessory1Ears2",
"HairAccessory1FoxEars1",
"HairAccessory1FoxEars2",
"HairAccessory1FoxEars3",
"HairAccessory1KittenEars1",
"HairAccessory1KittenEars2",
"HairAccessory1MouseEars1",
"HairAccessory1MouseEars2",
"HairAccessory1PuppyEars1",
"HairAccessory1Ribbons2",
"HairAccessory1WolfEars1",
"HairAccessory1WolfEars2",
"HairAccessory1Ribbons4", // Ear items (HA1)
"HairAccessory2Antennae",
"HairAccessory2BunnyEars1",
"HairAccessory2BunnyEars2",
"HairAccessory2CowHorns",
"HairAccessory2ElfEars",
"HairAccessory2Ears1",
"HairAccessory2Ears2",
"HairAccessory2FoxEars1",
"HairAccessory2FoxEars2",
"HairAccessory2FoxEars3",
"HairAccessory2KittenEars1",
"HairAccessory2KittenEars2",
"HairAccessory2MouseEars1",
"HairAccessory2MouseEars2",
"HairAccessory2PuppyEars1",
"HairAccessory2Ribbons2",
"HairAccessory2WolfEars1",
"HairAccessory2WolfEars2", // Ear items (HA2)
], // These items are hidden because they have clear mismatch issues with the hood.
},
}, // h1 - Helmet (hood)
{
// h2 - Helmet ( hood but nothing shows)
Property: {
Hide: [
"HairFront",
"HairBack",
"Hat",
"HairAccessory1",
"HairAccessory2",
"HairAccessory3",
],
HideItem: ["MaskFuturisticVisor", "MaskShinobiMask"],
},
},
],
},
{
Name: "Layering",
Key: "j",
Options: [
{
Property: {
Block: ["ItemMouth", "ItemMouth2", "ItemMouth3"],
Hide: ["ItemMouth", "ItemMouth2", "ItemMouth3", "Glasses"],
},
}, // No gags visible
{
Property: {
OverridePriority: 12,
Block: ["ItemMouth", "ItemMouth2"],
Hide: ["ItemMouth", "ItemMouth2", "Glasses"],
},
}, // Highest layer gag visible
{
Property: {
OverridePriority: 12,
Block: [],
Hide: [],
},
}, // All gags visible
],
},
],
ChangeWhenLocked: false,
BaselineProperty: { Text: "" },
}, // DroneMask
Stitches: {
Archetype: ExtendedArchetype.MODULAR,
Modules: [
{
Name: "Main",
Key: "m",
Options: [
{ Property: { Hide: ["Eyes"] } }, // Right Eye
{ Property: { Hide: ["Eyes2"] } }, // Left Eye
{
Property: {
Hide: ["Eyes", "Eyes2"],
Effect: [E.BlindHeavy, E.BlockWardrobe],
},
}, //Both Eyes
],
},
{
Name: "Right",
Key: "r",
Options: [
{}, // Straight
{}, // ZigZag
{}, // Skewed
{}, // Crossed
],
},
{
Name: "Left",
Key: "l",
Options: [
{}, // Straight
{}, // ZigZag
{}, // Skewed
{}, // Crossed
],
},
],
}, // Stitches
}, // ItemHead
ItemHands: {
FuturisticMittens: {
Archetype: ExtendedArchetype.TYPED,
Options: [
{
Name: "Mittens",
Property: {
Difficulty: 8,
SelfUnlock: false,
Effect: [E.Block, E.BlockWardrobe, E.MergedFingers],
Block: ["ItemHandheld"],
Hide: ["ItemHandheld"],
},
},
{
Name: "Gloves",
Property: { Difficulty: 0, SelfUnlock: true, Block: [] },
},
],
DialogPrefix: {
Header: "SelectFuturisticMittensType",
Option: "FuturisticMittensType",
Chat: "FuturisticMittensSet",
},
ScriptHooks: {
Load: FuturisticAccessLoad,
Click: FuturisticAccessClick,
Draw: FuturisticAccessDraw,
Exit: FuturisticAccessExit,
Validate: FuturisticAccessValidate,
},
}, // FuturisticMittens
PaddedMittens: {
Archetype: ExtendedArchetype.TYPED,
Options: [
{
Name: "Unchained",
},
{
Name: "Chained",
Prerequisite: ["NeedsHarness", "NoItemArms"],
Property: {
SetPose: ["BaseUpper"],
Block: ["ItemTorso", "ItemTorso2"],
},
},
],
}, // PaddedMittens
PawMittens: {
Archetype: ExtendedArchetype.TYPED,
CopyConfig: { AssetName: "PaddedMittens" },
}, // PawMittens
PonyMittensBinder: {
Archetype: ExtendedArchetype.TYPED,
Options: [
{
Name: "Unchained",
},
{
Name: "Chained",
Prerequisite: ["NoItemArms"],
Property: {
SetPose: ["BackElbowTouch"],
Block: ["ItemArms"],
Difficulty: 10,
},
},
],
}, // PonyMittensBinder
}, // ItemHands
ItemAddon: {
CeilingChain: {
Archetype: ExtendedArchetype.TYPED,
ChatTags: [
CommonChatTags.SOURCE_CHAR,
CommonChatTags.TARGET_CHAR,
CommonChatTags.ASSET_NAME,
],
Options: [
{
Name: "Lowered",
Property: { Difficulty: 6 },
},
{
Name: "LoweredShort",
Property: {
Difficulty: 6,
SetPose: ["BaseLower"],
AllowActivePose: [...PoseAllStanding],
},
},
{
Name: "Suspended",
Property: {
Difficulty: 7,
OverrideHeight: {
Height: 30,
Priority: 51,
HeightRatioProportion: 0,
},
Effect: [E.Lifted],
},
},
],
DialogPrefix: {
Header: "SelectCeilingChainState",
Option: "CeilingChainBondage",
Chat: "CeilingChainSet",
Npc: "CeilingChain",
},
ChangeWhenLocked: false,
}, // CeilingChain
CeilingRope: {
Archetype: ExtendedArchetype.TYPED,
CopyConfig: { GroupName: "ItemAddon", AssetName: "CeilingChain" },
}, // CeilingRope
}, // ItemAddon
ItemNose: {
NoseRing: {
Archetype: ExtendedArchetype.TYPED,
ChatTags: [CommonChatTags.SOURCE_CHAR, CommonChatTags.DEST_CHAR],
Options: [
{
Name: "Base",
},
{
Name: "ChainShort",
Prerequisite: ["NotSuspended"],
Property: {
SetPose: ["Kneel"],
AllowActivePose: [...PoseAllKneeling],
Effect: [E.Freeze, E.IsChained],
},
},
{
Name: "ChainLong",
Prerequisite: ["NotSuspended"],
Property: {
Effect: [E.Tethered, E.IsChained],
},
},
{
Name: "Leash",
Prerequisite: ["NotSuspended"],
Property: {
Effect: [E.Leash],
},
},
],
DialogPrefix: {
Header: "SelectAttachmentState",
Option: "NoseRingPose",
Chat: "NoseRingRestrain",
Npc: "InventoryItemNoseNoseRingNPCReaction",
},
}, // NoseRing
}, // ItemNose
Wings: {
SteampunkWings: {
Archetype: ExtendedArchetype.TYPED,
DrawImages: false,
Options: [
{
Name: "Off",
},
{
Name: "On",
},
],
}, // SteampunkWings
}, // Wings
ItemHandheld: {
Smartphone: {
Archetype: ExtendedArchetype.MODULAR,
ChatSetting: ModularItemChatSetting.PER_MODULE,
DrawImages: false,
Modules: [
{
Name: "Case",
Key: "c",
DrawImages: true,
Options: [
// none, matte, stripes, dots, hearts
{},
{},
{},
{},
{},
],
},
],
}, // Smartphone
PortalTablet: {
Archetype: ExtendedArchetype.NOARCH,
ScriptHooks: {
Load: PortalLinkTransmitterLoadHook,
Draw: PortalLinkTransmitterDrawHook,
Click: PortalLinkTransmitterClickHook,
Exit: PortalLinkTransmitterExitHook,
},
BaselineProperty: { PortalLinkCode: "" },
}, // PortalTablet
}, // ItemHandheld
EyeShadow: {
CatEye: {
Archetype: ExtendedArchetype.NOARCH,
CopyConfig: { GroupName: "Cloth", AssetName: "FrilledShirt" },
BaselineProperty: { Opacity: 0.8 },
}, // CatEye
CatEye2: {
Archetype: ExtendedArchetype.NOARCH,
CopyConfig: { GroupName: "EyeShadow", AssetName: "CatEye" },
}, // CatEye2
LargeBlurred: {
Archetype: ExtendedArchetype.NOARCH,
CopyConfig: { GroupName: "EyeShadow", AssetName: "CatEye" },
}, // LargeBlurred
LargeSolid: {
Archetype: ExtendedArchetype.NOARCH,
CopyConfig: { GroupName: "EyeShadow", AssetName: "CatEye" },
}, // LargeSolid
SmallBlurred: {
Archetype: ExtendedArchetype.NOARCH,
CopyConfig: { GroupName: "EyeShadow", AssetName: "CatEye" },
}, // SmallBlurred
SmallSolid: {
Archetype: ExtendedArchetype.NOARCH,
CopyConfig: { GroupName: "EyeShadow", AssetName: "CatEye" },
}, // SmallSolid
SuperstarBlurred: {
Archetype: ExtendedArchetype.NOARCH,
CopyConfig: { GroupName: "EyeShadow", AssetName: "CatEye" },
}, // SuperstarBlurred
SuperstarSolid: {
Archetype: ExtendedArchetype.NOARCH,
CopyConfig: { GroupName: "EyeShadow", AssetName: "CatEye" },
}, // SuperstarSolid
Tanuki: {
Archetype: ExtendedArchetype.NOARCH,
CopyConfig: { GroupName: "EyeShadow", AssetName: "CatEye" },
}, // Tanuki
UndershadowedBlurred: {
Archetype: ExtendedArchetype.NOARCH,
CopyConfig: { GroupName: "EyeShadow", AssetName: "CatEye" },
}, // UndershadowedBlurred
UndershadowedSolid: {
Archetype: ExtendedArchetype.NOARCH,
CopyConfig: { GroupName: "EyeShadow", AssetName: "CatEye" },
}, // UndershadowedSolid
Wings: {
Archetype: ExtendedArchetype.NOARCH,
CopyConfig: { GroupName: "EyeShadow", AssetName: "CatEye" },
}, // Wings
}, //EyeShadow
};