sinistergaming
04-29-2026, 10:37 AM
<h1>HLstatsX:CE Integration for Garry?s Mod Sledbuild</h1>
<p>
The SinisterGaming Sledbuild integration connects the Garry?s Mod gamemode
<strong>Sledbuild</strong> into <strong>HLstatsX:CE</strong>, turning HLstatsX from a
standard combat statistics system into a racing and sled performance tracker.
</p>
<p>
Because Sledbuild is not a native HLstatsX-supported game, custom integration work
was needed. Instead of tracking normal kills, deaths, and weapons only, the system
tracks race results, player placements, wins, losses, speed records, race totals,
and map-based racing activity.
</p>
<h2>How It Works</h2>
<p>
A custom Lua injector runs on the Garry?s Mod server and reads the live Sledbuild
race log. It parses each race result, matches the player to their HLstatsX player
record, and inserts the correct HLstatsX-compatible events into the database.
</p>
<p>
This allows Sledbuild race activity to show inside HLstatsX using the normal player,
rank, award, map, and weapon systems already built into HLstatsX:CE.
</p>
<h2>Tracked Sledbuild Events</h2>
<ul>
<li>Race starts</li>
<li>Race finishes</li>
<li>Race wins</li>
<li>Race losses</li>
<li>Solo race wins</li>
<li>Duo race wins</li>
<li>Multiplayer race wins</li>
<li>1st place finishes</li>
<li>2nd place finishes</li>
<li>3rd place finishes</li>
<li>Race records</li>
<li>Total races</li>
<li>Total race time</li>
<li>Top speed records</li>
<li>Map changes</li>
<li>Endurance racing activity</li>
</ul>
<h2>HLstatsX Action Codes</h2>
<ul>
<li><strong>race_start</strong> - Race started</li>
<li><strong>race_finish</strong> - Race finished</li>
<li><strong>race_win</strong> - Race won</li>
<li><strong>race_loss</strong> - Race lost</li>
<li><strong>race_solo_win</strong> - Solo race win</li>
<li><strong>race_duo_win</strong> - Duo race win</li>
<li><strong>race_multi_win</strong> - Multiplayer race win</li>
<li><strong>race_place_1</strong> - Finished 1st</li>
<li><strong>race_place_2</strong> - Finished 2nd</li>
<li><strong>race_place_3</strong> - Finished 3rd</li>
<li><strong>race_record</strong> - New race record</li>
<li><strong>race_total</strong> - Total race count</li>
<li><strong>time_total</strong> - Total race time</li>
<li><strong>top_speed</strong> - Top speed tracking</li>
<li><strong>map_change</strong> - Map change tracking</li>
<li><strong>endurance_racer</strong> - Endurance racing activity</li>
</ul>
<h2>Race Log Data Captured</h2>
<ul>
<li>Player name</li>
<li>SteamID</li>
<li>Map name</li>
<li>Top speed</li>
<li>Current speed</li>
<li>Personal record speed</li>
<li>Win count</li>
<li>Loss count</li>
<li>Race outcome</li>
<li>Race number</li>
</ul>
<h2>HLstatsX Compatibility</h2>
<p>
To keep the system compatible with normal HLstatsX pages, the integration also uses
a custom <strong>sled</strong> weapon entry. Race wins can be converted into
HLstatsX-compatible frag-style events so the existing ranking, weapon, map, and
player statistics pages continue to work without rebuilding the whole HLstatsX core.
</p>
<h2>Current Working Parts</h2>
<ul>
<li>Custom Garry?s Mod Lua injector</li>
<li>Database connection through mysqloo</li>
<li>Player matching through HLstatsX player IDs</li>
<li>SteamID normalization</li>
<li>Race log parsing</li>
<li>Player action insertion</li>
<li>Race placement tracking</li>
<li>Win and loss tracking</li>
<li>Speed record tracking</li>
<li>Offset tracking to prevent re-reading old log lines</li>
<li>Debug logging</li>
<li>HLstatsX awards and ranks groundwork</li>
</ul>
<h2>Project Rules and Notes</h2>
<ul>
<li>The active database is <strong>sinistergaming_hlstat</strong>.</li>
<li>The game code is <strong>gmodsledbuild</strong>.</li>
<li>Sledbuild is handled as a custom HLstatsX game profile.</li>
<li>No MySQL triggers are currently used.</li>
<li>The integration should not interfere with other HLstatsX game profiles.</li>
<li>The injector is responsible for generating correct live race data.</li>
<li>Ranks, awards, and player stats should stay compatible with normal HLstatsX behavior.</li>
</ul>
<h2>Known Development Areas</h2>
<ul>
<li>Preventing duplicate event inserts from repeated log processing</li>
<li>Making sure 1st place always counts as both <strong>race_place_1</strong> and <strong>race_win</strong></li>
<li>Keeping maps, weapons, awards, ranks, and player pages fully populated</li>
<li>Preserving a stable known-good injector baseline before each change</li>
</ul>
<h2>Summary</h2>
<p>
The HLstatsX:CE Sledbuild integration gives SinisterGaming a custom statistics
system for Garry?s Mod Sledbuild racing. It tracks race performance, player wins,
placements, speed records, and long-term racing progress while still using the
existing HLstatsX player, award, rank, map, and weapon systems.
</p>
<p>
This turns Sledbuild into a fully trackable competitive game mode inside HLstatsX,
without needing to replace the HLstatsX core or build a separate statistics site.
</p>
<p>
The SinisterGaming Sledbuild integration connects the Garry?s Mod gamemode
<strong>Sledbuild</strong> into <strong>HLstatsX:CE</strong>, turning HLstatsX from a
standard combat statistics system into a racing and sled performance tracker.
</p>
<p>
Because Sledbuild is not a native HLstatsX-supported game, custom integration work
was needed. Instead of tracking normal kills, deaths, and weapons only, the system
tracks race results, player placements, wins, losses, speed records, race totals,
and map-based racing activity.
</p>
<h2>How It Works</h2>
<p>
A custom Lua injector runs on the Garry?s Mod server and reads the live Sledbuild
race log. It parses each race result, matches the player to their HLstatsX player
record, and inserts the correct HLstatsX-compatible events into the database.
</p>
<p>
This allows Sledbuild race activity to show inside HLstatsX using the normal player,
rank, award, map, and weapon systems already built into HLstatsX:CE.
</p>
<h2>Tracked Sledbuild Events</h2>
<ul>
<li>Race starts</li>
<li>Race finishes</li>
<li>Race wins</li>
<li>Race losses</li>
<li>Solo race wins</li>
<li>Duo race wins</li>
<li>Multiplayer race wins</li>
<li>1st place finishes</li>
<li>2nd place finishes</li>
<li>3rd place finishes</li>
<li>Race records</li>
<li>Total races</li>
<li>Total race time</li>
<li>Top speed records</li>
<li>Map changes</li>
<li>Endurance racing activity</li>
</ul>
<h2>HLstatsX Action Codes</h2>
<ul>
<li><strong>race_start</strong> - Race started</li>
<li><strong>race_finish</strong> - Race finished</li>
<li><strong>race_win</strong> - Race won</li>
<li><strong>race_loss</strong> - Race lost</li>
<li><strong>race_solo_win</strong> - Solo race win</li>
<li><strong>race_duo_win</strong> - Duo race win</li>
<li><strong>race_multi_win</strong> - Multiplayer race win</li>
<li><strong>race_place_1</strong> - Finished 1st</li>
<li><strong>race_place_2</strong> - Finished 2nd</li>
<li><strong>race_place_3</strong> - Finished 3rd</li>
<li><strong>race_record</strong> - New race record</li>
<li><strong>race_total</strong> - Total race count</li>
<li><strong>time_total</strong> - Total race time</li>
<li><strong>top_speed</strong> - Top speed tracking</li>
<li><strong>map_change</strong> - Map change tracking</li>
<li><strong>endurance_racer</strong> - Endurance racing activity</li>
</ul>
<h2>Race Log Data Captured</h2>
<ul>
<li>Player name</li>
<li>SteamID</li>
<li>Map name</li>
<li>Top speed</li>
<li>Current speed</li>
<li>Personal record speed</li>
<li>Win count</li>
<li>Loss count</li>
<li>Race outcome</li>
<li>Race number</li>
</ul>
<h2>HLstatsX Compatibility</h2>
<p>
To keep the system compatible with normal HLstatsX pages, the integration also uses
a custom <strong>sled</strong> weapon entry. Race wins can be converted into
HLstatsX-compatible frag-style events so the existing ranking, weapon, map, and
player statistics pages continue to work without rebuilding the whole HLstatsX core.
</p>
<h2>Current Working Parts</h2>
<ul>
<li>Custom Garry?s Mod Lua injector</li>
<li>Database connection through mysqloo</li>
<li>Player matching through HLstatsX player IDs</li>
<li>SteamID normalization</li>
<li>Race log parsing</li>
<li>Player action insertion</li>
<li>Race placement tracking</li>
<li>Win and loss tracking</li>
<li>Speed record tracking</li>
<li>Offset tracking to prevent re-reading old log lines</li>
<li>Debug logging</li>
<li>HLstatsX awards and ranks groundwork</li>
</ul>
<h2>Project Rules and Notes</h2>
<ul>
<li>The active database is <strong>sinistergaming_hlstat</strong>.</li>
<li>The game code is <strong>gmodsledbuild</strong>.</li>
<li>Sledbuild is handled as a custom HLstatsX game profile.</li>
<li>No MySQL triggers are currently used.</li>
<li>The integration should not interfere with other HLstatsX game profiles.</li>
<li>The injector is responsible for generating correct live race data.</li>
<li>Ranks, awards, and player stats should stay compatible with normal HLstatsX behavior.</li>
</ul>
<h2>Known Development Areas</h2>
<ul>
<li>Preventing duplicate event inserts from repeated log processing</li>
<li>Making sure 1st place always counts as both <strong>race_place_1</strong> and <strong>race_win</strong></li>
<li>Keeping maps, weapons, awards, ranks, and player pages fully populated</li>
<li>Preserving a stable known-good injector baseline before each change</li>
</ul>
<h2>Summary</h2>
<p>
The HLstatsX:CE Sledbuild integration gives SinisterGaming a custom statistics
system for Garry?s Mod Sledbuild racing. It tracks race performance, player wins,
placements, speed records, and long-term racing progress while still using the
existing HLstatsX player, award, rank, map, and weapon systems.
</p>
<p>
This turns Sledbuild into a fully trackable competitive game mode inside HLstatsX,
without needing to replace the HLstatsX core or build a separate statistics site.
</p>