Domain reload is off by default in Unity 6.6, so statics keep their value between play sessions. This lists every one in your own code and says which kind of trouble it is.Editor-only code tool. It reads your scripts, not your scenes or materials, so it works the same with Built-in, URP, HDRP and custom render pipelines.Unity 6.6 changed the default for entering Play Mode. The scripting domain is no longer reloaded, which makes pressing Play much faster, and it has a cost that is easy to miss: every static field in your code now keeps its value from one play session to the next. The score that should start at zero starts where you left it. The list you thought was empty is still full. The singleton you thought was fresh still points at last session's object.Unity's answer is an attribute you place on each field yourself. Finding the fields is left to you.Quick Static Audit finds them.WHAT IT DOES• Scans the assemblies your game is built from and lists every static field that carries a value across a play session• Tells you which kind of trouble each one is: a field that can be reassigned, a static event that keeps its subscribers, a readonly collection whose contents still change, or a value that is genuinely safe• Static auto-properties are included. public static GameManager Instance { get; private set; } keeps its value in a hidden field the compiler writes, and it is listed under the property's own name• Click any field to open the file it is declared in, on its line. Nested types and files that hold more than one class are found too• Fields you have already annotated are marked and moved to the bottom, so the list shrinks as you work through it• Copy a plain-text report, grouped by assembly, for a ticket or a code reviewWHY NOT JUST SEARCH FOR "STATIC"Because most of what that finds does not matter, and it misses the distinctions that do.• Editor code is left out. Its statics are not your game's state, and listing them buries the ones that are• Installed packages are left out unless you ask. Registry, built-in and git packages are code you cannot annotate. Packages embedded in your project are your own code and are always scanned• const is left out. It is baked in and cannot drift• Closures and cached lambdas are left out. The compiler writes them and they hold nothing• readonly is not treated as safe on its own. A readonly List is still full the next time you press Play, and a text search cannot tell that apart from a readonly numberREADS YOUR PROJECT, CHANGES NOTHINGIt does not edit your code. It will not add attributes for you and it will not guess which fields are safe to reset, because resetting a static correctly depends on what the field is for. The header tells you whether your project currently reloads the domain: if it does, the list is what would carry over the day you turn that off.CLEAN AND SAFE• Editor-only. Nothing ships in your build and there is no runtime cost• No Unity package dependencies• Namespaced code (Krykftn.QuickStaticAudit)• Works on Unity versions before 6.6 as well. The annotation is detected by name, so the package compiles everywhere• Tested on Unity 2022.3 and Unity 6REQUIREMENTS• Unity 2022.3 LTS or newer• Any render pipeline. It reads your code, not your sceneHONEST LIMITSIt lists fields; it does not know your intentions. If you already reset a field yourself in a startup method, it is still listed, because that cannot be seen from outside the code. And it reads compiled code, so while a script has a compile error the list reflects the last successful compile.Features:• One window: Tools > Quick Static Audit• Scans player assemblies built from your own code; editor assemblies, const, instance fields, closures and cached lambdas are excluded• Registry, built-in and git packages are excluded by default and one toggle brings them in; embedded and local packages are always scanned• Static auto-properties are reported under the property's name; static events are marked as keeping their subscribers• A readonly field or get-only property is classed as safe only when its type is a number, string or enum• Fields carrying [AutoStaticsCleanup] are marked and sorted last; the attribute is detected by name on the field, its auto-property or its class• Click to open the declaring file on its line• Filter box, include-safe toggle, and a plain-text report on the clipboard• Tells you whether this project currently reloads the domain on entering Play Mode• Editor-only, no Unity package dependenciesSupported OS: Windows, macOS, Linux (editor tool)Documentation: Documentation/README.md inside the packageAI assistance (Claude) was used to help write and review the C# source code, the documentation and store text, and the Python scripts that lay out the store images.The window shown in the screenshots is a real capture of the shipping tool running in the Unity Editor. The key image, card, social image and page layouts are drawn in code for this package; no AI image generation model was used for any store image.



