Skip to content

tw.webhook

Cote : Server

Systeme de logging par webhook Discord. Lit Config.Webhook automatiquement pour determiner la methode d'envoi.

Config

Chaque script utilisant les webhooks doit definir ceci dans ses settings :

lua
-- config/_default.lock/settings.lua
Config.Webhook = {
    type = 'discord',  -- 'discord' or 'custom'
    url = '',          -- Discord webhook URL (only used with 'discord' type)
}

Quand type est 'custom', le module appelle la fonction globale SendScriptWebhook(data) au lieu de poster sur Discord. Voir le guide des webhooks personnalises pour plus de details.

Fonctions

tw.webhook.dispatch(data)

Envoie le payload vers Discord ou vers le handler personnalise selon Config.Webhook.type.

ParametreTypeDescription
datatablePayload complet du webhook Discord (username, avatar_url, embeds, etc.)

tw.webhook.buildEmbed(options)

Construit une table d'embed Discord.

ParametreTypeDescription
optionstableOptions de l'embed (voir ci-dessous)

Options :

ChampTypeDefautDescription
titlestringTitre de l'embed
descriptionstring?Description de l'embed
colorinteger?3066993 (vert)Couleur de l'embed (decimal)
fieldstable?{}Tableau de { name, value, inline }
script_namestring?Ajoute au footer avec un timestamp

Retour : table — Objet embed Discord.


tw.webhook.getPlayerInfo(source)

Recupere les informations du joueur pour les champs du webhook.

ParametreTypeDescription
sourceintegerID serveur du joueur

Retour : table

ChampTypeDescription
namestringNom du personnage RP
serverIdintegerID serveur
steamstringIdentifiant Steam
charIdstringIdentifiant du personnage

tw.webhook.buildPayload(source, options)

Construit un payload complet de webhook Discord avec les informations du joueur automatiquement incluses.

ParametreTypeDescription
sourceintegerID serveur du joueur
optionstableOptions du payload (voir ci-dessous)

Options :

ChampTypeDefautDescription
titlestringTitre de l'embed
descriptionstring?Description de l'embed
colorinteger?3066993Couleur de l'embed
extra_fieldstable?{}Champs supplementaires ajoutes apres les champs du joueur
script_namestring?Label du footer
avatar_urlstring?URL de l'avatar du webhook

Retour : table — Payload complet de webhook Discord avec les champs Player, Server ID et Steam auto-inclus.

Exemples

Payload complet avec champs supplementaires

lua
local payload = tw.webhook.buildPayload(source, {
    title = "Item Collected",
    description = "A player collected an item",
    color = 3066993,
    script_name = "twinded_collect",
    avatar_url = "https://example.com/avatar.png",
    extra_fields = {
        { name = "Item", value = "Apple x5", inline = true },
        { name = "Zone", value = "Valentine", inline = true },
    },
})
tw.webhook.dispatch(payload)

Envoi simple d'embed

lua
local embed = tw.webhook.buildEmbed({
    title = "Server Event",
    description = "Something happened",
    color = 15158332, -- rouge
    script_name = "twinded_collect",
})
tw.webhook.dispatch({ embeds = { embed } })

Notes

  • Couleurs courantes : vert 3066993 (succes), orange 16766720 (argent), rouge 15158332 (erreur).
  • buildPayload ajoute automatiquement les champs Player, Server ID et Steam — vous n'avez pas besoin de les inclure dans extra_fields.
  • Le footer inclut le nom du script et un timestamp quand script_name est fourni.

Premium RedM Scripts — Multi-Framework