Armory
The Armory module manages the armory rotation system in Dark War Survival: 8 slots with buffs, weekly assignments to alliances, and announcements about the current layout.
Enabling the Module
- Dashboard → Your server → toggle Armory
- Click Edit to configure the announcement channel
- Save changes
Configuration
| Option | Type | Default | Description |
|---|---|---|---|
announcement_channel_id | string / null | null | Channel for assignment announcements |
history_mode | string | "command" | History mode: "command" or "embed" |
history_message_id | string / null | null | History message ID (embed mode) |
history_channel_id | string / null | null | History channel (embed mode) |
Armory Slots
Each server has 8 armory slots (created automatically):
- Number (1–8)
- Name (configured in dashboard)
- Buff description
Slots are stored in the armory_slots table.
Dashboard — Configuration
The Armory edit panel contains:
- Announcement Channel — dropdown with channels
- Slots Configuration — editing names and descriptions of 8 slots
- Current Assignments — current week overview
Commands
/armory assign
Assigns an alliance to an armory slot for the current week.
| Parameter | Required | Description |
|---|---|---|
slot | ✅ | Slot number (1–8) |
alliance_name | ✅ | Alliance name (ILIKE search) |
Requirements: Administrator or current president.
Flow:
- Checks permissions (admin or president)
- Searches for alliance by name (partial match)
- Upserts assignment for the current week
- Sends an announcement embed to
announcement_channel_id - Logs the assignment
/armory clear
Removes an alliance assignment from a slot for the current week.
| Parameter | Required | Description |
|---|---|---|
slot | ✅ | Slot number (1–8) |
Requirements: Administrator or current president.
Weekly Rotation
Assignments are week-based:
- The week starts on Monday 00:00 UTC
- Each week has a separate set of assignments
- Old assignments remain in history
Announcement Format
The announcement embed contains:
- Title: "🏰 Armory Assignments"
- Description: "Week of [date]"
- 8 fields (one per slot): slot name + assigned alliance + buff description
- Footer with update date
┌─────────────────────────────────────┐
│ 🏰 Armory Assignments │
│ Week of June 9, 2026 │
├─────────────────────────────────────┤
│ 1. Infantry Armory │
│ **Alliance Alpha** │
│ +10% Infantry Attack │
│ │
│ 2. Cavalry Armory │
│ *Unassigned* │
│ +10% Cavalry Defense │
│ ... │
└─────────────────────────────────────┘
Permissions
| Action | Who can |
|---|---|
| Assign / Clear | Administrator or current president |
| View | Everyone (embed on channel) |
The armory system is designed to work with the Presidents module — the president is responsible for the weekly armory distribution among alliances.
Database
| Table | Description |
|---|---|
armory_slots | guild_id, slot_number, name, buff_description |
armory_assignments | guild_id, slot_number, alliance_id, week_start, assigned_by, assigned_at |
Constraint: UNIQUE(guild_id, slot_number, week_start) — one alliance per slot per week.
Logging
Actions logged by Logs under the armory category:
- 🏰 Armory Assigned — slot number, alliance, who assigned
- 🏰 Armory Cleared — slot number
Tips
- Configure
announcement_channel_idto a channel visible to alliance leaders - Give slots descriptive names matching the in-game buffs
- Rotate assignments weekly to ensure fair access
- The president should make assignments at the beginning of each week
- President decides on the armory distribution
- Uses
/armory assignfor each slot - Bot sends an embed with the full layout
- Alliance leaders see which armory they have this week