Skip to content

Conversation

@fank
Copy link
Member

@fank fank commented Jan 31, 2026

Summary

  • Migrates to modular CBA-style addon architecture (main/, recorder/, database/, extension/)
  • Adds database export module with PostgreSQL support (SQLite fallback)
  • Replaces file-based config with CBA Settings system (in-game configurable)
  • Adds HEMTT build support
  • Adds real-time metrics collection (server FPS, entity counts, player network stats)
  • Reworks fired event handlers with improved projectile tracking
  • Adds radio events, chat message capture, and static objects tracking
  • Includes auto-generated NaturalDocs documentation

Test plan

  • Verify HEMTT builds successfully
  • Test database connection with PostgreSQL
  • Test SQLite fallback when PostgreSQL unavailable
  • Verify CBA Settings appear in addon options
  • Test capture loop and event recording
  • Verify metrics are collected and sent to database
  • Test with ACE3 loaded and without

indig0fox and others added 30 commits March 26, 2022 17:56
- initial markers exclusion
- tbd for remote control firedman
- exclude ACE_BFT markers by default
- fixes grenades moving to 0,0,0 in playback due to misattribution to liveMissiles PFH
OCAP2/OCAP#37
- adds remote-controlled unit detection if firer was >50m away from initial projectile position

OCAP2/OCAP#9
- adds setting for optional BIS_fnc_respawnTickets tracking, will automatically track missionNamespace + faction score counts every 30th frame
- adds system for optional custom score tracking by a set of sides, a custom counter separate from BIS_fnc_respawnTickets

- pending testing of debug drawIcon for units being recorded
remove userconfig
- change MPHit to HitPart
- fire tracking, setShotParents
- fix debug entityDraw
- exclude objects w empty models
- fix duplicate fnc_init calls
- fix remoteExec diary entries
- init at PostInit
- add diary record/pause/save controls for whitelisted admins in CBA setting, or when a user logs in as admin
- ensure auto-save respects the saveOnEmpty setting
- start recording on autoStart at clientStateNumber 10, or once the mission has actually begun to avoid dead time in recording during briefing screen
- don't run init if not multiplayer
- fixes duplication EH checking
- fixes HandleDisconnect override to prevent unintentional AI taking over DCed players and disrespecting description.ext preferences
- skip "__SERVER__ has connected" event
Co-authored-by: jonpas <jonpas33@gmail.com>
indig0fox and others added 9 commits September 17, 2023 17:49
- Add requiredVersion = 2.06 to all CfgPatches entries
- Fix format string bugs in fnc_metricsLoop.sqf (%2 -> %1)
- Fix syntax error in fnc_captureLoop.sqf (comma -> semicolon)
- Add lint suppression config for non-critical warnings
- Update extension name from OcapReplaySaver2 to ocap_recorder
- Fix params declaration order in ExtensionCallback handler
Logs to RPT:
- [OCAP] [EXT] >> outgoing calls (command, args)
- [OCAP] [EXT] << responses (result, codes)
- [OCAP] [DB-EXT] >> database module calls
- [OCAP] [DB-EXT] << database module responses
- :VERSION: parsed results
Extension now returns responses in format:
- Success: ["ok", <result>]
- Error: ["error", "<message>"]

Both fnc_sendData functions now:
- Parse response with parseSimpleArray
- Check status ("ok" or "error")
- Return unwrapped result on success
- Log error and return nil on failure

Existing code (e.g., version#0, version#1) continues to work
as the wrapper is now transparent.
- :INIT:DB: → :INIT:STORAGE:
- :DB:OK: → :STORAGE:OK:
- :DB:ERROR: → :STORAGE:ERROR:

Also handle "memory" engine mode with info message.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants