Discussion on ItemSetManager in UCC & UIS

KPDN

Member
I've recently been working on the ItemSetManager integration between UIS and UCC. Following the official integration tutorials, the basic setup works fine, but it’s far from meeting my project goals. I have a critical question: is the ItemSetManager redundant when using UIS & UCC together?
Let me first outline my framework requirements:
Weapons must be linked to UIS items and support customization. This requires weapons to initialize on spawn and attach modular attachments based on item data.
I plan to use ItemSlotCollection to store UCC’s left/right hand slots. In theory, this means UCC only needs to reference UIS item slot collections and their associated bindings. Additionally, the system must manage weapon instance spawning/destruction and weapon equip/unequip logic.
Given this setup for UCC & UCC, is ItemSetManager overkill?
The original purpose of ItemSetManager appears to be managing rules for picking up items with left/right hands across multiple item sets. However, with ItemSlotCollection, all slots are strictly limited (essentially just two slots: left and right hands). In this case, the entire ItemSetManager and its dependent classes feel unnecessarily bloated.
I’ve been reviewing the related code recently and found that all equip/unequip functionality revolves around ItemSetManager queries — even ItemSetAbilityBase.EquipUnequip performs queries on every equip/unequip action.
My current pain point is that I want to implement a UIS-centric weapon equip/unequip system. The default UIS-UCC bridge works, but it forces all data flow through ItemSetManager to control UCC’s weapon handling. To me, ItemSetManager is overly complex, and I haven’t fully grasped its internal logic.
My ultimate goal is to directly control UCC weapon spawning, equipping, and unequipping from UIS, bypassing ItemSetManager entirely.
In my view, ItemSlotCollection can already fulfill most of ItemSetManager’s responsibilities — all that’s needed is a dedicated controller to manage spawned weapon objects.
I’d like to discuss: is this approach feasible, and what implementation paths are available?

Theoretically, I only need to handle weapon spawning, weapon control, as well as equipping, unequipping and switching weapons. I can let **UIS** manage which weapon is equipped, instead of delegating this logic to `ItemSetManager`. The upper-level data flow can be fully controlled by myself, making the intermediate `ItemSetManager` completely redundant. The downstream layer only needs to focus on actual weapon instantiation, animation management and concrete implementation logic. Is this design approach feasible?
 
Santiago will have a better response but at a high level the item set manager is still required. All of the item abilities depend on it in order to determine what is equipped.
 
Even if it is necessary, I find the Item Set Manager overly complicated. I've been organizing and categorizing the code today and trying to understand it. The reason I think it's redundant is its complexity—there is so much code that I struggle to follow the entire data flow and call hierarchy.


Since we're using the new UIS-UCC bridge, I was cleaning up the bridge's code yesterday. Some parts of it don't seem to be called at all right now. Additionally, the item drop and pickup logic in the bridge is messy; there is no single, unified workflow for handling it. For someone like me who needs to refactor this, it takes extra time to sort out the logic and restructure the code.


Specifically for dropped items: I'm planning to implement extendable weapons bound to items, which requires dropping and picking up customized weapons. However, I haven't found the complete workflow for controlling the pickup of specific weapon prefabs and preserving those weapon prefabs.


The core of the entire issue is that I want a fully controllable workflow for weapons mapped and controlled by UIS items—covering weapon spawning, destruction, equipping, unequipping, and general control. The current workflow in the existing system is overly complex and requires refactoring, and understanding the system is the prerequisite for refactoring.
 
Maybe after I fully understand the Item Set Manager, I might keep it. But right now, I only see it as a system that manages the equipment relationships of multiple items, and I still think it’s redundant. I just have no better alternative for the time being.
 
Santiago will have a better response but at a high level the item set manager is still required. All of the item abilities depend on it in order to determine what is equipped.
"All of the item abilities depend on it in order to determine what is equipped.",I believe this dependency is unnecessary within UIS & UCC. As I mentioned before, we can treat it purely as a subordinate control module — it only needs to receive the item to be equipped. These abilities do not need to care about who the target is; the target of equipment should be controlled entirely by UIS.I think this design works well for the collaboration between UIS and UCC, though it will require a large amount of refactoring. Feel free to point out any flaws or offer corrections.
 
Hello KPDN
Sorry for the delay. I was on Holiday for the past few weeks.

I understand your concern, Unfortunatly those systems are not something we can quickly refactor without any breaking changes. But I will take note of your feedback and consider it for future updates

Thank you for your understanding
 
No problem. I’m just here to share some thoughts. In my opinion, the Item Set Manager feels somewhat redundant when working with UCC & UIS. This is just an idea for now. I’ve been busy developing other features lately, but I plan to try removing the Item Set Manager when I have spare time. Admittedly, this will inevitably introduce breaking changes. Besides, a full refactor requires an in-depth understanding of the entire Item Set Manager system, which I haven’t fully gained yet. So this remains a pending plan for the time being, though I do intend to work on it in the future.
 
Back
Top