Skip to content

Full Config — Limits ​

The complete configs/server/limits.lua for Smash Down: Los Santos — validation limits, rate limits, and timeouts.

TIP

See the setup guide for explanations and examples. Download this file as a reference, and merge changes with the config shipped in your installed version.

Download server/limits.lua

lua
-- SERVER-ONLY (not in fxmanifest files{}): ceilings, rate limits and timers. The relay is the one
-- surface a tampered client can push at other players, so everything in Relay exists to make the
-- worst it can do "get its own packets dropped".
return {
    -- Extra metres on top of config.Cabinets.SeatRange the server allows before it considers a
    -- player away from their cabinet (covers position lag between client and server).
    SeatTolerance = 1.0,

    -- How often (ms) the server sweeps open cabinets for players who wandered off, died out of
    -- range, or teleported away without their client closing the arcade.
    SweepMs = 5000,

    -- Lobby actions (open/join/leave/pick/ready/settings/cpu/start/result/forfeit) one player may
    -- make per second; extra ones are refused with err.busy. Stops a client spamming broadcasts
    -- while leaving room for a player flicking through costumes.
    ActionsPerSecond = 20,

    Relay = {
        -- Packets per second one player may push. Honest clients send ~32/s (inputs every other
        -- frame + checksums), ~60/s while catching up. Excess packets are dropped, not queued.
        MaxPacketsPerSecond = 80,

        -- Inputs a single 'in' packet may carry (the client repeats its last 10 frames).
        MaxInputsPerPacket = 32,

        -- Largest desync-repair state (characters of JSON) the relay forwards.
        MaxSyncChars = 262144,

        -- Frames a packet may claim ahead of the match clock (60 fps since start) before it is
        -- treated as garbage. Generous on purpose: this only catches nonsense, not lag.
        MaxFrameLead = 600,
    },

    Results = {
        -- Seconds after the FIRST player reports a result before the server stops waiting for
        -- the rest: a majority that agrees is accepted, anything else voids and refunds.
        Timeout = 20,
    },

    -- Minutes a match may run before the server gives up on it and voids it (refunding stakes).
    -- A safety net for a match nobody ever reports a result for; set it above your longest
    -- realistic match (5 stocks, 4 players, no time limit).
    MatchTimeoutMinutes = 30,

    -- Stall detection, every online match: a player whose input stops moving on for this many
    -- seconds while someone else in the match is still sending is dropped like a disconnect (a
    -- forfeit: a loss, stake stays in the pot) - instead of the whole match freezing until the
    -- MatchTimeoutMinutes void. A peer that is only WAITING on them is never dropped. 0 = off.
    StallSeconds = 15,

    -- Seconds after START before the stall check begins (players' clients still loading); a
    -- player's silence is only counted from the end of it.
    StallGraceSeconds = 5,
}