Skip to content

Limitations

Hot Patch covers the edits you make most often while iterating. Some changes still need a normal Unity recompile.


Not supported in Play Mode

Situation Why
async / await methods Cannot be hot-patched
ref / out / in parameters Not supported
Abstract or extern methods No body to patch
New Unity messages mid-Play Unity only discovers them at compile time
Scripts under Editor/ Editor-only; not runtime gameplay code
Package Cache scripts Outside your Assets/ project code
Player builds / IL2CPP Editor Play Mode only
Burst / Jobs Not supported
Devices No patching on hardware builds
Overloaded methods with the same name Matched by name only - prefer unique names for hot-patchable APIs

Fields

Works Does not
Adding a new instance field and using it in patched methods Editing/deleting existing serialized fields with full Inspector sync
Re-running initializers on objects already in the scene
Adding new static fields
Full Inspector support for hot-added fields

Partially supported

Feature Notes
Changing a return type Works when types stay compatible
Adding a new normal method Available to your patched code; Unity will not call it as a message unless it already existed
Renaming a method Treated as remove + add - call the new name
New .cs file during Play Mode Can compile dynamically; joins the main assembly after a domain reload
Lambda in a static field May keep the old delegate until re-assigned - see Lambdas

Always needs a full recompile

  • .asmdef changes
  • Scripting define symbols
  • .csproj / .sln changes
  • Adding new Unity message methods
  • Switching async ↔ sync
  • Adding ref / out / in to parameters

Also see Requirements for platform and project scope.