bc-stubs 96.0.0 → 97.0.0-beta.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (132) hide show
  1. package/bc/Female3DCG_Types.d.ts +256 -112
  2. package/bc/Messages.d.ts +867 -0
  3. package/bc/Screens/Character/Creation/Creation.d.ts +2 -9
  4. package/bc/Screens/Character/FriendList/FriendList.d.ts +2 -16
  5. package/bc/Screens/Inventory/Cloth/FrilledShirt/FrilledShirt.d.ts +1 -1
  6. package/bc/Screens/Inventory/ItemBreast/ForbiddenChastityBra/ForbiddenChastityBra.d.ts +6 -22
  7. package/bc/Screens/Inventory/ItemDevices/LuckyWheel/LuckyWheel.d.ts +1 -1
  8. package/bc/Screens/Inventory/ItemDevices/WheelFortune/WheelFortune.d.ts +1 -1
  9. package/bc/Screens/Inventory/ItemHandhelds/PortalTablet/PortalTablet.d.ts +1 -1
  10. package/bc/Screens/Inventory/ItemMisc/LoversTimerPadlock/LoversTimerPadlock.d.ts +1 -1
  11. package/bc/Screens/Inventory/ItemMisc/OwnerTimerPadlock/OwnerTimerPadlock.d.ts +1 -1
  12. package/bc/Screens/Inventory/ItemNeck/FuturisticCollar/FuturisticCollar.d.ts +1 -1
  13. package/bc/Screens/Inventory/ItemNeck/SlaveCollar/SlaveCollar.d.ts +1 -1
  14. package/bc/Screens/Inventory/ItemNeckAccessories/CollarAutoShockUnit/CollarAutoShockUnit.d.ts +6 -6
  15. package/bc/Screens/Inventory/ItemNeckAccessories/CollarShockUnit/CollarShockUnit.d.ts +4 -4
  16. package/bc/Screens/Inventory/ItemPelvis/LoveChastityBelt/LoveChastityBelt.d.ts +1 -1
  17. package/bc/Screens/Inventory/ItemPelvis/ObedienceBelt/ObedienceBelt.d.ts +2 -1
  18. package/bc/Screens/Inventory/ItemPelvis/PortalPanties/PortalPanties.d.ts +1 -1
  19. package/bc/Screens/Inventory/ItemVulva/ClitAndDildoVibratorbelt/ClitAndDildoVibratorbelt.d.ts +1 -1
  20. package/bc/Screens/MiniGame/ClubCard/ClubCard.d.ts +1 -0
  21. package/bc/Screens/Online/ChatAdmin/ChatAdmin.d.ts +13 -21
  22. package/bc/Screens/Online/ChatAdminRoomCustomization/ChatAdminRoomCustomization.d.ts +36 -0
  23. package/bc/Screens/Online/ChatBlockItem/ChatBlockItem.d.ts +4 -4
  24. package/bc/Screens/Online/ChatCreate/ChatCreate.d.ts +8 -8
  25. package/bc/Screens/Online/ChatRoom/ChatRoom.d.ts +130 -98
  26. package/bc/Screens/Online/ChatSearch/ChatSearch.d.ts +7 -7
  27. package/bc/Screens/Online/ChatSelect/ChatSelect.d.ts +5 -5
  28. package/bc/Screens/Online/GameClubCard/GameClubCard.d.ts +6 -6
  29. package/bc/Screens/Online/GameLARP/GameLARP.d.ts +8 -7
  30. package/bc/Screens/Online/GameMagicBattle/GameMagicBattle.d.ts +6 -6
  31. package/bc/Screens/Room/AsylumGGTS/AsylumGGTS.d.ts +2 -2
  32. package/bc/Screens/Room/AsylumTherapy/AsylumTherapy.d.ts +1 -1
  33. package/bc/Screens/Room/Crafting/Crafting.d.ts +121 -6
  34. package/bc/Screens/Room/Infiltration/Infiltration.d.ts +5 -0
  35. package/bc/Screens/Room/Platform/Platform.d.ts +2 -1
  36. package/bc/Screens/Room/PlatformDialog/PlatformDialog.d.ts +1417 -91
  37. package/bc/Scripts/Asset.d.ts +2 -2
  38. package/bc/Scripts/Audio.d.ts +8 -8
  39. package/bc/Scripts/Character.d.ts +6 -3
  40. package/bc/Scripts/Dialog.d.ts +0 -7
  41. package/bc/Scripts/DictionaryBuilder.d.ts +121 -1
  42. package/bc/Scripts/Element.d.ts +12 -3
  43. package/bc/Scripts/ExtendedItem.d.ts +12 -10
  44. package/bc/Scripts/Inventory.d.ts +123 -3
  45. package/bc/Scripts/ModularItem.d.ts +6 -4
  46. package/bc/Scripts/PortalLink.d.ts +4 -4
  47. package/bc/Scripts/Server.d.ts +14 -5
  48. package/bc/Scripts/Struggle.d.ts +17 -1
  49. package/bc/Scripts/TextItem.d.ts +2 -2
  50. package/bc/Scripts/TypedItem.d.ts +10 -8
  51. package/bc/Scripts/VariableHeight.d.ts +4 -3
  52. package/bc/Scripts/VibratorMode.d.ts +8 -11
  53. package/bc/Typedef.d.ts +111 -428
  54. package/package.json +2 -2
  55. package/bc/Screens/Inventory/ItemNeck/AutoShockCollar/AutoShockCollar.d.ts +0 -4
  56. package/bc/Screens/Inventory/ItemNeck/PetSuitShockCollar/PetSuitShockCollar.d.ts +0 -4
  57. package/bc/Screens/Inventory/ItemNeck/ShockCollar/ShockCollar.d.ts +0 -4
  58. package/bc/Screens/Inventory/ItemPelvis/ForbiddenChastityBelt/ForbiddenChastityBelt.d.ts +0 -32
  59. package/bc/Screens/MiniGame/KinkyDungeon/KDAutoStruggle.d.ts +0 -99
  60. package/bc/Screens/MiniGame/KinkyDungeon/KDClasses.d.ts +0 -11
  61. package/bc/Screens/MiniGame/KinkyDungeon/KDDelayedActions.d.ts +0 -17
  62. package/bc/Screens/MiniGame/KinkyDungeon/KDFixForBC.d.ts +0 -11
  63. package/bc/Screens/MiniGame/KinkyDungeon/KDModUtils.d.ts +0 -93
  64. package/bc/Screens/MiniGame/KinkyDungeon/KDParticles.d.ts +0 -37
  65. package/bc/Screens/MiniGame/KinkyDungeon/KDTypeDefs.d.ts +0 -2161
  66. package/bc/Screens/MiniGame/KinkyDungeon/KDWardrobe.d.ts +0 -84
  67. package/bc/Screens/MiniGame/KinkyDungeon/KinkyDungeon.d.ts +0 -653
  68. package/bc/Screens/MiniGame/KinkyDungeon/KinkyDungeonAlt.d.ts +0 -481
  69. package/bc/Screens/MiniGame/KinkyDungeon/KinkyDungeonBones.d.ts +0 -16
  70. package/bc/Screens/MiniGame/KinkyDungeon/KinkyDungeonBoss.d.ts +0 -119
  71. package/bc/Screens/MiniGame/KinkyDungeon/KinkyDungeonBuffs.d.ts +0 -33
  72. package/bc/Screens/MiniGame/KinkyDungeon/KinkyDungeonBuffsList.d.ts +0 -865
  73. package/bc/Screens/MiniGame/KinkyDungeon/KinkyDungeonConsumables.d.ts +0 -36
  74. package/bc/Screens/MiniGame/KinkyDungeon/KinkyDungeonConsumablesList.d.ts +0 -66
  75. package/bc/Screens/MiniGame/KinkyDungeon/KinkyDungeonCurse.d.ts +0 -44
  76. package/bc/Screens/MiniGame/KinkyDungeon/KinkyDungeonDialogue.d.ts +0 -171
  77. package/bc/Screens/MiniGame/KinkyDungeon/KinkyDungeonDialogueList.d.ts +0 -45
  78. package/bc/Screens/MiniGame/KinkyDungeon/KinkyDungeonDialogueTriggers.d.ts +0 -48
  79. package/bc/Screens/MiniGame/KinkyDungeon/KinkyDungeonDraw.d.ts +0 -738
  80. package/bc/Screens/MiniGame/KinkyDungeon/KinkyDungeonDress.d.ts +0 -62
  81. package/bc/Screens/MiniGame/KinkyDungeon/KinkyDungeonDressList.d.ts +0 -33
  82. package/bc/Screens/MiniGame/KinkyDungeon/KinkyDungeonEditor.d.ts +0 -1124
  83. package/bc/Screens/MiniGame/KinkyDungeon/KinkyDungeonEditorGen.d.ts +0 -113
  84. package/bc/Screens/MiniGame/KinkyDungeon/KinkyDungeonEditorTiles.d.ts +0 -4
  85. package/bc/Screens/MiniGame/KinkyDungeon/KinkyDungeonEffectTiles.d.ts +0 -6
  86. package/bc/Screens/MiniGame/KinkyDungeon/KinkyDungeonEnemies.d.ts +0 -544
  87. package/bc/Screens/MiniGame/KinkyDungeon/KinkyDungeonEnemiesList.d.ts +0 -22
  88. package/bc/Screens/MiniGame/KinkyDungeon/KinkyDungeonEnemyEventList.d.ts +0 -18
  89. package/bc/Screens/MiniGame/KinkyDungeon/KinkyDungeonErrors.d.ts +0 -59
  90. package/bc/Screens/MiniGame/KinkyDungeon/KinkyDungeonEvents.d.ts +0 -151
  91. package/bc/Screens/MiniGame/KinkyDungeon/KinkyDungeonFactions.d.ts +0 -53
  92. package/bc/Screens/MiniGame/KinkyDungeon/KinkyDungeonFactionsList.d.ts +0 -650
  93. package/bc/Screens/MiniGame/KinkyDungeon/KinkyDungeonFight.d.ts +0 -453
  94. package/bc/Screens/MiniGame/KinkyDungeon/KinkyDungeonFurniture.d.ts +0 -28
  95. package/bc/Screens/MiniGame/KinkyDungeon/KinkyDungeonGame.d.ts +0 -429
  96. package/bc/Screens/MiniGame/KinkyDungeon/KinkyDungeonHUD.d.ts +0 -134
  97. package/bc/Screens/MiniGame/KinkyDungeon/KinkyDungeonInput.d.ts +0 -23
  98. package/bc/Screens/MiniGame/KinkyDungeon/KinkyDungeonInventory.d.ts +0 -178
  99. package/bc/Screens/MiniGame/KinkyDungeon/KinkyDungeonItem.d.ts +0 -33
  100. package/bc/Screens/MiniGame/KinkyDungeon/KinkyDungeonJail.d.ts +0 -142
  101. package/bc/Screens/MiniGame/KinkyDungeon/KinkyDungeonJailList.d.ts +0 -105
  102. package/bc/Screens/MiniGame/KinkyDungeon/KinkyDungeonLoot.d.ts +0 -66
  103. package/bc/Screens/MiniGame/KinkyDungeon/KinkyDungeonLootList.d.ts +0 -866
  104. package/bc/Screens/MiniGame/KinkyDungeon/KinkyDungeonLore.d.ts +0 -37
  105. package/bc/Screens/MiniGame/KinkyDungeon/KinkyDungeonMagic.d.ts +0 -113
  106. package/bc/Screens/MiniGame/KinkyDungeon/KinkyDungeonMagicCode.d.ts +0 -23
  107. package/bc/Screens/MiniGame/KinkyDungeon/KinkyDungeonMagicList.d.ts +0 -62
  108. package/bc/Screens/MiniGame/KinkyDungeon/KinkyDungeonMapMods.d.ts +0 -5
  109. package/bc/Screens/MiniGame/KinkyDungeon/KinkyDungeonMistress.d.ts +0 -10
  110. package/bc/Screens/MiniGame/KinkyDungeon/KinkyDungeonMultiplayer.d.ts +0 -26
  111. package/bc/Screens/MiniGame/KinkyDungeon/KinkyDungeonMusic.d.ts +0 -28
  112. package/bc/Screens/MiniGame/KinkyDungeon/KinkyDungeonObject.d.ts +0 -42
  113. package/bc/Screens/MiniGame/KinkyDungeon/KinkyDungeonParams.d.ts +0 -4
  114. package/bc/Screens/MiniGame/KinkyDungeon/KinkyDungeonPathfinding.d.ts +0 -36
  115. package/bc/Screens/MiniGame/KinkyDungeon/KinkyDungeonPerks.d.ts +0 -147
  116. package/bc/Screens/MiniGame/KinkyDungeon/KinkyDungeonPersonality.d.ts +0 -83
  117. package/bc/Screens/MiniGame/KinkyDungeon/KinkyDungeonPlayerEffects.d.ts +0 -35
  118. package/bc/Screens/MiniGame/KinkyDungeon/KinkyDungeonQuest.d.ts +0 -10
  119. package/bc/Screens/MiniGame/KinkyDungeon/KinkyDungeonReputation.d.ts +0 -229
  120. package/bc/Screens/MiniGame/KinkyDungeon/KinkyDungeonRestraints.d.ts +0 -766
  121. package/bc/Screens/MiniGame/KinkyDungeon/KinkyDungeonRestraintsList.d.ts +0 -55
  122. package/bc/Screens/MiniGame/KinkyDungeon/KinkyDungeonSetpiece.d.ts +0 -91
  123. package/bc/Screens/MiniGame/KinkyDungeon/KinkyDungeonShrine.d.ts +0 -89
  124. package/bc/Screens/MiniGame/KinkyDungeon/KinkyDungeonSpawns.d.ts +0 -49
  125. package/bc/Screens/MiniGame/KinkyDungeon/KinkyDungeonStats.d.ts +0 -282
  126. package/bc/Screens/MiniGame/KinkyDungeon/KinkyDungeonTests.d.ts +0 -5
  127. package/bc/Screens/MiniGame/KinkyDungeon/KinkyDungeonTiles.d.ts +0 -160
  128. package/bc/Screens/MiniGame/KinkyDungeon/KinkyDungeonTilesList.d.ts +0 -72
  129. package/bc/Screens/MiniGame/KinkyDungeon/KinkyDungeonTraps.d.ts +0 -34
  130. package/bc/Screens/MiniGame/KinkyDungeon/KinkyDungeonVibe.d.ts +0 -98
  131. package/bc/Screens/MiniGame/KinkyDungeon/KinkyDungeonVision.d.ts +0 -24
  132. package/bc/Screens/MiniGame/KinkyDungeon/KinkyDungeonWeaponList.d.ts +0 -5
@@ -1,53 +1,265 @@
1
- interface AssetGroupDefinition {
2
- Asset: (AssetDefinition | string)[];
1
+ /**
2
+ * Properties common to groups, assets and layers
3
+ *
4
+ * Those properties will be inherited by default from layer, to asset, to group.
5
+ * Defining it will override the parent's value altogether.
6
+ */
7
+ interface AssetCommonPropertiesGroupAssetLayer {
8
+
9
+ /** The drawing priority of the target */
10
+ Priority?: number;
11
+
12
+ /** The left coordinate of the target draw rect */
13
+ Left?: number;
14
+ /** The top coordinate of the target draw rect */
15
+ Top?: number;
16
+
17
+ /** The group the target should inherit its color from. */
18
+ InheritColor?: AssetGroupName;
19
+
20
+ /** A group identifier that will be used to inherit the body size */
21
+ ParentGroup?: AssetGroupName | null;
22
+
23
+ /**
24
+ * The poses supported by the target
25
+ *
26
+ * Used when building the file paths for the asset's layers.
27
+ */
28
+ AllowPose?: AssetPoseName[];
29
+
30
+ /**
31
+ * Whether that layer is colorized
32
+ *
33
+ * @default true
34
+ *
35
+ * Set to `true`, the target will be colorized when drawing.
36
+ * Set to `false`, the color will be used as part of the image file name.
37
+ *
38
+ * Mainly useful for inheriting the body color around.
39
+ */
40
+ AllowColorize?: boolean;
41
+ }
42
+
43
+ /**
44
+ * Properties common to groups and assets
45
+ *
46
+ * Those properties will be inherited by default from the group.
47
+ * Defining it will override the parent's value altogether.
48
+ */
49
+ interface AssetCommonPropertiesGroupAsset {
50
+
51
+ /** A list of group names the asset blocks access to */
52
+ Block?: AssetGroupItemName[];
53
+
54
+ /** A list of group names that get hidden when the asset is worn */
55
+ Hide?: AssetGroupName[];
56
+
57
+ /** A list of effects wearing the asset causes on the character */
58
+ Effect?: EffectName[];
59
+
60
+ /** A pose that the character should change to when wearing the asset */
61
+ SetPose?: AssetPoseName[];
62
+
63
+ /** A list of pose categories that the character will be prevented to change */
64
+ FreezeActivePose?: AssetPoseCategory[];
65
+
66
+ /** Which expression the group allows to be set on it */
67
+ AllowExpression?: ExpressionName[];
68
+
69
+ /**
70
+ * Whether the asset can be selected for a random appearance.
71
+ *
72
+ * @default true
73
+ */
74
+ Random?: boolean;
75
+
76
+ /**
77
+ * Is the asset considered a restraint?
78
+ *
79
+ * Any asset with that property set will be removed when the character is released,
80
+ * and the safeword system will consider them as freeable.
81
+ *
82
+ * @default false
83
+ */
84
+ IsRestraint?: boolean;
85
+
86
+ /**
87
+ * Is the asset considered body cosplay?
88
+ *
89
+ * Any asset with that property set will be blocked from being removed if the
90
+ * character has {@link Character.OnlineSharedSettings.BlockBodyCosplay} set to true.
91
+ *
92
+ * They will also be considered their own strip layer when making a character naked in
93
+ * the wardrobe.
94
+ *
95
+ * @default false
96
+ */
97
+ BodyCosplay?: boolean;
98
+ }
99
+
100
+ interface AssetGroupDefinition extends AssetCommonPropertiesGroupAsset, AssetCommonPropertiesGroupAssetLayer {
101
+ /** The internal identifier for the group */
3
102
  Group: AssetGroupName;
4
- ParentGroup?: AssetGroupName;
103
+ /** The list of assets defined by the group */
104
+ Asset: (AssetDefinition | string)[];
105
+
106
+ /**
107
+ * The type of the group
108
+ *
109
+ * `Item` groups are the normal groups, and `Appearance` groups are only
110
+ * accessible in the wardrobe.
111
+ *
112
+ * @default "Appearance"
113
+ */
5
114
  Category?: 'Appearance' | 'Item' | 'Script';
6
- /** Whether the group should have an asset selected at random at character creation. */
115
+
116
+ /**
117
+ * Whether the group is considered clothing
118
+ *
119
+ * This is used when stripping a character, as well as automatically blocking
120
+ * some groups if an asset is worn in those (like wearing a bra blocking nipples).
121
+ *
122
+ * @default false
123
+ */
124
+ Clothing?: boolean;
125
+
126
+ /** Whether the group is considered underwear
127
+ *
128
+ * This is used when stripping a character.
129
+ *
130
+ * @default false
131
+ */
132
+ Underwear?: boolean;
133
+
134
+ /**
135
+ * Whether the group should have an asset selected at random at character creation
136
+ *
137
+ * @default true
138
+ */
7
139
  Default?: boolean;
8
- IsRestraint?: boolean;
9
- /** Whether the group is allowed to have no asset. Used for body-related characteristics. */
140
+
141
+ /**
142
+ * Whether the group is allowed to have no asset
143
+ *
144
+ * Used for body-related characteristics
145
+ *
146
+ * @default true
147
+ */
10
148
  AllowNone?: boolean;
11
- AllowColorize?: boolean;
149
+
150
+ /**
151
+ * Whether the group can be customized
152
+ *
153
+ * Only applicable to Appearance groups.
154
+ *
155
+ * This is how groups like the expression groups are hidden from it.
156
+ *
157
+ * @default true
158
+ */
12
159
  AllowCustomize?: boolean;
13
- /** @see {AssetDefinition.Random} */
14
- Random?: boolean;
15
- Color?: string[];
160
+
161
+ /**
162
+ * A list of color codes
163
+ *
164
+ * Those are used when generating random appearances or cycling colors in the wardrobe
165
+ */
166
+ Color?: HexColor[];
167
+
168
+ /**
169
+ * A group that will be used to copy the size info from
170
+ *
171
+ */
16
172
  ParentSize?: AssetGroupName;
173
+
174
+ /**
175
+ * A group that will be used to copy the color data from
176
+ */
17
177
  ParentColor?: AssetGroupName;
18
- Clothing?: boolean;
19
- Underwear?: boolean;
20
- BodyCosplay?: boolean;
21
- Hide?: AssetGroupName[];
22
- Block?: AssetGroupItemName[];
178
+
179
+ /**
180
+ * The clickable area(s) of the group
181
+ *
182
+ * Only applicable for "Item" groups
183
+ */
23
184
  Zone?: [number, number, number, number][];
24
- SetPose?: AssetPoseName[];
25
- AllowPose?: AssetPoseName[];
26
- AllowExpression?: ExpressionName[];
27
- Effect?: EffectName[];
185
+
186
+ /**
187
+ * If the group is empty, it'll automatically mirror an asset from the group specified
188
+ */
28
189
  MirrorGroup?: AssetGroupName;
190
+
191
+ /**
192
+ * A list of assets that should also be removed if an asset in this group is removed
193
+ *
194
+ * Used for things like auto-removing collar accessories if the collar is removed.
195
+ */
29
196
  RemoveItemOnRemove?: { Group: AssetGroupItemName, Name: string, Type?: string }[];
30
- Priority?: number;
31
- Left?: number;
32
- Top?: number;
197
+
198
+ /** Enable the special color drawing mode used for eyes */
33
199
  FullAlpha?: boolean;
200
+
201
+ /**
202
+ * Whether the group has a blinking variant
203
+ *
204
+ * Only used by eyes
205
+ */
34
206
  Blink?: boolean;
35
- InheritColor?: AssetGroupName;
36
- FreezeActivePose?: AssetPoseCategory[];
207
+
208
+ /** A rect used when generating dynamic previews of the group */
37
209
  PreviewZone?: [number, number, number, number];
210
+
211
+ /**
212
+ * An alternate name for the group
213
+ *
214
+ * If this is set, this will be used as the base group when generating layer file URLs.
215
+ * Useful if you have a case like `ItemTorso`/`ItemTorso2` which shares all their layers.
216
+ */
38
217
  DynamicGroupName?: AssetGroupName;
218
+
219
+ /**
220
+ * A group activities will be mirrored from
221
+ *
222
+ * If set, activities from the given group will be shown as if they applied to the
223
+ * selected group.
224
+ */
39
225
  MirrorActivitiesFrom?: AssetGroupItemName;
40
226
 
41
- /** The group actually recieving arousal events. Used to proxy around a group that does not have activities enabled (and thus arousal settings) */
227
+ /**
228
+ * The group actually recieving arousal events
229
+ *
230
+ * Used to proxy around a group that does not have activities
231
+ * enabled (and thus arousal settings.
232
+ */
42
233
  ArousalZone?: AssetGroupItemName;
234
+
43
235
  ColorSuffix?: Record<string, string>;
44
236
  ExpressionPrerequisite?: AssetPrerequisite[];
45
237
  HasPreviewImages?: boolean;
46
238
  }
47
239
 
48
240
  type AssetBonusName = "KidnapDomination" | "KidnapSneakiness" | "KidnapBruteForce";
241
+ type AssetGender = 'F' | 'M';
49
242
 
50
- interface AssetDefinition {
243
+ interface AssetCommonPropertiesAssetLayer {
244
+ /** A list of poses that hide the asset when they get set. */
245
+ HideForPose?: (AssetPoseName | "")[];
246
+
247
+ Alpha?: AlphaDefinition[];
248
+
249
+ ColorSuffix?: Record<string, string>;
250
+
251
+ /** Whether the asset is drawn at an absolute position. */
252
+ FixedPosition?: boolean;
253
+
254
+ HasType?: boolean;
255
+ AllowTypes?: string[];
256
+
257
+ Opacity?: number;
258
+ MinOpacity?: number;
259
+ MaxOpacity?: number;
260
+ }
261
+
262
+ interface AssetDefinition extends AssetCommonPropertiesGroupAsset, AssetCommonPropertiesAssetLayer, AssetCommonPropertiesGroupAssetLayer {
51
263
  /** The asset's internal name. */
52
264
  Name: string,
53
265
 
@@ -59,11 +271,10 @@ interface AssetDefinition {
59
271
  */
60
272
  ParentItem?: string;
61
273
 
62
- /** The group the asset belongs to. Mainly useful to inherit the body size. */
63
- ParentGroup?: AssetGroupName | null;
64
-
65
274
  /**
66
- * Whether the asset is enabled or not. Defaults to true.
275
+ * Whether the asset is enabled or not.
276
+ *
277
+ * @default true
67
278
  *
68
279
  * A disabled asset cannot be used on a character.
69
280
  * They will also never be used as part of a random appearance.
@@ -76,7 +287,12 @@ interface AssetDefinition {
76
287
  /** A list of screens where current asset won't be shown. */
77
288
  NotVisibleOnScreen?: string[];
78
289
 
79
- /** Whether the asset can be worn. Defaults to true. An unwearable asset will not actually end up in the group it's used on. */
290
+ /**
291
+ * Whether the asset can be worn.
292
+ *
293
+ * @default true
294
+ * An unwearable asset will not actually end up in the group it's used on.
295
+ */
80
296
  Wear?: boolean;
81
297
 
82
298
  /** Applying that asset triggers the following activity */
@@ -100,15 +316,9 @@ interface AssetDefinition {
100
316
  /** Identifies a BuyGroup that, we bought one item of, will cause that asset to also be owned, without showing it in the shopping list. Only used by the SpankingToys */
101
317
  PrerequisiteBuyGroups?: string[];
102
318
 
103
- /** The list of effects wearing the asset causes on the character */
104
- Effect?: EffectName[];
105
-
106
319
  /** Whether wearing the asset gives a bonus in the Kidnap minigame. */
107
320
  Bonus?: AssetBonusName;
108
321
 
109
- /** A list of group names the asset blocks access to. */
110
- Block?: AssetGroupItemName[];
111
-
112
322
  /**
113
323
  * A list of group names the asset restores access to.
114
324
  *
@@ -116,9 +326,6 @@ interface AssetDefinition {
116
326
  */
117
327
  Expose?: AssetGroupItemName[];
118
328
 
119
- /** A list of group names that get hidden when the asset is worn. */
120
- Hide?: AssetGroupName[];
121
-
122
329
  /** A list of asset names that get hidden when the asset is worn. */
123
330
  HideItem?: string[];
124
331
 
@@ -133,19 +340,6 @@ interface AssetDefinition {
133
340
  */
134
341
  Require?: AssetGroupBodyName[];
135
342
 
136
- /** A pose that the character should change to when wearing the asset. */
137
- SetPose?: AssetPoseName[];
138
-
139
- /**
140
- * The poses actually that the asset supports.
141
- *
142
- * Used when building the file paths for the asset's layers.
143
- */
144
- AllowPose?: AssetPoseName[];
145
-
146
- /** A list of poses that hide the asset when they get set. */
147
- HideForPose?: AssetPoseName[];
148
-
149
343
  /**
150
344
  * A mapping of poses for the purpose of fallbacks.
151
345
  *
@@ -175,9 +369,6 @@ interface AssetDefinition {
175
369
  SelfUnlock?: boolean;
176
370
  ExclusiveUnlock?: boolean;
177
371
 
178
- /** Whether the asset can be selected for a random appearance. Defaults to true. */
179
- Random?: boolean;
180
-
181
372
  /** Whether the asset gets removed automatically when the character log in. Defaults to false. */
182
373
  RemoveAtLogin?: boolean;
183
374
 
@@ -188,13 +379,8 @@ interface AssetDefinition {
188
379
  RemoveTimer?: number;
189
380
  MaxTimer?: number;
190
381
 
191
- /** The drawing priority of the asset. Defaults to the asset's group priority. */
192
- Priority?: number;
193
- Left?: number;
194
- Top?: number;
195
382
  Height?: number;
196
383
  Zoom?: number;
197
- Alpha?: AlphaDefinition[];
198
384
  Prerequisite?: AssetPrerequisite | AssetPrerequisite[];
199
385
  Extended?: boolean;
200
386
  AlwaysExtend?: boolean;
@@ -222,12 +408,9 @@ interface AssetDefinition {
222
408
  AllowBlock?: AssetGroupItemName[];
223
409
  AllowHide?: AssetGroupItemName[];
224
410
  AllowHideItem?: string[];
225
- AllowType?: string[];
411
+
226
412
  AllowTighten?: boolean;
227
413
  DefaultColor?: ItemColor;
228
- Opacity?: number;
229
- MinOpacity?: number;
230
- MaxOpacity?: number;
231
414
  Audio?: string;
232
415
 
233
416
  /** A list of categories. Used to prevent the asset to be used, per chatroom settings */
@@ -235,8 +418,7 @@ interface AssetDefinition {
235
418
 
236
419
  Fetish?: FetishName[];
237
420
  ArousalZone?: AssetGroupItemName;
238
- IsRestraint?: boolean;
239
- BodyCosplay?: boolean;
421
+
240
422
  OverrideBlinking?: boolean;
241
423
  DialogSortOverride?: DialogSortOrder;
242
424
  DynamicDescription?: (C: Character) => string;
@@ -260,18 +442,11 @@ interface AssetDefinition {
260
442
  CharacterRestricted?: boolean;
261
443
  AllowRemoveExclusive?: boolean;
262
444
 
263
- /** The group the asset should inherit its color from. */
264
- InheritColor?: AssetGroupName;
265
-
266
445
  DynamicBeforeDraw?: boolean;
267
446
  DynamicAfterDraw?: boolean;
268
447
  DynamicScriptDraw?: boolean;
269
- HasType?: boolean;
270
448
  AllowLockType?: AssetLockType[];
271
449
 
272
- /** Whether that asset is drawn colorized, or uses the color name in its file asset */
273
- AllowColorize?: boolean;
274
-
275
450
  /** Whether the color picker shows a "Whole Item" layer. Defaults to true. */
276
451
  AllowColorizeAll?: boolean;
277
452
 
@@ -279,17 +454,12 @@ interface AssetDefinition {
279
454
  AvailableLocations?: string[];
280
455
 
281
456
  OverrideHeight?: AssetOverrideHeight;
282
- FreezeActivePose?: AssetPoseCategory[];
283
457
 
284
458
  /** Whether the game should auto-add a Lock layer to the asset. */
285
459
  DrawLocks?: boolean;
286
460
 
287
- AllowExpression?: ExpressionName[];
288
461
  MirrorExpression?: AssetGroupBodyName;
289
462
 
290
- /** Whether the asset is drawn at an absolute position. */
291
- FixedPosition?: boolean;
292
-
293
463
  CustomBlindBackground?: string;
294
464
 
295
465
  /** The list of layers for the asset. */
@@ -311,7 +481,7 @@ interface AssetDefinition {
311
481
 
312
482
  Tint?: TintDefinition[];
313
483
  DefaultTint?: string;
314
- Gender?: "F" | "M";
484
+ Gender?: AssetGender;
315
485
 
316
486
  /**
317
487
  * An identifier that marks the asset as being the same for the purpose of crafting.
@@ -322,17 +492,12 @@ interface AssetDefinition {
322
492
 
323
493
  /** A list of prerequisite checks that must pass for the group's expressions to be selectable */
324
494
  ExpressionPrerequisite?: AssetPrerequisite[];
325
-
326
- ColorSuffix?: Record<string, string>;
327
495
  }
328
496
 
329
- interface AssetLayerDefinition {
497
+ interface AssetLayerDefinition extends AssetCommonPropertiesGroupAssetLayer, AssetCommonPropertiesAssetLayer {
330
498
  /** The layer's name */
331
499
  Name: string;
332
500
 
333
- /** Whether that layer is drawn colorized, or uses the color as part of its image file name */
334
- AllowColorize?: boolean;
335
-
336
501
  /** Uses the color of the named layer. */
337
502
  CopyLayerColor?: string;
338
503
 
@@ -341,8 +506,6 @@ interface AssetLayerDefinition {
341
506
 
342
507
  /** Whether the layer is hidden in the Color Picker UI. Defaults to false. */
343
508
  HideColoring?: boolean;
344
- AllowTypes?: string[];
345
- HasType?: boolean;
346
509
 
347
510
  /**
348
511
  * This can be used to make a layer invisible depending on certain conditions, provided the {@link AssetDefinition.LayerVisibility} is set correctly.
@@ -358,33 +521,11 @@ interface AssetLayerDefinition {
358
521
  */
359
522
  Visibility?: "Player" | "AllExceptPlayerDialog" | "Others" | "OthersExceptDialog" | "Owner" | "Lovers" | "Mistresses";
360
523
 
361
- /** The group the layer belongs to. Mainly useful to inherit the body's size. */
362
- ParentGroup?: AssetGroupName | null,
363
-
364
- /** A list of poses that layer supports. */
365
- AllowPose?: AssetPoseName[];
366
-
367
- /** The drawing priority for that layer. Defaults to the asset's priority. */
368
- Priority?: number;
369
-
370
- /** The name of the group to inherit the color from. */
371
- InheritColor?: AssetGroupName;
372
-
373
- Alpha?: AlphaDefinition[],
374
- Left?: number;
375
- Top?: number;
376
524
  HideAs?: { Group: AssetGroupName, Asset?: string };
377
525
 
378
- /** Whether the layer will be drawn at a fixed position. */
379
- FixedPosition?: boolean;
380
-
381
526
  /** Whether the layer uses an image. Defaults to true. */
382
527
  HasImage?: boolean;
383
528
 
384
- Opacity?: number;
385
- MinOpacity?: number;
386
- MaxOpacity?: number;
387
-
388
529
  /** Set canvas globalCompositeOperation for current layer.
389
530
  * Use "destination-in" if you want to use layer as an alpha mask.
390
531
  * Note that game uses WebGL when available, so you might need to implement
@@ -396,7 +537,6 @@ interface AssetLayerDefinition {
396
537
  LockLayer?: boolean;
397
538
 
398
539
  MirrorExpression?: AssetGroupName;
399
- HideForPose?: (AssetPoseName | "")[];
400
540
  PoseMapping?: AssetPoseMapping;
401
541
  AllowModuleTypes?: string[];
402
542
  ModuleType?: string[];
@@ -404,7 +544,6 @@ interface AssetLayerDefinition {
404
544
  HideForAttribute?: AssetAttribute[];
405
545
  /* Specifies that this layer should not be drawn unless the character is wearing an item with one of the given attributes */
406
546
  ShowForAttribute?: AssetAttribute[];
407
- ColorSuffix?: Record<string, string>;
408
547
  }
409
548
 
410
549
  type ExtendedArchetype = "modular" | "typed" | "vibrating" | "variableheight" | "text";
@@ -457,6 +596,11 @@ interface ExtendedItemConfig<OptionType extends ExtendedItemOption> {
457
596
  CopyConfig?: { GroupName?: AssetGroupName, AssetName: string };
458
597
  /** An interface with element-specific drawing data for a given screen. */
459
598
  DrawData?: ExtendedItemConfigDrawData<{}>;
599
+ /**
600
+ * A list with extra to-be allowed effect names.
601
+ * Should only defined when there are effects that are exclusively managed by script hooks and thus cannot be extracted from the normal extended item options.
602
+ */
603
+ AllowEffect?: EffectName[];
460
604
  }
461
605
 
462
606
  /** Defines a single (partially parsed) extended item option */