A laggy custom weapon in a Source mod usually isn't a weapon bug — it's a misunderstanding of prediction, interpolation, and lag compensation. Here's how the three systems fit together and how to write networked fire code that feels instant.
Learn how to prevent 'physics explosions' and instability in the Source Engine by managing collision meshes, mass ratios, and utilizing debug tools like phys_boxes.
Learn how to build, compile, and test a custom dynamic lighting material in the Source Engine 2013. Follow a concise step‑by‑step guide that covers shader files, material dictionary settings, hot‑reload, and in‑game verification.
The Source Engine entity system allows for property definition via hard-coded member variables or dynamic property maps. When designing for data persistence and save-game compatibility, these two approaches offer different trade-offs regarding performance and schema evolution. Static member variables ensure type safety and high-speed access during the game l
Binding behavior with sv_lan enabled When sv_lan 1 is set in server.cfg , the Source Dedicated Server stops advertising to the Steam master list and rejects connections from non-RFC1918 addresses. However, the engine continues to bind the game port (default 27015 UDP/TCP), SourceTV port (27020), and RCON to 0.0.0.0 on all interfaces. This leaves the sockets
The goal is to define the concurrent client input threshold at which a Source engine server's deterministic lock-step simulation begins to serialize inputs across a single tick and produce measurable latency spikes. The server processes client commands sequentially per tick, so rapid simultaneous input from many clients can exceed the simulation step budget,
Source Engine includes con_filter_enable and con_filter_text console variables intended to suppress diagnostic output matching a specified substring and reduce developer spam. These variables support quiet alert configurations across supported games. However, certain subsystems such as VPhysics and the file system logger are documented to bypass the filter e
Goal I am working with the Source SDK (2013-era codebase) and need to run a filtered search for entities by classname or targetname across a map that may contain several thousand active entities. The documented approach iterates the global entity linked list linearly, which is O(n) per call, and I want to bound that cost per frame rather than scan everything
The Source Engine utilizes a tick-based simulation where network updates are decoupled from internal physics steps. When transitioning server configurations from a 64-tick to a 128-tick environment, the increased frequency of world state snapshots alters the granularity of client-side prediction and server-side lag compensation. Because physics calculations