local world = require("world") local min = math.min world:addEntity({ gravity = -300 }) local gravities = world:filteredSystem("gravities", { gravity = T.number }) world:filteredSystem("changeGravity", { changeGravityTo = T.number }, function(e, _, _) for _, ge in pairs(gravities.entities) do ge.gravity = e.changeGravityTo end end) world:filteredSystem("fall", { velocity = T.XyPair, mass = T.number }, function(e, dt) for _, ge in pairs(gravities.entities) do e.velocity.y = min(400, e.velocity.y - (ge.gravity * dt * e.mass) - (0.5 * dt * dt)) end end)