A controlled enviromnent for Unreal Projects to grow
NsBonsai is an editor plugin that keeps asset names in one pattern. When you add or import an asset and save it, NsBonsai puts it in a review window. In the window, you pick the parts of the name, read the final name, and rename or ignore each asset. The default pattern is <Type>_<Domain>_<Category>_<AssetName>_<Variant>, for example SM_Foliage_Tree_Birch_A.
NsBonsai renames an asset only when you confirm it. It writes no metadata into assets and does not move assets to other folders. It does not scan the whole project. It is an editor module and is not part of a packaged game.
SM, M, MI, T, and BP.A to Z, then AA) stops name collisions.Saved/Logs/NsBonsai_Rename.log as CSV.Unreal Engine 5.7+
NsBonsai needs no other plugin.
NsBonsai folder into the Plugins folder of your project.NsBonsai works without code. Add "NsBonsai" to a Build.cs only if an editor module calls its C++ helpers.
Foliage, with a category, for example Tree.To review assets that exist already, select them in the Content Browser, right-click, and choose Open with Bonsai. To open the queue at any time, use Tools > NsBonsai Review Queueβ¦.
| Part | Source |
|---|---|
| Type | The Type Rules entry for the asset class or its nearest parent class |
| Domain | A token from Domains |
| Category | A token from the categories of the domain, or from Global Categories when domains are off |
| Asset Name | Free text. The prefill is the old name without known tokens |
| Variant | The first free letter suffix in the folder: A, B, and so on |
Name Format Order sets the order of the parts. Join Separator (default _) goes between them.
UNsBonsaiSettings β The project settings: name format, token libraries, popup behavior, and table columns.FNsBonsaiNameRules::IsCompliant β Returns true when an asset name matches the active pattern.FNsBonsaiNameRules::ValidateRowState β Checks a set of name parts and returns a message.FNsBonsaiNameRules::AllocateFinalNameWithVariant β Builds the final name and finds a free variant.FNsBonsaiNameRules::SmartPrefillAssetName β Removes known tokens from an old name.FNsBonsaiNameBuilder::ParseExistingAssetName β Splits an old name into type, domain, category, asset name, and variant.FNsBonsaiAssetEvaluator::Evaluate β Gives the default row values for one asset.A to YZ (676 names). After that, the rename fails.