Moniker
Batch renaming for Unity that shows you every change first
- Unreleased
- Utility
- Unity 2022.3 LTS+ · Editor-only · v1.0, not yet published
- Free
- C# · AssetDatabase · Unity 2022.3+
A preview-first batch renamer for GameObjects and project files, with seven rename modes that can be chained into a single pass.
A refactoring tool. It renames things; it does not rewrite the code that refers to them by name in a string.
The idea
Renaming a hundred objects by hand is a tax on an afternoon. Doing it with a tool that silently clobbers the wrong files is considerably worse.
Moniker is built around one rule: you should always see — and be able to walk back — exactly what a batch rename is about to do.
Every rename shows old → new in a live preview. Nothing changes until you press the button.
What it does
Chain rules into one pass. Stack several steps — strip a suffix, then renumber — reorder them, and apply them together, with a live preview of the combined result. Most renamers make you do that in several passes.
Seven modes. Prefix, Suffix, Find & Replace (literal or regex with capture
groups), Numbering, Change Case, Insert / Remove, and Clean Up — which strips
Unity’s (Clone) markers and trailing (1), (2) copy suffixes, collapses
repeated whitespace and trims the ends, each an independent toggle.
Scene objects or project assets, same window, same modes, same preview. Flip a toggle to switch.
References survive. Asset renames go through Unity’s AssetDatabase, so
each file keeps its GUID and every reference to it — in scenes, prefabs and
other assets — stays intact.
Conflicts are caught before they bite. Duplicate names, and clashes with existing siblings, scene roots or files in the same folder, are flagged and block applying until resolved.
The subtle part: Unity lets two siblings share a name, so a name can have several owners. A rename onto it is reported safe only when every owner is itself moving away — not merely when one of them is.
Collision-safe apply. Objects are renamed through temporary names first, so swaps and shifts (A→B, B→A, or n1→n2→n3) never trample each other — the failure mode that quietly corrupts a batch in lesser tools.
Names that are legal everywhere. Names Windows would reject — :, ?,
*, |, <, >, ", reserved device names like CON and COM1, trailing
dots or spaces — are refused on every platform, so a rename done on a Mac
cannot hand a Windows teammate a repository they are unable to check out.
Regular expressions are time-bounded. The preview runs your pattern across
the whole batch on every keystroke, so a catastrophically backtracking one is
not survivable — it is abandoned and leaves the name untouched, exactly as an
invalid pattern does, rather than hanging the editor. Capture groups work
($1), and an invalid pattern is reported inline and never applied.
Full undo for scene objects, as a single step for the whole batch.
Asset renames go straight to disk and Unity does not put them on Ctrl+Z, so
there is a one-click Revert last rename instead — itself a two-phase,
conflict-free write, offered until the next apply or until the window closes.
It survives a script recompile, because renaming a batch of .cs files
triggers a domain reload, which is precisely the moment you most want the
revert and precisely when it used to be discarded.
A rename that fails mid-commit is put back. If Unity refuses one during the final phase — a version-control lock, a read-only file — that asset is restored to its original name rather than abandoned under an internal temporary one. If even the restore fails, the error names where the asset actually is, so the Console and the Project window agree about reality.
Cancelling a large batch rolls it back. Cancel during the reversible first phase and everything returns to its original name; the commit phase always runs to completion, so nothing is ever left sitting at a temporary name.
Prefabs
Scene mode handles GameObjects and prefab instances, and — behind an opt-in toggle that is off by default — objects inside prefab assets.
A prefab’s own name lives in its .prefab file, so Scene mode deliberately
leaves those roots alone and tells you to rename them in Project Assets mode,
where the file and the object stay in step. That is a refusal rather than an
omission.