Defining custom Filters in DarkRadiant
Filters can be used to hide certain parts of your map file in DarkRadiant. The filtersystem works independently from the regioning or show/hide commands. This affects the model preview window as well. The defined Filters can be toggled through the Filters menu in the menubar. You can have multiple filters active at the same time.
Open the Filter Editor from the top menu bar to define custom filters. By default, there are a couple of read-only stock filters in the list which you can't edit, but you can add new ones to that list by clicking "Add":
A filter can contain one or more Filter Rules which define what to search for and whether the matching objects should be shown or hidden. Look at this example:
The above filter has one rule, and it is searching for a material/shader name:
Type = texture Match = textures/common/something Action = hide
Any texture name matching the value in the "Match" column will be hidden, as the "Action" column decides (the Entity Key field is empty, as it is not used by texture type filters). This filter will therefore look for all caulk materials and hide them.
Let's look at the available filter types:
- entityclass: Matches against certain entity class names (like light_torchflame, worldspawn, etc.)
- entitykeyvalue: Matches against the spawnargs of entities.
- texture: Matched against the material/shader names (on primitives as well as on models)
- object: This can be used to filter patches or brushes, only two values are supported in the match field: "brush" or "patch"
Applying two or more Filter Rules
It's perfectly possible to define multiple rules for a filter, and they are all evaluated in order as listed. Adjust the order with the "Move Up" and "Move Down" buttons (and ignore the values under "Index" if they become momentarily out-of-order). Example:
The above filter has two rules:
- The first rule matches against all entity class names, so it will hide all entities. (If only this rule was present, the map would appear completely empty.)
- The second rule will match worldspawn and show it, this will undo the previous rule, but only for worldspawn.
As a result, this filter will hide all entities but leave the worldspawn entity visible.
Show Patches only
This filter hides all entities except worldspawn, and will then hide all the brushes - only the patches will be visible. (Note that this also hides any patches that belong to func_static entities or similar.)
Show Brushes only
This filter hides all entities except worldspawn, and will then hide all the patches - only the brushes will be visible. (Note that this also hides any brushes that belong to func_static entities or similar.)
Hide all *_clip Textures
Use a regular expression to match against the texture name (where ".+" means "1 or more characters"):
It will hide all textures in the textures/common/ folder ending with _clip
Hide all .ASE models
Again, use a regular expression to search for ASE:
This will match against the "model" spawnarg of entities. If any of them is of the form X.ase it will hide them. Note that the dot has a special meaning in regular expressions (it's a wildcard). To prevent it from matching against any character, you'll have to escape it, therefore the awkward-looking backslash-dot \. notation.
Hide all but Loot
Here, the regular expression includes "^" meaning "start of string", and "|" meaning "or".
Filter Name: Hide All But Loot
None of these do what I need!
The above are simple examples - if you need help defining a special filter, head over to the forums and ask in the DarkRadiant or Editor's Guild forum, chances are high that you will receive a qualified answer.