Runtime Vertex Color Paint & Detection Plugin

Alex River - Code Plugins - Sep 6, 2022

A Plugin that allows the user to Paint, Remove and Detect Vertex Colors in Runtime in several different ways. Can enable Extreme Audio-Visual Fidelity, as well as new Game Modes and Gameplay Possibilities!

  • Supported Platforms
  • Supported Engine Versions
    4.27, 5.0 - 5.3
  • Download Type
    Engine Plugin
    This product contains a code plugin, complete with pre-built binaries and all its source code that integrates with Unreal Engine, which can be installed to an engine version of your choice then enabled on a per-project basis.


This plugin makes it possible to Paint and Remove Vertex Colors in Runtime on Static, Skeletal, Spline and Dynamic Meshes in several different ways that can enable New Mechanics, Game Modes or just incredible attention to detail!

You paint on Geometry Collection Meshes as well, but it is 5.3 Editor Only and quite Experimental.

You can also Detect Vertex Colors by getting the Data of the Closest Vertex to a Hit Location such as Vertex Color, Position, Normal, Material, UVs, Native EPhysicsSurface, as well as Compare colors if you want to check if a specific Pattern or similar has been painted.

You can also get the Colors of Each Bone, and the Average Color and Physics Surface Within an Area, so you can run logic in case the player has for instance Painted / Removed Vertex Colors on the Majority of an area.

You can also get the Estimated Color and Physics Surface at the Actual Hit Location, which is highly useful if the Mesh has few vertices. Includes a Rapid Json Module so you can Serialize & De-Serialize data up to 5x faster, and get vertex colors as Serialized String.

Supports Multithreading so you can paint on meshes with an extremely high vertex count with the FPS barely being affected!


-PrismaticaDev's Showcase

-Dynamic Mesh Component Showcase

-Geometry Collection Showcase (Experimental 5.3 Editor Only)

-Graffiti, Whiteboard & Paper Painting Showcase

-Vehicle and Paint on Wheel Showcase

Line of Sight Condition: Dry Surfaces where the Sun Hits - Dry Character where the Sun Hits - Combined with UDS

UDS: UDS + Plugin Tutorial - UDS + Paint at Random Vertices

-Unreal Water Showcase

-Paint Circles

-UIWS Showcase

-Snow Melting Showcase

-Fire Spread Showcase

-Mario Galaxy x Epic Mickey Showcase

-Rolling Around in Filth Showcase

-Optimized Particle Painting using Randomization Showcase

Performance Showcases

-Paint Task Speed Showcase

-Painting on 980k Vertices FPS Showcase

-Painting on 50k Vertices 5 LODs FPS Showcase

User Showcases

-Crazy Mikes Skeletal Mesh Procedural Deforming Showcase

-3D人-3dnchus Particle Showcase

-WowzThirds Line of Sight Showcase

-Peter Gubins Electricity Showcase


-Porting Fire Example to a new Project

-80LV Article

Vertex Colors vs. Runtime Virtual Texture & Decals

With Vertex Colors you have the power of the Material Editor to manipulate things per Vertex like Paint/Removing Colors! This may require you to have a higher vertex count for something that may otherwise not need it like a flat floor, which ofc isn't an issue for RVTs or Decals.

Decals are also faster than painting with colors, but each Decal is also a Draw Call, which may affect performance.

With Vertex Colors we can also Detect, and not just what Physics Surface and Colors on Closest Vertex, but also what % of each channel is painted, and a lot of other more.

Using Latest Plugin with old Engine Versions

We can't update plugins for 4.27-5.0 anymore. However, you can use the latest if you have a C++ project by copying the plugin from a new version, and do some modifications, just follow this Tutorial.

For 5.0 you only have to change the engine version in the .uplugin file and re-compile.

Planned Features

-Paint up to 12 Surfaces on one Material

-Landscape Layer Info Painting in Runtime (Hopefully this is possible)

Post Launch Added Features

-Dynamic Mesh & Geometry Collection Component Support

-Override Vertex Colors to Apply. So users can create their own Paint Conditions!

-Paint Using Physics Surface. So instead of hard setting the values on RGBA, you can for instance paint Water Surface, and it applies colors to whatever channel Water is registered to. If Physics Surface Families is setup, then even if it doesn't have Water, but has child, for instance Asphalt-Water, then it can apply to that instead, or vice versa, which makes this extremely useful.

-Compare Colors to Detect Painted Pattern. So when painting/detecting, we can compare the result of those colors with a color array the player sent in.

-Paint With different types of Conditions. For instance Line of Sight, to the Sun for example to Dry Faster on parts of a wet Mesh.

-Paint Wheels Component. A component that enables you to paint the wheels of a vehicle with what it drives over, and/or paint the surface under the wheel with whatever is on it.

-Paint Entire Mesh at Random Vertices. Simulate for instance Rain or Snow by having the colors be applied randomly over the Mesh (cheaper than using Particle Collisions).


-Geometry Collection support is 5.3 & Editor Only. Not possible to override colors in build, but will hopefully come in the future!

-Spline Mesh Vertex Painting is bugged in 5.2-5.3, even in Editor Time and isn't plugin related: UE-186643

-The Plugin has no Art Assets.

Technical Details


  • Detect Get Closest Vertex Data
  • Detect Get Estimated Color at Actual Hit Location
  • Detect Get All Vertex Colors Only

  • Paint Vertex Colors at Location
  • Paint Vertex Colors Within Area
  • Paint Vertex Color on Entire Mesh or on Random Vertices Over the Entire Mesh. Great for Rain or Snow etc.
  • Create and Paint Color Snippets

  • Affect Chaos Cloth Physics (UE5 EXCLUSIVE)
  • Multithreading for greatly improved performance
  • Rapid Json Module which is up to 5x faster than the built in one. Pretty much the same module that is in my other Rapid Json Plugin, so if you own this plugin, then you don't need to buy that one.

Number of Blueprints: 5

Number of Widget Blueprints: 4

Number of C++ Classes: 52

Network Replicated: The plugin does extremely little with replication, so the user has more control of How they want things to Replicate, since all projects has different needs depending on optimization, anti cheat structure etc.

The Cloth Overlap Component is the only one that does anything with replication and has an clothOverlapEnabled Replicated bool, so if changed in Runtime, even hot joiners will get the cloth to overlap.

Supported Development Platforms: Windows, Linux, Mac