Lethal Company
Install with App

Details

Latest version
0.5.5
Last Updated
First Uploaded
Downloads
608
Likes
0
Size
186KB
Dependants

Changelog

0.5.5

  • Adds an English-first bilingual Thunderstore description while retaining complete Simplified Chinese instructions.
  • Adds a clear compatibility table for vanilla clients, Signal Translator broadcasts, fully modded HUD fallback, and full-crew wipes.
  • Separates the player-facing Thunderstore page from source-build documentation and removes developer-only setup details from the public package page.
  • Clarifies installation, configuration, known limitations, troubleshooting, authorship, redistribution rules, and AI-generated icon disclosure.
  • Contains no gameplay behavior changes from 0.5.4.

0.5.4

  • Identifies 青金石 as the public author in the assembly metadata, documentation, and ownership notices.
  • Adds a bilingual proprietary end-user license that permits personal gameplay and attributed media while prohibiting unauthorized redistribution, repackaging, impersonation, derivative releases, and commercial exploitation of the mod itself.
  • Adds an authenticity notice, a recipient-specific HR evaluation-license template, ready-to-copy publication text, and a repeatable release/evidence checklist.
  • Adds guarded release packaging and evidence-archive scripts that generate SHA-256 records and require clean, tagged Git source for final evidence.
  • Adds an original 256x256 Thunderstore icon and validates its PNG format and dimensions during release packaging.
  • Records QingJinShi as the owner-controlled Thunderstore Team and the canonical LastWords package page.
  • Initializes the project for a local Git authorship history without publishing the private source or build artifacts.

0.5.3

  • Allows the last-words input to use the configured maximum length even in SignalTranslator mode.
  • Makes Auto prefer a real, available Signal Translator for messages of any input length, truncating only the actual vanilla broadcast payload to its first 10 visible characters.
  • Shows the sender the exact truncated message and a clear delivery note when the Signal Translator shortened a longer last word.
  • Uses the full message through LastWords networking only when Auto cannot find an available real Signal Translator; vanilla clients still require the purchased device.

0.5.2

  • Restores BepInEx's safe default Application/.cctor entrypoint so plugins that load Unity textures during Awake, including LC Chinese Project 3.2.9, no longer crash inside UnityEngine.ImageConversion.LoadImage.
  • Drives LastWords from narrowly scoped Harmony postfixes on PreInitSceneScript.Start, MenuManager.Update, and HUDManager.Update, instead of changing the startup timing of every installed plugin.
  • Preserves the managed LastWords coordinator when Unity destroys BepInEx's early Chainloader carrier, then creates the Canvas on the first verified live Unity frame.
  • Keeps vanilla-client compatibility limited to a real, purchased Signal Translator and its original 10-character display limit.

0.5.1

  • Centers the transmit and silence buttons symmetrically around the modal's midpoint.
  • Restyles the modal and broadcast banner as a dark blood-red final transmission.
  • Formats authenticated broadcasts as [DECEASED] PlayerName: message and shows received text in red beneath a MESSAGE FROM THE DEAD heading.
  • Bumps the named-message protocol to v2 so mixed 0.5.0/0.5.1 clients cannot misinterpret payloads.

0.5.0

  • Replaces the unreliable vanilla system-chat fallback with a LastWords named-message protocol using reliable sequenced delivery.
  • Requires all players to install the mod for fallback messages; actual Signal Translator broadcasts remain visible to vanilla clients.
  • Validates client submissions on the host, including sender identity, death state, and the presence of another living crew member.
  • Displays received last words through an independent always-on-top Canvas on every modded client.

0.4.6

  • Sends the vanilla crew-wide system-message ClientRpc directly when the last-words sender is the host/server.
  • Avoids the host-to-self ServerRpc round trip that failed to fan out to an unmodded LAN client during a real two-client test.
  • Retains the vanilla ServerRpc relay for non-host senders and logs the active network role and selected route.

0.4.5

  • Suppresses the last-words opportunity when no other connected, living crew member remains.
  • Rechecks the living crew at window-open and submission time, preventing a message after the remaining crew dies while the modal is open.
  • Adds a default-off AllowWhenAllPlayersDeadForTesting configuration override for solo UI development.

0.4.4

  • Adds an independent, always-on-top Canvas banner containing the submitted last words for eight seconds.
  • Keeps the banner visible after the input modal closes, so a solo player's all-dead/spectator HUD cannot hide the local confirmation.
  • Continues sending the same crew-wide vanilla system-message RPC to connected clients.

0.4.3

  • Inserts the crew-wide fallback into the sender's local chat history before sending the global RPC, so a dead host can see their own last words immediately.
  • Shows the submitted text in a 2.25-second local delivery confirmation before closing the last-words window.
  • Relies on vanilla duplicate suppression to prevent the host from seeing the local insertion and RPC echo twice.

0.4.2

  • Replaces the player-chat fallback with vanilla's global system-message RPC (playerId = -1), which is not filtered by sender identity, distance, or alive/dead state.
  • Uses an ASCII [LAST WORDS] prefix because the vanilla HUD font has no Chinese glyphs.
  • Logs why Auto mode selected the crew-wide fallback instead of the Signal Translator.

0.4.1

  • Defers Canvas and dynamic-font creation from plugin Awake to the first real Unity Update frame.
  • Fixes a native UnityPlayer crash caused by calling Font.CreateDynamicFontFromOSFont while Chainloader is still executing inside MonoBehaviour..cctor.

0.4.0

  • Returns to a normal BaseUnityPlugin.Update polling loop after identifying the actual BepInEx bootstrap issue.
  • Documents and applies the MonoBehaviour/.cctor BepInEx entrypoint workaround required when Application/.cctor loads plugins before Unity can register their components for updates.
  • Removes the preloader patcher and all experimental runtime-hook workarounds.

0.3.1

  • Moves the preloader bridge from UnitySynchronizationContext.ExecuteTasks, which is absent from the game's active player loop, to the verified MenuManager.Update and HUDManager.Update methods in Assembly-CSharp.
  • Keeps the same pre-load IL injection architecture while ensuring a tick source exists in both the main menu and an active lobby.

0.3.0

  • Adds a BepInEx preloader patcher that injects the LastWords tick bridge directly into UnitySynchronizationContext.ExecuteTasks before UnityEngine.CoreModule is loaded.
  • Removes runtime-installed Harmony, RuntimeDetour, synchronization-context, and PlayerLoop callbacks after the tested Unity 2022.3 environment consistently replaced or ignored all of them after Chainloader startup.
  • Creates the Canvas lazily when the injected bridge first executes on the live Unity main thread.

0.2.3

  • Inserts the polling callback directly into Unity's native PlayerLoop.Update phase, bypassing MonoBehaviour messages, coroutines, Harmony, and synchronization-context dispatch.
  • Removes the synchronization-context timer fallback after the tested Unity context accepted posted work but never consumed its queue.
  • Retains direct RuntimeDetour hooks for immediate death notification and as an independent polling fallback once the HUD exists.

0.2.2

  • Replaces Harmony patches with direct MonoMod.RuntimeDetour hooks after the tested BepInEx environment recorded Harmony patches without ever entering them.
  • Adds a managed timer that posts polling work to Unity's main-thread synchronization context, providing a hook-independent fallback without touching Unity objects from a background thread.
  • Adds separate diagnostics for the background scheduler, Unity main-thread dispatch, and direct runtime hooks.

0.2.1

  • Drives player-state polling from the game's own HUDManager.Update loop instead of a coroutine on a dynamically-added component.
  • Registers Unity's native Application.onBeforeRender callback as an independent fallback tick source.
  • Adds one-time activation logs for both tick sources, making it possible to distinguish patch failure from player-detection failure.

0.2.0

  • Replaces IMGUI with a persistent screen-space Unity Canvas, legacy InputField, and real Buttons.
  • Replaces scaled-time InvokeRepeating with a WaitForSecondsRealtime coroutine that also runs while the main menu or game is paused.
  • Keeps the Canvas at the highest sorting order so the all-players-dead HUD cannot cover it.
  • Uses a dynamic Microsoft YaHei/Arial font chain so Chinese last words render without relying on Lethal Company's limited bundled fonts.

0.1.3

  • Makes LastWordsRuntime public so Unity reliably dispatches callbacks to the dynamically-added component.
  • Starts state polling explicitly through Unity's native InvokeRepeating scheduler instead of waiting for Update discovery.
  • Logs the component's enabled state and the first scheduled poll.

0.1.2

  • Fixes frame and IMGUI callbacks not being delivered to the BepInEx plugin component in the tested game setup.
  • Creates an explicit active, persistent LastWordsRuntime component for Update and OnGUI.
  • Replaces Harmony assembly scanning with an explicit KillPlayer patch and verifies that the postfix is installed.
  • Adds startup logs for the runtime driver's first Update and OnGUI callbacks.

0.1.1

  • Fixes missed death detection during the single-player all-dead/automatic-return flow.
  • Hooks PlayerControllerB.KillPlayer directly while retaining state polling as a fallback.
  • Forces the IMGUI window to the foreground.
  • Adds diagnostic logs for player tracking, death detection, window opening, first render, and closing.

0.1.0

  • Initial implementation.
  • Detects the local player's alive-to-dead transition without patching a fragile death-method signature.
  • Gives one last-words opportunity per death and resets it after revival.
  • Uses the ship Signal Translator when possible and vanilla chat as an automatic fallback.
  • Adds configurable broadcast mode, message length, and popup delay.
Thunderstore development is made possible with ads. Please consider making an exception to your adblock.