Skip to content

A multi-faceted Discord Bot for Arma 3 Exile

Notifications You must be signed in to change notification settings

itsthedevman/esm_bot

Repository files navigation

Exile Server Manager (ESM)

ruby version esm version

ESM is a Discord Bot that interfaces with Exile servers through an Arma 3 server mod. By integrating with both Discord and Exile servers, players can manage their territories, check server status, and receive XM8 notifications even while offline. Server owners can monitor and manage their servers directly through Discord.

Links

Suggestions

ESM was and still is built for the Exile community. A majority of ESM's features started as community suggestions. Join our Discord and share your ideas in the #suggestions channel.


For Developers

This is the source code for ESM's Discord bot. If you're looking to install ESM for your Exile server, please visit our Getting Started Guide.

Requirements

  • Linux
  • Docker & Docker Compose
  • Discord application
  • Understanding of:
    • Ruby
    • discordrb
    • Active Record
    • RSpec
    • PostgreSQL
    • Redis

Setup

Method 1: Using Nix (Recommended)

# Install nix and direnv
# Enable flakes in your nix config
direnv allow

Method 2: Manual Setup

  1. Install requirements:

    • Linux
    • Docker & Docker Compose
    • Ruby (recommended to use asdf)
  2. Setup environment:

# Clone and enter directory
git clone [repository-url]
cd esm_bot

# Start required databases
docker compose up -d postgres-db redis-db

# Duplicate .env.example and configure
cp .env.example .env
# Edit .env with your configuration

# Initialize database and dependencies
bin/setup

# Start development
bin/dev

Core Systems

  • Commands: Modular system with argument parsing, permission handling and validation
  • Connection: TCP-based encrypted communication with Arma 3 servers
    • Promise-based request/response handling
    • Automatic reconnection
    • Client and server socket abstractions
  • Database: PostgreSQL with Active Record models
  • Events: Handles events from Discord and Arma 3 servers

License

Creative Commons License

ESM is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.

About

A multi-faceted Discord Bot for Arma 3 Exile

Resources

Stars

Watchers

Forks

Languages