Skip to content
Ryder Lee Smith
All work

xT plugins

My one-person software business. Lua plugins for GTA V and Red Dead Redemption 2 multiplayer servers, sold through a storefront I built and shipped by a release pipeline I wrote.

Role
Founder and developer
Years
2021 - Present
Stack
Lua, Svelte, React, TypeScript, MySQL, GitHub Actions, Cloudflare Workers
Links
The xT Development store's product index, with framework filters and product cards.

Scale

  • Open- and closed-source plugins running on 4,000+ servers, with 500+ sales.
  • xt-prison ships by default with an open-source game server framework and has 80+ stars on GitHub.
  • A 1,500-member Discord community uses the plugins in production and reports what breaks.

One codebase, five frameworks

Servers like these are built on one of several community frameworks, each with an incompatible API for players, inventory and permissions. Every xT plugin talks to an adapter layer instead, so the same code runs unmodified on five of them.

Each plugin is a client/server application with centralized config and localization, so server owners can adapt it without forking. Relational schemas persist player state, inventories and transactions across server restarts.

Interfaces in the game

The menus players see are web frontends in Svelte, React and TypeScript, talking to the Lua game client over a message bridge.

Storefront and docs

I replaced the hosted checkout from Tebex, a payments platform for game servers, with a storefront built against its Headless API: a branded SvelteKit front end on Cloudflare Workers that handles the catalogue and the purchase flow. The documentation moved off GitBook to a docs site I built with Next.js, now over 100 pages.

Release pipeline

A release is one push. A shared GitHub Actions workflow builds each plugin’s interface, uploads the build to the game platform’s asset portal and creates a GitHub Release. The Discord bot then writes the changelog from the commits and posts it.

The home page of the xT documentation site. Next case study xT Discord bot