Paint prefabs directly into your scene with randomized transforms, scale, and per-instance color variation. Everything needed to start painting is included and ready to use out of the box.
Shift + 1–0 / Numpad) and instant deselection (Shift + D) with dynamic number badges for on-the-fly prefab togglingDPT_ShaderVariation for per-instance recoloring with zero extra draw callsOpen the painter and start placing assets in just a few steps.
Ctrl + Left Click and drag across scene surfaces to paint prefabs.Ctrl + Z and Ctrl + Y freely.
The palette is where you manage which prefabs the painter can place. It supports multiple groups, saveable presets, and several ways to add and remove assets.
| Control | Description |
|---|---|
| Active Palette File & Save As New | Saves your current palette as a reusable project asset. Load different palettes via the object field to switch between prop sets or biome themes instantly. |
| Thumbnail Grid | Shows icon previews for all loaded prefabs. Hovering over any thumbnail renders an expanded, high-resolution preview card that automatically rotates the object. Right-click a thumbnail to open the prefab, create a variant, or toggle its active state in the palette. |
| Hotkeyed Item Selection [Shift + 1–0] & Deselect All [Shift + D] | When a single prefab group is active, the first 10 prefabs display number badges (1–0) over their thumbnails. Press Shift + [1–0] (or 1–0 directly while holding Ctrl + Alt in Line/Path mode) to toggle individual prefabs in or out of your active selection on the fly, even while actively drawing lines or paths. Full Numpad key support is also included. Pressing Shift + D instantly clears all selected items in your palette without interrupting your workflow. Swapping groups preserves your selections and shifts the badges to the new group's items. |
| Spawn Weight | Select one or more prefabs in the palette to reveal the Selected Item Settings panel. Use the Spawn Weight slider or field to control how frequently that prefab appears relative to others during painting — a value of 2 makes it spawn twice as often as a prefab weighted at 1. A small w badge on the thumbnail indicates a non-default weight is active. Weights are saved with the palette file. |
| Groups & Overrides | The first group acts as your main active palette. Add more groups with + Add Group to organise assets by type, biome, or any other category. Press 1–9 / 0 to switch between groups quickly. You can also configure specific overrides for Spawn Layers, Paintable Layers, Parent Objects, and Terrain Splatmap Filters on a per-group basis for complex multi-group setups. |
| Marquee Selection | Click and drag over the thumbnail grid to select multiple prefabs at once. Use this to bulk-move or remove a set of assets. |
| Drag to Scene | Drag any prefab from the palette directly into the Scene view for manual one-off placement. |
| Drop to Remove | Drag selected prefabs into this zone to remove them from the palette. |
Select between Paint, Erase, Recolor, and Measure tabs at the top of the panel. Pressing the hotkey for Erase, Recolor, or Measure while already in those modes will intelligently flip you back to Paint mode. Use the large green button to start painting and the red button to stop.
| Mode | How It Works |
|---|---|
| Paint Mode | The default mode. Hold Ctrl + Left Click and drag to continuously paint prefabs onto surfaces within the brush radius. A spawn count estimate (~N) is shown when Scatter Mode is active. |
| Scatter Mode [O] | Places a large number of prefabs randomly across the full brush area in a single stroke. Ideal for painting dense ground cover like grass or rocks across wide areas. Toggle it on or off with O. |
| Line Mode | Hold Ctrl + Alt + Drag to paint prefabs in a straight line from your starting point. Line Mode retains physical boundary memory across continuous clicks so corners and multi-segment lines automatically stitch together end-to-end without leaving leftover gaps or overlaps. You can even swap prefab groups mid-action to seamlessly connect different object types like walls and gates. |
| Grid Mode | Hold Ctrl + Shift + Drag to paint prefabs snapped to a regular grid pattern. Good for structured layouts like floor tiles, crates, or crops. Grid sizing is completely decoupled from the brush size, and you can click and drag the mouse to dynamically increase grid bounds. |
| Paint Path [G] | Places prefabs along a smooth curved path. Press G to enter path mode, then Ctrl + Left Click to place nodes. Press G again or Enter to finish. The engine uses chord-length iterations to calculate exact physical dimensions, perfectly locking objects like walls end-to-end even around sharp bends. You can swap prefab groups mid-action, and each segment independently tracks assigned prefabs on the fly. You can also click any existing path node handle in the Scene View to select it and retroactively toggle items or groups in your palette to update that segment instantly! |
| Measure Mode [Q / Shift+Q] | Interactive measurement tools for checking scene distances. Press Q for Line measuring and Shift + Q for Grid measuring. Measurements persist on-screen when switching back to other modes until ESC is pressed. |
| Setting | Description |
|---|---|
| Live Prefab Previews [F] | Renders true 1:1 holographic previews of the prefab in the scene exactly as it will be placed, allowing you to preview rotation, scale, and placement logic prior to clicking. Toggle on or off with F. |
| Paintable Layer | Only surfaces on this layer will receive prefabs. Make sure your terrain or ground mesh uses a matching layer, otherwise raycasts will pass through and nothing will be placed. |
| Use Terrain Splatmaps | When painting on Unity Terrains, filters prefab spawning by a specific terrain texture layer (e.g., grass, dirt, rock) and a minimum blend weight threshold. This prevents unwanted spawning (such as grass on dirt roads) across all placement modes, with full support for real-time live preview culling and per-group overrides. |
| Brush Shape [C] | Switches between Circle and Square brush footprints. Press C to cycle. |
| Brush Radius [ [ / ] ] | Controls the size of the brush area. Use [ to shrink and ] to grow the radius interactively in the scene. |
| Randomize Placement [U] | When enabled, prefabs are placed at random positions within the brush radius rather than exactly at the cursor. Applies to all placement modes (Paint, Line, Grid, etc.), not just scatter mode. Toggle with U. |
| Min Spacing [M / Shift+M] | Sets the minimum distance between placed objects. Use M to step the value up and Shift+M to step it down. When Smart Clearance is on, object size is also factored in — see Transform & Hierarchy. |
| Spawn Rate [X / Shift+X] | Controls how quickly prefabs are placed during a held drag. Lower values place objects faster. Use X to increase the interval and Shift+X to decrease it. |
| Stretch Spacing To Fit [S] | Only visible in the editor window when Path Paint is active. If true, slightly stretches or squashes spacing to perfectly close a path loop. Turn OFF for rigid modular tiles (like roads) to prevent seams. |
| Brush Handle Color | Changes the color of the brush circle in the scene view. Adjust this if the default color is hard to see against your terrain. |
Per-instance visual variation using the DPT shader pipeline. These options add variety across painted objects without creating extra materials or breaking GPU batching.
| Setting | Description |
|---|---|
| Randomize Brightness [B] | Applies a random brightness offset to each placed prefab via the DPT_ShaderVariation component. Helps break up flat, uniform lighting across repeated assets. |
| Apply Color Tint [V] | Applies a color tint and optional HSV variance to each placed prefab. Useful for adding natural color variation to foliage, rocks, or any asset using the DPT shader. |
Controls how placed prefabs are oriented, scaled, named, and organised in the scene hierarchy.
| Setting | Description |
|---|---|
| Align to Ground [N] | Rotates each placed prefab so its up axis matches the surface normal it lands on. Useful for objects on slopes or uneven terrain. |
| Randomize Y Rotation [Y] | Rotates each placed prefab randomly around its vertical axis. Helps break up repetitive silhouettes when painting many of the same asset. |
| Randomize Scale [L] | Applies a random scale to each placed prefab between a minimum and maximum value you define. When disabled, a single fixed scale slider is shown instead. |
| Fixed Scale | Active when Randomize Scale is off. Applies a uniform scale to every placed prefab. |
| Allow Stacking [K] | When enabled, prefabs can be placed on top of previously painted objects — useful for layering props, such as painting moss or debris on top of rocks. When disabled, the painter will not place objects on other painted children of the same parent. |
| Place By Collider [P] | Positions prefabs based on the bottom of their collider bounds rather than their pivot point. This prevents objects with off-centre pivots from sinking into the ground. For prefabs without colliders, a temporary collider is generated automatically. |
| Smart Clearance [I] | Automatically accounts for each prefab's physical size when spacing objects. This prevents overlapping even when Min Spacing is set low. Increasing Min Spacing adds extra gap on top of the object's natural footprint. |
| Check Clearance Toggle [D] | Toggles clearance checking on or off. Turning this off skips overlap detection entirely, allowing for vastly improved performance during rapid scatter placement when clipping isn't a concern. Toggle with D. |
| Use Physics Fall [H] | After placement, runs a short editor-side physics simulation so prefabs fall and settle naturally under gravity. Good for filling uneven terrain, rock piles, or any scene where you want objects to rest realistically rather than float at the surface hit point. The maximum allowed padding spawn offset has been increased so objects can fall from higher up. |
| Post-Placement Rotate [J] | After placing a prefab or group (via Scatter, Line, Grid, or Path), the tool pauses and lets you rotate the result by moving your mouse. The rotation pivots around the centre of the placed group and projects grounding onto the surface in real time. Click to confirm. |
Options for organizing painted objects, overriding object settings, and injecting components at paint time.
| Setting | Description |
|---|---|
| Parent Object & Name | All painted prefabs are placed as children of the assigned parent object. Set a name here and click New to create a fresh parent. The tool names each placed child sequentially using your chosen naming convention. You can also override Parent Objects per-group in the palette settings. |
| Naming Convention | Sets the prefix or pattern used when naming each spawned object. Objects are numbered sequentially—for example Rock_001, Rock_002, and so on. |
| Override Tag & Layer | Forces all placed objects to use the tag and layer you specify here, ignoring the values stored on the source prefab. You can also choose whether child objects are included, and set specific overrides per-group in the palette. |
| Script Component Injection |
Attach custom C# components automatically as prefabs are painted without creating prefab variants.
|
The DPT shader uses a packed texture format that combines metallic, occlusion, detail, and smoothness data into a single file. You can create these using the built-in packer at Tools → DPT Games → Texture Channel Packer.
1.0 - value). Use this to convert a roughness map into a smoothness map.(R + G + B) / 3). Enable this if your source map is a 24-bit RGB file with no alpha channel.Before packing, make sure all source textures have these settings in the Unity Inspector:
All shortcuts are active while the painter is open and painting is enabled. They do not interfere with Unity's built-in editor shortcuts.
| Shortcut | Action |
|---|---|
| ' | Toggle painting on / off |
| F | Toggle Live Prefab Previews (1:1 holographic placement preview) |
| Ctrl + Left Click | Paint prefabs (hold and drag to paint continuously) |
| Ctrl + Right Click | Erase painted objects under the brush |
| Ctrl + Alt + Drag | Line mode — paint along a straight line (retains boundary memory for continuous stitching) |
| Ctrl + Shift + Drag | Grid mode — paint snapped to an independently scalable grid |
| G | Enter / finish Paint Path mode (chord-length iteration) |
| Q | Enter Measurement Mode — Line measuring tool |
| Shift + Q | Enter Measurement Mode — Grid measuring tool |
| Enter | Finish and populate the current path |
| ESC | Clear current path / exit persistent Measurement Mode |
| S | Toggle Stretch Spacing To Fit, only viewable when Path Paint is on |
| [ / ] | Decrease / increase brush radius |
| C | Cycle brush shape (Circle / Square) |
| O | Toggle Scatter mode |
| U | Toggle Randomize Placement (applies to all modes) |
| M / Shift+M | Step Min Spacing up / down |
| X / Shift+X | Step Spawn Rate up / down |
| N | Toggle Align to Ground |
| Y | Toggle Randomize Y Rotation |
| L | Toggle Randomize Scale |
| K | Toggle Allow Stacking |
| P | Toggle Place By Collider |
| I | Toggle Smart Clearance |
| D | Toggle Check Clearance (disable for fast scatter placement) |
| H | Toggle Use Physics Fall |
| J | Toggle Post-Placement Rotate |
| B | Toggle Randomize Brightness |
| V | Toggle Apply Color Tint |
| 1–9 / 0 | Switch palette group (recalculates continuous Line/Path spacing on the fly) |
| Shift + 1–0 / Numpad | Toggle individual prefabs (1–10) in or out of active selection on the fly (can also press 1–0 directly without Shift while holding Ctrl+Alt in Line/Path mode) |
| Shift + D | Deselect all currently selected palette items |
Ctrl + Z to undo. You can also switch to Erase mode and use Ctrl + Right Click to remove objects individually.For all technical assistance, bug reports, asset configuration help, and general support, please reach out via email using the Contact Form. This is the primary and most reliable way to get help with any problems you encounter with the packages.
You can also use this form to inquire about custom freelance technical art services. If your project requires external 3D models to be integrated into the DPT ecosystem—including bespoke vertex-data packing, procedural wood grain mapping, GPU wind systems, or game-ready LOD budgeting—get in touch to discuss your specific needs and availability.