You are viewing a potentially older version of this package. View all versions.
MACO-TooManyEmotesProgression-1.0.2 icon

TooManyEmotesProgression

TooManyEmotes addon: emotes are no longer bought from the terminal. They turn up on moons as dancing figurines, and whoever claims one first keeps the emote.

By MACO
Date uploaded 3 weeks ago
Version 1.0.2
Download link MACO-TooManyEmotesProgression-1.0.2.zip
Downloads 449
Dependency string MACO-TooManyEmotesProgression-1.0.2

This mod requires the following mods to function

BepInEx-BepInExPack-5.4.2305 icon
BepInEx-BepInExPack

BepInEx pack for Mono Unity games. Preconfigured and ready to use.

Preferred version: 5.4.2305
FlipMods-TooManyEmotes-2.3.17 icon
FlipMods-TooManyEmotes

Adds over 300 new emotes! Includes emote wheel, allows Masked Enemies to emote, adds emote music (can be muted), implements a system for purchasing emotes on the store (optional), and much more!

Preferred version: 2.3.17
Evaisa-LethalLib-1.2.0 icon
Evaisa-LethalLib

Personal modding tools for Lethal Company

Preferred version: 1.2.0

README

Maco's TooManyEmotes Progression

Emotes stop being something you buy and become something you find.

Little dancing figurines turn up on moons, each one performing the emote it holds. Scan one to see which emote it is and how rare it is. Pick it up, press left mouse, and that emote is unlocked for you alone. First come, first served: whoever claims a figurine gets it, and the figurine is spent. They are worth no money, so the only thing to do with one is claim it.

The TooManyEmotes terminal store is closed by default, which makes figurines the only way to unlock an emote.

  • Everyone in the lobby needs this mod, and the same emote packs. TooManyEmotes identifies emotes by their position in its animation list, so mismatched installs hand out the wrong emote.
  • Turning on TooManyEmotes' own ShareEverything works too, and makes one figurine unlock its emote for the whole crew instead of for one player.
  • Figurines are placed on top of the moon's own loot rather than in its scrap table, so they never take spawns away from real scrap. Bigger interiors get more of them.

Why it exists

I made this for my own modpack, where buying emotes from a terminal never fitted the rest of the game. Putting it up in case anyone else wants the same thing.

Made with AI

All of the code in this mod was written by Claude (Anthropic's AI, through Claude Code), directed and play-tested by me. The mod ships no emotes, animations or models of its own: everything you see is built at runtime out of the game's own objects and TooManyEmotes'.

CHANGELOG

Changelog

1.0.5

  • Fixed: a Masked throwing when it went to copy an emote and nobody had one. TooManyEmotes lets a Masked perform an emote its mimicked player has unlocked, picked in MaskedEnemyPatcher.GetRandomUnlockedEmote as list[random.Next(list.Count)] - which is an ArgumentOutOfRangeException when the list is empty. The shipped store makes that rare; this mod makes it normal, because every emote starts locked until a figurine is claimed. Eight exceptions from inside MaskedPlayerEnemy.Update in one session's log. The pick now resolves the same list by TooManyEmotes' own rules and, when it is empty, answers null - the value TooManyEmotes returns when there is nobody to mimic, which its caller already handles by doing nothing. The Masked stops and stares instead of emoting. Logged once per session.

1.0.4

  • Fixed: emote props sat out of place for every player. 1.0.3's fix for figurine-sized props changed how every performer's props are attached, on the reasoning that a player stands at scale 1 so the change could not affect them. That reasoning was wrong.
  • A player's model is not at scale 1. ScavengerModel sits at 2 and metarig at 0.560814, so the propsParent every emote prop hangs off is at 1.121627 - and cancelling exactly that is what the SetParent overload TooManyEmotes uses is for. Replacing it drew every prop 12.2% too large, and because a prop's position is animated inside that parent, 12.2% further from the hands as well. Two props shipped with the compensation already baked into their prefab (jar_of_dirt, travelers.banjo) came out 25.8% out.
  • TooManyEmotes is no longer patched for this at all. A figurine's own propsParent is scaled to its height after the props are attached instead. The prop's own localScale is never written, so the shared pool gets back exactly what it lent and players are left alone entirely.
  • Appearance / ScaleEmoteProps still turns the figurine behaviour on and off. Its description was rewritten; the claim that it was "a no-op for anyone at normal scale" is gone.

1.0.3

  • Emote props are the size of the dancer holding them. Emotes that carry an object - a guitar, a bottle, a sign - drew it at full size on a figurine, so a doll the height of a mug played a full-sized guitar.
  • The cause is in TooManyEmotes: EmoteController.LoadEmoteProps attaches a prop with the SetParent overload that preserves world scale, and then sets the prop's position and rotation but never its scale. On a player at scale 1 the cancellation is invisible; on a shrunk employee Unity scales the prop back up to keep it the size it was.
  • Both call sites now use the overload that leaves localScale alone - the attach and the return to the shared pool. Fixing only the attach would have left a figurine-sized guitar in the pool for the next player to pick up.
  • New Appearance / ScaleEmoteProps, default true. A no-op for anyone at normal scale.

1.0.2

Hotfix.

  • Building the dancing figurine no longer logs a Unity error about NetworkObject. The player model it borrows is stripped of its scripts in dependency order now, so nothing is left behind that Unity refused to remove. No change to how anything plays.

1.0.1

Hotfix.

  • Figurines could be drawn squashed into a sliver and floating off the ground. A figurine is built as a child of the vanilla prop it borrows and was inheriting that prop's uneven scale. Every axis is now corrected separately, and the grab box and scan marker along with it.
  • With no SourceItem set, an evenly scaled prop is now preferred when the install has one. On 1.0.0 the same thing can be avoided by setting SourceItem to an evenly scaled item such as Toy cube.

1.0.0

First release.

  • Emotes are found on moons as dancing figurines instead of bought from the terminal.
  • Claims are first come, first served, arbitrated by the host.
  • A figurine keeps its emote when it is left in the ship across a save.
  • Three looks: a miniature of your own employee, a rarity-coloured cube, or a plain prop.