[VDS] Помогите пожалуйста с дискорд хуком на вдске

Есть вопрос про вдску, на моём локальном серваке хук отправляется прекрасно, но у меня есть запрет, на вдске его нет, и хук не отправляется с ошибкой “403”:

Attempted to create unknown entity type !
NULL Ent in GiveNamedItem!
MEN забанил Themself на 1 минута по причине: reason
ServerLog: [ULX] MEN забанил Themself на 1 минута по причине: reason
L 02/03/2025 - 19:56:33: [ULX] MEN забанил Themself на 1 минута по причине: reason
Ошибка при отправке сообщения в Discord: 403

Прошу прощения если не подробно, я не знаю что ещё написать, я сам даже не имею понятия почему так может быть, может возможно из-за блокировки, либо я чего-то ещё не понимаю, если нужен код я его скину по первому вопросу

но всё идеально работает у меня без ошибок, а на вдске не работает

Что за ошибка 403?

UPD:
Почитал про ошибку 403.

Вроде как это бот не может отправить сообщение т.к у него нет прав.

Проверь роли у бота

UPD:
Дай код Дискорд бота в луа

делаю через хук а не бота, сейчас покажу как

local CATEGORY_NAME = "Utility"
bannedPlayers = bannedPlayers or {}

local DISCORD_WEBHOOK_URL = ""

local function sendDiscordMessage(message)
    http.Post(
        DISCORD_WEBHOOK_URL,
        {content = message},
        function(body, length, headers, code)
            if code ~= 204 then
                print("Ошибка при отправке сообщения в Discord: " .. code)
            end
        end,
        function(message)
            print("Ошибка при отправке сообщения в Discord: " .. message)
        end
    )
end 

if SERVER then
    function ulx.gban(calling_ply, target_ply, time, units, reason)
        local steamID = target_ply:SteamID()
        local multiplier = (units == "минуты" and 60) or 1
        bannedPlayers[steamID] = {endTime = os.time() + time * multiplier, reason = reason}

        target_ply.ignoreChangeTeamBan = true
        
        if RPExtraTeams[TEAM_IZGOY] then
            target_ply:changeTeam(TEAM_IZGOY, true)
        else
            print("Team IZGOY does not exist!")
        end
        
        target_ply.ignoreChangeTeamBan = nil
        
        target_ply:StripWeapons()
        target_ply:SetPos(Vector(2343.034668, 2111.748047, 128.031250))
        target_ply:SetEyeAngles(Angle(-0.990013, -87.890038, 0.000000))
        
        local timeString = units == "минуты" and (time .. " минут(ы)") or (time .. " секунд(ы)")
        ulx.fancyLogAdmin(calling_ply, "#A отправил в бан #T на " .. timeString .. " по причине: #s", target_ply, reason)
        
        local discordMessage = string.format("Игрок %s был забанен на %s по причине: %s", target_ply:Nick(), timeString, reason)
        sendDiscordMessage(discordMessage)
    end
end

local gban = ulx.command(CATEGORY_NAME, "ulx gban", ulx.gban, "!gban")
gban:addParam{type=ULib.cmds.PlayerArg}
gban:addParam{type=ULib.cmds.NumArg, min=0, default=5, hint="time", ULib.cm

можно перекинуть в “делюсь кодом”, но тут есть подвох, надо многое переписать, плюс кидать в ulx/modules/sh

формально да, бот, но для меня бот немного другое, если будут ещё вопросы, задавайте

А ничего что Дискорд заблокировал Агента который использует Gmod(Выделенный сервер)?

Бери инфу от сюда(я про DLL, луа своё можешь делать)

ничего не понял, но спасибо, попробую переписать