Skip to content

Quick Start

This guide shows the shortest setup for painting a mesh at runtime.

Quick Start Tutorial

1. Place a Mesh in the Level

Start by placing the mesh you want to paint in your scene.

A mesh placed in the level

2. Add the Paint Target Component

Select the actor that owns the mesh, then add RuntimeMeshPaintTargetComponent from the Details panel.

This component owns the runtime render targets, prepares the paint textures, and applies them to the target mesh materials when the game starts.

RuntimeMeshPaintTargetComponent added to the mesh actor

3. Optional: Review the Runtime Target Settings

The default render target settings are enough for a first test. You can later adjust the texture resolution, render target format, initial colors, and texture parameter names from the Runtime Target section.

Runtime target settings

4. Optional: Choose Mesh Targets When Needed

If the actor has a single mesh component, the target component can resolve it automatically.

If the actor contains multiple mesh components and you only want specific meshes to be paintable, add their component names to Mesh Targets.

Mesh Targets list

5. Check Collision

The mesh must block the trace channel used by the painting controller. By default, this is Visibility.

If the trace does not hit the mesh, the brush preview cannot lock onto the surface and painting will not be applied.

Visibility collision set to Block

6. Set Up the Mesh Material

Open the mesh material and set up the Mesh Painting material function correctly.

For the normal setup, connect BaseColor, Metallic, Roughness, and Brush Emissive to the matching material outputs. Brush Emissive is required for the on-mesh brush area preview.

For more information about the material setup, see Material Setup.

Mesh Painting material function connected to a material

7. Add the Painting Controller

Go to the player pawn, character, or controller class that will handle painting input, then add PaintingModeControllerComponent.

This component handles paint mode input, brush settings, brush preview, color picking, camera behavior, and multiplayer paint command submission.

PaintingModeControllerComponent added to the player character

8. Optional: Paint Target Filter

You can leave PaintTargetComponents empty on the controller. In that case, the controller can paint any valid RuntimeMeshPaintTargetComponent it hits.

If you fill PaintTargetComponents, painting is limited to only the target components in that list.

9. Enter Paint Mode

Start paint mode with the default toggle input or by calling EnterPaintingMode.

When setup is correct, the color picker opens, the brush preview follows the mesh surface, and painting applies color to the runtime paint texture.

Optional: Control Modes

The controller includes a Control Mode option:

  • Character Lock locks the normal character look input while paint mode is active and uses the plugin's painting camera controls.
  • Simple keeps the setup lighter for custom pawns, drone-style cameras, or cases where you do not want character movement handling from the plugin.
  • None disables the plugin input handling. Use it only when you want to drive painting manually from your own Blueprint or C++ code.

Painting controller control mode

Optional: Ready Input Assets

If bLoadDefaultInputAssets is enabled, the component loads the plugin's ready-to-use input assets:

  • /MeshPaintingCore/Input/IMC_PaintingMode
  • /MeshPaintingCore/Input/IMC_PaintingModeToggle

Default quick controls:

  • P toggles paint mode. If bAutoCreateColorPickerWidget is enabled, the color picker menu opens when paint mode starts.
  • Left Mouse paints under the cursor.
  • Space picks the color under the cursor.
  • Middle Mouse + Drag orbits the painting camera.
  • Shift + Middle Mouse + Drag pans the painting camera.
  • Ctrl + Mouse Wheel adjusts brush size.
  • Mouse Wheel zooms the camera in Character Lock.
  • W/A/S/D moves the character in Character Lock.

That's all you need for a basic runtime paint test. If your project needs multiplayer, custom materials, input changes, or advanced brush behavior, continue with the other documentation pages.

Runtime Mesh Painting documentation.