$ show Team-Silver-Sphere/SquadJS
SquadJS is a Node.js scripting framework for Squad game servers. It acts as a server-side daemon that connects to a Squad server via RCON and live log files (local, FTP, or SFTP) to collect real-time events such as player connections, kills, wounds, chat messages, admin actions, and server tick rates. The framework provides a plugin system with base classes (BasePlugin, DiscordBasePlugin) that allow extensibility for Discord integration, database logging (via Sequelize with MySQL/SQLite), community ban list checks, and custom admin tools. It also includes a Socket.IO API for remote monitoring and a prebuilt Grafana dashboard for visualization. The architecture is a monorepo with Yarn workspaces (core, squad-server, assets), where core handles RCON communication and log parsing, and squad-server manages server lifecycle, log rules, and plugin loading. The system is designed to be deployed alongside a Squad game server and is actively maintained with a focus on community-driven plugins.
The LLM identified 4 files worth highlighting for reuse:
A standalone RCON client implementation that handles packet encoding/decoding, connection management, and automatic reconnection. It can be extracted and reused for any game server that uses the Source RCON protocol, with minimal modification.
A generic log parser that reads log lines asynchronously, matches them against configurable rules, and emits structured events. The async queue and rule-matching pattern are reusable for any log-based event system, not just Squad.
Parses 'Online IDs:' strings from game logs into platform-specific identifiers (Steam, EOS). The logic is self-contained and can be reused in any project that needs to extract multiple ID types from a single line of text.
Base class for all SquadJS plugins, providing lifecycle methods (mount, unmount, prepareToMount), option specification with defaults, and connector access. This pattern is reusable for building extensible server-side applications with a plugin architecture.