Backrooms Power Crawl v0.5.3
Memory Leak Fixes
Fixes memory leaks that caused the web build to hit the 2GB WASM limit after extended play (~300 turns) or after death/restart cycles.
Bug Fixes
- Signal connection leaks: Fixed unbounded signal connections between WorldEntity (RefCounted) and EntityRenderer (Node3D) that were never disconnected when entities died or scenes reloaded
- Autoload state persistence: Added proper cleanup of Pathfinding, LevelManager cache, and ChunkManager state on new runs
- Scene reload leaks: Added
_exit_tree()handlers to player, minimap, and loading screen to disconnect autoload signals
Technical Details
The root cause was a subtle bug with bound callables: checking signal.is_connected(method.bind(arg)) always returns false because .bind() creates a new callable object each time. Fixed by using signal.get_connections() to iterate and disconnect actual connections.