Engine icon indicating copy to clipboard operation
Engine copied to clipboard

Feature: Toggleable VisGroups in Instances

Open HugoBDesigner opened this issue 4 months ago • 1 comments

Which component should be improved?

Hammer

Describe your feature suggestion in more detail

When working with instances, we often want to apply small changes and variations to them, and for the most part – such as with brush geometry, static props, or larger groups of entities – there isn't a viable option to change them without creating a new copy of the map file with those variations applied. This often creates issues when you need to change aspects of the shared base of those instances, but also don't want to create various nested instances for otherwise simple stuff.

My proposal is to allow mappers to remotely toggle the VisGroups within each individual instance, such that even if I have two or more instances with the same VMF, they can each have their own unique features.

Here's a practical example: suppose you have an "observation room" instance. You may want to toggle its lights on or off, or have its window cracked or intact, or have certain chair/table presets, all without creating multiple separate instances or making it out of logic/comp entities and func_instance_parms (which, from my own experience, isn't always applicable). If I were to do maintenance to the base – like changing the wall textures, or the room geometry – I wouldn't want to have to repeat this across all the separate map files, or have to create multiple maps with just the variable elements.

HugoBDesigner avatar Aug 18 '25 11:08 HugoBDesigner

For some prior art, Source 2 has the ability to toggle objects in prefabs, though I'm not sure if you can toggle entire visgroups. It's done by giving every entity a 'force hidden' keyvalue, which when true hides the ent in Hammer. That wouldn't work on world geometry though.

TeamSpen210 avatar Aug 19 '25 05:08 TeamSpen210