A Souls-like hotbar system for Game Creator 2 that allows players to cycle through equipment slots using Q/E (or gamepad equivalents) and use items with a dedicated "Use" button, in a Dark Souls–style single-slot UI.
Overview
This system replaces the standard BagEquipUI workflow with a more flexible equipment hotbar where:
Quick Start
Step 1: Set up EquipmentSlotUI (storage slots)
In your equipment panel / paperdoll UI:
EquipmentSlotUI component to each visual equipment slot (Right Hand, Left Hand, etc.).EquipmentSlotUI:
EquipmentHotbarManagerOpenBag → clicking the slot opens the bag and selects this equipment slot.m_BagPanelToOpen: bag panel GameObject that should be opened when the slot is clicked.The EquipmentSlotUI:
RuntimeItem (the item assigned to that equip slot in the hotbar).EquipmentHotbar).GetStoredItem(), HasStoredItem() and IsStoredItemActive().Step 2: Connect the Bag to the selected EquipmentSlotUI
In your bag/inventory UI:
On the equipment slot side, clicking an EquipmentSlotUI with OpenBag:
EquipmentSlotUI.CurrentSelectedSlot to that slot.On each bag cell (BagCellUI) that you want to be able to send items to the selected slot:
BagCellEquipToSelectedEquipmentSlot in the same GameObject.BagCellEquipToSelectedEquipmentSlot:
CurrentSelectedSlot:
RuntimeItem → unequips (removes from slot/hotbar).eventData.Use() to stop the default BagCellUI behavior when it handles the click.Result: Click/Submit on a bag item toggles equip/desequip in the currently selected equipment slot.
Step 3: Set up EquipmentHotbarManager
EquipmentHotbarManager component to your player or a central UI manager GameObject.Hotbars list: one EquipmentHotbar per equipment index you want (Right Hand, Left Hand, etc.).The manager:
EquipmentHotbar instances.EquipmentSlotUI to locate the right hotbar using the Hotbar Index.Step 4: Configure each EquipmentHotbar
For each equipment slot type (ex: Right Hand, Left Hand):
EquipmentHotbar component.EquipmentSlotUI).The hotbar:
EquipmentSlotUI assigns.RuntimeItem is currently equipped.Step 5: Create the Active Slot UI (single visual slot)
The system uses a single UI slot that always shows the currently active item (Dark Souls–style).
In your UI, create one slot object:
CellContentUI child for cooldown overlayIn the EquipmentHotbar component, configure the Active Slot UI:
Important: You only need one visual slot. The hotbar switches which internal slot is active and updates this single object accordingly.
Example UI Structure:
HotbarPanel
└── ActiveSlot (object)
├── Background (Image)
├── Icon (Image)
├── QuantityText (Text - optional)
├── SelectionIndicator (Image - optional)
└── CellContentUI_Root (GameObject with CellContentUI - optional)
How It Works
Item Flow
Adding Items to Equipment Slots*
EquipmentSlotUI (OpenBagForThisSlot).BagCellUI with BagCellEquipToSelectedEquipmentSlot:
EquipmentSlotUI and added to the linked EquipmentHotbar at the configured Hotbar Slot Index.RuntimeItem → item is removed from that slot/hotbar.Cycling Slots
Equipping / Unequipping
EquipmentHotbar:
EquipmentRuntimeSlot methods (visual props, etc.).Using Items / Cooldown
RuntimeItem is located in the bag and Bag.Content.Use(position) is called.EquipmentHotbar then:
CellContentUI.RefreshCooldown for the active item (if CellContentUI is assigned), so the standard Game Creator cooldown overlay is used.Quantity Text & Cooldown Overlay
Quantity Text
EquipmentHotbar inspects RuntimeItem via reflection (Count or Quantity property).Cooldown Overlay
CellContentUI in the Active Slot UI:
RuntimeItem position in the bag.RefreshUI and RefreshCooldown on CellContentUI.Bag UI, but driven by the hotbar.Key Components
EquipmentSlotUI
RuntimeItem linked to a specific EquipmentHotbar slot.CurrentSelectedSlot.BagCellEquipToSelectedEquipmentSlot
BagCellUI.EquipmentSlotUI:
EquipmentHotbarManager
EquipmentHotbar instances.EquipmentSlotUI.EquipmentHotbar
Slot Indexing
Each EquipmentSlotUI must know:
EquipmentHotbar in the manager it maps to (0, 1, 2, 3…).This creates a mapping:
EquipmentSlotUI → EquipmentHotbar[HotbarIndex].Slots[HotbarSlotIndex]
Features
- ✅ Multiple Hotbars: One hotbar per equipment slot type (Right Hand, Left Hand, etc.)
- ✅ Slot Cycling: Q/E (or any mapped input) to cycle through slots
- ✅ Visual Feedback: Active slot highlighting and activation animation
- ✅ Skip Empty Slots: Automatically skips empty slots when cycling
- ✅ Save/Load Support: Hotbar configuration is save-friendly (depends on your GC2 save setup)
- ✅ Drag & Drop + Click-to-Equip: Drag to EquipmentSlotUI or click from bag via the helper
- ✅ Gamepad Friendly: Uses OnSubmit on bag cells and a single focusable Active Slot UI
- ✅ Quantity Display: Shows stack count on the active slot (if > 1)
- ✅ Cooldown Overlay: Integrates with CellContentUI for item cooldown visuals
Input Configuration
Default inputs (configurable in EquipmentHotbar):
You can map these to keyboard, mouse, or gamepad using Game Creator’s input system.
Tips
EquipmentHotbar per equipment index you want to control.Compatibility
This system works on top of Game Creator 2’s inventory system:
📞 Support
🔄 Changelog
Version 1.0.0