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

Showing 1 to 30 of 50 results

Rows per page

Next