| .vscode | ||
| commands | ||
| migrations | ||
| public | ||
| routes | ||
| views | ||
| .env.example | ||
| .gitignore | ||
| analytics.js | ||
| commands.js | ||
| fetchTest.js | ||
| flags.js | ||
| index.js | ||
| LICENSE | ||
| log.js | ||
| migrations.js | ||
| package-lock.json | ||
| package.json | ||
| rateLimit.js | ||
| README.md | ||
| TODO.md | ||
RTECH Unified Ban System
The UBS Project is brought to you by the RTECH Development Team. This project aims to solve a simple but crucial problem: managing bans across roblox and discord. And making it easy to impliment, to keep communities safe.
Join the RTECH Discord!
Server Status
Features
- MariaDB database for storing ban data
 - REST API for querying bans
 - Web interface for querying bans
 - Admin web interface for managing bans
 - Mass import of bans
 - Mass export of bans
 - Ban appeal system
 - Ban appeal system admin interface
 - Discord integrations (Notifications, Appeals, Querying)
 
Usage on Roblox
- Download either the UBS-Loader or UBS-Static module.
UBS-Loaderis a loader module that will automatically download the latest version of the UBS module from Roblox. (Recommended)UBS-Staticis the static version of the module, without automatic updates. (This does not affect the ban list, as that is stored on our servers, and is served by the API)
 - Insert the module into your game
 - Move the module to 
ServerScriptService - Configure via the 
Configurationmodule, or just leave it as-is to use the default settings - Profit!
 
API Documentation
🔓 Unauthenticated Endpoints
GET /health - Healthcheck endpoint (For Uptime Kuma)
GET /v1/myIP - Get your IP address (As seen by the server. Useful for debugging)
GET /v1/info - Get information about the API (Version, All reason flags)
GET /api/v1/bans - Get all bans
GET /api/v1/ban/roblox/:robloxId - Get bans by Roblox ID
GET /api/v1/ban/discord/:discordId - Get bans by Discord ID
🔒 Authenticated Endpoints
GET /admin - Renders the admin dashboard.
GET /admin/edit/:id - Renders the edit ban page for a specific ban.
GET /admin/create - Renders the create ban page.
POST /admin/create - Creates a new ban.
Post Data:
{
	"robloxId": "string",
	"discordId": "string",
	"reason": "string",
	"duration": "number"
}
POST /admin/edit/:id - Edits an existing ban.
Post Data:
{
	"reason": "string",
	"duration": "number"
}
GET /admin/import - Renders the import page for uploading ban data.
POST /admin/import - Handles the import of ban data from a file.
Post Data:
fileInput: File upload (CSV format)fileType: Type of the file being uploaded (e.g., 'csv', 'mfd')
GET /admin/uploadStatus - Renders the upload status page.
GET /admin/api/bans - Retrieves all bans.
GET /admin/api/uploads/:id - Retrieves the status of a specific upload.
GET /admin/api/uploads - Retrieves the status of all uploads.
GET /admin/login - Renders the admin login page.
POST /admin/login - Handles admin login.
Post Data:
{
	"username": "string",
	"password": "string",
	"totp": "string"
}
ALL /admin/logout - Logs out the admin.