ItemDisplayPlacementHelper

v1.8.3·Updated 2026-10-12

A mod/tool for item/character devs to simplify work with IDRS placement

Screenshots 8 screenshots

About this mod Author’s original text

Description

A mod/tool to simplify process of item display placement for item/character developers.

General usage

Enter editing scene

First of all, you need to enter special scene where everything happens. This can be done by pressing F2 (You need to be in the main menu).

Pick a model

You can search for a model by localized name, body object name or model object name.

By default only models that are visible in logbook are included in list, but you can include everything from BodyCatalog by toggle Inlude all bodies from BodyCatalog.

Select DisplayRuleGroup to work with

You can search for an item/equipment by name.

Each item display can be enabled/disabled by clicking on corresponding checkbox.

Only one equipment display can be enabled at a time, so if you enable new equipment old one will be disabled.

Click on a gear to start/end item display placement (All changes will be lost when you disable item display, so be careful with that).

  • Enable all - enable all item displays for current model (except equipment)
  • Disable all - enable all item displays for current model (inluding equipment)

Select ItemDisplayRule

Click on a row with item display prefab name to start edit it.

Edit ItemDisplayRule

You can type in values in corresponding fields to see how item display will look on a character.

Or you can use Unity-like item editing on the scene:

Moving

Rotating

White circle will rotate object around to camera view axis.

Scaling

Gray cube in center will scale all axes simultaneously.

Copy values

When you placed your item where you want you can copy values for that position by clicking Copy IDR values button to paste these values in your code.

You can change copy format by clicking on the gear icon next to Copy IDR values

Available formats

  • Block

Copied values will look something like that:

childName = "Head",

localPos = new Vector3(-0.0007F, 0.1699F, 0.028F),

localAngles = new Vector3(332.5399F, 359.8748F, 0.0883F),

localScale = new Vector3(0.7228F, 0.7228F, 0.7228F)

  • Inline

Copied values will look something like that:

"Head", new Vector3(-0.0007F, 0.1699F, 0.028F), new Vector3(332.5399F, 359.8748F, 0.0883F), new Vector3(0.7228F, 0.7228F, 0.7228F)

  • ForParsing

Copied values will look something like that:

Pelvis,-0.203,-0.058,0.058,63.11126,330.4519,181.0795,0.85025,0.85025,0.85025

  • Custom

You can make your own format by using placeholders to specify where values should be placed.

Placeholders description

{m:childName} - Child name as "string"*

{m:modelName} - Model GameObject name as "string"*

{m:bodyName} - Body GameObject name as "string"*

{m:localPos.z:X} - Local position as new Vector3(...)*

{m:localAngles.z:X} - Local rotation as new Vector3(...)*

{m:localScale.z:X} - Local scale as new Vector3(...)*

{m:itemName} - ItemDef/EquipmentDef name as "string"*

{m:objectName} - Current IDR GameObject name as "string"*

{m:ruleType} - Rule type as ItemDisplayRuleType.Type*

{m:limbMask} - Limb mask as LimbFlags.Flags*

{m:guid} - FollowerPrefab's guid in Addressables as "string"*

{m:assetBundle} - FollowerPrefab's AssetBundle name as "string"*

{m:assetPath} - FollowerPrefab's asset path in the AssetBundle as "string"*

{m:skinName} - Selected skin name as "string"*

m: - Modificator for the output value. Available options:

  • r - Output raw value:
  • For a string will not add " around the value
  • For a Vector3 fields will not add F after the value:X - Maximum digits after the decimal point. If not specified 5 will be used e.g. {localPos} is the same as {localPos:5}.z - For Vector3 fields you can access individual fields, not specifying any will print new Vector3(...)

Top panel

ConfigureSensitivity

  • Fast Coefficient - camera movement speed multiplier when holding SHIFT
  • Slow Coefficient - camera movement speed multiplier when holding CTRL

Enable fade

Toggle fade when you are close to objects.

Enable time

Toggle TimeScale between 0 and 1.

DynamicBones ignore TimeScale

Toggle if DynamicBones should work whe

Install & use Install: BepInEx plugin

  1. The archive from playbuff is the mod itself — usually a BepInEx plugin (a .dll or a plugin folder once unzipped).
  2. Recommended: use a community mod manager (such as r2modman) — pick this game, import the mod, and the manager sets up BepInEx and its dependencies for you.
  3. Manual route: install the BepInEx loader in the game folder, then drop the unzipped .dll or plugin folder into BepInEx/plugins/.
  4. Launch the game — the BepInEx console logs every plugin it loads; seeing this mod in the log means it is installed.

Mods with listed dependencies need those installed too, or they will not load. Options are usually changed in-game or in the plugin's config file.

Dependencies

Install these first, or the mod will not work:

bbepis-BepInExPackKingEnderBrine-IDRSJsonLoader

File & checksum

Filename
ItemDisplayPlacementHelper-1.8.3.zip
File size
1.7 MiB