Unreal Engine asset naming conventions: prefix reference and how to enforce them

By Luca Vitiello ยท Updated 6 October 2026

Most Unreal Engine 5 projects name assets as Prefix_BaseName_Variant_Suffix, such as SM_Crate_01 or T_Brick_N. The Dousen style combines Epic's recommended prefixes with the Allar structure. Dousen enforces it from one YAML document per project, in every DCC before export and again when the DousenUE plugin imports.

Epic's recommendation is [AssetTypePrefix]_[AssetName]_[Descriptor]_[OptionalVariantLetterOrNumber]. Epic also says the convention is only a recommendation and that your project's requirements take precedence. The tables below are the Dousen style: Epic's prefixes with Allar's structure. That means the PascalCase Prefix_BaseAssetName_Variant_Suffix pattern and texture suffixes of the community UE5 style guide by Allar (MIT). The Dousen (default) preset in the portal ships the DCC-created types (SM_, SK_, A_, SKEL_, Rig_, T_ with channel suffixes, MI_, HDA_, VAT_). Engine-only types such as BP_ and WBP_ are listed here for reference and are not managed by Dousen conventions. Where Allar's own prefixes differ, the text says so.

What are the prefixes for each asset type?

Meshes and physics

Asset typePrefixExample
Static MeshSM_SM_Crate_01
Skeletal MeshSK_SK_Guard
SkeletonSKEL_SKEL_Humanoid
Physics AssetPHYS_PHYS_Guard
Morph TargetMT_MT_Smile

Materials and textures

Asset typePrefixExample
MaterialM_M_Concrete
Material InstanceMI_MI_Concrete_Wet
Material FunctionMF_MF_Triplanar
Material Parameter CollectionMPC_MPC_Weather
Post Process MaterialPP_PP_Outline
Physical MaterialPM_PM_Gravel
TextureT_T_Concrete_D
Texture CubeTC_TC_Sky
Render TargetRT_RT_Minimap

Animation

Asset typePrefixExample
Animation SequenceA_A_Guard_Walk
Animation BlueprintABP_ABP_Guard
Animation MontageAM_AM_Guard_Attack
Blend SpaceBS_BS_Locomotion
Aim OffsetAO_AO_Rifle
Level SequenceLS_LS_Intro

Blueprints, data, AI, UI and effects

Asset typePrefixExample
BlueprintBP_BP_Door
Widget BlueprintWBP_WBP_MainMenu
Blueprint InterfaceBPI_BPI_Interactable
Blueprint Function LibraryBPFL_BPFL_Math
Data TableDT_DT_Weapons
Behavior TreeBT_BT_Patrol
BlackboardBB_BB_Patrol
AI ControllerAIC_AIC_Guard
FontFont_Font_Title
Particle System (Cascade)PS_PS_Sparks
Niagara SystemNS_NS_Sparks

Some assets only take a suffix. Allar's guide uses _P for a persistent level, _Audio, _Lighting, _Geo and _Gameplay for sublevels, _Cue after A_ for a Sound Cue, and _SC for a Sound Concurrency. Epic's page also lists Niagara asset prefixes under FXS_ (system), FXE_ (emitter) and FXF_ (function). Pick one scheme for effects and keep it. Both source pages carry longer lists than this one, covering AI, media, Paper 2D and more.

What suffixes do textures and meshes use?

Texture contentSuffixExample
Diffuse, albedo, base color_DT_Brick_D
Normal_NT_Brick_N
Roughness_RT_Brick_R
Alpha, opacity_AT_Leaf_A
Ambient occlusion_OT_Brick_O
Bump_BT_Brick_B
Specular_ST_Brick_S
Emissive_ET_Lamp_E
Metallic or mask_MT_Rail_M
Packed channelsletters stacked, such as _ORMT_Brick_ORM

Allar's guide stacks the suffix letters of packed textures, for example _ERO for emissive, roughness and ambient occlusion. _ORM (occlusion, roughness, metallic) is the same rule applied to the common glTF-style pack. Whatever order you choose, write it down once.

For variants, use a descriptive word (_Snow) or a two-digit number starting at 01. Allar's guide notes you should never need a three-digit variant number. Neither source fixes a naming scheme for LODs, so choose one, such as _LOD0, _LOD1, and apply it everywhere.

How should the folders be organized?

Allar's guide puts all project assets under /Content/ProjectName/, uses PascalCase for every folder, allows no spaces or symbols, avoids empty folders, and avoids redundant type folders such as Meshes or Textures. Group by what the asset is, for example Characters/Common/Animations/Locomotion, so one feature's meshes, materials and textures sit together.

What breaks when names drift?

How do you enforce the convention?

A style guide only works if something checks it. In Dousen, a project admin writes the convention as one YAML document per project, in the web portal's Conventions tab. The current schema is version 3. Each asset type gets a prefix, optional naming.pattern and naming.max_length guard rails, and a tree of categories that can nest to any depth and add folders and name tokens. Studios that need computed rules can write the document as a Lua script instead. The Preset list offers Dousen (default), the DCC-created types of the style on this page, and UE5 Allar Style Guide with Allar's own prefixes.

version: 3
asset_types:
  static_mesh:
    prefix: SM
    suffix: ""
    naming:
      pattern: "^SM_[A-Z][A-Za-z0-9]*(_[A-Za-z0-9]+)*$"   # PascalCase, single underscores
      max_length: 64
    categories:
      Props:
        folder: true
        subcategories:
          Weapons:
            folder: true
            prefix: Wep

Dousen checks names in every supported DCC before export, with the naming.convention rule, and the DousenUE plugin builds the asset's name and Content Browser folder from the same document when it imports. A mesh that violates its pattern is blocked at the DCC before it reaches Perforce (in Houdini, run Dousen: Validate first; its export tools don't block). Existing Unreal assets aren't renamed when you change a rule. See Naming conventions for the full keyword reference and Unreal Engine for the import side.

To test a name without installing anything, use the online naming checker.

Sources

Dousen is free during the studio beta, with access by request, and free forever for teams of up to 5 users. Request early access.