You are viewing a potentially older version of this package. View all versions.
Dr_House-SpawnLogger-2.5.0 icon

SpawnLogger

Logs which player spawned each mod item in LabFusion lobbies. Collapses spam, flags suspicious responses, excludes magazines and optionally SLZ content.

Date uploaded 2 weeks ago
Version 2.5.0
Download link Dr_House-SpawnLogger-2.5.0.zip
Downloads 411
Dependency string Dr_House-SpawnLogger-2.5.0

This mod requires the following mods to function

bonelib-BoneLib-3.2.1 icon
bonelib-BoneLib

A BONELAB mod for making life easier for other mod creators.

Preferred version: 3.2.1
Lakatrazz-Fusion-1.14.2 icon
Lakatrazz-Fusion

A multiplayer mod for BONELAB, taking advantage of its physical interaction.

Preferred version: 1.14.2

README

Spawn Logger

Spawn Logger is a passive LabFusion moderation utility for BONELAB. It records which player requested each mod-item spawn and exposes the newest 30 events in BoneMenu, both as a combined feed and as per-player histories.

Detection model

  • Attribution is snapshotted when Fusion receives the server-approved spawn response, before asset downloading or asynchronous instantiation can delay completion.
  • The snapshot stores the player's platform ID and display name immediately. Reuse of a disconnected player's small session ID cannot reassign an outstanding spawn.
  • Fusion's server-allocated entity ID correlates the response with the finished object and suppresses duplicate callbacks.
  • Scene-source spawns and the short level-load synchronization window are ignored.
  • The finished object is checked for a Magazine component. Crate title and barcode metadata provide a fallback for unusual or disabled hierarchies.
  • SLZ content is excluded by default using the SLZ. namespace, internal-pallet metadata, and pallet author metadata (SLZ, Stress Level Zero, or StressLevelZero). A persistent Log SLZ Content toggle can include it when explicitly enabled.
  • Magazines remain excluded regardless of the SLZ setting.
  • Responses delivered directly by a non-host transport and entity-ID collisions are written as warnings to the MelonLoader log. Transport identity and claimed ownership are recorded separately so a forged payload does not automatically frame its target.

The logger deliberately reports an unresolved player as Unknown (ID n) instead of guessing from proximity or current object ownership. Those signals can change after the spawn and are not proof of who initiated it.

Usage

Open BoneMenu and select Spawn Logger:

  • All Spawns shows the merged feed.
  • Players contains one page per player.
  • Clear All Logs clears this client's history.
  • Auto-Clear On Leave controls whether departing players are removed.
  • Log SLZ Content includes SLZ/internal-pallet spawns when enabled; it is off by default.
  • Debug Counters shows how many spawns were received, logged or dropped, and why. The same totals are written to the MelonLoader log at each level load.

Repeated spawns of the same item by one player within 4 seconds are shown as one entry with a count. A spawn whose crate is not installed is logged by barcode as (not installed).

Every accepted event is also written to the MelonLoader log. The mod never despawns, blocks, or punishes anything.

Requirements

  • MelonLoader
  • BoneLib 3.2.1 or later
  • LabFusion 1.14.2 or later

Manual installation

Copy SpawnLogger.dll into BONELAB/Mods/.

CHANGELOG

Changelog

2.5.0

  • Bursts of the same item from the same player within 4 seconds collapse into one entry with a count (Spawn Gun x4), so floods no longer push every other entry out of the 30-entry lists. The MelonLoader log still records each spawn.
  • Rich-text colour tags are stripped from player names in the menu and log.
  • Players who leave remember their identity by session slot. A spawn from a slot that is no longer registered resolves to the last known player and is marked (left) instead of Unknown (ID n). Owners that were unresolved when the response arrived are looked up again when the spawn finishes.
  • Spawns whose crate is not installed (for example with downloading off) used to vanish because the spawn never finished. They are now logged by barcode as (not installed) once the pending spawn expires. Pending spawns are kept for 5 minutes instead of 2.
  • New Debug Counters page and a one-line Counters: summary in the MelonLoader log at each level load and on shutdown. They count responses received, spawns completed, logged entries, every drop reason (level settling, duplicate entity ID, no barcode, magazine, SLZ content, scene source), unresolved owners, alerts and spawns that never completed.
  • The menu pages refresh at most twice a second, so a flood no longer rebuilds them on every spawn.
  • A transport sender that cannot be matched to a player is now named by its platform ID instead of Unknown (ID 0).

2.4.0

  • One build now runs on both Steam LabFusion and the Epic (EOS) fork. Platform IDs are read by reflection and keyed as strings, fixing the MissingMethodException on PlayerID.get_PlatformID() that broke the menu, player joins and spawn logging on Epic.
  • On EOS, the transport sender of a spawn response is recovered from the P2P packet's ProductUserId (the EOS layer never sets ReceivedMessage.PlatformID), so non-host spawn-response alerts work there too.

2.3.2

  • Removed the in-game Suspicious page. Suspicious spawn detections are now written only to the MelonLoader log.

2.3.1

  • Restored the complete changelog history.

2.3.0

  • Code cleanup: removed redundancies and simplified internal logic.

2.2.1

  • Corrected the SLZ option semantics: Log SLZ Content defaults to off, so SLZ/internal-pallet content is excluded unless the user explicitly enables it.
  • Magazines remain permanently excluded.

2.2.0

  • SLZ-authored and internal-pallet spawns are now included by default.
  • Replaced the inverse logging option with a saved Exclude SLZ Content toggle, disabled by default. Enable it to suppress SLZ barcodes, internal pallets, and SLZ-authored pallets.
  • Magazines remain permanently excluded regardless of the SLZ setting.

2.1.0

  • Added a saved Log SLZ Content toggle, disabled by default. When enabled, player-spawned SLZ/internal-pallet content is logged normally.
  • Magazines remain permanently excluded from every in-game and MelonLoader log.
  • Added a dedicated in-game Suspicious feed for high-confidence protocol anomalies.
  • Detects spawn responses delivered by a non-host client and records the transport identity separately from the payload's claimed owner.
  • Flags entity-ID collisions and includes the claimed owner, entity source, item, sender, and reason in alerts.
  • Scene source is no longer an unconditional escape hatch: legitimate scene activity stays quiet, while suspiciously delivered scene responses are surfaced.

2.0.0

  • Rebuilt the detection and attribution pipeline from scratch.
  • Snapshots the server-attested player identity as soon as a spawn response arrives, preventing asynchronous downloads and recycled session IDs from causing false attribution.
  • Correlates and deduplicates completed spawns using Fusion's server-allocated entity ID.
  • Excludes scene-source spawns without depending only on a timing heuristic.
  • Excludes magazines using both object components and crate metadata fallbacks.
  • Excludes SLZ content using barcode namespace, internal-pallet status, and pallet author metadata.
  • Reports unresolved identities explicitly instead of making proximity-based guesses.

1.2.1

  • Shipped build now targets MelonLoader 0.6.6 instead of 0.7.1, for broader compatibility across current MelonLoader installs (an older-built mod is more likely to keep working on a newer loader than the reverse). No functional/feature changes.

1.1.0

  • Added "Auto-Clear On Leave" toggle (on by default) that removes a disconnected player's log page and their entries from All Spawns. Saved via MelonPreferences, so it persists across servers and game restarts.

1.0.0

  • Initial release: per-player and merged ("All Spawns") logs viewable in BoneMenu.
  • Resolves spawned barcodes to their item title where possible.
  • Excludes magazines and base-game/SLZ-authored items.
  • Holds logging for 5 seconds after each level loads to skip catch-up/world-state spawns.