<aside> 📌

You can easily tinker with the way items are configured by editing a text file within your mod folder. Please see the quick walkthrough guide on exactly how to do this. Below are a list of parameters you can edit to your liking, along with a brief description.

</aside>

Parameter Input Format Input Details Notes
copyDataFrom <item> Copy all below parameters from an existing in-game item. For a list of all existing in-game items, see this section.
spawnable true/false Is this item a physical object within the world?
presetName <name> The name of this item as referred to internally (the name that appears in-game can be different and is set up externally to this script; see the walkthrough for details).
model <prefab> The model this item uses as its physical representation within the world. For all currently in game, see this section.
excludeFromObjectPooling true/false If true the game will not use object pooling for this item. This is mainly a performance optimisation.
excludeFromVisibilityRangeChecks true/false If true, the mesh renderers on this object won't get turned on and off with range or room visibility.
spawnRange <integer> 0 = veryClose
1 = close
2 = medium
3 = far
4 = veryFar
5 = maximum Spawn the model in at this range.
inheritColouringFromDecor true/false If true the same material colours will be shared over all instances of this furniture for the room.
shareColoursWithFurniture <integer> 0 = none
1 = seating
2 = wallFrontage
3 = cabinets
4 = cubicles
5 = curtains
6 = telephone
7 = wood
8 = doors
9 = shelving
10 = bins
11 = blinds The same material colours will be shared over all instances of this furniture for the room. This cannot 'create' a material, so furniture with it must already exist in the room.
useOwnColourSettings true/false Set true if this object needs custom colours…
mainColour <integer> 0 = none
1 = ownersFavColour
2 = randomColour
3 = randomDecorColour
4 = syncDisk Import object main colour from this source.
customColour1 <integer> 0 = none
1 = ownersFavColour
2 = randomColour
3 = randomDecorColour
4 = syncDisk Import object custom colour 1 from this source.
customColour2 <integer> 0 = none
1 = ownersFavColour
2 = randomColour
3 = randomDecorColour
4 = syncDisk Import object custom colour 2 from this source.
customColour3 <integer> 0 = none
1 = ownersFavColour
2 = randomColour
3 = randomDecorColour
4 = syncDisk Import object custom colour 3 from this source.
inheritGrubValue true/false If true this item will inherit the ‘grub’ (dirtiness) value from the furniture it is spawned on. This is a visual effect only.
includeBelongsTo true/false Include the owner’s name in the generated name of this item.
useNameShorthand true/false Use a shorthand version of the name used above (Initial + Surname)
useApartmentName true/false Include the apartment name in the generated name of this item.
isLight <lighting preset> If this is or contains a light source, this is a reference to the configuration. See here for a full list.
lightswitch <integer> 0 = switchState
1 = custom1
2 = custom2
3 = custom3
4 = lockState
5 = lockedIn
6 = sprinting
7 = enforcersInside
8 = ko
9 = securityGrid
10 = carryPhysicsObject Use this internal switch state of this item to automatically control the above light source.
iconOverride <item> Override this item’s evidence icon with that of another item.
itemClass <integer> 0 = cosnumable
1 = medical
2 = equipment
3 = document
4 = misc
5 = electronics This is used to categorise this item in the home editing inventory screen.
allowInApartmentStorage true/false Allows this item to appear in player’s apartment storage screen.
allowInApartmentShop true/false Allows this item to be purchased in the player’s apartment shop screen.
disableMoveToStorage true/false Disables this item from being able to be moved to the player’s apartment storage inventory.
useMaterialOverride true/false Use a material override for impact sound effects for this item.
materialOverride [ <float>, <float>, <float>, <float>, <float>, <float>, <float>, <float> ] 0 - 1 float for each:
Element 0 = concrete
Element 1 = wood
Element 2 = carpet
Element 3 = tile
Element 4 = plaster
Element 5 = fabric
Element 6 = metal
Element 7 = glass List of float values that set the values for the sound effects material override.
actionsPreset [ <action>, … ] Configuration of actions that can be performed by using the item. See full list here.
onlyIllegalIfInNonPublic true/false Illegal actions are only classed as illegal if the item is in a non-public space.
rangeModifier <float> This modifier will be added to the player’s interaction distance.
physicsProfile <physics profile> Profile used for the item’s physics.
overrideMass true/false Override the item’s mass if different to that found in the physics profile.
forcePhysicsAlwaysOn true/false If true, when drawn, this object’s physics will always be active.
reactWithExternalStimuli true/false If true this object will react with doors, damage impacts etc.
mass <float> Override for item mass.
breakable true/false If true, the player will be able to break this item by throwing it.
particleProfile <particle effect> If breakable, the item will produce this particle effect configuration.
overrideShatterSettings true/false Overrides shatter settings in the particle profile.
shardSize <float> The size of the shards in the break particle effect.
shardEveryXPixels <integer> Create a shard every this amount of pixels on the texture.
overrideSpatterSettings true/false Overrides spatter settings in the particle profile.
spatterSimulation <spatter pattern> Configuration reference for the spatter that this item creates on collisions.
spatterCountMultiplier <float> Multiply the amount of spatter above by this.
startingSwitchState true/false The starting state of this item’s internal ‘switch state’.
startingCustomState1 true/false The starting state of this item’s internal ‘custom state 1’.
startingCustomState2 true/false The starting state of this item’s internal ‘custom state 2’.
startingCustomState3 true/false The starting state of this item’s internal ‘custom state 3’.
startingLockState true/false The starting state of this item’s internal ‘lock state’.
valueMin <integer> Minimum monetary value of this item.
valueMax <integer> Maximum monetary value of this item.
tamperEnabled true/false Will the AI notice if this is moved?
readingEnabled true/false If within reading range then display text.
readingEnabledOnlyWithSwitchIsTue true/false Reading mode is only active while switch status is true.
readingEnabledOnlyWithKaizenSkill true/false Reading mode is only active while player has the Kaizen sync disk ability.
readingSource <integer> 0 = evidenceNote
2 = multipageEvidence
3 = time
4 = bookPreset
5 = recordPreset
6 = syncDiskPreset
7 = mainEvidenceText
8 = kaizenSkillDisplay Where to pull the text from in reading mode.
discoverOnRead true/false Player discovers this item’s evidence when reading mode is entered.
pageTurnReadingDelay <float> A delay to reading when a page is turned.
distanceRecognitionEnabled true/false If within a certain range, then display a grey-ed out interaction icon with name text.
recognitionRange <float> The range at which the reading mode switches to ‘recognised’.
subObjectClasses [ <sub object class>, … ] Spawn this object using this sub object group. Each piece of furniture will feature these classes that dictate what can be spawned on them.
backupClasses [ <sub object class>, …. ] If the game cannot find any of the above, it will use these classes as a backup.
autoPlacement true/false Whether this will be automatically placed along with furniture.
alwaysPlaceAtGameLocation true/false If true, these objects will be placed with no owners at every game location (based on other filters in this section).
frequencyPerGamelocationMin <integer> The minimum number of objects that will be auto-placed at every game location.
frequencyPerGameLocationMax <integer> The maximum number of objects that will be auto-placed at every game location.
perGameLocationObjectPriority <integer> Dictates in what order objects should be placed in.
placeIfFiltersPresentInOwner true/false If true, owners/inhabitants/employees will be scanned for these traits and items will be placed accordingly…
placeAtHome true/false Place at the owner citizen's home.
placeAtWork true/false Place at the owner citizen's place of work.
traitModifier1 [ true/false, <integer>, <integer>, <integer>, <character trait>, … ] Element 0 = mustPassForApplication
Element 1 = appliedFrequencyMin
Element 2 = appliedFrequencyMax
Element 3 =
0 = ifAnyOfThese
1 = ifAllOfThese
2 = ifNoneOfThese
3 = ifPartnerAnyOfThese
Element 4+ = <character trait> Pass the correct values into this to configure a citizen modifier check for spawning this item.
traitModifier2 [ true/false, <integer>, <integer>, <integer>, <character trait>, … ] Element 0 = mustPassForApplication
Element 1 = appliedFrequencyMin
Element 2 = appliedFrequencyMax
Element 3 =
0 = ifAnyOfThese
1 = ifAllOfThese
2 = ifNoneOfThese
3 = ifPartnerAnyOfThese
Element 4+ = <character trait> Pass the correct values into this to configure a citizen modifier check for spawning this item.
traitModifier3 [ true/false, <integer>, <integer>, <integer>, <character trait>, … ] Element 0 = mustPassForApplication
Element 1 = appliedFrequencyMin
Element 2 = appliedFrequencyMax
Element 3 =
0 = ifAnyOfThese
1 = ifAllOfThese
2 = ifNoneOfThese
3 = ifPartnerAnyOfThese
Element 4+ = <character trait> Pass the correct values into this to configure a citizen modifier check for spawning this item.
frequencyPerOwnerMin <integer> The minimum number of objects that will be auto-placed for each owner.
frequencyPerOwnerMax <integer> The maximum number of objects that will be auto-placed for each owner.
multiplyByMessiness true/false If true, the overall frequency range will be multiplied by the inverse of conscientiousness (untidy = more)
perOwnerObjectPriority <integer> Dictates in what order objects should be placed in.
writerIs <integer> 0 = self
1 = partner
2 = paramour
3 = boss
4 = doctor
5 = landlord Import the ‘writer’ of this item from this connection.
receiverIs <integer> 0 = self
1 = partner
2 = paramour
3 = boss
4 = doctor
5 = landlord Import the ‘receiver’ of this item from this connection.
canBeFromSelf true/false If the above two options are different, is this allowed to be from the same person to the same person?
limitPerObject true/false Limit the max number of this item spawning on 1 piece of furniture.
perObjectLimit <integer> Max number allowed per piece of furniture.
limitPerRoom true/false Limit the max number of this item spawning per room.
perRoomLimit <integer> Max number allowed per room.
limitPerAddress true/false Limit the max number of this item spawning per address.
perAddressLimit <integer> Max number allowed per address.
limitInResidential true/false Limit the max number of this item spawning per residential address.
perResidentialLimit <integer> Max number allowed per residential address.
banFromRooms [ <room configuration>, … ] Ban this item from being placed in certain room types.
limitToCertainRooms true/false Only feature this item in certain room types.
onlyInRooms [ <room configuration>, … ] List of rooms that this item is allowed to spawn in.
limitToCertainBuildings true/false Only feature this item in certain building types.
onlyInBuildings [ <building>, … ] List of buildings that this item is allowed to spawn in.
attemptToStoreInFolder <evidence preset> If this is not null, it will attempt to place this evidence inside a folder matching this evidence type.
folderPlacementChance <float> If the above is not null, the chance of being placed in the folder.
dontPlaceIfNoFolder true/false If unable to place in folder, then don't place at all.
folderOwnershipMustMatch true/false Folder's ownership must match.
useSubSpawning true/false If true this will also look to spawn upon on other non-furniture objects (and prioritize them).
securityLevel <Integer> 0 - 3 This will try to be placed in a place of security matching this, if not higher.
ownedRule <Integer> 0 = nonOwnedOnly
1 = ownedOnly
2 = prioritiseNonOwned
3 = prioritiseOwned
4 = both Rules about being placed in owned vs non-owned locations. 'Prioritise' settings will favour owned locations but sill place in non-owned, while 'only' settings will only place in that location.