Is it a known issue that WorldView.unPuppet doesn't reap attached effects? I was testing with feature_burn, so it may be a similar issue to the unending fires when a tree gets destroyed before it burns down. p.s, note to modders: scale applies to effects.
Workaround. Requires keeping (or fetching) a complete puppet spec. Removing the fx_offset property didn't work, so maybe you could get away with {id: n, fx_offsets: []} Code: var removePuppet = function(view, puppet) { puppet.fx_offsets = [] view.puppet(puppet).then(function() { view.unPuppet(puppet.id) }) }