Find a file
2024-12-23 21:49:25 -07:00
.vscode GUH 2024-12-04 20:57:28 -07:00
commands Maybe fix that 2024-12-23 08:02:16 -07:00
migrations Log number of requests to endpoints in DB 2024-12-23 17:11:22 -07:00
public Make default count 100 2024-12-23 21:49:25 -07:00
routes Log number of requests to endpoints in DB 2024-12-23 17:11:22 -07:00
views Fix 2024-12-23 09:41:25 -07:00
.env.example Add some docs 2024-12-22 22:40:15 -07:00
.gitignore Add some log rotation stuff 2024-12-23 09:49:27 -07:00
analytics.js Log number of requests to endpoints in DB 2024-12-23 17:11:22 -07:00
commands.js Add discord lookup functionality 2024-12-23 08:00:54 -07:00
fetchTest.js Clean up rate limiter 2024-12-23 16:42:50 -07:00
flags.js Progress is being made 2024-12-06 09:13:01 -07:00
index.js Make default count 100 2024-12-23 21:49:25 -07:00
LICENSE GUH 2024-12-04 20:57:28 -07:00
log.js Progress is being made 2024-12-06 09:13:01 -07:00
migrations.js Add audit logs; Fix Create/edit usernames 2024-12-21 11:05:34 -07:00
package-lock.json Add homepage (uses readme); Delete old uploads at startup (save space); Update README.md; 2024-12-22 23:11:26 -07:00
package.json Add homepage (uses readme); Delete old uploads at startup (save space); Update README.md; 2024-12-22 23:11:26 -07:00
rateLimit.js Clean up rate limiter 2024-12-23 16:42:50 -07:00
README.md Whoops 2024-12-23 15:49:55 -07:00
TODO.md Add some docs 2024-12-22 22:40:15 -07:00

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

UBS Status UBS Uptime UBS Response Time

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

  1. Download either the UBS-Loader or UBS-Static module.
    • UBS-Loader is a loader module that will automatically download the latest version of the UBS module from Roblox. (Recommended)
    • UBS-Static is 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)
  2. Insert the module into your game
  3. Move the module to ServerScriptService
  4. Configure via the Configuration module, or just leave it as-is to use the default settings
  5. 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.