Zero-install playing
Open the portal and PolyTrack loads with the mod layer active. No downloads, no forks, no browser extensions. Mods run in your own browser against your own live copy of the game.
A mod loader for PolyTrack. Stable API, declarative mixins, and mods that survive game updates.
For players. Go to tspml.vercel.app, wait for the game to boot, and add mods from the sidebar. You can paste a mod's files, import a mod from a URL, or open a share link someone sent you. Your mods persist in your browser and survive reloads. See Playing with mods.
For modders. A mod is three small files: a mod.json manifest, a JavaScript entrypoint that receives a typed api object, and (optionally) a mixins.json with deep patches. The getting-started guide walks you through all of it.
// A complete TSPML mod
export default (api) => {
api.events.on('race.finished', ({ frames, isReplay }) => {
if (isReplay === true) return; // that was a ghost, not you
api.logger.log(`Finished in ${(frames / 60).toFixed(2)}s`);
});
return () => api.logger.log('bye'); // cleanup on unload
};For the curious. The architecture pages explain how a minified, hash-gated webpack bundle becomes a moddable game: mappings, AST transforms, and a service-worker delivery pipeline.