DramaMask
Enables masks to be worn to hide from enemies by blending in with the Masked and adds a safe mask, Drama!
Last updated | 4 months ago |
Total downloads | 191438 |
Total rating | 10 |
Categories | Equipment Items Cosmetics |
Dependency string | necrowing-DramaMask-2.1.3 |
Dependants | 180 other packages depend on this package |
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.2100README
Stealthy Masks
Enables masks to be worn to hide from enemies by blending in with the Masked! Also adds a new type of mask, Drama, which is not haunted unlike its Tragedy and Comedy counterparts, allowing you to use this feature safely!
They can also be attached to players' faces, allowing you to look identical to Masked enemies and spook your friends! To balance this mechanic out, there is a stealth meter that is used while attempting to hide.
Compatibility
- LethalLevelLoader: If playing on v50+ and LLL is being used, ensure it is on 1.2.0 or higher to avoid conflicts with most mods; including this one.
- MaskedAiRevamp: Ignoring collision with Masked enemies will not work; it is recommended to use LethalIntelligence instead as this is a successor with more updates.
Works with no other known incompatibilities; supports controller and LethalCompanyVR (though without UI)!
LC Version | Mod Version |
---|---|
v45 | <= 2.0.0 |
v50 | 2.0.1 - 2.1.2 |
v56 | 2.1.3 <= |
Formerly known as DramaMask
Config Options
- Which masks can be used by the player to hide [Host]
- The selection of enemies that can be hidden from & specific enemy overrides [Host]
- The selection of enemies that players won't trigger collision events for when hiding [Host]
- The minimum time players need to be hidden to start ignoring collision events [Host]
- Potentially increase custom enemy compatibility at the cost of performance [Host]
- Disable the stealth meter balancing mechanic [Host]
- Adjust stealth meter behaviour (can be made different if attached) [Host]
- Adjust stealth meter appearance (colour and vanilla meter offset) [Client]
- Stealth meter visibility [OptionalSync]
- Remove mask on meter depletion [Host]
- Adjust drama mask spawn rates with a multiplier & specific moon overrides [Host]
- Change mask action keybinds if Input Utils has been installed [Client]
- Disable mask possession when attached [Host]
- Change mask view on usage (can be made different if attached) [OptionalSync]
- Stop mask actions applying immediately on non-host clients, as it can cause temporary visual desync on rapid changes [Client]
- Ignore custom keybinds with InputUtils installed for compatibility with unconventional control schemes like with LethalCompanyVR [Client]
FAQ
Where can I find the Drama mask?
The Drama mask can be found as scrap with its spawn locations and rates matching that of the Comedy and Tragedy masks (detailed in the table below). This can be adjusted to match your preferences with the base spawn rate multiplier (applied on the default rates) and custom spawn config settings (for granular customisation per moon). Special values for this include [All, Vanilla, Modded] in line with what is provided by LethalLib, and all values are evaluated left to right (for overriding).
Moon | Spawn Chance |
---|---|
Assurance | 3 |
Rend | 40 |
Dine | 40 |
Titan | 40 |
Artifice | 40 |
Modded | 40 |
To also make it available in the store, check out @megapiggy's BuyableDramaMask mod.
What enemies are supported with hide from all enemies?
While the Masked are the main targets to hide from, proper support for other enemies has been added as of 1.4.0 (detailed in the table below). Some of these enemies can be considered to have their own agenda, so they have been classified as "Not Natural". Players will not be hidden from these enemies if the "Enemies Hidden From" config is set to "Natural". For example, Hoarding Bugs would not discriminate against a """Masked""" if they decide to start stealing from their nest.
Extra overrides for these can be specified using the "Enemy Hiding Overrides" config to enable or disable for specific enemies using their names in the code (exclusions prioritised).
Enemy | Status |
---|---|
Masked | Supported - Always |
Thumper | Supported |
Spore Lizard | Supported |
Coil-Head | Supported |
Earth Leviathan | Supported - Not Natural |
Forest Giant | Supported |
Baboon Hawk | Supported - Not Natural |
Hygrodere | Supported |
Bunker Spider | Supported - Not Natural |
Jester | Supported |
Bracken | Supported |
Circuit Bee | Supported - Not Natural |
Ghost Girl | Supported - Not Natural |
Snare Flea | Supported |
Nutcracker | Supported |
Hoarding Bug | Supported - Not Natural |
Butler | Supported |
Masked Bee | Supported - Not Natural |
Old Bird | Supported - Not Natural |
Tulip Snake | Supported |
Kidnapper Fox | Supported |
Barber | Supported |
Eyeless Dog | No |
Manticoil | No |
Roaming Locust | No |
Company | No |
Turret | Supported |
Modded | Compatibility Dependent |
Which modded enemies are supported? / How can I make my custom enemy support hiding?
The current method of hiding depends on references to StartOfRound.allPlayerScripts
being patched to only include entries of visible (and pre-existing invalid) players,
when the base methods for detecting players in EnemyAI
are called.
Vanilla enemies that make use of their own methods for player detection are additionally patched, so they may also be invoked by custom enemies.
References to PlayerIsTargetable
are also patched for calls made outside MeetsStandardPlayerCollisionConditions
, if the "Increased Custom Enemy Compatibility" setting is enabled.
Any storage or cross-referencing done with an index to allPlayerScripts
(like in ButlerEnemyAI
) should instead make use of playerClientId
on the player,
since the position in the array may be affected by this mod's patches.
Enemies can also be added to DramaMask.Config.EnemyTargetHandler.NaturalExceptions
to stop them being hidden from if the "Enemies Hidden From" setting is "Natural".
Aside from this, explicit patches for custom enemies will not be provided by this mod.
Why can I not use items with a mask attached?
This is intentional behaviour and is currently integral to how the mod's mask attaching features work. Changing this could mean rewriting the entire codebase to accomodate this, so it is currently not supported. This is feasible though, and may be considered for an update in the distant future.
Roadmap (development to be paused)
- Sound and visuals support for VR in place of the stealth bar
- Allow the player to have their hands out like the Masked
Credits
Made on request from @tkcool and @pedro9006.
Feature Proposers:
- Stealth meter: @mintiivanilla
- Original Bar UI inspired by @megapiggy's InsanityMeter mod
- Current Ring UI based off @consequential's Oxygen and @confusified's InsanityDisplay mods
- Mask visibility on use: @star0138
- Config based on usage type: @sagey08
- Disabling collision events based on visibility: @alancrytex, @qwbarch, @autumnis
Bug Finders:
- (Pre-Release) Networking: @roshposhtosh, @sabzy, and @saintshekzz
- BiggerLobby incompatibilities: @TheRealMrKam (via GitHub)
- MoreEmotes incompatibilities: @sagey08 and @sashimi_express
- Stuck Mask on orbit: @Regnareb and @sashimi_express
- Rotating masks & colour config: @sashimi_express
- Phantom bodies on death client-side: @ValiusV (via GitHub) and @purefpszac
- Cannot interact (later QE) when holding mask: @purefpszac
- Cannot QE interact when not holding mask (v50): @VirusTLNR (via GitHub)
- HotbarPlus incompatibilities: @mari0no1
- Thumper near player detection NRE: @jontep5543
- Issues on client crash: @mari0no1
- No interaction on game over with mask worn: @virustlnr
- Transpilation incompatibility with LethalVR: @daxcess
- LethalHands incompatibility when mask worn on square up: @sashimi_express
Contact
For requesting new features or highlighting issues/bugs found, please post them in the mod's Dedicated Discord Channel on the Official Lethal Company Modding Discord.