Glass that starts out broken
From Valve Developer Community
This tutorial assumes you already know how to create breakable glass. If not, follow that tutorial first.
[edit]
First method
This method consists on breaking the glass with the help of an explosion that occurs once the map is loaded.
- Make a func_breakable_surf with a frame around it (as if you are making a normal breakable window).
- Set up an env_explosion in the middle of the window, then change the options as follows:
| Class: env_explosion | ||
| Keyvalues | Comments | |
| Name | <name> | <name> is whatever name you wish to give to this entity |
| Magnitude | 1 | |
- Then in the flags tab, change the flags as follows:
| Flag | Comments | |||
| No fireball | |||
| No smoke | |||
| No decal | |||
| No sparks | |||
| No sound | |||
| No fireball smoke | |||
| No particles | |||
| No Dlights | |||
- Set up a logic_auto near the env_explosion (it doesn't matter where you put it, but I recommend that you put it in a convenient place)
- Change the entity outputs for the logic_auto as follows:
| My output | Target entity | Target input | Parameter | Delay | Only once | Comments | ||
| OnMapSpawn | <name> | Explode | Yes | <name> is the name you gave the entity in the third step above | ||||
- Then in the flags tab, change the flags as follows:
| Flag | Comments | |||
| Remove on fire | |||
- Test your map! When it loads the env_explosion will break the glass leaving the jagged glass edges on the side of the frame.
[edit]
Alternative method
This method consists on setting the logic_auto entity to directly shatter the glass once the map is loaded, which eliminates the need of creating an explosion.
- Name the func_breakable_surf you created in step 2 above.
- Don't create the env_explosion entity in step 3 above.
- Do create the logic_auto entity in step 5 above.
- Change the entity outputs for the logic_auto as follows:
| My output | Target entity | Target input | Parameter | Delay | Only once | Comments | ||
| OnMapSpawn | <name> | Shatter | 0.5 0.5 128 | Yes | <name> is the name you gave the func_breakable_surf entity | |||
- Adjust the parameter above as desired. Changing the size of the third number (128) will change how much of the window is broken.

