Welcome to the FairgroundAPI! This is a BepInEx / IL2CPP mod for the game Fairground Online that exposes the control panels of in-game rides via a WebSocket and a beautiful Web Dashboard. It enables you to control rides from your desktop browser, a mobile tablet, or even a physical hardware controller!
- Zero-Latency Control: Press buttons, flip switches, turn potentiometers, move joysticks, toggle stop buttons, and switch multy toggles remotely.
- Bi-directional Sync: The dashboard accurately reflects the real-time blinking state and colors of all the physical ride lights.
- Plug & Play Web Dashboard: Comes with a fully responsive, dark-mode dashboard.
- Built-in Developer API Reference: The web dashboard features a live, self-documenting API registry that displays exact JSON payloads and API names for every component on the current ride.
Note: You must have BepInEx 6 Bleeding Edge (IL2CPP version) installed in your game directory. Read the Installation Guide if you need help.
- Go to the Releases page and download the latest
.zipfile. - Extract both
FairgroundAPI.dllandwebsocket-sharp.dllinto yourBepInEx/plugins/folder. - Keep the
webfolder anywhere on your PC (or host it locally). - Launch the game, walk up to a ride, take control, and then simply double-click
web/index.htmlto open your control panel!
After running the game with the plugin installed for the first time, an auto-generated configuration file will appear at BepInEx/config/com.invalidluca.fairground.api.cfg.
You can edit this file to change:
- Listen IP: Change the bind IP (default:
0.0.0.0to allow local-network devices like tablets to connect). Set this to127.0.0.1if you want to strictly restrict connections to your local PC. - WebSocket Port: Change the listening port (default:
8765). If you change this, make sure to update the URL in your web dashboard. - Poll Rate: Adjust how frequently the API checks for ride state changes, like blinking lights (default:
0.5seconds). Lower values mean faster light updates but consume more CPU usage.
Do you want to build your own custom dashboard, a Discord integration, or a physical hardware controller (like Arduino/ESP32)?
We have fully documented the entire WebSocket interface (JSON payloads in and out).
Tip: The included Web Dashboard (web/index.html) features a live Developer API Reference tab that automatically lists every single component on the ride you are currently controlling, complete with click-to-copy API names and JSON examples!
👉 Read the API Documentation here
Found a bug or have a feature request? Please open an issue on GitHub. Pull requests are also highly welcome! If you want to contribute to the project, feel free to fork the repository, make your changes, and submit a PR.
If you have any questions, encounter bugs, or need help implementing the API, feel free to reach out.
Discord: @invalidluca





