> For the complete documentation index, see [llms.txt](https://docs.oserosuite.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.oserosuite.com/technical-notes/unreal-engine-notes/ed-modes/registering-editor-modes.md).

# Registering Editor Modes

**UEdModes** are registered automatically here: `UAssetEditorSubsystem::RegisterEditorModes`. This gets called based on info current to the engine at the end of the *PostDefault* loading phase, so anything loading after this won’t be registered.

Legacy **FEdModes** need to be registered and unregistered manually in the startup and shutdown of the modules.

```cpp
FEditorModeRegistry::Get().RegisterMode<FShadersource_RoadToolEdMode>(FShadersource_RoadToolEdMode::EM_SH_RoadToolEditorModeId, LOCTEXT("Shadersource_RoadToolEdModeName", "SHADERSOURCE: Road Tool"), RoadToolIcon, true);
FEditorModeRegistry::Get().UnregisterMode(FShadersource_RoadToolEdMode::EM_SH_RoadToolEditorModeId);
```
