FiveM sunucu yönetiminde sürdürülebilir bir düzen sağlamanın ve olası hile, suistimal ya da rol ihlallerini anında tespit etmenin en etkili yolu gelişmiş bir Discord Log Sistemi kurmaktır. 2026 yılı standartlarında, sunucu içi olayları Discord sunucunuza anlık olarak bildiren yapılandırılmış webhook sistemleri, yetkili ekibinizin elindeki en büyük silahtır.
Bu rehberde, sıfırdan hiç kodlama bilmeyen bir sunucu sahibinden tecrübeli geliştiricilere kadar herkesin kolayca uygulayabileceği adım adım FiveM Discord Webhook entegrasyonunu ele alacağız.
Neden Gelişmiş Bir Log Sistemine İhtiyacınız Var?
Bir FiveM sunucusunda yüzlerce aktif oyuncu varken kimin kime ne kadar para aktardığını, hangi yetkilinin hangi komutu kullandığını veya kimin haksız yere bir başkasını vurduğunu oyun içinde 7/24 izleyemezsiniz.
İyi yapılandırılmış bir log sistemi size şunları sağlar:
- Güvenlik & Denetim: Yetkili suistimallerini (Abuse) anında tespit etme.
- Ekonomi Takibi: Şüpheli para transferleri, kara para aklama ve eşya çoğaltma (dupe) girişimlerini yakalama.
- Hile Tespit Katmanı: İzin verilmeyen yetkili komutları veya anormal oyuncu hareketlerini kaydetme.
- Rol Kalitesi: OOC tartışmaları ve ihlalleri somut kanıtlarla çözüme kavuşturma.
kill-logs, trade-logs, admin-logs ve connect-logs gibi ayrı kanallar oluşturmak yetkili ekibinizin işini %80 oranında kolaylaştırır.1. Adım: Discord Kanalında Webhook Oluşturma
Logları Discord'a aktarabilmek için öncelikle Discord sunucunuzda bir "API Kapısı" (Webhook URL) oluşturmalısınız.
- 1Discord sunucunuzda logların düşmesini istediğiniz kanala sağ tıklayıp Kanalı Düzenle seçeneğine tıklayın.
- 2Sol menüden Entegrasyonlar (Integrations) sekmesine gelin.
- 3Webhook'lar (Webhooks) bölümünden Yeni Webhook (New Webhook) butonuna basın.
- 4Webhook'a bir isim verin (Örn:
Dexta-Kill-Log) ve Webhook URL'sini Kopyala butonuna tıklayın.
2. Adım: Lua ile Asenkron Webhook Gönderici Hazırlama
Sunucunuzu yormayacak, FPS düşüşüne veya lag'a sebep olmayacak modern ve performanslı bir server-side log fonksiyonu yazalım.
Kodumuzu dosya yapısında resources/[scripts]/dexta_logger/server.lua konumuna ekleyeceğiz:
-- resources/[scripts]/dexta_logger/server.lua
local WEBHOOK_URLS = {
['kill'] = "https://discord.com/api/webhooks/YOUR_KILL_WEBHOOK_URL_HERE",
['admin'] = "https://discord.com/api/webhooks/YOUR_ADMIN_WEBHOOK_URL_HERE",
['money'] = "https://discord.com/api/webhooks/YOUR_MONEY_WEBHOOK_URL_HERE"
}
function SendDiscordLog(logType, title, message, color)
local webhook = WEBHOOK_URLS[logType]
if not webhook or webhook == "" then return end
local embedData = {
{
["title"] = title,
["description"] = message,
["color"] = color or 3447003, -- Varsayılan Mavi renk
["footer"] = {
["text"] = "Dexta Store Log Sistemi • " .. os.date("%d/%m/%Y %H:%M:%S"),
["icon_url"] = "https://dexta.store/favicon.ico"
}
}
}
PerformHttpRequest(webhook, function(err, text, headers) end, 'POST', json.encode({username = "Dexta Logger", embeds = embedData}), { ['Content-Type'] = 'application/json' })
end
-- Örnek Event Kullanımı: Bir yetkili komut kullandığında tetiklenir
RegisterServerEvent('dexta_logger:server:logAdminCommand')
AddEventHandler('dexta_logger:server:logAdminCommand', function(targetId, commandName)
local src = source
local srcName = GetPlayerName(src)
local targetName = targetId and GetPlayerName(targetId) or "Yok"
-- Discord ID & License Bilgilerini Al
local srcDiscord = "Bilinmiyor"
for _, id in ipairs(GetPlayerIdentifiers(src)) do
if string.match(id, "discord:") then
srcDiscord = "<@" .. string.gsub(id, "discord:", "") .. ">"
break
end
end
local logContent = string.format("**Komutu Kullanan:** %s (%s)\n**Hedef Oyuncu:** %s\n**Kullanılan Komut:** `%s`", srcName, srcDiscord, targetName, commandName)
SendDiscordLog('admin', "🛡️ Yetkili Komut Kullanımı", logContent, 15158332) -- Kırmızı Embed
end)3. Adım: FXManifest ve server.cfg Ayarları
Yazdığımız scriptin sorunsuz çalışması için fxmanifest.lua dosyamızı doğru yapılandırmamız gerekir.
resources/[scripts]/dexta_logger/fxmanifest.lua dosyasını oluşturun ve şu satırları ekleyin:
fx_version 'cerulean'
game 'gta5'
author 'Dexta Store'
description 'Gelişmiş FiveM Discord Log Entegrasyonu'
version '1.0.0'
server_script 'server.lua'Ardından ana sunucu dosyanız olan server.cfg içerisine scripti başlatma komutunu ekleyin:
# server.cfg
ensure dexta_logger4. Adım: Test Etme ve Doğrulama
Kurulumu tamamladıktan sonra canlı test aşamasına geçebilirsiniz:
- 1Sunucu konsolunuza (
txAdminveya sunucu terminali)refreshyazın. - 2Ardından
ensure dexta_loggerkomutu ile scripti başlatın. - 3Oyun içerisinde test amaçlı belirlediğiniz event'i tetikleyin veya oluşturduğunuz komutları çalıştırın.
- 4Discord kanalınızda hazırladığınız özel embed kartının anında belirdiğini göreceksiniz!
Sıkça Sorulan Sorular (SSS)
S: Webhook mesajları çok sık atıldığında Discord engel (Rate Limit) atıyor, ne yapmalıyım?
C: Discord, aynı webhook adresine saniyede çok fazla istek atıldığında geçici olarak HTTP 429 (Too Many Requests) hatası döner. Bunu önlemek için PerformHttpRequest isteklerini bir kuyruk (queue) sistemine alabilir veya saniyelik harita hareketleri gibi yüksek frekanslı verileri loglamak yerine sadece önemli eylemleri (Kill, Trade, Admin Komut) loglayabilirsiniz.
S: Oyuncunun Discord ID'si loglarda neden `<@Bilinmiyor>` olarak görünüyor?
C: Oyuncunun Discord hesabı FiveM istemcisine (client) bağlı değilse veya server.cfg dosyanızda set sv_requestSteamTicket veya identifiers yapılandırmalarınız eksikse FiveM Discord identifier'ını okuyamaz. Oyuncuların Discord'u açıkken oyuna girmeleri bu sorunu çözer.
S: Script resmon değerini etkiler mi?
C: Hayır, hazırladığımız bu yapı tamamen sunucu taraflı (server-side) çalışır ve istemci (client) tarafına yük bindirmez. Server resmon değeri 0.00ms seviyesindedir.
