Skip to content

User's Guide ‐ Object Paint

Cvoxalury edited this page Oct 23, 2025 · 1 revision

Source Level Editor 2.104

Tool Overview

Object Paint is a new tool in Source Level Editor (SLE), derived from the 'Sprinkle Tool' from the 2015 Hammer (i. e. CS:GO Hammer).
Its main application lies in quickly populating terrain with clusters of props taken from user-defined presets.
Its secondary application can be seen in quickly placing specific entities with specific settings while snapping them to the grid.

Scripting the tool

Object Paint is a script-based tool. All of its settings are loaded from a file scripts\editor\object_paint_test.txt which needs to be placed in your game/mod. A sample file is provided with SLE, found in [editor install location]\level_editor\cfg\.
Here's an example of formatting a data block for the tool:


  1. "Bramble and shrub (static") is what shows in the tool's type list. Give this a descriptive enough name;
  2. base block defines the class of the entity (classname; there can only be one per type) and the default spacing (grid [X] [Y]);
    you can also specify z_offset [integer] to automatically raise the entities along the Z axis, if their origin lies above the 'root' of the model;
  3. the number-based blocks, in this case 20, 8 and 1, refer to the probability of placement of each object variation. The highest 'wins' over lower ones;
  4. the contents of each number-based block contains the keyvalues, same as you'd see in Object Properties with the 'Smart' editing off; in the sample's case, the shrubs are given non-solid collision, disabled vertex lighting (as they're not large enough to benefit from it), and predefined fade distances adequate for the props their size.

Using the tool

Switch to the tool by pressing the Tools sidebar button with a flower (between Block Tool and Face Edit Tool) or using the hotkey (default: Ctrl+Alt+S). This will open its dialogue.

  1. Type: this drop-down list is populated from the script file, scripts\editor\object_paint_test.txt;
  2. Mode: there are four modes:
    1. Additive simply places the entities continuously. Use this sparingly, lest you may quickly run into performance hit, slow down the editor, or even crash it;
    2. Subtractive works similarly to an eraser, removing objects within the tool's radius that match the base's classname. Use this with caution as it only checks the classname - you man inadvertently remove already-placed entities like prop_statics;
    3. Replace places new entities but does not let them 'accumulate' like Additive does; if their position matches they will be replaced, keeping the total count limited. Like Replace, this may unintentionally replace other entities;
    4. Overwrite looks for already-placed entities in the tool's radius and swaps them with new ones; this mode can only replace entities placed with the tool.
  3. Density: works as a probability check for whether an entity will be placed on each grid position. 100% means it will always be placed;
  4. Grid Size: the spacing values override;
  5. Use Grid: updates the above values with the current grid size;
  6. Use Grid Size from Definition: if checked, the script file will define the spacing; otherwise the current grid size will;
  7. Random Yaw: if checked, placed entities will be randomly rotated around the Z axis;
  8. Align Objects On Surface: if checked, the entities will be placed perpendicular to the terrain; does not work if Random Yaw is on.

Note: holding Ctrl while using Object Paint will work as an eraser, removing the placed objects (and only them).


The tool's handle, dialogue, and placed entities.

Clone this wiki locally