# Tutorial

{% embed url="<https://youtu.be/AMH0wwnGkyA>" %}

## Transcript

### Intro

The Osero Suite: Module Creator is an Unreal Engine editor tool that offers a quick and easy solution for creating new C++ modules for a uproject or uplugin. It removes the hassle of manually copying and creating code files and replaces it with the simple click of a button! The tool includes settings for module type and loading phase, and also has support for module templates and source control, making the process of creating new C++ modules super easy and simple.

### Accessing the Module Creator

Once the Osero Suite: Module Creator plugin is installed, the Module Creator can be accessed via the Osero Suite menu in the Level Editor Toolbar or the Window menu.

<div><figure><img src="/files/l3qi94ZQizCfIVfAfRso" alt=""><figcaption></figcaption></figure> <figure><img src="/files/AiXOZyW3eVfSToHfveB6" alt=""><figcaption></figcaption></figure></div>

### Create a new Module

To create a new module, the first thing needed is a name.

<figure><img src="/files/SrntXRmb7CCzgkiKETg3" alt=""><figcaption></figcaption></figure>

The Module Creator will replace invalid characters with an underscore to make sure it fits with Unreal Engine’s naming convention.

<figure><img src="/files/1luW83KOv2aGQW13qZx9" alt=""><figcaption></figcaption></figure>

The module type and loading phase then need to be defined.

<div><figure><img src="/files/0iVS5Ew1EWWpYvjMcWI4" alt=""><figcaption></figcaption></figure> <figure><img src="/files/PmMS53JbEMWtwxSfCLzI" alt=""><figcaption></figcaption></figure></div>

The Module Creator uses a special Data Asset called a “Module Template” in order to know what files to create. The default template is a copy of the Blank Plugin template from the Plugin Manager and will create a Build.cs, module header, and module cpp file.

<div><figure><img src="/files/6P310cJWyNHzvXXGxK35" alt=""><figcaption></figcaption></figure> <figure><img src="/files/ObBW33FFWeM1cdyv74Dl" alt=""><figcaption></figcaption></figure></div>

The new module then needs a destination. This can be either the current project, an existing project plugin, or a new project plugin. The tool will automatically create or update the relevant uproject or uplugin files.

<div><figure><img src="/files/O3tdN4gkGs13OXVltWQI" alt=""><figcaption></figcaption></figure> <figure><img src="/files/183Ux0x9MQrc6QuekTh8" alt=""><figcaption></figcaption></figure></div>

The final option is whether or not to check Revision Control for any files created or modified. This saves having to manually check out files or mark them for add when using Source Control like Perforce.

<figure><img src="/files/BNZrmKnHst08ATERv9kx" alt=""><figcaption></figcaption></figure>

When “Create Module” is clicked, the Module Creator will then use all the settings to create and modify the relevant files. The project files will then be regenerated to add the module into the Visual Studio solution. Then, based on your Hot Reload and Live Coding settings, the project will recompile the solution with the new module included.

<div><figure><img src="/files/3pu96lkc91SaGHi16USa" alt=""><figcaption></figcaption></figure> <figure><img src="/files/gEkqIxcs3c30WBWrZzlN" alt=""><figcaption></figcaption></figure></div>

It should be noted that sometimes new modules will not immediately show up despite Hot Reload or Live Coding. To fix this, close Unreal Engine and manually build from Visual Studio.

<figure><img src="/files/gQjm1OtPWiC7ufTLATqL" alt=""><figcaption></figcaption></figure>

### Module Templates

A core feature of the Module Creator is Module Templates. Module Templates are special Data Assets that contain information about what files to create when building a new module. By default, the tool uses **OS\_MDC\_DefaultTemplate\_Data**, which is a basic module with no custom code.

<div><figure><img src="/files/6P310cJWyNHzvXXGxK35" alt=""><figcaption></figcaption></figure> <figure><img src="/files/ObBW33FFWeM1cdyv74Dl" alt=""><figcaption></figcaption></figure></div>

The plugin also comes with an example of a custom Module Template called **OS\_MDC\_Template\_OseroSuiteEditorTool**, which is a copy of a basic Osero Suite tool module with no custom code.

<div><figure><img src="/files/hEMWNVVsEfpyNvRjjHkG" alt=""><figcaption></figcaption></figure> <figure><img src="/files/OIQ40fI9Vd7q1UQg4eh1" alt=""><figcaption></figcaption></figure></div>

To create a new Module Template, simply click the plus button under the Module Template field.

<figure><img src="/files/XEb6yaCfUr4BKu5FHFI5" alt=""><figcaption></figcaption></figure>

The new Module Template will be a copy of the default template and can be modified as needed.

<figure><img src="/files/AVIQq4YcOG8aNAy7IuZo" alt=""><figcaption></figcaption></figure>

Module Templates have three buttons at the top.

<figure><img src="/files/G4FXBqlwcV9CQ4IFO2bX" alt=""><figcaption></figcaption></figure>

Copy Existing Module will replace all the data in this template with the imported data from an existing module in the current project.

<figure><img src="/files/U0eboreLp57z8t0AdPUW" alt=""><figcaption></figcaption></figure>

Export to Json will create a new Json file with all of the data in this template for easy copying between projects or editing in an external program.

<figure><img src="/files/s7G3CdDfoEdkJLBoU8B3" alt=""><figcaption></figcaption></figure>

Import from Json will replace all the data in this template with the imported data from a valid Json file.

<figure><img src="/files/fP8bt7wwbohhXop1i9Ec" alt=""><figcaption></figcaption></figure>

The essentials of a module include the module header, module cpp, and Build.cs files. If any of these are left blank, the tool will abort and not create a new module.

<div><figure><img src="/files/MzpdsRwezuz0iQjFSpSb" alt=""><figcaption></figcaption></figure> <figure><img src="/files/1OTfhuiMZeAhuTTayArA" alt=""><figcaption></figcaption></figure></div>

Keys allow the user to modify data in a template automatically when the new module is created.

<figure><img src="/files/PXk8gnYBrp4uCdbkzap9" alt=""><figcaption></figcaption></figure>

Default keys are internal keys used behind the scenes and can be used in most text fields of the module template. Clicking any of these keys will copy it so that it can be easily pasted into the text fields.

<figure><img src="/files/9zy8h1soV19sBpTsBEv2" alt=""><figcaption></figcaption></figure>

Custom keys allow the user to set additional keys to be replaced in the module creation process. Any keys defined here will appear in the Module Creator window when this template is being used to create a new module. In the example, there are two custom keys: {ID} and {Full Name}.

<div><figure><img src="/files/2yMaKixecLaVP2cRcEYf" alt=""><figcaption></figcaption></figure> <figure><img src="/files/zQV6Fg0clyMSXuDwKZYs" alt=""><figcaption></figcaption></figure></div>

Additional Files are files other than the module header, module cpp, and Build.cs files. The example includes three additional files: S{ID}\_Tool, {ID}\_Style, and {ID}\_Statics. Additional files can include a header, cpp, or “other” file. They can also include a subfolder, while the header and “other” files can be marked as Private, meaning they will be placed in the Private folder, rather than the public folder.

<div><figure><img src="/files/A36xbcfRwu8QMbMHsJa0" alt=""><figcaption></figcaption></figure> <figure><img src="/files/JvhFJTCE1AMjgddcH6jY" alt=""><figcaption></figcaption></figure></div>

### Project Settings

The Osero Suite: Module Creator also includes its own project settings. In these settings, the default template can be set.

<figure><img src="/files/mim1ZECmvL55aKDEXusy" alt=""><figcaption></figcaption></figure>

### Outro

The Osero Suite: Module Creator is a useful tool to save time when creating Unreal Engine C++ modules. For more information, visit [docs.oserosuite.com](/osero-suite.md).


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.oserosuite.com/supported-assets/module-creator/how-to-use-5.2+/tutorial.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
