Skip to main content

Configuration

This guide details the configuration options available for the anti-lag script. The configuration is typically found in a file like config/settings.lua within the script's resource folder.

1. Update Interval Settings (updateIntervals)​

Controls how often the server checks player metrics based on the current player count. Lower intervals mean faster detection but potentially higher server load.

  • Purpose: Dynamically adjust check frequency based on server population.
  • Format: The key is the minimum player count for the interval to apply. The value is the interval in milliseconds (1000ms = 1 second).
updateIntervals = {
-- Format: [minimum_player_count] = 1000 * interval_in_seconds
[656] = 1000 * 13, -- 13 seconds interval for 656+ players
[556] = 1000 * 12, -- 12 seconds interval for 556-655 players
[456] = 1000 * 11, -- 11 seconds interval for 456-555 players
[356] = 1000 * 10, -- 10 seconds interval for 356-455 players
[256] = 1000 * 9, -- 9 seconds interval for 256-355 players
[128] = 1000 * 8, -- 8 seconds interval for 128-255 players
[96] = 1000 * 7, -- 7 seconds interval for 96-127 players
[64] = 1000 * 6, -- 6 seconds interval for 64-95 players
[0] = 1000 * 5 -- 5 seconds interval for 0-63 players
},

2. Packet Loss Detection Settings​

Configure how the script monitors and reacts to player packet loss.

Packet Loss Guide: This provides a general comparison between server-side and client-side perceived packet loss. Note: These are rough estimates and can vary based on network conditions.

Server Calculated Packet LossTypical Client-Side Experience
0-20%Good (Client usually sees 0-5%)
20-40%Fair (Client usually sees 5-14%)
40%+Poor (Client usually sees 15%+)
  • packetLossScale = 65536: Internal scaling factor. Do not change.
  • packetLossDetectEnable = true: Set to true to enable, false to disable packet loss checks.
  • packetLossAvgWindow = 30: Duration (seconds) to average packet loss over. Higher values smooth out brief spikes but react slower.
  • packetLossThreshold = { freezePlayer = 40.0, warnPlayer = 33.0 }:
    • freezePlayer: Average packet loss percentage (%) at or above which the player may be frozen.
    • warnPlayer: Average packet loss percentage (%) at or above which the player may be warned (if below freeze threshold).
  • packetLossWarnCooldown = 45: Minimum time (seconds) between warnings for the same player.
-- Packet Loss Settings
packetLossScale = 65536, -- Do not touch unless you know what you're doing
packetLossDetectEnable = true, -- Enable or disable packet loss detection
packetLossAvgWindow = 30, -- in seconds
packetLossThreshold = {
freezePlayer = 40.0, -- packet loss percentage
warnPlayer = 33.0, --packet loss percentage
},
packetLossWarnCooldown = 45, --in seconds

3. Ping Detection Settings​

Configure how the script monitors and reacts to high player ping (latency).

  • pingDetectEnable = true: Set to true to enable, false to disable ping checks.
  • pingAvgWindow = 5: Duration (seconds) to average ping (RTT) over.
  • pingThreshold = { freezePlayer = 400, warnPlayer = 350 }:
    • freezePlayer: Average ping (milliseconds) at or above which the player may be frozen.
    • warnPlayer: Average ping (milliseconds) at or above which the player may be warned (if below freeze threshold).
  • pingWarnCooldown = 30: Minimum time (seconds) between ping warnings for the same player.
-- Ping Settings
pingDetectEnable = true, -- Enable or disable ping detection
pingAvgWindow = 5, -- in seconds
pingThreshold = {
freezePlayer = 400, -- ping in ms
warnPlayer = 350, -- ping in ms
},
pingWarnCooldown = 30, -- in seconds

4. FPS Detection Settings​

Configure how the script monitors and reacts to low client-side FPS. Requires a client script to send FPS data via the dc_antilag:sync:fps event.

  • fpsDetectEnable = true: Set to true to enable, false to disable FPS checks.
  • fpsAvgWindow = 10: Duration (seconds) to average FPS over.
  • fpsThreshold = { freezePlayer = 7, warnPlayer = 10 }:
    • freezePlayer: Average FPS at or below which the player may be frozen.
    • warnPlayer: Average FPS at or below which the player may be warned (if above freeze threshold).
  • fpsWarnCooldown = 30: Minimum time (seconds) between FPS warnings for the same player.
-- FPS Settings
fpsDetectEnable = true, -- Enable or disable FPS detection
fpsAvgWindow = 10, -- in seconds
fpsThreshold = {
freezePlayer = 7, -- minimum fps before freezing
warnPlayer = 10, -- minimum fps before warning
},
fpsWarnCooldown = 30, -- in seconds

5. InfluxDB Logging Settings​

Optional settings to send performance metrics to an InfluxDB database for monitoring.

  • influxDbEnable = true: Set to true to enable sending data, false to disable.
  • influxDBURL = "http://<host>:<port>/write?db=<database_name>": The full URL endpoint for your InfluxDB instance's write API. Replace placeholders with your actual host, port, and database name. Ensure the database exists.
-- InfluxDB Settings (Optional)
influxDbEnable = true, -- Enable or disable InfluxDB logging
influxDBURL = "http://sampleinfluxurl.com/write?db=dbName", -- Example URL