Skip to main content

Clean Folder Structure (Editor)

Β· 4 min read
Nazake
Game Developer

Organizing your Unreal Engine project is one of the most underrated things you can do to stay productive and avoid chaos as your game grows.

Here’s a clean and maintainable folder structure that works great for both solo developers and teams. It’s battle-tested and follows industry best practices.


πŸ“ Folder Structure​

This goes inside your Content folder:

Content/
β”‚
β”œβ”€β”€ Art/
β”‚ β”œβ”€β”€ Characters/
β”‚ β”œβ”€β”€ Environments/
β”‚ β”œβ”€β”€ Props/
β”‚ └── UI/
β”‚
β”œβ”€β”€ Blueprints/
β”‚ β”œβ”€β”€ Player/
β”‚ β”œβ”€β”€ Characters/
β”‚ β”œβ”€β”€ GameModes/
β”‚ β”œβ”€β”€ Interfaces/
β”‚ └── Misc/
β”‚
β”œβ”€β”€ AI/
β”‚ β”œβ”€β”€ Controllers/
β”‚ β”œβ”€β”€ BehaviorTrees/
β”‚ β”œβ”€β”€ Tasks/
β”‚ β”œβ”€β”€ Services/
β”‚ └── Decorators/
β”‚
β”œβ”€β”€ Maps/
β”‚ β”œβ”€β”€ Menus/
β”‚ β”œβ”€β”€ Levels/
β”‚ └── Testing/
β”‚
β”œβ”€β”€ Materials/
β”‚ β”œβ”€β”€ Master/
β”‚ β”œβ”€β”€ Instances/
β”‚ β”œβ”€β”€ Functions/
β”‚ └── Textures/
β”‚
β”œβ”€β”€ Meshes/
β”‚ β”œβ”€β”€ Characters/
β”‚ β”œβ”€β”€ Environments/
β”‚ β”œβ”€β”€ Props/
β”‚ └── Vehicles/
β”‚
β”œβ”€β”€ Animations/
β”‚ β”œβ”€β”€ Characters/
β”‚ β”œβ”€β”€ Montages/
β”‚ └── Blendspaces/
β”‚
β”œβ”€β”€ Audio/
β”‚ β”œβ”€β”€ Music/
β”‚ β”œβ”€β”€ SFX/
β”‚ └── VO/
β”‚
β”œβ”€β”€ UI/
β”‚ β”œβ”€β”€ Widgets/
β”‚ β”œβ”€β”€ Fonts/
β”‚ └── Textures/
β”‚
β”œβ”€β”€ FX/
β”‚ β”œβ”€β”€ Particles/
β”‚ β”œβ”€β”€ Niagara/
β”‚ └── Decals/
β”‚
β”œβ”€β”€ Core/
β”‚ β”œβ”€β”€ DataAssets/
β”‚ β”œβ”€β”€ Enums/
β”‚ β”œβ”€β”€ Structs/
β”‚ └── Functions/
β”‚
β”œβ”€β”€ Input/
β”‚ β”œβ”€β”€ Actions/
β”‚ β”œβ”€β”€ Contexts/
β”‚
β”œβ”€β”€ Systems/
β”‚ β”œβ”€β”€ Abilities/
β”‚ β”œβ”€β”€ Inventory/
β”‚ β”œβ”€β”€ Weapons/
β”‚ └── Items/
β”‚
β”œβ”€β”€ Editor/
β”‚ β”œβ”€β”€ Blutilities/
β”‚ β”œβ”€β”€ Scripts/
β”‚ └── Tools/
β”‚
└── Dev/
β”œβ”€β”€ [YourName]/
└── Sandbox/

🧠 Breakdown​

Art​

External content and artist-friendly folders. Put concept art, references, and high-poly models here.

Blueprints​

All game logic implemented with Blueprints. Organized into categories like Characters, Player, GameModes, Interfaces, and Misc.

AI​

AI-related assets and logic. Includes behavior trees, blackboards, services, tasks, decorators, perception data, and AI controllers.

Maps​

Main levels, test levels, and menus β€” all organized for clarity.

Materials​

Split between Master, Instances, and Functions to make scaling easier.

Meshes​

Static Meshes and Skeletal Meshes. Organized by category like environment or props.

Animations​

Keep blendspaces, montages, and sequences tidy by character or category.

Audio​

Separate voice lines, SFX, and music for easy audio pipeline control.

UI​

Widgets, textures, and fonts for HUDs, menus, and UI elements.

FX​

Visual effects, particle systems, and decals go here β€” use Niagara for future-proofing.

Core​

Contains project-wide foundational assets such as global Enums, Structs, Function Libraries, and Data Assets.

Systems​

Contains modular, self-contained gameplay systems such as Inventory, Abilities, Items, and Interaction.

Editor​

Tools, utility widgets, scripts, config files. Never used in runtime.

Dev​

For developer sandboxes, experiments, and WIP content β€” keep it outside your shipping build.


✍️ Naming Conventions​

  • Blueprints: BP_ (e.g. BP_PlayerCharacter)
  • Widgets: W_ (e.g. W_InventoryMenu)
  • Materials: M_, MI_ (Material Instance), MF_ (Function)
  • Static Meshes: SM_, Skeletal Meshes: SK_
  • Sounds: SFX_, BGM_, VO_
  • Animations: AS_ (AnimSequence), AM_ (AnimMontage), BS_ (Blendspace)
  • DataAssets: DA_ (DataAsset)
  • Enums: E_ (Enumeration), EMyEnum (Enumeration)
  • Structs: F_ (Structure), or FMyStruct (Structure)
  • Interfaces: I_ (Interface), or IMyInterface (Interface)

βœ… Best Practices​

  • Keep editor-only content isolated in the Editor/ folder to avoid packaging it.
  • Use Editor Utility Widgets to automate organization and bulk operations.
  • Consider feature plugins if you're building large modular systems.
  • Keep Dev/ out of version control or builds.
  • Clean unused assets regularly using the reference viewer.

A well-structured project makes debugging easier, improves iteration speed, and reduces onboarding time for collaborators. Set it up right from the start β€” future you will thank you.

Got a better structure or plugin-friendly setup? Drop it in the comments!