The Spring Creator sale is here! Save up to 70% on select products now through April 18.

Runtime Vertex Color Paint & Detection Plugin

Alex River - Code Plugins - Sep 6, 2022

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

On Sale$29.99
$20.99Sign in to Buy
  • 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 Detect, Paint and Remove Vertex Colors in Runtime on Static, Skeletal, Spline, Dynamic and Instanced Meshes such as Foliage, in several different ways that can enable New Mechanics, Game Modes or incredible attention to detail!

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

With Detect you can Get All Vertex Colors, Get Colors Within Area, or Get Closest Vertex Data 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.

The Plugin supports Multithreading which makes it possible to perform multiple tasks at the same time on heavy meshes without significant performance loss! Also includes a Rapid Json Module so you can Serialize & De-Serialize data up to 5x faster, and get vertex colors as Serialized String.



-Compare Colors to Color Snippet

-Instanced Mesh / Foliage

-Dynamic Mesh Component

-Geometry Collection (Experimental 5.3 Editor Only)

-Graffiti, Whiteboard & Paper Painting

-Vehicle and Paint on Wheel

-Dry Surfaces where the Sun Hits - Dry Character where the Sun Hits

UDS: Weather Example Project - UDS + SlayAnimation - UDS + Paint at Random Vertices - Paint where Rain Hits

-Unreal Water

-Paint Circles


-Snow Melting

-Fire Spread

-Mario Galaxy x Epic Mickey

-Rolling Around in Filth

-Optimized Particle Painting using Randomization

Performance Showcases

-Paint Task Speed

-Painting on 980k Vertices

-Painting on 50k Vertices 5 LODs

User Showcases

-Crazy Mikes Skeletal Mesh Procedural Deforming

-3D人-3dnchus Particle

-WowzThirds Line of Sight

-Peter Gubins Electricity


-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 the % of each channel/physics surface and a lot 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

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

Post Launch Added Features

-Get Colors Within Area

-Paint Group Snippets

-Compare Colors to Color Snippet

-Instanced Mesh / Foliage Support

-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 Array of Colors.

-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

+ Much More


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

-Geometry Collection is 5.3, Experimental & Editor Only

Technical Details



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

Runtime Vertex Painting

  • 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 & Group Snippets
  • Directly Set Mesh Component Colors using Color Array or Serialized String.

  • Affect Chaos Cloth Physics
  • 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