I found some behavior in my own Godot 4 game which is easy to reproduce:
- Open Godot 4.1, I'm using Windows 10, 64bit
- Create a new project, I called it
OrphanStringTest001
- Add a scene with an empty
Control
node - Run once to make that scene the default
- Export the project for "Windows Desktop (Runnable)" with all default options, choose "Export Project..."
- Disable "Export With Debug" checkbox (this step is crucial)
- Run from your terminal with an argument:
.\OrphanStringTest001.exe --verbose
After closing the app:
- Result: tons of
Orphan Stringname: ...
messages - Expected: clean exit without any such warnings
Here's the full log (abbreviated the list of "Orphan" messages though), first on startup:
Godot Engine v4.1.stable.official.970459615 - https://godotengine.org
TextServer: Added interface "Dummy"
TextServer: Added interface "ICU / HarfBuzz / Graphite (Built-in)"
NVAPI: Init OK!
NVAPI: Disabled OpenGL threaded optimization successfully
Using "winink" pen tablet driver...
Shader 'CanvasSdfShaderGLES3' SHA256: 72cda41890bce2f09217c172023d31e735a3fee605bad83c8e63f1a981a36a77
Shader 'SkeletonShaderGLES3' SHA256: add3f03e6eebdffdf0073fae42195857307eddada333b82998642329511917a2
Shader 'ParticlesShaderGLES3' SHA256: 9bf432d37b0b4792d67aa9f577258845d4047e3f98e990aeca6fd20a868c4db2
Shader 'ParticlesCopyShaderGLES3' SHA256: c778843b0cd1c7ce4c621fa2b924f703ac4001faef0555114b81a76c264a6908
Shader 'CopyShaderGLES3' SHA256: b1bc5a355ed9bda23f291956f121e0535b4e81b54cdac398412d200e6133161f
Shader 'CanvasShaderGLES3' SHA256: 007cddfcf35f7d57b219cffec53f6a7d9fe7a1979be4db64c6450cfac6000053
Shader 'CanvasOcclusionShaderGLES3' SHA256: 968915a469db9a7d505be274e8060c8288c15a5865baeb8362b3b0e2cacb16f3
Shader 'SceneShaderGLES3' SHA256: 7757391c487ac94cfa6418166bd5fdacce470f09394c1a2a875e878c8c5d8596
Shader 'SkyShaderGLES3' SHA256: 1fe105946e63973aecf5198091930c2bdb17778012ef0253e325ade3a297e6c8
Shader 'CubemapFilterShaderGLES3' SHA256: 2b651c285a02b7d4221af1827e1613c03e73e600ebc40b9e6a0b22bb855bd75f
OpenGL API 3.3.0 NVIDIA 528.49 - Compatibility - Using Device: NVIDIA - NVIDIA GeForce GTX 1080
WASAPI: Activated output_device using IAudioClient3 interface
WASAPI: wFormatTag = 65534
WASAPI: nChannels = 2
WASAPI: nSamplesPerSec = 48000
WASAPI: nAvgBytesPerSec = 384000
WASAPI: nBlockAlign = 8
WASAPI: wBitsPerSample = 32
WASAPI: cbSize = 22
WASAPI: mix_rate = 48000
WASAPI: fundamental_period_frames = 480
WASAPI: min_period_frames = 480
WASAPI: max_period_frames = 480
WASAPI: selected a period frame size of 480
WASAPI: detected 2 channels
WASAPI: audio buffer frames: 480 calculated latency: 10ms
TextServer: Primary interface set to: "ICU / HarfBuzz / Graphite (Built-in)".
CORE API HASH: 0
EDITOR API HASH: 0
Loaded system CA certificates
And after exiting the "game" it adds:
XR: Clearing primary interface
XR: Removed interfaceNative mobile
XR: Removed interfaceOpenXR
Orphan StringName: variant_booleanize
Orphan StringName: string_new_with_utf8_chars_and_len
Orphan StringName: OP_MODULE
Orphan StringName: KEY_SYSREQ
Orphan StringName: file_access_store_buffer
Orphan StringName: PROPERTY_HINT_NONE
<<<< ABBREVIATED >>>>
Orphan StringName: string_to_latin1_chars
Orphan StringName: KEY_PERCENT
Orphan StringName: Key
Orphan StringName: KEY_BRACELEFT
Orphan StringName: PROPERTY_HINT_PLACEHOLDER_TEXT
StringName: 658 unclaimed string names at exit.
This seems like a problem, and my "real" game has nearly 4000 of those "unclaimed string names" at exit. Then again, since this happens in an empty project with default settings, it might just be "normal" and expected behavior?
My questions: what do these log messages mean, should I worry about them, and if so, how should I fix this?