wall_blast.procGraph
A charge blowing a breach through a stone block wall, on a 9.6 s loop. The wall stands whole, a fireball bursts from its face a second in, the blocks around the breach are thrown out as tumbling, glowing debris with a spray of sparks, a shock ring runs out across the ground, and…
wall_blast
A charge blowing a breach through a stone block wall, on a 9.6 s loop. The wall stands whole, a fireball bursts from its face a second in, the blocks around the breach are thrown out as tumbling, glowing debris with a spray of sparks, a shock ring runs out across the ground, and dust and smoke roll out and settle. Over the first fifth of a second of the next loop the breach knits back in.
Everything is a function of the graph clock modulo the loop, so it repeats with no solver ever
restarting. The wall runs along x at z = 8 in the generator's own space, and its blocks and
debris are drawn with the blast_stone shader, the fire, smoke and dust with blast_puff, the
sparks with blast_spark and the shock ring with blast_shock.
-- `graph` is this graph's reference: the AssetRef `asset.resolve` or a search returns for it.
local e = entity.spawn("wall_blast", { position = { 0, 0, 0 } })
e.component.add("Generator", { graph = graph, playOn = "load", ending = "loop" })
| Output | What it draws |
|---|---|
stone | The wall's blocks, the breach's blocks while they stand, and the debris |
fire | The fireball at the wall face |
sparks | Sparks thrown out with the debris |
shock | The shock ring on the ground |
smoke | Smoke rising from the breach |
dust | Dust rolling out across the ground |
light | The light of the blast |
The timeline has no end and plays at 60 fps.
Interface
What this asset declares: the schema it conforms to, what it exposes, and the rendered structured payload.
conforms to
zero/source-extract/v2wall_blast: a charge blowing a breach through a stone block wall, on a 9.6 s loop. The wall stands whole, a fireball bursts from its face a second in, the blocks around it are thrown out as tumbling debris with sparks, a shock ring runs across the ground, and dust and smoke roll out and settle before the breach knits back in for the next blast. Everything in the blast is a function of the graph clock modulo CYCLE, so it loops without ever restarting a solver: births are animated-rate pulses, the wall's hidden/visible state is an animated value, and every look is read off a particle's own life. Coordinates: the wall runs along x at z = WZ; the camera looks down +z.
pulse(t0: ?, dur: ?, count: ?) → void
| arg | type | description |
|---|---|---|
| t0 | ? | |
| dur | ? | |
| count | ? |
nm(p: ?) → void
| arg | type | description |
|---|---|---|
| p | ? |
force(f: ?) → void
| arg | type | description |
|---|---|---|
| f | ? |
fm(op: ?, a: ?, b: ?) → void
| arg | type | description |
|---|---|---|
| op | ? | |
| a | ? | |
| b | ? |
attr(name: ?, stride: ?) → void
| arg | type | description |
|---|---|---|
| name | ? | |
| stride | ? |
rnd(lo: ?, hi: ?, seed: ?) → void
| arg | type | description |
|---|---|---|
| lo | ? | |
| hi | ? | |
| seed | ? |
comb(x: ?, y: ?, z: ?, w: ?) → void
| arg | type | description |
|---|---|---|
| x | ? | |
| y | ? | |
| z | ? | |
| w | ? |
sw(f: ?, pat: ?) → void
| arg | type | description |
|---|---|---|
| f | ? | |
| pat | ? |
vm(op: ?, a: ?, b: ?, scale: ?) → void
| arg | type | description |
|---|---|---|
| op | ? | |
| a | ? | |
| b | ? | |
| scale | ? |
setattr(dom: ?, name: ?, field: ?) → void
| arg | type | description |
|---|---|---|
| dom | ? | |
| name | ? | |
| field | ? |
ramp(tag: ?, ty: ?, keys: ?, by: ?) → void
| arg | type | description |
|---|---|---|
| tag | ? | |
| ty | ? | |
| keys | ? | |
| by | ? |
remap(f: ?, a: ?, b: ?, c: ?, d: ?) → void
| arg | type | description |
|---|---|---|
| f | ? | |
| a | ? | |
| b | ? | |
| c | ? | |
| d | ? |
const(v: ?) → void
| arg | type | description |
|---|---|---|
| v | ? |
draw(dom: ?, mesh: ?, mat: ?, shadows: ?) → void
| arg | type | description |
|---|---|---|
| dom | ? | |
| mesh | ? | |
| mat | ? | |
| shadows | ? |
sprites(tag: ?, pts: ?, mat: ?, o: ?) → void
Camera-facing soft sprites (fire / smoke / dust).
| arg | type | description |
|---|---|---|
| tag | ? | |
| pts | ? | |
| mat | ? | |
| o | ? |
streaks(tag: ?, pts: ?, o: ?) → void
Velocity-aligned streaks (sparks / embers).
| arg | type | description |
|---|---|---|
| tag | ? | |
| pts | ? | |
| o | ? |
course(tag: ?, nx: ?, rows: ?, yc: ?) → void
| arg | type | description |
|---|---|---|
| tag | ? | |
| nx | ? | |
| rows | ? | |
| yc | ? |
blockAttrs(pts: ?) → void
blocks: unit box scaled to a block, a whisker of yaw, per-block tint/seed
| arg | type | description |
|---|---|---|
| pts | ? |
rockDress(pts: ?) → void
| arg | type | description |
|---|---|---|
| pts | ? |
newCurl0(tag: ?) → void
| arg | type | description |
|---|---|---|
| tag | ? |
flow(K: ?) → void
Every solver gets its OWN copy of every field node it reads. Field kernels are cached by content and a node wired into two solvers (or two generators of one graph) was compiled for only one of them, which then silently lost the force: the plume would sit on the ground in some runs and rise in others.
| arg | type | description |
|---|---|---|
| K | ? |
newCurl(tag: ?, freq: ?, amp: ?, seed: ?) → void
| arg | type | description |
|---|---|---|
| tag | ? | |
| freq | ? | |
| amp | ? | |
| seed | ? |
shock(tag: ?, delay: ?, strength: ?, maxR: ?, seed: ?) → void
shockwave discs
| arg | type | description |
|---|---|---|
| tag | ? | |
| delay | ? | |
| strength | ? | |
| maxR | ? | |
| seed | ? |
out(name: ?, ...: ?) → void
One output per material: a geometry merged on the device may carry only one Material.
| arg | type | description |
|---|---|---|
| name | ? | |
| ... | ? |
wall_blast: a charge blowing a breach through a stone block wall, on a 9.6 s loop. The wall stands whole, a fireball bursts from its face a second in, the blocks around it are thrown out as tumbling debris with sparks, a shock ring runs across the ground, and dust and smoke roll out and settle before the breach knits back in for the next blast.kindeffectSub-parts
Everything contained inside this part. Assets are composite children (clickable cards). Files are leaf payloads. Expand any row to view its source.
Showing up to 3 levels deep. Open a part to see what it holds further down.
Problems
Everything affecting this asset right now: its own problems, anything wrong inside it, and problems on its direct dependencies.
agent_score is exposed.+ quality × 0.35
+ performance × 0.25
± compat factor
Usability ratings
Did the part work as advertised when consumers tried to drop it in. Separate from upvotes: those are taste; this is "did it function".
Scoped to this part · feeds back into the world's score.