Scheduler
Automated map rotation, community map voting, and base damage scheduling — all in one module.
What it does
The Scheduler module handles three separate but related features for your server:
- Map Rotation — automatically cycle through maps on a schedule and restart the server
- Map Voting — let your community vote on the next map via Discord
- Base Damage Schedule — automatically enable and disable base/container damage on a schedule
Each feature can be enabled or disabled independently.
Supported maps
| Map | Mission value |
|---|---|
| Chernarus | chernarusplus |
| Livonia | enoch |
| Sakhal | sakhal |
Map rotation
When enabled, Vigil cycles through your configured map list in order. At each rotation, it updates the mission config on Nitrado and optionally restarts the server.
Schedule modes
Interval — rotate every X hours. For example, every 8 hours means 3 rotations per day on a rolling timer.
Fixed — rotate at specific times of day, with three frequency options:
- Daily — fires at the same time(s) every day
- Weekly — fires on a specific day of the week
- Monthly — fires on a specific day of the month, optionally every N months
You can configure multiple times per day in fixed mode (e.g. 00:00, 08:00, 16:00 for three daily rotations). Times are entered in your configured timezone, which defaults to UTC if none is set.
Countdown warnings
Vigil can post warning messages to Discord before each rotation. You configure which thresholds to warn at (e.g. 30, 10, 5 minutes). Each threshold fires once per rotation cycle.
Configuration options
| Option | Description |
|---|---|
| Maps | The list of maps to cycle through in order |
| Schedule mode | Interval (every X hours) or Fixed (specific times) |
| Interval hours | Hours between each rotation (interval mode only) |
| Fixed times | UTC times to rotate at (fixed mode only, e.g. 08:00) |
| Fixed frequency | Daily, weekly, or monthly |
| Warning minutes | Which minute thresholds to post warnings at (e.g. 30, 10, 5) |
| Restart on rotate | Whether to restart the server when the map changes |
| Map rotation enabled | Toggle map rotation on or off independently of voting and base damage |
Map voting
When enabled, your community can vote on the next map using the /mapvote Discord command. The winning map overrides the next scheduled rotation.
How it works
- A staff member runs
/mapvote startin Discord - Vigil posts a vote embed with buttons for each map in your rotation
- Players click to cast their vote — one vote per person
- When the vote ends (either at the configured duration or when a staff member runs
/mapvote end), the winner is set as the next map override - At the next scheduled rotation, Vigil rotates to the winning map instead of the next in sequence
If the vote ends in a tie, Vigil starts a new vote automatically. If fewer than 2 votes are cast, the result is discarded and the normal rotation continues.
Discord commands
| Command | Description |
|---|---|
/mapvote start | Start a map vote (staff only) |
/mapvote end | End the current vote early and apply the result (staff only) |
/mapvote status | Show current standings (staff only) |
All /mapvote commands require Manage Server permission in Discord.
Configuration options
| Option | Description |
|---|---|
| Allow voting | Enable or disable community map voting |
| Vote duration | How long the vote runs before automatically closing (minutes) |
| Vote channel | The Discord channel where vote embeds are posted (defaults to where the command was used) |
Base damage schedule
The Base Damage Schedule lets you automatically enable and disable base and container damage on your server at specific days and times. This is useful for servers that run raid weekends — damage is enabled Friday evening and disabled Monday morning, for example.
How it works
You configure two sets of days/times: when damage turns on and when it turns off. Vigil patches your server's cfggameplay.json file on Nitrado at each trigger. You can also enable a server restart on change so the setting takes effect immediately.
Warning messages can be sent to Discord before damage activates so players have time to prepare.
Configuration options
| Option | Description |
|---|---|
| Base damage enabled | Enable the base damage schedule feature |
| Timezone | The timezone to use when interpreting your on/off times |
| On days | Which days of the week damage activates |
| On time | What time damage activates on those days (HH:MM in your timezone) |
| Off days | Which days of the week damage deactivates |
| Off time | What time damage deactivates on those days |
| Warning minutes | Thresholds (in minutes) at which to post a warning before damage activates |
| Disable base damage | Toggle the disableBaseDamage flag in cfggameplay.json |
| Disable container damage | Toggle the disableContainerDamage flag in cfggameplay.json |
| Restart on change | Restart the server when damage state changes so it takes effect immediately |
| Base damage webhook | A separate Discord webhook for base damage notifications (optional — uses the module webhook if blank) |
Discord notifications
All three features post to your configured Discord webhook. Notifications include:
- Map rotation warnings — posted at each configured threshold before a rotation
- Map rotation — posted when the map changes, showing the new map name
- Base damage activating — posted at each warning threshold before damage turns on
- Base damage active — posted when damage is enabled
- Base damage inactive — posted when damage is disabled
Suggested Discord channel
#server-status or #announcements for rotation and base damage alerts. Map vote embeds can go to a separate #map-vote channel if you want them visible to all players.