OpsTrack
by mikkelsen
0.3.19
0.3.19 — Logging Cleanup & API Response Handling Console spam eliminated: Repetitive INFO logs that fired every 3 seconds (batch flush summaries, HTTP 200 confirmations) have been downgraded to DEBUG. In normal mode, the console now only shows operational events: entity creation, connections, recording start/stop, and errors. Debug mode still shows everything. Unknown entity detection: The mod now parses the API's unknownEntityIds response field and logs a WARNING when entity states reference entities the API doesn't recognize. This makes it easy to spot entity definition delivery issues without enabling debug mode. Combat event logging reduced: Kill/self-harm event details moved from INFO to DEBUG. Kill data is already stored in the API, no need to spam the server console during large battles with many AI casualties. Fire test logging silenced: Both OpsTrack_FireTest and OpsTrack_MuzzleFireTest (experimental/diagnostic classes) now log exclusively at DEBUG level. Enfusion IndexOf compatibility fix: The unknownEntityIds parser uses single-argument IndexOf calls only, matching Enfusion's string API (no start-position overload).
- Game Version
- 1.6.0.119
- Created
- Tue, 17 Mar 2026 09:32:23 GMT
- Last Modified
- Tue, 17 Mar 2026 09:32:24 GMT
0.3.18
0.3.18 — Entity Durability & Backoff Fixes Fixed Entity definitions no longer lost during API outages — Previously, if the API was unreachable for 5+ consecutive retries, all queued data including entity definitions was dropped. The mod continued tracking entities and sending position data, but the API didn't know the entityIds, causing cascading 500 errors. Entity definitions and mission assignments now survive all backoff cycles. Entities spawned during API downtime are now registered — New entities (AI reinforcements, vehicles, players joining) that appeared while the API was down were silently dropped. They are now always queued and sent with the first successful batch after recovery. Mission start/end no longer disrupts batch pipeline — Mission requests (start/stop) previously shared the same callback as batch data. If a mission request failed with a 5xx error, it incorrectly counted toward the batch retry limit and could trigger premature data drops. Mission requests now use a separate callback that cannot interfere with the batch pipeline. No more Virtual Machine Exception on concurrent requests — Sending a mission start/end while a batch was in-flight could cause the engine to garbage-collect the active batch callback, resulting in a crash. Fixed by using a dedicated callback field for mission requests. Resolved compile warnings — Fixed "Possible variable name conflict" warnings in entity constructor.
- Game Version
- 1.6.0.119
- Created
- Mon, 16 Mar 2026 15:42:25 GMT
- Last Modified
- Mon, 16 Mar 2026 15:42:27 GMT
0.3.17
HOTFIX V0.3.17 Map name strictness — Auto-mode now uses config-only lookup (OpsTrack_MapNames.conf). Unknown maps are blocked with a list of available maps. Path-extraction fallback removed. Backoff fix — Flush timer now respects backoff cooldown. Prevents requests during active cooldown period. 5xx retry limit — Max 5 retries on server errors, then poisoned data is dropped with log + admin notification. Prevents infinite retry loops (previously 31+ minutes). Error state reset — Queues and error counters are cleared on new recording start. Prevents stale data from corrupting new recordings. Stop-recording race fix — m_IsRecording is set to false BEFORE async mission-end call. Prevents mission-end 404 errors from re-entering StopRecording() and incrementing the error counter. API error handling — 401 (invalid key) and 429 (tier limit) stop recording immediately. 409 (mission ended) stops gracefully. 400 stops after 3 consecutive failures. Admin chat notifications — Server errors and API issues are sent as in-game chat messages to admin players (throttled to 1/min). Callback message passthrough — API error messages are now shown in logs and admin notifications.
- Game Version
- 1.6.0.119
- Created
- Fri, 13 Mar 2026 19:05:47 GMT
- Last Modified
- Fri, 13 Mar 2026 19:05:48 GMT
0.3.16
Added maps - Denali - Barzan
- Game Version
- 1.6.0.119
- Created
- Fri, 13 Mar 2026 17:03:20 GMT
- Last Modified
- Fri, 13 Mar 2026 17:03:22 GMT
0.3.15
V0.3.15 Map name strictness Auto-mode #opstrack_start now only accepts maps defined in config. Previously, unsupported maps could start recording via path extraction fallback (e.g. "RL_TraningWorld_Gamemode"). Unsupported maps are now blocked with an error listing available maps. Backoff fix Fixed a bug where the 3-second flush timer ignored the backoff cooldown, causing infinite retry spam every 3 seconds despite reporting "retry in 120 seconds". The flush timer now respects the backoff state. API error handling All API error codes now have specific handling. 401 (invalid API key) and 429 (tier limit) stop recording immediately. 409 (mission ended) stops gracefully. 400 stops after 3 consecutive failures. Error messages from the API response body are now logged with full context. Admin chat notifications API errors are now sent as in-game chat messages to all players with administrator role, throttled to max 1 message per 60 seconds. Uses BaseChatComponent.SendMessage() — channel ID needs in-game verification. Callback message passthrough REST callback now extracts the API response body and passes it through to all error handlers (Backoff, OnClientError, OnMissionEndedByServer), so the actual API error message is available for logging and admin notification. Added support for Everon
- Game Version
- 1.6.0.119
- Created
- Thu, 12 Mar 2026 19:04:38 GMT
- Last Modified
- Thu, 12 Mar 2026 19:04:39 GMT
0.3.14
**V0.3.14** **Guaranteed death state** Entities now always send a final isAlive=false state when destroyed. Previously entities could disappear from replay without a death marker if they died between capture ticks. **GM possession fix** When a Game Master possesses an AI character, the AI retains its correct identity (name, faction, type=AI) on replay. Previously the AI would incorrectly appear as the GM entity. **Vehicle tracking: full world discovery** All vehicles are now tracked from mission start via QueryEntitiesBySphere, not just when a player/AI occupies them. Parked and empty vehicles are now visible on replay. **Dynamic faction on entity states** All entity states (players, AI, vehicles) now include a faction field in every state payload. For vehicles, faction dynamically reflects alive occupants per tick. Empty vehicles or vehicles with only dead occupants send faction: "Unknown". **Dead occupant check** Vehicle faction only considers alive passengers. If all occupants are dead, faction transitions to "Unknown". Previously a vehicle with corpses in seats would still report the dead passenger's faction.
- Game Version
- 1.6.0.119
- Created
- Tue, 10 Mar 2026 14:11:19 GMT
- Last Modified
- Tue, 10 Mar 2026 14:11:23 GMT
0.3.13
Batch retry data loss fix Fixed a critical bug where entity definitions could be permanently lost when the API returned a server error (5xx). Previously, queued data was cleared before the request completed — meaning if the request failed, entity definitions were gone and could never be resent. This caused cascading 500 errors on the API side. Data is now only removed from queues after a successful response. On failure, all data is kept for retry. Autostop on empty server When all players disconnect during an active recording, OpsTrack now starts a 5-minute countdown. If no players return within that window, the recording stops automatically. If a player reconnects before the timer expires, the countdown resets and recording continues as normal.
- Game Version
- 1.6.0.119
- Created
- Mon, 09 Mar 2026 18:30:27 GMT
- Last Modified
- Mon, 09 Mar 2026 18:30:31 GMT
0.3.12
Map Name Resolution Auto-detection: Map name resolves automatically from the world file for supported maps (config lookup + path extraction with prefix stripping) Manual override: Use #opstrack_start <MapName> to specify the map name directly (case-insensitive) Blocked on unknown: Recording is blocked if the map name cannot be resolved — error message shows available maps and the world file path for troubleshooting Mission name auto-generated: Mission names are now always timestamp-based (Mission_2026-03-07T...), no longer set via command Command changes: #opstrack_start — auto-detect map name #opstrack_start Chernarus — manual map name (case-insensitive)
- Game Version
- 1.6.0.119
- Created
- Sat, 07 Mar 2026 10:29:01 GMT
- Last Modified
- Sat, 07 Mar 2026 10:29:03 GMT
0.3.11
Added maps: Gogland Hamland Arland
- Game Version
- 1.6.0.119
- Created
- Fri, 06 Mar 2026 11:49:10 GMT
- Last Modified
- Fri, 06 Mar 2026 11:49:11 GMT
0.3.10
Added support for Serhiivka
- Game Version
- 1.6.0.119
- Created
- Wed, 04 Mar 2026 05:50:00 GMT
- Last Modified
- Wed, 04 Mar 2026 05:50:03 GMT
0.3.9
Added Takistan to supported maps
- Game Version
- 1.6.0.119
- Created
- Sun, 01 Mar 2026 15:49:04 GMT
- Last Modified
- Sun, 01 Mar 2026 15:49:06 GMT
0.3.8
- Game Version
- 1.6.0.119
- Created
- Thu, 26 Feb 2026 11:23:41 GMT
- Last Modified
- Thu, 26 Feb 2026 11:23:42 GMT
0.3.7
Add support for Ruha and Chernarus
- Game Version
- 1.6.0.119
- Created
- Wed, 25 Feb 2026 12:43:20 GMT
- Last Modified
- Wed, 25 Feb 2026 12:43:24 GMT
0.3.6
Added support for vehicle tracking(still wip) Added ability to stop recording from webapp
- Game Version
- 1.6.0.119
- Created
- Tue, 24 Feb 2026 16:45:26 GMT
- Last Modified
- Tue, 24 Feb 2026 16:45:27 GMT
0.3.5
Added vehicle tracking
- Game Version
- 1.6.0.119
- Created
- Mon, 23 Feb 2026 22:44:30 GMT
- Last Modified
- Mon, 23 Feb 2026 22:44:33 GMT
0.3.4
Added AI Tracking
- Game Version
- 1.6.0.119
- Created
- Mon, 23 Feb 2026 19:56:24 GMT
- Last Modified
- Mon, 23 Feb 2026 19:56:27 GMT
0.3.3
Added /api endpoint
- Game Version
- 1.6.0.119
- Created
- Sat, 21 Feb 2026 16:11:23 GMT
- Last Modified
- Sat, 21 Feb 2026 16:11:26 GMT
0.3.2
Fix combat and connection event logging Added combat and connection events to batch to reduce api calls
- Game Version
- 1.6.0.119
- Created
- Sun, 15 Feb 2026 12:18:30 GMT
- Last Modified
- Sun, 15 Feb 2026 12:18:32 GMT
0.3.1
Batch entitystate requests
- Game Version
- 1.6.0.119
- Created
- Thu, 12 Feb 2026 21:22:42 GMT
- Last Modified
- Thu, 12 Feb 2026 21:22:45 GMT
0.3.0
Added first iteration of support for tracking player entities. Start a mission record with #opstrack_start <missionname> stop it with #opstrack_stop <missionname> is optional, defaults to datetime.now
- Game Version
- 1.6.0.119
- Created
- Fri, 30 Jan 2026 22:48:00 GMT
- Last Modified
- Fri, 30 Jan 2026 22:48:02 GMT
0.2.32
- Game Version
- 1.6.0.95
- Created
- Fri, 02 Jan 2026 23:03:01 GMT
- Last Modified
- Fri, 02 Jan 2026 23:03:03 GMT
0.2.31
- Game Version
- 1.6.0.95
- Created
- Fri, 02 Jan 2026 18:35:02 GMT
- Last Modified
- Fri, 02 Jan 2026 18:35:05 GMT
0.2.30
- Game Version
- 1.6.0.95
- Created
- Fri, 02 Jan 2026 09:29:41 GMT
- Last Modified
- Fri, 02 Jan 2026 09:29:44 GMT
0.2.29
- Game Version
- 1.6.0.95
- Created
- Thu, 01 Jan 2026 22:04:07 GMT
- Last Modified
- Thu, 01 Jan 2026 22:04:10 GMT
0.2.28
- Game Version
- 1.6.0.95
- Created
- Tue, 23 Dec 2025 20:26:52 GMT
- Last Modified
- Tue, 23 Dec 2025 20:26:56 GMT
0.2.27
- Game Version
- 1.6.0.95
- Created
- Mon, 22 Dec 2025 21:24:32 GMT
- Last Modified
- Mon, 22 Dec 2025 21:24:33 GMT
0.2.26
- Game Version
- 1.6.0.95
- Created
- Mon, 22 Dec 2025 21:04:05 GMT
- Last Modified
- Mon, 22 Dec 2025 21:04:08 GMT
0.2.25
- Game Version
- 1.6.0.95
- Created
- Mon, 22 Dec 2025 20:48:24 GMT
- Last Modified
- Mon, 22 Dec 2025 20:48:26 GMT
0.2.24
- Game Version
- 1.6.0.95
- Created
- Mon, 22 Dec 2025 20:39:51 GMT
- Last Modified
- Mon, 22 Dec 2025 20:39:52 GMT
0.2.23
- Game Version
- 1.6.0.95
- Created
- Mon, 22 Dec 2025 20:26:02 GMT
- Last Modified
- Mon, 22 Dec 2025 20:26:04 GMT