[Plugin] KRONO (ChronoSchema) v1.0 — Sub-9ms C++ Header (.h) UPROPERTY Hot-Patcher & Win32 MEM_WRITE_WATCH PIE Time-Machine (UE 5.8)

Get Chrono on Fab: KRONO (ChronoSchema)
Official Technical Documentation: KRONO (ChronoSchema) - Official Documentation
Engine Compatibility: Unreal Engine 5.8 (C++20) | Platform: Win64 (Editor, Development, Shipping)


What KRONO Does (In Plain English)

KRONO (ChronoSchema) is a native C++ iteration and memory-debugging plugin for Unreal Engine 5.8 built to eliminate two everyday development bottlenecks—with zero third-party DLL dependencies and zero level setup required:

  1. Sub-9 ms C++ .h UPROPERTY Hot-Patching (Ctrl + S):
    Add, edit, or remove supported UPROPERTY fields (float, double, int32, bool, FString), default values, or Category metadata in your project’s .h files and press Ctrl + S. KRONO updates the live UClass, Class Default Object (CDO), derived Blueprints, and open Details Panels in 0.5 ms – 9 ms without running Unreal Header Tool (UHT) or restarting the Editor—even during Play-In-Editor (PIE).
  2. 600-Frame Win32 MEM_WRITE_WATCH PIE Time-Machine (<< -3s / < -1s):
    Testing a jump, movement tweak, or physics collision in PIE? Click << -3s (180 frames), < -1s (60 frames), or < -1 Frame on the top toolbar (or scrub the 60 Hz oscilloscope waveform) to rewind your character and movable physics actors back in time immediately without restarting PIE.

Engineering Scope: How KRONO Complements Unreal Live Coding

We want to be 100% transparent with fellow C++ engineers about what KRONO does under the hood and how it pairs with Live Coding:

  • What KRONO Patches (<9 ms, Zero Compile): KRONO targets the reflection iteration gap. FChronoHeaderWatcher and FChronoNativeReinstancer append new FProperty nodes to the tail of UClass::ChildProperties (keeping existing compiled C++ member offsets intact), relink derived Blueprints via StaticLink(true), and update CDO and level instance memory directly. It works even when Live Coding is disabled.
  • Persistent Boot & Map-Load Auto-Sync: If you close and reopen the Unreal Editor (or switch maps) before running a full C++ build in Visual Studio/Rider, KRONO automatically scans your .h files on Editor startup and OnMapOpened to re-apply your uncompiled UPROPERTY schemas and default values.
  • When to Use Live Coding / IDE Compilation: KRONO injects properties into Unreal’s reflection layer without invoking the MSVC compiler. When you write new .cpp function logic that references a newly added header variable by its C++ identifier, trigger Live Coding (Ctrl+Alt+F11) or a standard IDE build as normal.

Core Architecture Across All 3 Pillars

Pillar 1: Sub-9 ms Header Hot-Patcher (ChronoSchemaEditor)

  • Supported Types: float (FFloatProperty), double (FDoubleProperty), int32 (FIntProperty), bool (FBoolProperty), and FString (FStrProperty).
  • Live Default & Category Updates: Tweak default values (= 600.0f) or Category = "..." in your .h file and press Ctrl+S to push changes directly onto selected level instances and open SDetailsView panels.
  • Deletion Reconciliation: Deleting a hot-patched UPROPERTY from your .h file and saving immediately unlinks it from the Details Panel and derived Blueprints.

Pillar 2: 64 MB Hardware CoW Time-Machine (ChronoSchemaRuntime)

  • Win32 Kernel MEM_WRITE_WATCH Arena: Reserves a 64 MB page-aligned virtual memory arena (16,384 pages at 4,096 bytes each) via VirtualAlloc(..., MEM_RESERVE | MEM_COMMIT | MEM_WRITE_WATCH).
  • Sub-0.2 ms Per-Tick Delta Capture: Queries the Windows Kernel MMU each tick via ::GetWriteWatch(WRITE_WATCH_FLAG_RESET, ...) to delta-copy only the 4 KB pages that actually mutated during that frame across a 600-frame ring buffer (10.0s at 60 FPS).
  • Zero-Setup PIE Actor Rewind: UChronoTimeMachineSubsystem (UTickableWorldSubsystem) automatically binds movable Pawns/Characters and physics-enabled Actors (EComponentMobility::Movable) to dedicated 4 KB pages and restores transforms, control rotations, and velocities via ETeleportType::TeleportPhysics.
  • 10 Blueprint Nodes & C++ Page API: Includes RewindFrames, GetAvailableRewindFrames, SetRecordingPaused, IsRecordingPaused, AllocateTrackedPage, WriteTrackedFloat, ReadTrackedFloat, GetRecordedFrameCount, GetLastTickDirtyPages, and GetAllocatedPageCount.

Pillar 3: ChronoSchema Studio & Console / MCP Endpoints (Slate UI)

  • 60 Hz Dirty-Page Oscilloscope & Scrubber: Visualizes per-tick clean (cyan) vs. mutated (magenta) 4 KB page bursts. Click or drag left to scrub backward through recorded PIE frames.
  • 256-Cell (32x8) 4 KB Page Matrix: Real-time virtual memory page grid displaying standby cells, allocated clean pages, and active mutation heatmaps.
  • Console & Automation Commands: Chrono.HotPatchHeaders, Chrono.RewindFrames <N>, Chrono.MCP.HotPatch, and Chrono.MCP.Rewind <N>.

Support, Bug Reports & Feature Requests

This thread serves as the official support channel for KRONO (ChronoSchema). If you have questions about integrating ChronoSchemaRuntime into your C++ modules, edge cases with specific class hierarchies, or feature requests for v1.1 (such as FVector / FRotator struct property injection), reply below!