Different equipment slots

How to determine the item type

Summary

Created by @manavortex Published June 10 2023

This page is a part of the Adding new items guide and contains the steps necessary to create different equipment types.

For an overview of prefixes for the different component types, see here.

TL;DR:

  • Change equipmentSlot in the yaml (for options, see Step 1)

  • Replace the mesh_entity (see Step 2)

  • Replace the .mesh (e.g., instead of a shirt, find in-game shoes)

Step 1: The .yaml

You define the item slot in your .yaml file by specifying the root entry type via a $base record. Base records come in many different types, some include intrinsic modifiers that add slight stat improvements to items, or add special sound to items. A complete page with clothing items, their intrinsic modifier, and their baseids can be found on the official Cyberpunk 2077 wiki's article for clothing here.

Items.My_Custom_Shirt:                      << name of your item (the spawn code)
  $base: Items.Shirt
Items.My_Custom_Helmet:
  $base: Items.Helmet
# For items that should hide hair, use records with the "Hair" suffix.
Items.My_Custom_HelmetWithHair:
  $base: Items.HelmetHair
# For items that should have an intrinsic modifier, e.g. Armor
Items.My_Custom_HelmetWithArmor:
  $base: Items.Helmet_Intrinsic
# For feet items that use heels (clicky sound)
Items.MyCustom_Heels:
  $base: Items.FormalShoes

You can use the following base types:

You can absolutely set up a shirt and then put $base: Items.GenericHeadClothing - V is the only person I know of who can wear their undies on their head without impairing their functionality. However, before you start abusing the system that way, you might want to look into EquipmentEx.

Step 1.5: EquipmentEx

psiberx's mod EquipmentEx (github | nexus) adds a whole new wardrobe system, providing extra slots that CDPR forgot to include with the basegame. This feature requires the mod to be installed — without it, only the $base types from step 1 will be considered.

All you need to do is adding the last two lines to your .yaml:

Items.MyNecklace:
  $base: Items.GenericHeadClothing
  placementSlots: 
    - !append OutfitSlots.NecklaceShort

Find a full list of outfit slots in the github readme.

Step 2: the entity file

Some item properties are defined in the file mesh_entity.ent via components. If you use the wrong kind of entity, you might end up with your shirt being a puddle around your feet, or string cheese. To get around that, you need to make sure to pick a file that correspond's to your item's body part.

You can find all entity files under base\characters\garment\player_equipment:

If you want to be super thorough, you can stick to the right gender

If you want to know more about components, check the wiki page. This is completely unnecessary for the purpose of this guide!

(Optional) Step 3: Hide it in First Person

You can hide items most easily via ArchiveXL tag. Check the linked page for how to do that.

Setting footwear sounds

Boots
Heels
Sneakers
Stilettos

Last updated