[v3.0.0 RELEASED] Advanced Variables - High-Performance Reactive Architecture for Unity

[v3.0.0 RELEASE] Advanced Variables Released: Jun 8, 2026

:rocket: What’s New in v3.0.0?

Phase 1 - Foundation Overhaul

  • Async Safety: CancellationToken + timeoutSeconds parameters on WaitUntil(), WaitUntilEquals(), WaitForChange() - no more hung coroutines.
  • Encrypted Persistence: New EncryptedJsonProvider with AES-256 encryption. Drop-in replacement for the deprecated BinaryPersistenceProvider.
  • Runtime Set Improvements: OnClear event, OnBeforeItemAdded/Removed/Clear validation hooks. Items list is now [NonSerialized] (ScriptableObjects cannot serialize scene references).
  • VariableFormatter: Added ClampedFloatVariable slot.
  • Bug Fixes: Guid.NewGuid().ToString() parentheses fix, ClampedVariable file split, min==max slider fix, persistence batch MarkDirty fix.

Phase 2 - Multiplayer Architecture (NEW)

  • 4 Bundled Network Providers: Netcode for GameObjects (NGO), Mirror, FishNet, Photon Fusion - conditional #if compilation, zero errors when packages are absent.
  • Authority System: LocalOnly, Server, Client modes on all variables and RuntimeSets. Operations silently reject unauthorized changes.
  • Delta Compression: IntDeltaCompressor (XOR-based), FloatDeltaCompressor (half-precision with full fallback), Vector3DeltaCompressor (component-wise).
  • State Interpolation: ApplyNetworkState(T, float) for smooth transitions backed by auto-created VariableInterpolationRunner - no setup required.

Phase 3 - Advanced Event Integration

  • Variable Queries: VariableQuery<T> (Int/Float/Vector3) with Sum, Product, Min, Max aggregation - zero-allocation ListPool<T> buffers.
  • Pre/Post Pipeline: OnPreValueChange and OnPostValueChange events for validation, logging, analytics, or achievements.
  • Scheduled Operations: ScheduleSetValue(), ScheduleReset(), ScheduleBroadcast() with delayed execution via ScheduledEventManager.
  • Variable Channels: IntChannel, FloatChannel, BoolChannel, StringChannel, Vector3Channel - cross-scene broadcast without direct variable references.
  • Weak Listeners: useWeakListeners toggle on UI binding components to prevent memory leaks from destroyed GameObjects.

Phase 4 - Variable Ecosystem Expansion

  • 12 New Variable Types: Vector2, Vector2Int, Vector3Int, Color, Color32, Double, Long, AnimationCurve, Gradient, LayerMask, Tag - plus all 12 corresponding *Reference structs (17 total).
  • 5 New RuntimeSets: IntSet, StringSet, FloatSet, Vector3Set, ComponentSet<T>.
  • 8 New UI Binding Components: VariableToText, VariableToToggle, VariableToDropdown, VariableToInputField, VariableVisibility, VariableToAnimator, VariableToScrollbar, VariableToDropdownOptions.

Phase 5 - Developer Tooling & UI Integration

  • VariableToTMPText: Reflection-based TMPro detection - zero compilation errors regardless of TMP installation. Supports format strings and optional weak listeners.
  • Batch Editor: Tools > Advanced Variables > Batch Editor - bulk edit persistence, authority, and auto-reset across all variable assets with search and type filtering.
  • Reference Tracker: Tools > Advanced Variables > Reference Tracker - find all MonoBehaviours referencing a variable across open scenes and all prefabs.
  • State Viewer: Tools > Advanced Variables > State Viewer - real-time Play Mode value change tracking with scrollable history.

Namespace Migration

  • Tools.Variables → PixelForge.Variables eliminates potential conflicts with Unity’s built-in UnityEngine.Tools namespace.
  • Full backward compatibility via [MovedFrom] on every public concrete class/struct - existing scenes, prefabs, and asset files upgrade automatically.

:wrench: Bug Fixes

  • VariableInterpolationRunner struct copy bug (Elapsed never written back to list, interpolation never advanced, old tasks overwrote new values).
  • VariableBatchEditor: invalid NetworkAuthority.Owner removed (enum only has LocalOnly/Server/Client).
  • VariableChannel/Query file splits to prevent “No script asset” CreateAssetMenu errors.
  • RuntimeSet OnClear now correctly fires OnItemRemoved for each item before clearing.

:book: Documentation

  • README.md fully rewritten for v3.0.0.
  • Documentation.md comprehensive user manual.
  • Changelog.md complete through all 5 phases.
  • Roadmap marked as completed.

:package: What’s in the Box

  • 18 Variable Types + 17 Reference Structs
  • 7 RuntimeSets
  • 4 Persistence Providers (Local JSON, Encrypted AES-256, PlayerPrefs, Mock Cloud)
  • 4 Network Providers (NGO, Mirror, FishNet, Fusion)
  • 11 UI Binding Components
  • 4 Editor Windows (Debugger, Batch Editor, Reference Tracker, State Viewer)
  • 7 Demo Scenes