Progression Tree Builder

v1.2.0

Support & Contact

Get help, report bugs, and find answers to common questions.

Frequently Asked Questions

Is Game Creator 2 required?

Yes. PTB is a module for GC2 and requires GC2 Core as a foundation.

Does it work with other assets?

Partially. Optimized for GC2, but can be extended with custom code.

Can I have multiple skill trees?

Yes! Unlimited trees with automatic tab navigation.

Is save/load supported?

Yes. Uses the GC2 SaveLoad system for persistence.

How many skills are supported?

Unlimited. We recommend max 100 skills per tree for optimal performance.

Can I customize the UI?

Yes! All UI prefabs can be freely modified.

Does it work on mobile?

Yes. UI is touch-friendly. Button sizes should be adjusted for mobile.

Can I add my own code?

Yes! All main classes are extensible. Events can be subscribed to.

How do I use a custom layout strategy?

Create a layout asset (Create > Progression Tree Builder > Layout Strategies), configure it in the Inspector, and assign it to your UIController's 'Custom Layout Strategy' field. See the Customizing Guide for details.

Can I create my own layout algorithms?

Yes! Implement the ILayoutStrategy interface in a ScriptableObject. Check out GridLayoutStrategy.cs in the Examples folder for a complete example.

What are Event Hooks and when should I use them?

Event Hooks let you react to tree lifecycle events (open, close, node creation, skill unlock) without subclassing the UIController. Use them for tutorials, analytics, custom styling, or dynamic validation.

Will the new features break my existing project?

No! Version 1.1 is fully backward compatible. New features are opt-in - existing trees and controllers work unchanged. You only use the new features if you explicitly assign a custom layout or subscribe to events.

How do I cancel a skill unlock with events?

Subscribe to OnBeforeSkillUnlock and return false to cancel. Example: uiController.OnBeforeSkillUnlock += (skill) => { if (IsInCombat) { return false; } return true; };

Do the built-in layout strategies work with all tree types?

Yes! Vertical, Horizontal, and Radial strategies work with any ProgressionTree. They automatically calculate positions based on skill dependencies regardless of tree structure.

Where can I find examples of the new features?

Check the Examples folder for GridLayoutStrategy.cs (custom layout) and CustomLayoutAndEventsExample.cs (event hooks). Also see the Customizing Guide in the documentation.

Are UI Widgets required?

No. All widgets are completely optional. They enhance UX but aren't necessary for core functionality.

Can I customize the widget appearance?

Yes! All widgets are standard Unity prefabs. Edit colors, fonts, sizes, and layout freely. You can also implement custom widgets using the provided interfaces.

Do widgets work with Latest Mode?

Yes. Notification System and Points HUD work with all tree modes including Latest Mode. The unlock animation automatically detects tree state.

Why doesn't the unlock animation show when I manually unlock skills?

This is intentional. The animation only plays when the tree UI is closed. If you're manually clicking skills in the UI, you don't need an overlay telling you what you just did.

Can I create my own notification types?

Yes. Implement IProgressionNotificationHandler or extend the default ProgressionNotificationSystem. You can add custom NotificationData types and subscribe to any manager events.

How do I show points for multiple trees?

The Points HUD Widget tracks one tree at a time. Create multiple widget instances for different trees, or switch the tracked tree dynamically using SetTrackedTree().

Can I disable specific notification types?

Yes. Unsubscribe from specific manager events in the widget's Initialize method, or create a custom implementation that filters notifications.

Changelog

Current Version: 1.2.0

Version 1.2.0 - UI Widgets System

Release Date: January 26, 2026

New Features - UI Widgets

  • ProgressionNotificationSystem: Toast-style notifications for progression events
    • Auto-initializing widget with zero setup required
    • Queue management for multiple simultaneous notifications
    • Smooth fade animations with background dim
    • Customizable icons per event type (Unlock, Upgrade, Points, Tree)
    • Configurable duration, fade speeds, and queue size
  • SkillPointsHUDWidget: Real-time skill points display
    • Auto-tracks available skill points with pulse effect on gain
    • Supports both ProgressionTree and ProgressionTreeGraphAsset
    • Optional click-to-open tree UI functionality
    • Auto-selects first unlocked tree if no tree assigned
  • SkillUnlockAnimationOverlay: Fullscreen celebration overlay
    • Smooth fade animations without flash (CanvasGroup-based)
    • Auto-detects when Tree UI is open (prevents overlap)
    • Optional particle effects and auto-dismiss
    • VerticalLayoutGroup for responsive layout
    • Displays skill icon, name, description, and rank
  • Auto-Initialize Pattern: All widgets automatically find and connect to ProgressionTreeManager
    • Zero configuration required - just drag into Canvas
    • Graceful degradation when Manager not available
    • Automatic reconnection when Manager spawns
  • ProgressionTreeReference System: Unified reference for both tree types
    • Accepts both ProgressionTree and ProgressionTreeGraphAsset
    • Automatic conversion in Editor

Version 1.1.3 - Instruction & Editor Improvements

Release Date: January 18, 2026

Bug Fixes

  • Button Compatibility Fix: Removed async/await from Instructions
    • InstructionUnlockSkill, UpgradeSkill, ActivateSkill no longer async
    • Fire-and-forget execution for scene instructions
    • Better compatibility with Game Creator button triggers

Editor Improvements

  • Layout Strategy Enhancements: Improved positioning calculations
    • Dynamic bounds-based positioning
    • Container-agnostic approach for different UI setups
    • Consolidated customLayoutSettings usage

New Features

  • Graph Editor Additions: Cooldown & Activation Costs
    • cooldownTime field with TimeMode enum (Seconds/Minutes/Hours/Days)
    • activationCosts List for resource requirements
    • Proper conversion from SkillNodeData to ProgressionSkill
    • Graph Editor UI for configuring activation settings

Version 1.1.2 - Bug Fixes & Developer Tools

Release Date: January 10, 2026

Bug Fixes

  • Root Skills Auto-Unlock: Root skills now automatically unlock when a tree is unlocked via any method (Manager, Debug Window, Game Creator Instructions)
  • Latest Mode Independence: Latest Mode pool refresh now works independently of UIController display settings

New Features

  • Debug Window: New Editor Window for runtime testing and debugging
    • Tree selection and status overview
    • Quick unlock/lock, respec, award points
    • Latest Mode pool testing (refresh & preview)
    • Per-skill actions (unlock, upgrade, max out)
    • Access via: Window → Progression Tree Builder → Debug Window
  • LockTree Method: New ProgressionTreeManager.LockTree() method for properly locking trees
    • Removes tree from unlocked list
    • Resets all progress automatically
    • Tree disappears from UI navigation
  • Game Creator Integration:
    • New Instruction: Lock Tree
    • New Condition: Is Tree Locked

Asset Store Compatibility

  • Assembly Definition Updates: Improved Game Creator 2 handling
    • Removed defineConstraints (caused compilation failures)
    • Added Unity.ugui reference to Common assembly
    • Treats Game Creator 2 as hard dependency
  • InitializeOnLoad Script: Automatic scripting define symbol management
    • Detects Game Creator assemblies at startup
    • Sets PTB_GAMECREATOR2_INSTALLED symbol automatically
    • Eliminates manual configuration

New Components

  • AdvancedGradient: Independent UI gradient effect
    • Three gradient modes: Linear, Radial, Diamond
    • Multiple blend modes: Multiply, Additive, Override
    • Intensity control and performance optimizations
  • ProgressionNodeInspector Enhancement: Graph editor integration
    • Activity detection for scene-based instructions
    • Accurate instruction count using reflection
    • Simplified interface with Edit/Create buttons

Backward Compatible: All changes are backward compatible. Existing projects work unchanged. Root skills in already-unlocked trees are automatically handled on next tree access.

License & Usage Rights

Important License Information

Allowed:

  • Commercial & non-commercial projects
  • Code modifications for your projects
  • Publishing and selling games with PTB

Not Allowed:

  • Reselling PTB itself
  • Sub-licensing

Credits

Special Thanks

  • Catsoft Studios — For the amazing Game Creator 2 framework
  • The Unity community — For feedback and suggestions

Support

📧 support@c-huck.com📖 Documentation💬 Discord — coming soon

This is a passion project — no 24/7 support, but I reply as quickly as I can.

FAQ, Changelog & more →
Before contacting support: Please check the FAQ above and ensure you have the latest version installed.