local module = {} local cool_rate = 0.25 function module.new(this,balloon,context) this.heat = 0 end function module.run(this,balloon,context) this.heat = this.heat * (1 - cool_rate * context.delta) -- wrong but idc local force = Vector3.new(0,1,0) * (1-(1/(1+this.heat))) * 1000 * context.delta * balloon.Size.Magnitude balloon:ApplyImpulseAtPosition(force,balloon.Position) context.replicate(this,balloon,module,this.heat) return true end function module.replicate(this,balloon,context,heat) this.heat = heat end module.update = module.new module.messages = { flux = function(this,balloon,context,heat) this.heat = this.heat + heat end, } module.messages.default = nil module.manifest = { "LongBalloon", "RoundBalloon" } return module