Welcome to BandaStation
Relevant source files
The following files were used as context for generating this wiki page:
BandaStation is a Space Station 13 game repository based on the BYOND engine. It serves as a modified version of the /tg/station codebase, incorporating specific features, configurations, and a robust React-based user interface framework known as tgui. The project manages complex systems including SQL database integration, text-to-speech (TTS) services, and automated wiki publishing.
Sources: README.md:1-10, tgui/README.md:1-10
Getting Started
Compilation and Execution
You compile the project using provided batch scripts or cross-platform build tools. The primary build environment targets BYOND version 516.1685.
- Fast Method: Run
bin/server.cmdto automatically build and launch the server on port 1337. - Standard Method: Run
bin/build.cmdto start the compilation process, which typically takes 1-5 minutes. - TGUI Build: Build the interface framework using
bin/tgui-build(Windows) orbun tgui:build.
Direct compilation in DreamMaker is deprecated and may cause missing file errors for tgui.bundle.js.
Sources: README.md:21-33, tgui/README.md:68-75, dependencies.sh:7-8
Development Environment
The project relies on several external dependencies and tools for a full build:
- BYOND: Versions 515+ are required, with 516.1685 as the current target.
- Bun: Version 1.2.16+ is used for tgui and JavaScript tooling.
- Rust: Utilizes
rust_g(v7.0.0) andrust_utils(v0.2.1). - Python: Version 3.11.0 for map merging and utility scripts.
Sources: dependencies.sh:7-21, tgui/README.md:61-63
System Architecture
User Interface (tgui)
tgui is the robust UI framework used by BandaStation. It utilizes React and SASS, moving away from traditional DM-based interfaces. The framework uses a development server for rapid iteration and features chromium-based WebView2 for rendering.
The diagram above shows the data flow between the BYOND server and the React-based tgui interface.
Sources: tgui/README.md:5-15, tgui/README.md:143-157
Database Integration
The system uses a MySQL/MariaDB backend for persistent storage, including player logs, whitelists, and gameplay statistics.
| Table Name | Description | Key Fields |
|---|---|---|
schema_revision_220 | Tracks the database version | major, minor |
ckey_whitelist | Manages server access permissions | ckey, is_valid, port |
admin_wl | Stores admin ranks and levels | ckey, admin_rank, level, flags |
minesweeper | Scores for the in-game minesweeper | ckey, time, points |
budget | Financial tracking for the station | ckey, amount, source |
Sources: SQL/bandastation/database_changelog.md:9-70
Configuration and Policies
Server Configuration
Primary settings are managed in config/config.txt. This file controls core gameplay loops, population caps, and network limits.
- TICKLAG: Set to 0.5 (20 FPS).
- Lobby Countdown: 120 seconds.
- Population Caps: Supports Soft (100), Hard (150), and Extreme (200) limits.
- Panic Bunker: Rejects new connections if player living time is below 90 minutes.
Sources: config/config.txt:46, config/config.txt:234, config/config.txt:287-300, config/config.txt:325-331
Interview System
New players are subjected to an interview process to ensure they understand server rules. The welcome message and questions are defined in config/interviews.txt.
The sequence illustrates the workflow for onboarding new players through the mandatory interview system.
Sources: config/interviews.txt:1-13, config/config.txt:325-330
Licensing
The project follows a split licensing model based on historical commit dates:
- GNU AGPL v3: Applies to all code after December 31, 2014 (Commit
333c566). - GNU GPL v3: Applies to all code before that date.
- Creative Commons 3.0 BY-SA: Covers icons and sound assets.
- MIT: Covers the TGS DMAPI subproject.
Sources: README.md:46-60, GPLv3.txt:1-15
Summary
BandaStation is a technically diverse SS13 project that prioritizes modern web technologies for its interface via tgui and maintains strict quality control through CI linting and SQL-backed persistence. Developers are encouraged to use the provided Bun and Juke Build tooling to ensure compatibility with the BYOND 516 environment.
Sources: README.md:1-5, tgui/README.md:77-85