QuadradiusPreservationProject
Making it possible to play Quadradius again
Install / Use
/learn @Fruktus/QuadradiusPreservationProjectREADME
Quadradius Preservation Project
<div align="center"> <a href="https://quadradius.app/"> <img src="https://img.shields.io/badge/Play%20Now-fca903" alt="Play Now" width="200"> </a> </div>The goal of this project is to keep this game alive. The software contained in this repository is a reimplementation of the original server, which was written in Java. Some functionalities may be missing, if so, please report them using the Issues page.
The website classic.quadradius.com is no longer available and the only way to obtain the client files is through archives or in our Quadradius Classic Backup repo.
The project is non-profit.
All of the rights belong to the original authors, Jimmi Heiserman and Brad Kayal with whom we are not affiliated.
The provided software does not represent the quality of the original,
and the original authors should in no way be held accountable for any liabilities.
Where to play
You can play the current build at quadradius.app. You can register a member account on our Discord server. The game is and will be free to play. If you'd like to discuss anything with us (authors) or fellow players you can join our discord server linked at the top or use this link.
Quadradius Launcher
<p align="center"> <img src=".github/readme/launcher.png" alt="Quadradius Launcher window" style="width:70%;"/> </p>The launcher is the easiest way to run the application. Download the appropriate version for your system from Releases. Then run the application within and follow the instructions. To make the server available outside your LAN, port forwarding will most likely be needed, but this will not be covered here.
Alternatively, you can set the launcher up manually by following the steps from Manual
Installation from source
If the launcher is not desired, it is possible to install the software manually:
- From source (by installing Python and dependencies, downloading Ruffle and configuring everything)
- Via Docker
To run the game, the client is needed. The Flash emulator, Ruffle, mostly works (with minor inconsistencies) and is the preffered way of running the software.
Manual installation
Clone or download the repository from GitHub and run
python -m QRServer
You can configure the server by passing the following CLI parameters:
-b/--bind— bind address (default127.0.0.1),-p/--lobby-port— lobby port (default3000),-q/--game-port— game port (default3001).
You can also run python -m QRServer -h to display help.
Docker and Compose
This repository also contains a Dockerfile which creates an image with an HTTP server (serving the client SWF files), and the QR server itself.
There is a Compose configuration which makes setting up the server easy, just run:
docker compose up
However, when you want to run the Docker image without Compose:
docker run -it \
-p <lobby port>:3000 \
-p <game port>:3001 \
-p <http port>:8000 \
-e ADDRESS="<address>" \
-e LOBBY_PORT="<lobby port>" \
-e GAME_PORT="<game port>" \
ghcr.io/fruktus/quadradius-preservation-project:<version or latest>
The following environment variables configure the server:
ADDRESS— the address which the server will be hosted at, by default it's127.0.0.1LOBBY_PORTandGAME_PORT— the ports of the application, they are used by the client to connect to the server
When the image is running, you can start the game by executing
./ruffle http://<address>:<http port>/quadradius_lobby.swf
# or
./flashplayer http://<address>:<http port>/quadradius_lobby.swf
by default, it will be
./ruffle http://127.0.0.1:8000/quadradius_lobby.swf
# or
./flashplayer http://127.0.0.1:8000/quadradius_lobby.swf
Persisting data
Data is stored in directory /data in the container.
In order to persist the data between containers, just bind this directory
or create a volume.
Related Skills
node-connect
349.2kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
109.5kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
openai-whisper-api
349.2kTranscribe audio via OpenAI Audio Transcriptions API (Whisper).
qqbot-media
349.2kQQBot 富媒体收发能力。使用 <qqmedia> 标签,系统根据文件扩展名自动识别类型(图片/语音/视频/文件)。
