Summary
This mod provides server-side control over the progression of time in Arma Reforger.
Description
Dynamic Day & Night Time Manager
This server-side mod provides complete, dynamic control over time progression, date synchronization, and client time-drift correction in Arma Reforger.
Administrators can independently scale daytime and nighttime speeds, leverage astronomical sunrise/sunset calculations, synchronize real-world system dates, and enforce custom startup schedules via an external JSON configuration file.
Key Features:
- Independent Acceleration Rates: Define separate time speed multipliers for day and night cycles.
- Astronomical Sun Position Detection: Dynamically detects actual sunrise and sunset based on map latitude, longitude, and seasonal sun angles.
- Real-Time Date Sync: Option to automatically set the in-game date to the host server's actual OS system date upon launch.
- Custom Startup Date & Time: Enforce specific in-game start times and dates on server startup.
- Seamless Client Synchronization: Automatic time synchronization for Join-In-Progress (JIP) players and periodic background drift correction.
- Auto-Updating JSON Config: Automatically creates `$profile:GSC_TimeConfig.json` on first launch and dynamically appends new keys without overwriting existing admin values.
- Zero Performance Overhead: Fully optimized via cached C++ entity references and lightweight interval checks.
Configuration
On first startup, the mod generates or updates the configuration file located at `$profile:GSC_TimeConfig.json`:
JSON:
{
"dayTimeAcceleration": 4.0,
"nightTimeAcceleration": 12.0,
"dayStartHour": 6,
"nightStartHour": 19,
"syncIntervalSeconds": 60,
"syncOnPlayerJoin": 1,
"playerJoinSyncDelaySeconds": 2.0,
"enableDebugLogs": 1,
"useAstronomicalSunSet": 1,
"useRealDate": 1,
"setCustomDate": 0,
"startYear": 2026,
"startMonth": 9,
"startDay": 16,
"setCustomTime": 0,
"startTimeOfDay": 9.0
}
Configuration Parameters
- dayTimeAcceleration: Speed multiplier during daytime hours (e.g., 4.0 means 1 in-game hour passes in 15 real-world minutes).
- nightTimeAcceleration: Speed multiplier during nighttime hours (e.g., 12.0 means 1 in-game hour passes in 5 real-world minutes).
- dayStartHour: Fallback hour (0–23) marking daytime start (used when `useAstronomicalSunSet` is disabled).
- nightStartHour: Fallback hour (0–23) marking nighttime start (used when `useAstronomicalSunSet` is disabled).
- syncIntervalSeconds: Interval in seconds for hard client-server time sync (drift correction).
- syncOnPlayerJoin: Enables instant time synchronization when a player joins (1 = Enabled, 0 = Disabled).
- playerJoinSyncDelaySeconds: Delay in seconds before synchronizing JIP players after connection.
- enableDebugLogs: Enables clean server console logging (1 = Enabled, 0 = Disabled).
- useAstronomicalSunSet: Automatically calculates day/night transitions using native map solar geometry (1 = Enabled, 0 = Disabled).
- useRealDate: Automatically sets the in-game date to match the host server's real OS system date on startup (1 = Enabled, 0 = Disabled).
- setCustomDate: Enforces a custom in-game date on server startup if `useRealDate` is set to 0 (1 = Enabled, 0 = Disabled).
- startYear / startMonth / startDay: Target year, month, and day used when `setCustomDate` is enabled.
- setCustomTime: Enforces a custom in-game start time on server startup (1 = Enabled, 0 = Disabled).
- startTimeOfDay: Target start time in 24h decimal format (e.g., 9.0 = 09:00, 14.5 = 14:30) used when `setCustomTime` is enabled.
Installation
1. Add the mod to your server mod list.
2. Launch the server once to generate the default configuration file in your server profile directory.
3. Edit `$profile:GSC_TimeConfig.json` to your desired settings and restart the server.License
Arma Public License No Derivatives (APL-ND)