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 :
-- 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.
| Parametre | Type | Description |
|---|---|---|
data | table | Payload complet du webhook Discord (username, avatar_url, embeds, etc.) |
tw.webhook.buildEmbed(options)
Construit une table d'embed Discord.
| Parametre | Type | Description |
|---|---|---|
options | table | Options de l'embed (voir ci-dessous) |
Options :
| Champ | Type | Defaut | Description |
|---|---|---|---|
title | string | — | Titre de l'embed |
description | string? | — | Description de l'embed |
color | integer? | 3066993 (vert) | Couleur de l'embed (decimal) |
fields | table? | {} | Tableau de { name, value, inline } |
script_name | string? | — | 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.
| Parametre | Type | Description |
|---|---|---|
source | integer | ID serveur du joueur |
Retour : table
| Champ | Type | Description |
|---|---|---|
name | string | Nom du personnage RP |
serverId | integer | ID serveur |
steam | string | Identifiant Steam |
charId | string | Identifiant du personnage |
tw.webhook.buildPayload(source, options)
Construit un payload complet de webhook Discord avec les informations du joueur automatiquement incluses.
| Parametre | Type | Description |
|---|---|---|
source | integer | ID serveur du joueur |
options | table | Options du payload (voir ci-dessous) |
Options :
| Champ | Type | Defaut | Description |
|---|---|---|---|
title | string | — | Titre de l'embed |
description | string? | — | Description de l'embed |
color | integer? | 3066993 | Couleur de l'embed |
extra_fields | table? | {} | Champs supplementaires ajoutes apres les champs du joueur |
script_name | string? | — | Label du footer |
avatar_url | string? | — | 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
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
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), orange16766720(argent), rouge15158332(erreur). buildPayloadajoute automatiquement les champs Player, Server ID et Steam — vous n'avez pas besoin de les inclure dansextra_fields.- Le footer inclut le nom du script et un timestamp quand
script_nameest fourni.

