```lua
local imgui = require 'imgui'
local encoding = require 'encoding'
encoding.default = 'CP1251'

-- Конфигурационные Таблицы
local Config = {
    window = imgui.ImBool(false),
    checkboxes = {
        coordMaster = imgui.ImBool(false),
        blipFinder = imgui.ImBool(false),
        markerFinder = imgui.ImBool(false),
        govnovoz = imgui.ImBool(false),
        inCar = imgui.ImBool(false),
    },
    texts = {
        coordMaster = 'Disabled',
        blipFinder = 'Disabled',
        markerFinder = 'Disabled',
        govnovoz = 'Disabled',
        inCar = 'Disabled',
    },
    position = {
        x = imgui.ImBuffer(128),
        y = imgui.ImBuffer(128),
        z = imgui.ImBuffer(128)
    },
    sliders = {
        stepDistance = imgui.ImInt(5),
        stepDelay = imgui.ImInt(1000),
        markerDistance = imgui.ImInt(100),
        visotaGovnovoz = imgui.ImInt(100)
    }
}

-- Вспомогательные Функции
local function toggleInterface()
    Config.window.v = not Config.window.v
end

local function updateText(checkbox, textKey)
    Config.texts[textKey] = checkbox.v and 'Enabled' or 'Disabled'
end

local function getNumericPosition()
    return tonumber(Config.position.x.v) or 0.0,
           tonumber(Config.position.y.v) or 0.0,
           tonumber(Config.position.z.v) or 0.0
end

local function setPlayerCoordinates(x, y, z)
    setCharCoordinates(PLAYER_PED, x, y, z)
end

local function printDebug()
    print('Debug')
end

-- Функции Телепортации Без createSyncData
local function teleportPlayer(playerPed, targetX, targetY, targetZ, stepDistance, stepDelay)
    lua_thread.create(function()
        local currentX, currentY, currentZ = getCharCoordinates(playerPed)
        local groundZ = getGroundZFor3dCoord(targetX, targetY, targetZ)
        local deltaX = (targetX - currentX) / stepDistance
        local deltaY = (targetY - currentY) / stepDistance
        local deltaZ = (groundZ - currentZ) / stepDistance

        for i = 1, stepDistance do
            currentX = currentX + deltaX
            currentY = currentY + deltaY
            currentZ = currentZ + deltaZ

            -- Удалены все части связанные с createSyncData

            setPlayerCoordinates(playerPed, currentX, currentY, currentZ)
            wait(stepDelay)
        end
    end)
end

-- Функции Маркеров и Блипов
local function searchMarkers(posX, posY, posZ, radius, isRace)
    local baseAddress = isRace and 0xC7F168 or 0xC7DD88
    local markerStructSize = isRace and 56 or 160
    local closest = {distance = radius, x = 0.0, y = 0.0, z = 0.0}

    for id = 0, 31 do
        local markerAddress = baseAddress + id * markerStructSize
        local markerX = representIntAsFloat(readMemory(markerAddress, 4, false))
        local markerY = representIntAsFloat(readMemory(markerAddress + 4, 4, false))
        local markerZ = representIntAsFloat(readMemory(markerAddress + 8, 4, false))

        if markerX ~= 0.0 or markerY ~= 0.0 or markerZ ~= 0.0 then
            local distance = getDistanceBetweenCoords3d(markerX, markerY, markerZ, posX, posY, posZ)
            if distance < closest.distance then
                closest = {distance = distance, x = markerX, y = markerY, z = markerZ}
            end
        end
    end

    if closest.distance < radius then
        return true, closest.x, closest.y, closest.z
    end

    return false, 0.0, 0.0, 0.0
end

local function getBlipCoordinates()
    local success, x, y, z = getTargetBlipCoordinates()
    if not success then return false end

    requestCollision(x, y)
    loadScene(x, y, z)

    success, x, y, z = getTargetBlipCoordinates()
    return success, x, y, z
end

-- Функции Отрисовки GUI
local function renderCheckbox(label, checkbox, textKey, tooltip)
    if imgui.Checkbox(label, checkbox) then
        updateText(checkbox, textKey)
    end
    if tooltip then
        imgui.SameLine()
        imgui.TextDisabled(' [?]')
        if imgui.IsItemHovered() then
            imgui.SetTooltip(tooltip)
        end
    end
    imgui.SameLine()
    imgui.Text(string.format('%s: %s', label, Config.texts[textKey]))
end

local function renderButton(label, onClick, tooltip)
    if imgui.Button(label) then
        onClick()
    end
    if tooltip then
        if imgui.IsItemHovered() then
            imgui.SetTooltip(tooltip)
        end
    end
end

local function renderSlider(label, slider, min, max, tooltip)
    if imgui.SliderInt(label, slider, min, max) then
        printStringNow(string.format('%s: %d', label, slider.v), 1000)
    end
    imgui.SameLine()
    imgui.TextDisabled(tooltip)
end

local function renderPositionInputs()
    for _, axis in ipairs({ 'X', 'Y', 'Z' }) do
        if imgui.InputText(axis, Config.position[axis:lower()]) then
            -- Валидация: Проверка, является ли введённое значение числом
            local value = tonumber(Config.position[axis:lower()].v)
            if not value then
                printStringNow(string.format('Некорректное значение для %s', axis), 1000)
                Config.position[axis:lower()].v = '0.0'  -- Сброс на значение по умолчанию
            end
        end
    end
end

-- Главная Функция Отрисовки GUI
function imgui.OnDrawFrame()
    if not Config.window.v then return end

    imgui.SetNextWindowPos(imgui.ImVec2(350.0, 250.0), imgui.Cond.FirstUseEver)
    imgui.SetNextWindowSize(imgui.ImVec2(550, 600), imgui.Cond.FirstUseEver)
    if imgui.Begin('OTP By Tectrex', Config.window) then

        -- Статус 'Игрок в машине'
        if isCharInAnyCar(PLAYER_PED) then
            imgui.Text('Player in car')
            if Config.checkboxes.govnovoz.v then
                local car = getCarCharIsUsing(PLAYER_PED)
                local posX, posY, _ = getNumericPosition()
                local carX, carY, _ = getCarCoordinates(car)
                local heading = getHeadingFromVector2d(posX - carX, posY - carY)

                setCarCoordinates(car, carX, carY, Config.sliders.visotaGovnovoz.v)
                setCarForwardSpeed(car, 100)
                setCarHeading(car, heading)
                setCharCanBeKnockedOffBike(PLAYER_PED, true)
            else
                local car = getCarCharIsUsing(PLAYER_PED)
                freezeCarPosition(car, false)
                setCharCanBeKnockedOffBike(PLAYER_PED, false)
            end
        else
            imgui.Text('Player not in car')
        end

        imgui.Separator()

        -- Сворачивающиеся Разделы для Лучшей Организации
        if imgui.CollapsingHeader('Features') then
            -- Чекбоксы с Метками и Состоянием
            renderCheckbox('Enable Govnovoz', Config.checkboxes.govnovoz, 'govnovoz', 'Toggle Govnovoz feature.')
            renderCheckbox('Enable Coord-Master', Config.checkboxes.coordMaster, 'coordMaster', 'Enable or disable Coord-Master.')
            renderCheckbox('Enable Blip Finder', Config.checkboxes.blipFinder, 'blipFinder', 'Automatically find and update blip coordinates.')
            renderCheckbox('Enable Marker Finder', Config.checkboxes.markerFinder, 'markerFinder', 'Automatically find and update marker coordinates.')
        end

        if imgui.CollapsingHeader('Automatic Position Updates') then
            -- Автоматическое Обновление Позиции
            if Config.checkboxes.blipFinder.v then
                local success, x, y, z = getBlipCoordinates()
                if success then
                    Config.position.x.v, Config.position.y.v, Config.position.z.v = tostring(x), tostring(y), tostring(z)
                else
                    printStringNow('No blip found', 1000)
                end
            end

            if Config.checkboxes.markerFinder.v then
                local posX, posY, posZ = getCharCoordinates(PLAYER_PED)
                local found, markerX, markerY, markerZ = searchMarkers(posX, posY, posZ, Config.sliders.markerDistance.v, false)

                if found then
                    Config.position.x.v, Config.position.y.v, Config.position.z.v = tostring(markerX), tostring(markerY), tostring(markerZ)
                else
                    printStringNow('No marker found, attempting race markers.', 1000)
                    local foundRace, raceX, raceY, raceZ = searchMarkers(posX, posY, posZ, Config.sliders.markerDistance.v, true)
                    if foundRace then
                        Config.position.x.v, Config.position.y.v, Config.position.z.v = tostring(raceX), tostring(raceY), tostring(raceZ)
                    end
                end
            end
        end

        imgui.Separator()

        -- Ввод Позиции
        if imgui.CollapsingHeader('Position Inputs') then
            renderPositionInputs()

            -- Кнопки Действий
            renderButton('Get PLAYER_PED Coordinates', function()
                local x, y, z = getCharCoordinates(PLAYER_PED)
                Config.position.x.v, Config.position.y.v, Config.position.z.v = tostring(x), tostring(y), tostring(z)
            end, 'Fetch current player coordinates.')

            renderButton('Get Marker Coordinates', function()
                local posX, posY, posZ = getCharCoordinates(PLAYER_PED)
                local found, markerX, markerY, markerZ = searchMarkers(posX, posY, posZ, Config.sliders.markerDistance.v, false)
                if found then
                    Config.position.x.v, Config.position.y.v, Config.position.z.v = tostring(markerX), tostring(markerY), tostring(markerZ)
                else
                    printStringNow('No marker found, attempting race markers.', 1000)
                    local foundRace, raceX, raceY, raceZ = searchMarkers(posX, posY, posZ, Config.sliders.markerDistance.v, true)
                    if foundRace then
                        Config.position.x.v, Config.position.y.v, Config.position.z.v = tostring(raceX), tostring(raceY), tostring(raceZ)
                    end
                end
            end, 'Fetch coordinates of the nearest marker.')

            renderButton('Get Blip Coordinates', function()
                local success, x, y, z = getBlipCoordinates()
                if success then
                    Config.position.x.v, Config.position.y.v, Config.position.z.v = tostring(x), tostring(y), tostring(z)
                else
                    printStringNow('No blip found', 1000)
                end
            end, 'Fetch coordinates of the target blip.')
        end

        imgui.Separator()

        -- Слайдеры Настроек
        if imgui.CollapsingHeader('Settings') then
            renderSlider('Visota', Config.sliders.visotaGovnovoz, 1, 500, '(Высота говновоза)')
            renderSlider('Step', Config.sliders.stepDistance, 1, 500, '(Количество шагов на телепорт)')
            renderSlider('Step Delay (ms)', Config.sliders.stepDelay, 0, 1000, '(Задержка в миллисекундах)')
            renderSlider('Marker Distance', Config.sliders.markerDistance, 1, 10000, '(Радиус поиска маркера)')
        end

        imgui.Separator()

        -- Кнопка Телепортации
        if imgui.CollapsingHeader('Actions') then
            renderButton('Teleport', function()
                local x, y, z = getNumericPosition()
                if x and y and z then
                    if Config.checkboxes.coordMaster.v then
                        teleportPlayer(PLAYER_PED, x, y, z, Config.sliders.stepDistance.v, Config.sliders.stepDelay.v)
                    else
                        setPlayerCoordinates(x, y, z)
                    end
                else
                    printDebug()
                end
            end, 'Execute teleportation based on the input coordinates.')
        end

    end
    imgui.End()
end

-- Главная Функция
function main()
    while not isSampAvailable() do
        wait(200)
    end

    imgui.Process = false
    Config.window.v = false

    -- Регистрация Команд Чата
    sampRegisterChatCommand('otp', toggleInterface)
    sampRegisterChatCommand('otpr', function()
        local x, y, z = getNumericPosition()
        if x and y and z then
            if Config.checkboxes.coordMaster.v then
                teleportPlayer(PLAYER_PED, x, y, z, Config.sliders.stepDistance.v, Config.sliders.stepDelay.v)
            else
                setPlayerCoordinates(x, y, z)
            end
        else
            printDebug()
        end
    end)

    -- Основной Цикл
    while true do
        wait(0)
        imgui.Process = Config.window.v
    end
end
```
Сделай интерфейс лучше, сделай его более понятным, приятным глазу, сделай в нем нововведения, сделай весь интерфейс кастомным, не используй стандартные фукнции