Counter-Strike 2 Workshop Tools/BreakableWindows: Difference between revisions
Jump to navigation
Jump to search
Note:This tutorial assumes a basic familiarity with ModelDoc Editor.
Bug:func_breakable does not spawn gibs on break in
Counter-Strike 2. It's recommended to use prop_dynamic instead [todo tested in ?]
Important:Glass material should have dynamic expressions configured, otherwise there would be no break pieces.
Tip:it is not needed to have custom model file since primitive shapes are created inside of ModelDoc
Important:Model should be facing forward in X+ direction.
Note:It will show an error and will not let you compile the model, this would be fixed by adding child notes later.
No edit summary |
No edit summary |
||
Line 60: | Line 60: | ||
== Adding Break pieces to model == | == Adding Break pieces to model == | ||
Broken glass shards are done procedurally inside of modeldoc, to do that: | Broken glass shards are done procedurally inside of modeldoc, to do that: | ||
#add '''BreakPieceEmbedded''' to model | #add '''BreakPieceEmbedded''' to model. | ||
#set the following properties: | #set the following properties: | ||
::{| class=standard-table | ::{| class=standard-table | ||
Line 79: | Line 79: | ||
| Piece Health Override|| 0 | | Piece Health Override|| 0 | ||
|} | |} | ||
{{note|It will show an error and will not let you compile the model, this would be fixed by adding child notes later.}} | |||
== Creating custom glass material == | == Creating custom glass material == |
Revision as of 21:52, 3 October 2024




example model can be found in Counter-Strike Global Offensive\content\csgo\workshop\content_examples\breakable_glass\breakable_glass_01.vmdl
Making base window model

Adding a root node
- add RenderMeshFile to model, cancel the file selection and press Keep on popup , It should appear as empty node, change RenderMeshFile Name to something like "window". This would be used as root node to add modifiers as child later. It should have the following parameters in inspector:
RenderMeshFile
Property Name Value Name window Source file <none>
Adding box primitive
- add Mesh Operation Stack node as parent of RenderMeshFile
- add Box Primitive as child of Mesh Operation Stack , set desired `Box dimensions` (x-thickness,y-width,z-height), but keep `Position` at [0,0,0], for this example, use
workshop/content_examples/breakable_glass/breakable_glass_01.vmat
material - add UV map planar custom stretch it so only single part of window texture fills model (you need to unselect this node and compile to preview how uv will look)

Adding physic properties
PhysicsHullFromRender
- add PhysicsHullFromRender with following properties:
Property Name Value Surface Property glass Collision Property window
prop_data
- add prop_data with following properties:
Property Name Value Base Prop Glass.Window Allow As Static Prop yes Health 1
This will make sure that the prop can be used as prop_physics
Adding Break pieces to model
Broken glass shards are done procedurally inside of modeldoc, to do that:
- add BreakPieceEmbedded to model.
- set the following properties:
Property Name Value Ragdoll Applies Bind Pose Root no Collision Group Debris Fade Time 3 Essential Piece yes Material Group Mode Inherit Material Index Spawn Piece Motion Disabled yes Piece Health Override 0
