Professional performance monitoring and analytics system for RedM servers
Features • Installation • Configuration • Commands • Contributing
- ✅ Real-time Monitoring - Track ping, FPS, and memory usage
- ✅ Discord Integration - Automatic webhook notifications with rich embeds
- ✅ In-game HUD - Visual performance display with
/perfhudcommand - ✅ Smart Thresholds - Automatic detection of performance issues
- ✅ Multi-language Support - English, Turkish (easily extendable)
- 🚀 Performance History - Track historical data for each player
- 🚀 Automatic Reports - Periodic server-wide performance reports
- 🚀 Alert Levels - Categorized alerts (Critical, Warning, Info, Good)
- 🚀 Average Statistics - Per-player performance averages
- 🚀 Admin Commands - Comprehensive server performance overview
- 🚀 Multiple Webhooks - Different webhooks for different alert levels
- 🚀 Spam Prevention - Configurable minimum log intervals
Clone or download this repository:
git clone https://github.com/samet-y/s-playerperformance.gitPlace the folder in your server's resources directory:
server/
└── resources/
└── s-playerperformance/
├── client.lua
├── server.lua
├── config.lua
└── fxmanifest.lua
- Open your Discord server
- Go to Server Settings → Integrations → Webhooks
- Create a new webhook
- Copy the webhook URL
Open config.lua and set your webhook:
Config.PrimaryWebhook = "YOUR_DISCORD_WEBHOOK_URL_HERE"Add to your server.cfg:
ensure s-playerperformanceConfig.Language = 'en' -- 'en' or 'tr'
Config.Debug = false -- Enable debug logs
Config.CheckInterval = 300000 -- Check every 5 minutes
Config.LogAllPlayers = false -- Only log threshold violationsConfig.Thresholds = {
ping = 150, -- Log if ping is ABOVE this (ms)
fps = 30 -- Log if FPS is BELOW this
}Config.AlertLevels = {
critical = { ping = 250, fps = 15 }, -- Red
warning = { ping = 150, fps = 30 }, -- Orange
info = { ping = 100, fps = 40 } -- Blue
}Config.SaveHistory = true -- Save player performance history
Config.HistoryLimit = 50 -- Maximum records per playerConfig.AutoReports = {
enabled = true,
interval = 3600000, -- Every 1 hour
minPlayers = 5 -- Minimum players to send report
}Config.HUD = {
enabled = true,
defaultVisible = false,
position = { x = 0.01, y = 0.01 },
scale = 0.35,
showMemory = true
}| Command | Description | Usage |
|---|---|---|
/perfhud |
Toggle performance HUD | In-game |
/perfhistory |
View your performance history | Chat |
| Command | Description |
|---|---|
perflog |
Request performance data from all players |
perftest |
Send test log (bypasses thresholds) |
perfadmin |
View all players' live performance |
Set Config.PrimaryWebhook for all alerts.
Use different channels for different alert levels:
Config.Webhooks = {
critical = "https://discord.com/api/webhooks/...", -- Critical alerts
warning = "https://discord.com/api/webhooks/...", -- Warnings
info = "https://discord.com/api/webhooks/..." -- Info & reports
}- 🇬🇧 English (
en) - 🇹🇷 Turkish (
tr)
- Open
config.lua - Add your language to
Config.Translations:
Config.Translations['es'] = {
system_started = "Monitor de rendimiento iniciado!",
-- ... add all translation keys
}- Set
Config.Language = 'es'
-- In server/server.lua, GetAlertLevel function
return "critical", 15158332 -- Red (hex: 0xE74C3C)
return "warning", 15105570 -- Orange (hex: 0xE67E22)
return "info", 3447003 -- Blue (hex: 0x3498DB)
return "good", 3066993 -- Green (hex: 0x2ECC71)-- More strict thresholds
Config.Thresholds = { ping = 100, fps = 40 }
-- More lenient thresholds
Config.Thresholds = { ping = 200, fps = 20 }Config.Advanced = {
minLogInterval = 60, -- Minimum seconds between logs for same player
}Config.Advanced = {
webhookTimeout = 10, -- Timeout in seconds
}
-
Check webhook URL
Config.PrimaryWebhook = "YOUR_URL_HERE"
-
Enable debug mode
Config.Debug = true
-
Check thresholds
- Lower thresholds or set
Config.LogAllPlayers = truefor testing
- Lower thresholds or set
-
Test with command
perftest
- Check F8 console for client errors
- Restart the resource:
restart s-playerperformance - Ensure
client.luais loaded correctly
- Verify resource is started:
ensure s-playerperformance - Check
fxmanifest.luais correct - Restart server
Contributions are welcome! Here's how you can help:
- Fork the repository
- Create a feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
- 🌍 Add more language translations
- 🎨 Improve Discord embed designs
- 🚀 Add new performance metrics
- 📱 Create web dashboard
- 🔌 Standalone
- Performance history tracking
- Automatic server reports
- Multi-level alert system
- Average performance statistics
- Admin overview commands
- Multiple webhook support
- Spam prevention
- Multi-language support
- Shared config system
- Code organization
- Performance optimization
- Documentation
- Error handling
- Basic performance monitoring
- Discord webhook integration
- In-game HUD
- Threshold system
This project is licensed under the MIT License - see the LICENSE file for details.
MIT License
Copyright (c) 2025 Performance Monitor Contributors
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
- RedM Community
- Discord.js for webhook inspiration
- All contributors and testers
- Issues: GitHub Issues
If you find this project useful, please consider giving it a star! ⭐
Made with ❤️ for the RedM Community