-
Notifications
You must be signed in to change notification settings - Fork 6
User's Guide ‐ Object Paint
Cvoxalury edited this page Oct 23, 2025
·
1 revision
Source Level Editor 2.104
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. 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:

- "Bramble and shrub (static") is what shows in the tool's type list. Give this a descriptive enough name;
-
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; - 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;
- 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.

- Type: this drop-down list is populated from the script file, scripts\editor\object_paint_test.txt;
-
Mode: there are four modes:
- 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;
- 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;
- 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;
- 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.
- Density: works as a probability check for whether an entity will be placed on each grid position. 100% means it will always be placed;
- Grid Size: the spacing values override;
- Use Grid: updates the above values with the current grid size;
- Use Grid Size from Definition: if checked, the script file will define the spacing; otherwise the current grid size will;
- Random Yaw: if checked, placed entities will be randomly rotated around the Z axis;
- 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.