Ultimate Difficulty Scaling Documentation
Ultimate Difficulty Scaling Documentation
Thank you for your interest in Ultimate Difficulty Scaling - A powerful, intuitive Unreal Engine 5 plugin designed to give developers a centralized and easy-to-use system for managing and scaling game variables across different difficulty levels.
Stop scattering your difficulty logic across dozens of Blueprints! With UDS, you can configure everything from player health and enemy damage to spawn rates and item drops in one clean, visual editor.
Video Overview
Key Features
Centralized Management
- Configure all difficulty-related variables in a single Data Asset
- No more hunting through multiple Blueprints to tweak difficulty
Intuitive UI
- Custom editor window with a powerful variable browser
- Drag and drop Blueprints directly from the Content Browser
Deep Variable Access
- Scale variables on Actors, Components, and even nested Structs
- Access any property in your Blueprint hierarchy
Smart Widgets
- Automatically uses Checkboxes for Booleans
- Dropdowns for Enums
- Numeric fields for integers and floats
Robust & Safe
- Prevents bad input for numeric types
- Includes a tool to detect and clean up orphaned variable links
Runtime Flexibility
- Change the game’s difficulty at any time with a single Blueprint node
- Apply scaling changes instantly during gameplay
Persistence
- Automatically saves and loads the player’s chosen difficulty between sessions
Getting Started: 5-Minute Setup
Follow these simple steps to integrate Ultimate Difficulty Scaling into your project.
Step 1: Enable the Plugin
- After installing, open your project in Unreal Engine
- Go to Edit > Plugins
- Search for “Ultimate Difficulty Scaling” and make sure the Enabled checkbox is ticked
- Restart the editor if prompted
Step 2: Create the Configuration Asset
This Data Asset will store all your difficulty settings. You only need one per project.
- In your Content Browser, right-click and go to Miscellaneous > Data Asset
- In the “Pick Class” window that appears, search for and select DifficultyScalingConfig
- Name your new asset something clear, like
DA_DifficultyConfig
Step 3: Assign the Configuration Asset
Now, tell the plugin which configuration asset it should use.
- Go to Edit > Project Settings
- On the left, scroll down to the Plugins section and click on Ultimate Difficulty Scaling
- In the “Difficulty Config Asset” field, select the data asset you just created
Step 4: Define Your Difficulty Levels
- Open your newly created Data Asset
- In the “Difficulty Levels” array, add as many difficulties as you need (e.g., Easy, Normal, Hard)
- Each level has a name and a multiplier value
- The multiplier scales all numeric values - for example, a multiplier of 1.5 means 50% more damage
Workflow: Using the Tool
Step 1: Open the Ultimate Difficulty Scaling Window
- In the Unreal Editor menu bar, go to Tools > Ultimate Difficulty Scaling
- The main editor window will open
Step 2: Add Blueprints to the System
Drag and drop Blueprints from the Content Browser directly into the UDS window, or use the “Add Blueprint” button to navigate to them.
Step 3: Add the UDS Component
For each Blueprint you want to scale:
- Select the Blueprint in the UDS window
- Click “Add Component” or manually add the UDSComponent to your Blueprint
- This component enables the scaling system for that Actor
Step 4: Scale Your Variables
- Browse through the variables in the selected Blueprint
- Click the ”+” button next to any variable to add it to scaling
- For each difficulty level, set the scaled value
- You can scale variables on:
- The Blueprint itself
- Any components it contains
- Nested structs within variables
Step 5: (Optional) Cleaning Orphaned Variables
If you’ve renamed or deleted variables after adding them to UDS:
- Click the “Clean Orphans” button
- UDS will find and remove any references to variables that no longer exist
Runtime Usage (In Blueprints)
Setting the Difficulty
To change the difficulty at runtime:
- In any Blueprint, use the Set Difficulty node
- Pass the name of your difficulty level (e.g., “Hard”, “Normal”)
- All scaled variables will immediately update to their new values
Reacting to Difficulty Changes
The UDSComponent dispatches an event when difficulty changes:
- Bind to the On Difficulty Changed event
- Execute any custom logic when the difficulty switches
Tips & Best Practices
- Plan your difficulties early: Define your difficulty levels before adding too many variables
- Use descriptive names: Name your difficulties clearly (Easy, Normal, Hard, Nightmare)
- Test at runtime: Use the Set Difficulty node to test how your game feels at different difficulties
- Clean up regularly: Use Clean Orphans after restructuring your Blueprints
- Start simple: Add only the most impactful variables first (health, damage)
Additional Resources
Thank you for using Ultimate Difficulty Scaling!