allows you to move the creation
a conventional inertial engine consumes 1 battery and 1 gasoline per second, a creative one does not require fuel
can move unlimited masses at very high speeds
it can work in two modes. normal and raw
in normal mode, you are "magnetized" to the activation point and will return to it even if something moves you, and with the help of QWEW you can move the magnetization point
in raw mode, you just send pulses
component name - inertialEngine

methods:

            --example in normal mode

local wasd = getComponent("wasd")
local inertialEngine = getComponent("inertialEngine")

inertialEngine.setActive(true)
inertialEngine.setRawMovement(false)
inertialEngine.setStableMode(1)

local speed = 1
local rotateSpeed = math.rad(5)

--------------------------

local function up()
    inertialEngine.addPosition(sm.vec3.new(0, 0, speed))
end

local function down()
    inertialEngine.addPosition(sm.vec3.new(0, 0, -speed))
end

local function forward()
    inertialEngine.addPosition(sm.vec3.new(speed, 0, 0))
end

local function back()
    inertialEngine.addPosition(sm.vec3.new(-speed, 0, 0))
end

local function left()
    inertialEngine.addPosition(sm.vec3.new(0, speed, 0))
end

local function right()
    inertialEngine.addPosition(sm.vec3.new(0, -speed, 0))
end

--------------------------

local function _up()
    inertialEngine.addRotation(sm.vec3.new(0, -rotateSpeed, 0))
end

local function _down()
    inertialEngine.addRotation(sm.vec3.new(0, rotateSpeed, 0))
end

local function _left()
    inertialEngine.addRotation(sm.vec3.new(0, 0, rotateSpeed))
end

local function _right()
    inertialEngine.addRotation(sm.vec3.new(0, 0, -rotateSpeed))
end

--------------------------

local engineStop = false
function callback_loop()
    if _endtick or engineStop then
        inertialEngine.setActive(false)
        return
    end

    if inertialEngine.getOffset() > 15 then --if the target position is further from the real one by more than 15 meters, it can be concluded that a collision has occurred and it is worth turning off the engine
        inertialEngine.setActive(false)
        engineStop = true
        return
    end
    
    if wasd.isSeated() then
        forward()
    end

    if wasd.isW() then
        _up()
    elseif wasd.isS() then
        _down()
    end

    if wasd.isA() then
        _left()
    elseif wasd.isD() then
        _right()
    end
end