Skip to content

Items and equipment

All · 10 min · No code

Problems with items, the party bag, weapons and armour. For the model behind them, read Items and inventory and Equipment.

My new item shows in the list, but choosing it does nothing

Why: the item definition was created blank instead of duplicated. A blank item definition has no Equippable Item fragment naming an equipment definition, so the equip is refused. The list still draws the row and the click does nothing on screen. A warning is logged: Refused to equip <item> into slot <n> - blocker 2. Blocker 2 means not equippable.

A second warning, <item> has no UXenoCoreFragment_EquipSlots, means the item has no XenoCoreFragment_EquipSlots fragment, so it names no slot it can go in.

Fix: delete the blank item and duplicate a working one of the same kind instead: a sword from Weapons/, an armour piece from Inventory/Armour/. Then change its name, stats and mesh. Saving the item, or Asset Actions › Validate Assets, now reports a missing fragment or equipment definition as an error; see Items and inventory › Checks on save.

Blocker Meaning
1 No item
2 Not equippable: no equipment definition
3 Wrong slot for this item
4 This character already wears it in another slot
5 Another character wears it
6 This character cannot wield this weapon type: the item's Weapon Type is not in the character's Allowed Weapon Types

A weapon of the wrong type is also left out of that character's swap list, so a weapon that never appears there for one character is usually blocker 6.

Avoid it next time: Add a weapon, Add an armour piece.

Armour equips and shows its name, but gives no stats

Fails silently

The slot fills, the loadout row names the piece, and the character sheet does not change. Nothing is logged.

Why: equipment stats are applied by the ability GA_XenoCore_EquipmentStats. It is granted by the ability sets of the item's equipment definition. Shipped armour all points at Inventory/Armour/ED_XenoCore_Armour, which grants AbilitySet_XenoCore_EquipmentStats. An equipment definition of your own with no ability set, or with the wrong one, equips without stats.

Fix: point your armour's equippable fragment at ED_XenoCore_Armour, or make sure your own equipment definition grants AbilitySet_XenoCore_EquipmentStats.

Do not give armour a weapon's ability set

A weapon's ability sets (Weapons/AbilitySet_XenoCore_SwordCommon and the swords' Talent sets) also grant GA_XenoCore_WeaponDrawSync. On armour, the character tries to draw its armour like a weapon.

Avoid it next time: Add an armour piece.

My weapon no longer draws or sheathes

Fails silently

The weapon stays where it is. Nothing is logged.

Why: drawing and sheathing are driven by GA_XenoCore_WeaponDrawSync, granted through the weapon's equipment definition's Ability Sets to Grant (the sword base, Weapons/ED_XenoCore_Sword_Base, grants AbilitySet_XenoCore_SwordCommon, which carries it). The Junk, Blue, Gold, Green and Red Swords replace that list with AbilitySet_XenoCore_JunkSword alone, which carries it too, so nothing is granted twice. That grant is also what lets the ability find its weapon. Emptying the list, for example while tidying up stat effects, breaks draw and sheathe.

Fix: keep an ability set that grants GA_XenoCore_WeaponDrawSync on every weapon's equipment definition.

Avoid it next time: Add a weapon.

Why: screens refresh when they hear XenoCore.Inventory.Message.Changed. The XenoCore inventory nodes (XenoCore › Inventory) send it at once. A change made with Lyra's own inventory nodes, such as Add Item Definition, is noticed by XenoCore's bag watcher and announced one frame later (the Output Log shows LogXenoBagWatch: The party bag changed outside the XenoCore inventory functions ...). So a stale count now means one of these:

  • The screen does not listen for the message at all. Your own screens must, or must re-read the bag when they open. See Events.
  • Your graph reads the count in the same frame it changed the bag through a Lyra node, before the watcher has announced it.

Fix: add and remove items with Add Item To Party, Add One Item To Party, Remove Item From Party, Remove Item Instance From Party and Consume Items From Party (XenoCore › Inventory). They announce the change at once.

Two more reasons to avoid Lyra's own nodes here:

  • XenoCore stores one bag entry per item: twelve crystals are twelve entries, and Lyra counts entries, not Stack Count. An entry added with a stack count above one still counts as one, so counts and item-priced ability costs come out wrong. Never set Stack Count yourself.
  • Lyra's removal nodes do not check whether a character is wearing the item. See the next entry.

Avoid it next time: Add a consumable item.

An equipped item vanished from the bag, and the log shows an error

Why: Lyra's Remove Item Instance (or its Consume Items By Definition) removed an item a character was wearing. The character's slot still shows it, but the bag no longer holds it, so it is not saved and menus that list the bag do not show it. XenoCore cannot undo the removal; it logs an Error to LogXenoBagWatch: "... was removed from the party bag while ... was wearing it, by something other than the XenoCore inventory functions (Lyra's Remove Item Instance?)."

Fix: replace the node with Remove Item Instance From Party, which refuses a worn item and returns false (it logs a warning naming the wearer), or Consume Items From Party, which never takes a worn item. To remove a worn item on purpose, unequip it first.

Avoid it next time: Items and inventory.

The editor stops when my graph calls Add Item Instance

Why: Lyra's Add Item Instance is not implemented in stock Lyra; calling it halts the editor or the game.

Fix: add items by definition with Add Item To Party or Add One Item To Party. There is no supported way to put an existing item instance back into the bag.

An ability with an item cost never activates

Fails silently

Nothing is logged; the input simply does nothing.

Why: the ability's Additional Costs uses Lyra's Inventory Item cost. In stock Lyra 5.8 it is switched off inside Lyra and its check always fails, so the ability can never activate. The other causes: the party has too few copies that nobody is wearing, or the cost names a different item definition from the one in the bag.

Fix: use Party Item (XenoCore) instead, with the right Item Definition and Quantity. Get Free Party Item Count shows how many copies the cost can see.

Avoid it next time: Add a consumable item.

A screen shows zero stats for the weapon a character just equipped

Why: equipment stats must be applied during the equip itself. If your own stats ability waits a frame (for example with a Delay Until Next Tick) before applying, any screen that redraws on the equip reads the character before the stats arrive, and shows the item's name with zeros.

Fix: apply stats in the same frame. From inside an ability granted by the equipment, get the character's equipment component and call Get Item For Equipment for the item being equipped; it answers during the equip. Test by opening a screen that refreshes on an equip.

Avoid it next time: Add an equipment stat.

A character spawns without its starting weapon

Why: a character's starting gear is created in the party's bag, which lives on the player controller. A pawn that cannot reach the player controller when its abilities come up, for example one placed in a level with no player yet, cannot create its items. This is logged as an error: <name> could not reach the party inventory, so it cannot create item instances.

The same error appears when the map is not running the XenoCore experience, because the experience is what adds the bag to the player controller.

Fix: spawn party members through the party (its roster), not by placing their pawns in the level. Check the map's World Settings use a XenoCore experience (see Build and editor for an override that can silently replace it).

Avoid it next time: Add a party member.

An item's name is not in its rarity colour

Symptom: a Rare or Legendary item is drawn white, or has no diamonds.

Check, in order:

  1. The item's Rarity. In its XenoCoreFragment_ItemCategory fragment, an empty Rarity means Common, which is white.
  2. The table. Project Settings › Game › XenoCore UI › Item Rarity Table must name DT_XenoCore_ItemRarities or your own table. A cleared setting turns rarity off.
  3. The row. The table needs a row whose Rarity column is the item's tag. If it has none, the log warns once: Rarity '...' has no row in .... Check Tint Name and Pips on that row too.
  4. Your own widget. A restyled row needs a call to Apply Item Rarity after it sets the name, and a Horizontal Box named RarityPips for the diamonds. A button labelled with Set Button Text needs Apply Item Rarity To Button.
  5. The outline vanished. The name's dark outline lives on its font, so a Set Font after Apply Item Rarity strips it. Set the font first, then apply rarity.