Media preview
Description
Changelog
Reviews (0)

Runtime C# hot reload for Godot 4.7+ (.NET 8)

Save a .cs file — watch it run. No restart, no domain reload, zero stuttering.


What works at runtime

  • Static methods (void / return / ref / out / overloads)
  • Instance methods — full cross-ALC forwarding via DynamicMethod IL emit
  • Generic methods — all reference types + 8 common value types
  • async/await and IEnumerable iterators — MoveNext patched safely
  • Field layout guard — skips patch with a warning if you add/remove fields
  • Restore All — one-click unpatch back to original

How it works

Watches src/, compiles to an isolated AssemblyLoadContext (no .godot/ file locks), diffs method signatures, and patches via Harmony. Instance methods use a DynamicMethod IL stub that pushes the old object ref directly as the new type's this — bypassing the cross-ALC type identity wall that breaks MethodInfo.Invoke.

Requirements

  • Godot 4.7+ (.NET / mono build — not GDScript, not Godot 3.x)
  • .NET 8 SDK
  • One NuGet package: Lib.Harmony 2.4.2

Quick Start (30 seconds)

  1. Drop addons/GodotHotReload/ into your project
  2. Add <PackageReference Include="Lib.Harmony" Version="2.4.2" /> to your .csproj
  3. Enable the plugin (Project → Project Settings → Plugins)
  4. In your bootstrap script's _Ready(): AddChild(new GodotHotReload.HotReloadRuntime());
  5. Press F5, edit any .cs in src/, save — done.

Get it

  • itch.io: https://gutian2000.itch.io/hot-reload-live (free + optional donation)
  • GitHub: https://github.com/gutian2000/hot-reload-live-godot

License

MIT. Includes Lib.Harmony 2.4.2 (MIT, by Andreas Pardeike).

Changelog for version 1.1.1

2026-09-26 07:24:39

No changelog provided for this version.

Reviews

Hot Reload Live has no reviews yet.

Login to write a review.

Consider supporting the creators!

If you enjoyed this asset consider supporting its creator. Follow the link below.