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.
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,
}