Hivemind


Game state exporter supporting external data transport of in-game events via RCON through remote interfaces.

Utilities
4 months ago
2.0
52
Owner:
strauberry
Source:
https://github.com/tylerstraub/Factor...
Homepage:
https://github.com/tylerstraub/Factor...
License:
The Unlicense (Public Domain)
Created:
4 months ago
Latest Version:
0.1.0 (4 months ago)
Factorio version:
2.0
Downloaded by:
52 users

Hivemind Mod

Version: 0.x-dev (active development)
Compatibility: Factorio 2.0+

A real-time event-logging and export framework for dedicated servers, Hivemind captures and safely exports in-game events (like enemy attack groups and chat messages) with zero impact on gameplay performance. Built for server operators, modders, and tool developers, it provides:

  • Deterministic, Multiplayer-Safe Registration
    All event handlers and commands register in a fixed order to avoid desyncs on Factorio 2.0+ dedicated servers.

  • High-Precision Event Capture
    Tracks multiple event types (attack decisions, chat, and more) keyed by game tick, with configurable retention windows to bound memory usage.

  • Silent, On-Demand Export
    Expose data via in-game commands or RCON/remote interface calls, all using /silent-command and rcon.print to avoid spamming players.

  • Configurable Pruning & Retention
    Automatically prunes old entries only when new events arrive, ensuring constant-time performance and up to 10 minutes of data at 60 UPS (default).

  • Extensible Architecture
    Add new event types or export commands simply by updating a central list—no boilerplate required.


Installation & Usage

  1. Download & unzip the latest Hivemind ZIP into both your server’s mods/ folder and each client’s mods/ folder.
  2. Enable Hivemind in the in-game Mods menu.
  3. Configure retention and logging in the mod settings GUI:
  4. Attack event retention ticks (default 36000)
  5. Chat message retention ticks (default 36000)
  6. Enable verbose logging (on/off)
  7. Use commands (admin only):
  8. /hm_get_events [<tick>] → summary of events after <tick>
  9. /hm_drop_events → clear all stored events
  10. /hm_list_listeners → show active handler registrations
  11. /hm_reload_listeners → re-initialize all listeners

For RCON or console scripting, call the hivemind remote interface:

remote.call("hivemind", "get_attack_events_after", <tick>)
remote.call("hivemind", "get_chat_messages_after", <tick>)
remote.call("hivemind", "clear_attack_events")

Development Status

🚧 Active Development & Technical Preview 🚧
This version is a work in progress and not yet a polished end-user release. API, settings, and internal structures may change in future updates.
Contributors and advanced operators are welcome to explore the source, report issues, and submit pull requests on GitHub.


Source & Support