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
  • Unlock System

Unlock System

5 min read

Unlock System #

Videos #

This video shows how the system works and includes most core use cases and questions we get for this system:

Play

Also good to know, most would like to integrate this system with the ability system and or level manager within a project like MST Pro. Check out this video on how to:

Play

Specific Migration instructions #

We have basic migration and integration steps which is applicable and basically the same for each system. However, here are some extra notes on how you could migrate the unlock system.

Navigate to your player controller class assigned to your game mode and migrate that one to your project.

Note: As with any system that you migrate, do not overwrite existing files to keep the original data tables.

Add component “AC_Level_Manager_Basic” or depending on other system you may have “AC_Level_Manager_Advanced”

Finally add “AC_UnlockSystem_Advanced”.

Please note: You must add AC_UnlockSystem_Advanced last if using ability system or level manager, otherwise it will have initialization issues.



Overview of the Unlock system #

The unlock system is basically a crafting tree, tech tree, or unlock tree. However you would like to call it. It can be used for recipes, ability unlocks, tech unlocks, skill trees, and whatever else you can logically think of.

On opening the recipes tab, you will see a hierarchy of unlockables. On the far left you can see numbers 1, 2, 3, 4. These are the level requirements your character has to be at, to be able to unlock each recipe. The top right – underneath unlock points, displays how many unlock points you have. In the bottom right corner, next to the unlock button, displays how many points are required to unlock the recipe.


Core Data #

The core to the system runs through a data table called “DT_Unlockables”, above shows the file path you can take to access the data table.

When inside the data table, you will see that it is using the struct “Struct_UnlockableInfo”.


DT_Unlockables Struct Explained #

Unlockable Tag

  • Type: Gameplay Tag
  • Purpose: A unique identifier for this unlockable item or feature.
  • Example: Items.Resource.Ingot.Steel_Ingot
  • Usage: Used by systems to check if the player has unlocked something. It’s the primary reference key — think of it as an “ID.”
Note: Keep this tag consistent for each specific item, as it can also be used for the crafting system.

Is Unlocked by Default

  • Type: Boolean (checkbox)
  • Purpose: Determines whether this item starts unlocked when the game begins or when a new save starts.
  • Usage:
    • Checked → The player already has access to it (no unlock requirement).
    • Unchecked → The player must meet requirements (level, quest, etc.) to unlock it.

Level Required

  • Type: Integer
  • Purpose: Sets the minimum player or character level required to unlock this.
  • Usage:
    • Example: “Level Required = 2” means the player must reach Level 2 to unlock it.
    • Often used in skill trees, crafting unlocks, or ability progressions.

🔹 Required Unlockable Points

  • Type: Integer
  • Purpose: How many unlock points (or skill points, progression tokens, etc.) the player must spend to unlock it.
  • Usage:
    • Example: “Required Unlockable Points = 1” means it costs one point to unlock.
    • Used in systems where unlocks are purchased or chosen via player progression.

🔹 Required Quests

  • Type: Array or single Quest reference (Dropdown)
  • Purpose: Lists any quests that must be completed before this item can be unlocked.
  • Usage:
    • Example: You might require completing “Quest_SmeltingBasics” before unlocking “Steel Ingot.”
    • If empty, there’s no quest requirement.

🔹 Required Unlockables

  • Type: Array or single Gameplay Tag reference
  • Purpose: Lists other unlockables that must already be unlocked before this one becomes available.
  • Usage:
    • Example: You might need to unlock “Iron Ingot” before unlocking “Steel Ingot.”
    • Supports dependency chains (tech trees, progression paths).

Unlockable Categorisation Tags

  • Type: Gameplay Tag Container
  • Purpose: Tags that define what category this unlockable belongs to (for UI filtering, sorting, or grouping).
  • Usage:
    • Example: Items. might group this under the item unlock tree.
    • Other examples: Abilities., Buildings., Crafting., etc.
    • Useful for showing only certain categories in menus.

Hide in UI When Locked

  • Type: Boolean
  • Purpose: Determines whether this item should appear in menus or UI before it’s unlocked.
  • Usage:
    • Checked It’s hidden from players until they unlock it.
    • Unchecked It’s visible but grayed out or marked as locked.
    • Often used to avoid spoiling unrevealed progression paths.

Adding unlockable categories tab to the UI Topbar in the menu #

Navigate back to your controller and click on the AC_UnlockSystem_Advanced.

Locate Topbar Menu Widget then click add element under widget categories. I will use the example category: Ability.

To add your new unlockable hierarchy to the UI, scroll down and locate TopBar Menu Widget, and add an array. Select the key to match the gameplay tag category you previously created. For the same UI that the system provides, select the widget to be UI_AutoGeneratedUnlocksPanel.

Topbar Text will change the name on the ingame top bar. Index chooses where the tab should be in the topbar. So if I selected “Index : 3”, the menu would show “recipes” “system” “ability (example)” – in that order.

Currently, you can see that the ABILITY (EXAMPLE) does not contain anything in the hierarchy. This is because in DT_Unlockables, there are no unlockables using the ability tag. So as an example I will change the ingot to contain the tag “ability”.

It has no auto generated, due to the widget you selected – over to the ability tree.

It has also been removed from the recipe tab.



Hide from UI when unlocked #

The purpose of this boolean is so unlockables can’t be unlocked through purchasing with unlock points. It is used so that the player can only unlock a specific unlockable through actions you define.

Below is an example of how you can use events to unlock specific entries in the data table.

What are your Feelings
Still stuck? How can we help?

How can we help?

Table of Contents
  • Unlock System
    • Videos
    • Specific Migration instructions
    • Overview of the Unlock system
    • Core Data
    • DT_Unlockables Struct Explained
    • Adding unlockable categories tab to the UI Topbar in the menu
    • Hide from UI when unlocked

© 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