Please disclose if any significant portion of your mod was created using AI tools by adding the 'AI Generated' category. Failing to do so may result in the mod being removed from Thunderstore.
Y4NGZInteractions
Shared local animation presentation, resource ownership, lifecycle, and restoration API for Lethal Company mods.
| Date uploaded | 2 hours ago |
| Version | 1.0.1 |
| Download link | Y4NGZ313-Y4NGZInteractions-1.0.1.zip |
| Downloads | 37 |
| Dependency string | Y4NGZ313-Y4NGZInteractions-1.0.1 |
This mod requires the following mods to function
BepInEx-BepInExPack
BepInEx pack for Mono Unity games. Preconfigured and ready to use.
Preferred version: 5.4.2305README
Y4NGZ Interactions
Y4NGZ Interactions is a shared interaction-animation API for Lethal Company. It gives feature mods one owner for first-person and live-body presentation so multiple systems do not fight over the same animator, rig, camera, or prop.
This is a library for mod authors. It ships no animation payload and adds no gameplay by itself; install it when another package declares it as a dependency.
Installing for players
- Install it with r2modman or Thunderstore Mod Manager. BepInExPack is installed automatically.
- For a manual install, place
Y4NGZInteractions.dllinBepInEx/plugins/. - Version 1.0.1 is built against Lethal Company v81. A game update that changes the player rig or animator may require a new release.
What the API provides
- Named animation-pack and interaction registration from manifest JSON.
- BodyWorld presentation for a live player body, visible locally in first person and remotely in third person.
- DedicatedLocalViewmodel presentation for local-only camera-space rigs.
- Consumer-authored controller-shell and clip-pack substitution.
- Optional hand-attached props with timed release points.
- Consumer-controlled animator parameters.
- Per-player resource leases with reject-or-interrupt conflict policies.
- External-ownership checks that refuse to overwrite another controller.
- Deterministic restoration for the player animator, stance, rig, camera, arms, helmet visor, props, and temporary compatibility changes.
- Strict schema-2 validation with schema-1 migration during the 1.x line.
The public entry point is LCInteractionAnimationAPI.
For mod authors
Add y4ngz313-Y4NGZInteractions-1.0.1 to your Thunderstore manifest, reference
Y4NGZInteractions.dll at compile time with Private=false, and declare a hard
BepInEx dependency so the API initializes before your plugin:
using System.IO;
using BepInEx;
using Y4NGZInteractions.InteractionAnimationApi;
[BepInPlugin("com.example.mymod", "MyMod", "1.0.0")]
[BepInDependency("com.y4ngz.interactions", BepInDependency.DependencyFlags.HardDependency)]
public sealed class MyModPlugin : BaseUnityPlugin
{
private void Awake()
{
string pluginDir = Path.GetDirectoryName(typeof(MyModPlugin).Assembly.Location);
string manifestJson = File.ReadAllText(
Path.Combine(pluginDir, "mymod-livebody.manifest.json"));
var pack = new InteractionAnimationPackDefinition
{
PackId = "com.example.mymod",
Version = "1.0.0",
AssetRootPath = pluginDir,
Interactions = new[]
{
new InteractionAnimationDefinition
{
InteractionId = "com.example.mymod.inspect",
PresentationKind = InteractionAnimationPresentationKind.BodyWorld,
ManifestJson = manifestJson
}
}
};
if (!LCInteractionAnimationAPI.TryRegisterInteractionPack(pack, out string reason))
Logger.LogError($"Interaction pack rejected: {reason}");
}
}
The consuming mod owns and ships its controller, clips, bundles, manifests, and finger-pose files. It registers files from its own plugin directory. Y4NGZ Interactions owns local presentation, arbitration, cancellation, cleanup, and restoration.
Networking contract
The API is a local presentation layer. It sends no RPCs and replicates no gameplay state. A consuming mod must synchronize the triggering event and call the API on every client that should present the interaction.
Required dependency
BepInEx-BepInExPack-5.4.2305
There are no feature-mod dependencies and no bundled animation assets.
Compatibility and support
- The 1.x C# surface and strict schema-2 contract are treated as shared compatibility surfaces.
- Schema-1 JSON remains accepted through the documented 1.x migration path.
- Consumers must cancel sessions when their gameplay state ends and must not assume that this local presentation API synchronizes the start for them.
- When reporting a problem through the consuming mod's support channel, include
BepInEx/LogOutput.log, the pack and interaction IDs, the presentation kind, and whether the affected player was local or remote.
Code and original example assets are licensed under the MIT License.
Generative AI usage
The code base was developed with generative AI assistance.
CHANGELOG
Changelog
Last updated: 2026-08-22
1.0.1
- Survive BepInEx
HideManagerGameObject=false: the runtime host owns its lifecycle on aDontDestroyOnLoadobject, and teardown only runs on a real application quit. Fixes the API dying immediately after chainloader in some mod-manager profiles. - Added IK bake telemetry and a degenerate-input warning to
IkBakeProbe.
1.0.0
- Finalized the standalone local presentation, ownership, and restoration contract for BodyWorld and DedicatedLocalViewmodel interactions.
- Added reject-if-busy and transactional interrupt-existing conflict policies, per-player resource leases, immutable registration snapshots, and exactly-once completion events after restoration.
- Added strict, path-specific schema-2 validation while retaining schema-1 JSON migration for the 1.x line, including legacy prop-bone lookup compatibility.
- Added deterministic stop handling for invalidation, death, round unload, presenter failure, interruption, requested stop, natural end, and shutdown.
- Decoupled live-body camera semantics, preserved crouch and stance continuity across swaps, and drove locomotion parameters for remote-player sessions.
- Made first-person camera pinning stance-relative and reduced routine interaction log noise.
- Removed the unused backend abstraction, production hotkey probe, and Input System dependency.
- Made profile deployment opt-in and centralized version 1.0.0 for the assembly, plugin metadata, and package stager.
- Added behavioral tests, public API analysis, clean-room examples, authoring validators, Markdown checks, Windows CI, and deterministic package verification.
- Restricted the release archive to the DLL, icon, README, license, changelog, and manifest.
Clean-profile gameplay, multiplayer ownership/restoration, crouch/viewpoint behavior, downstream consumer rebuilds, and final package inspection remain required before publication.