Skip to content
Games by Hyper
Sign Up / Login
Games by Hyper

Generic

  • QuickStart
  • Support
  • Purchase Options
  • Roadmap
  • FAQ
  • Learning
  • For Professional Studios

Templates

  • Template Logic and flexibility

Shared Infrastructure

  • Gameplay Tags
  • Datamanagement
  • Folder Structure

Item Management

  • Inventory
  • Jigsaw Inventory
  • List Inventory
  • Respawn Actor Manager
  • Hotbar
  • Crafting
  • Item Allocator
  • Vendor
  • Icon Creator
  • Interactive Foliage
  • Inspection System

Interaction and Feedback

  • Interaction System
  • Outliner System

UI

  • Main Menu
  • HUD
  • Information Prompt

Locomotion

  • Animation Framework
  • Extended Movement Component
  • Leader Posing
  • Custom-Skeletal-Meshes

Combat

  • Attribute Manager
  • Team Affiliation
  • Equipment Manager
  • Ragdoll System
  • Ability System
  • Target Locking
  • Weapon Attachment System
  • Limb System
  • Combat-framework

Construction and Survival Mechanics

  • Building System
  • Mineable Rocks
  • Tree Cutting
  • Farming System
  • Fishing System
  • Swimming System

Game Management

  • Global Save System
  • Respawn System
  • Session Manager
  • Game Mode System
  • Spectate System
  • Player Manager
  • Team Manager
  • Score Manager
  • Guild Manager
  • Party Manager

Multiplayer

  • Online Multiplayer Framework
  • Replication Subsystem
  • Chat System
  • Console Command Manager

AI

  • Basic AI
  • NPC Behavior System
  • Perception System
  • Companion System

Exploration and Narrative

  • Dialogue System
  • Memory System
  • Quest Manager
  • Map System
  • Teleport System
  • Guide System
  • Event Manager
  • Visual Novel System
  • Dungeon Adventure Kit
  • Region Manager

Progression and Leveling

  • Level Manager
  • Unlock System
  • Reputation System

Security and Control Systems

  • Drone System
  • Lock System
  • Security System
  • Defense System
  • Defense System – Modern
  • Defense System – Primitive

Character and Player Systems

  • Character Creator
  • Class System
  • Mount System
  • First Person

Environmental Control and Immersion

  • Time and Day Night Cycle management
  • Weather System
  • Background Music System
  • Footstep System

Environment Building

  • Mesh to Actor Swap System
  • Auto Landscape
  • Cave
  • Deform
  • Ditch
  • Exclusion
  • Forest
  • Forest-Basic
  • Lake
  • Level Instances
  • Mesh
  • Path
  • Props
  • Spline
  • Village
View Categories
  • Home
  • Docs
  • List Inventory

List Inventory

5 min read

List Inventory #

  • Prerequisites
  • Overview
    • What's Different from Base Inventory
    • Sorting System
      • Sort Options
      • Custom Sort Functions
    • UI Implementation
      • List Widget Structure
      • Binding to Container
  • How To Guides
    • How to Set Up List View UI
    • How to Add Custom Sort Options
  • PREREQUISITES
Important: Read the inventory documentation first. The List-Based Inventory uses the same container system, item data, and core functionality. This document only covers what's different.

Overview #

What's Different from Base Inventory #

The List-Based Inventory is simply an alternative UI presentation for the same container system. Instead of displaying items in a grid, items are shown in a scrollable vertical list.

Key Differences:

  • Visual Presentation: Items displayed in a vertical list instead of a grid
  • Sorting Features: Built-in sorting by category, name, weight, value, etc.
  • No Spatial Positioning: Items don't have fixed positions or visual slots
  • Compact Display: Can show more items at once with smaller representations

Everything Else is Identical:

  • Uses the same BP_Inventory_Container actor
  • Items stored in the same data structure
  • All container functions work identically
  • Events (OnInventorySlotUpdated, etc.) are the same
  • Adding, removing, transferring items works the same way
  • Can switch between grid and list views for the same container

Sorting System #

The primary feature of list-based inventory is the ability to sort items by various properties.

Sort Options #

Common Sort Functions:

  • By Category: Groups items by their Gameplay Tag categories (Weapons, Consumables, Resources, etc.)
  • By Name: Alphabetical order (A-Z or Z-A)
  • By Weight: Lightest to heaviest (or reversed)
  • By Value: Cheapest to most expensive (or reversed)
  • By Quantity: Stack sizes from smallest to largest
  • By Recently Added: Newest items first

Sort Direction:

Most sort options support ascending/descending order:

  • First click: Ascending (A-Z, lightest to heaviest, etc.)
  • Second click: Descending (Z-A, heaviest to lightest, etc.)
  • UI shows current direction with arrow indicators

Active Sort Indicator:

The UI should clearly show which sort is currently active (highlighted button, checkmark, etc.)

Custom Sort Functions #

You can create custom sort functions for game-specific properties.

Examples:
  • Sort by Damage: For weapons, compare damage values
  • Sort by Armor Rating: For armor pieces, compare protection values
  • Sort by Rarity: Common → Uncommon → Rare → Epic → Legendary
  • Sort by Durability: Most damaged to least damaged

Implementation:

  • Create a function that retrieves the property from each item
  • Implement comparison logic
  • Sort the item array
  • Regenerate the list display

UI Implementation #

List Widget Structure #

The list UI is structured differently from grid UI, but binds to the same container.

UI Hierarchy:

  • Container Panel (main window)
    • Sort Controls (buttons for different sort options)
    • Scroll Box (scrollable area containing list items)
      • List Item Widgets (dynamically created for each inventory item)
    • Footer (total weight, value, item count, etc.)

List Item Widget:

Each item in the list is represented by a widget that typically displays:

  • Item icon
  • Item name
  • Quantity/stack size
  • Additional properties (weight, value, etc.)
  • Quick action buttons (optional)

Dynamic List Generation:

  • Get all items from the container using GetAllItems
  • Apply current sort function to the array
  • Clear existing list item widgets
  • For each item in sorted order:
    • Create a list item widget
    • Populate it with item data
    • Add it to the scroll box

Updates:

When the container changes:

  • Container triggers OnInventorySlotUpdated event
  • List UI receives the event
  • Re-generate the list with current sort applied
  • Optionally maintain scroll position

Binding to Container #

The list view binds to containers exactly like grid view.

Binding Process:

  • Get reference to BP_Inventory_Container actor
  • Pass container reference to the list UI widget
  • Bind to container's OnInventorySlotUpdated event
  • Generate initial list display

Container Functions Used:

  • GetAllItems: Retrieve all items for display
  • AddItem: Add items through UI interactions
  • RemoveItem: Remove items through UI interactions
  • MoveItemToSlotIndex: Transfer items between containers

All standard inventory actions work from the list view (drag-and-drop, right-click context menus, etc.)


How to guides #

How to Set Up List View UI #

This guide explains how to create a list-based UI for a container.

Step 1: Create List UI Widget #

Create a new widget blueprint (or use the provided list widget template):

  • Add a Scroll Box for the list items
  • Add sort Buttons for different sort options
  • Add footer elements for totals (weight, value, etc.)

Step 2: Create List Item Widget #

Create a widget blueprint for individual list items:

  • Add an Image for the item icon
  • Add Text fields for name, quantity, weight, value, etc.
  • Add any interactive elements (buttons, hover effects, etc.)
  • This widget is spawned for each item in the list

Step 3: Bind to Container #

When opening the inventory UI:

  • Get the container reference from AC_Inventory_Advanced
  • Create the list widget
  • Pass the container reference to the widget
  • Bind to OnInventorySlotUpdated event
  • Generate the initial list display

Step 4: Implement Sort Functions #

For each sort button:

  • Create an On Clicked event
  • Call the appropriate sort function (by category, name, weight, etc.)
  • Regenerate the list with sorted items
  • Update the active sort indicator

Step 5: Test #

Verify:

  • Adding/removing items updates the list
  • Sorting works correctly
  • All actions (use, drop, transfer, etc.) work from the list
  • Performance is acceptable with many items

Optional: Toggle Between Grid and List Views

Allow switching between grid and list for the same container:

  • Add a toggle button
  • On click, destroy current UI and create the other type
  • Bind to the same container reference
  • Container state persists across view changes

How to Add Custom Sort Options #

This guide explains how to add new sorting criteria.

Step 1: Identify Sort Property #

Determine what property to sort by (damage, armor rating, durability, rarity, etc.)

Step 2: Add Sort Button #

In the list UI widget:

  • Add a new Button for the sort option
  • Set button text/icon
  • Position with other sort buttons

Step 3: Create Sort Function #

Create a function that sorts items by your property:

  • Get all items from container using GetAllItems
  • For each pair of items, compare the property values
  • Sort the array based on comparison
  • Return sorted array
Example – Sort by Damage:

Function: SortByDamage

  1. Get all items
  2. For each pair of items:
 - Get Item A damage from item struct
 - Get Item B damage from item struct
 - Compare values
  1. Return sorted array

Step 4: Connect Button to Function #

In the sort button's On Clicked event:

  • Call your custom sort function
  • Set active sort indicator to this button
  • Regenerate the list display with sorted items

Step 5: Add Sort Direction Toggle (Optional) #

Allow ascending/descending sort:

  • Track current sort direction in a variable
  • On button click, toggle the direction
  • Apply sort with direction parameter
  • Update UI arrow indicator
What are your Feelings
Still stuck? How can we help?

How can we help?

Table of Contents
  • List Inventory
    • Overview
      • What's Different from Base Inventory
      • Sorting System
      • Sort Options
      • Custom Sort Functions
      • UI Implementation
      • List Widget Structure
      • Binding to Container
    • How to guides
      • How to Set Up List View UI
      • Step 1: Create List UI Widget
      • Step 2: Create List Item Widget
      • Step 3: Bind to Container
      • Step 4: Implement Sort Functions
      • Step 5: Test
      • How to Add Custom Sort Options
      • Step 1: Identify Sort Property
      • Step 2: Add Sort Button
      • Step 3: Create Sort Function
      • Step 4: Connect Button to Function
      • Step 5: Add Sort Direction Toggle (Optional)

© 2025 Games by Hyper

X Reddit Patreon Discord Linkedin YouTube

Review Cart

No products in the cart.

We noticed you're visiting from Netherlands. We've updated our prices to Euro for your shopping convenience. Use United States (US) dollar instead. Dismiss

  • Hyper Bundle Configurator
  • Shop
    • Game Templates
    • Courses
    • Loyalty Store
    • Survival Modules
    • RPG Modules
    • Environment Building
    • Browse All
  • My account
  • Become a Member
  • Cart
  • Get Help
    • FAQ
    • Upgrade your Game Template
    • Documentation
  • About Hyper
  • News & Updates