LethalGargoyles
My first project and enemy for Lethal Company! This is an attempt to create an enemy that roams the map taunting you.
Date uploaded | 4 days ago |
Version | 0.3.0 |
Download link | DropDaDeuce-LethalGargoyles-0.3.0.zip |
Downloads | 3268 |
Dependency string | DropDaDeuce-LethalGargoyles-0.3.0 |
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.2100qwbarch-Concentus
Portable C# implementation of the Opus audio compression codec
Preferred version: 2.3.0README
Lethal Gargoyles!
This mischievous gargoyle's goal is to follow you around and annoy you with his witty taunts. But be wary, he's not so passive if you don't respect his space!
Features:
- Voiced Gargoyle: Features the voice of the modder, with over 140 unique voice lines (and more to come!).
- Dynamic Behavior: The gargoyle tries to stay close while remaining hidden, but will become aggressive if you get too close.
- Varied Taunts: Includes a wide range of taunts for different situations, including general taunts, aggro responses, death reactions, and more.
- Customizable Voice Lines: Add or replace voice lines with your own custom OGG files.
- Configuration Options: Disable specific voice lines or adjust other settings through the mod's configuration file.
Gargoyle Behavior (Spoilers)
The gargoyle's primary goal is to annoy the player. It will try to stay close while remaining hidden, but its stealth skills are still under development. If the player enters its aggro range, it will chase and attack them. Be careful, as it might occasionally push you into walls (a bug that's being worked on).
The gargoyle's taunts are categorized as follows:
- General
- Aggro
- Gargoyle Death
- Player Death
- Enemy Proximity
- Prior Death
Feedback and Requests
Any feedback or voice line requests can be submitted through the following channels:
- GitHub Repo: https://github.com/DropDaDeuce/LethalGargoyles
- Lethal Company Modding Discord: https://discord.com/channels/1168655651455639582/1312527029455032394
This is my first experience with Unity, C#, models, and animations. Any suggestions for improvement are welcome!
Add/Replace Voice Lines
1. Audio Format and Location
- All custom voice lines must be in OGG format. Other formats (MP3, WAV, etc.) are not supported.
- Place your custom OGG files in the "Custom Voice Lines" folder located within your Lethal Company game directory (e.g.,
C:\Program Files (x86)\Steam\steamapps\common\Lethal Company\Custom Voice Lines
). - Do not place custom voice lines in the "Voice Lines" folder.
- There is a maximum size of 500KB on the OGG files due to Steam networking limitations on network messages.
2. Voice Line Categories
Voice lines are organized into the following categories:
- Combat Dialog
- Taunt - Activity
- Taunt - Aggro
- Taunt - Enemy
- Taunt - Gargoyle Death
- Taunt - General
- Taunt - Player Death
- Taunt - Prior Death
- Taunt - EmployeeClass (Requires the Employee Classes mod)
3. Naming Conventions
- Hardcoded Categories: For the categories "Taunt - Activity," "Taunt - Enemy," "Taunt - Prior Death," and "Taunt - EmployeeClass," you can add multiple variations of the same taunt by using the original file name as a base and adding a suffix.
- For example, to add variations of the "taunt_priordeath_Abandoned" voice line, you can name your custom OGG files "taunt_priordeath_Abandoned2.ogg", "taunt_priordeath_Abandoned_Custom.ogg", etc. The mod will randomly choose between all variations with the same base name.
- Other Categories: For the remaining categories, you can use any file name for your custom OGG files. Simply place them in the corresponding folder within "Custom Voice Lines."
4. Disabling Voice Lines
- If you want to disable a specific voice line, you can do so through the mod's configuration file.
Current Voice Lines
General (General taunts that play randomly during gameplay)
"Ach, I can smell your awful breath... all the way from here."
"I'd ask you to try and hit me... but ya'd probably poke yer eye out instead."
"I might be made of stone, but at least I ain't stone blind."
"Hey! You're that mighty employee, aren't ya? Well, I've got scrap for ya: KISS MY STONEY ARSE!"
"I bet your aim's as bad as your body odour!"
"I heard there was a prophecy about ya... yeah... something about THE WORST EMPLOYEE OF ALL TIME! Yeah, that was it! Hahaha!"
"You must be the sorriest excuse of an Employee I ever saw, and I've seen plenty."
"Ye cannae hit me. Ye cannae hit me! Haha!"
"Hi, my name's Barn Door. Bet ye cannae hit meeee!"
"You're more of a crack-pot than a crack-shot! Hahahaha!"
"Don't you try and ignore me, you pink-bellied numpty!"
"Is this what I've been sittin' here waiting for all these centuries? You?! Bahahaha!"
"I can tell by yer glazed over eyes ye cannae hit straight!"
"Hey! Employee! Do you have any tzp or flashlights? Hahaha, you don't have any skill, that's as plain as day!"
"Ach, away with ye, ye scavenger dog-monkey."
"Hey! Look at me when I'm insulting ya! You walking sack of compost!"
"You think you're smart? I've seen more brains in a slop-bucket!"
"Let's see your aim... If ya've got one!"
"You couldnae hit a castle wi'a ball of dung!"
"Ach, ya blunderin' goon, you couldnae hit me in a million years!"
"Tell me this, how does a rubbish employee like you stay alive? You must be a right jammy bugger!"
"What are you gonna do, huh? Hit me? Ooh, I'm shiverin', mummy, help!"
"Tell me this, is it true you don't know which way to hold a shovel? Hahaha!"'
"Oh, look! My face is all exposed! Betchya cannae hit me!"
"Which one ya cannae hit me with? Yer shovel, or yer sneeze?"
"Hey, what you are doing with all those weapons? You might as well use a wee toy slingshot, ye big baby!"
"Hey, come and have a go at me, if you think you're tough enough!"
"I can paint a target on me arse and you'll still be pointing at ye shoe!"
"You're so incompetent, you couldnae hit a spring head!"
"I've seen more enthusiasm from a Bracken!"
"What do you think of that, Mr. Pajama-Wearing, Basket-Face, Slipper-Wielding, Clipe-Dreep-Bauchle, Gether-Uping-Blate-Maw, Bleathering, Gomeril, Jessie, Oaf-Looking, Stauner, Nyaff, Plookie, Shan, Milk-Drinking, Soy-Faced Shilpit, Mim-Moothed, Sniveling, Worm-Eyed, Hotten-Blaugh, Vile-Stoochie, Callie-Breek-Tattie?" - Submitted by ThePatienceToad
"You must have drawn the ugly gene in the family."
"Its employees like you that make me happy humans are mortal!" - Submitted by ThePatienceToad
"If yer as slow on foot as ye are in the head, ye cannae hope to hit me!" - Submitted by Plague
Aggro (When you aggro him)
"That's It! I'll kick yer arse!"
"You think you're tough!? I got some scrap for ya!"
"I'll bloody make yer face even more ugly! Wait… I dinnae think that's possible." - Submitted by Electric
"Oi! You lookin' at me?! I'll give ye somethin' to look at!"
"Step back, ya numpty! Unless ye want a face full of stone!"
Gargoyle Death (When he dies)
"These are my final words. I hate you. Hahahaha!"
"At least... at least I'm not... not you..."
"At least I didn't trip over my own feet and fall into a pit… you imbecile… *coughs*"
Player Death (When a player dies to a Gargoyle)
"Hahahaha! You died!"
"Another employee down! Hahahaha!"
"Hahahaha! You suck!"
Enemy Proximity(Small chance to trigger when an enemy is near the gargoyle, or a false trigger)
"Hello, sir Bracken! He's over there! Hahahaha"
"Sit still and don't turn around. I want to watch that Spring Head maul you!"
"What a cute little Thumper! They're over there boy, go get em! Good boy!"
"Looks like you're being haunted! I hope you get possesed you useless pile of trash!"
"I hope this centipede eats your face!"
"The itsy bitsy spider ate the employees face. Hahahaha!"
"Hey look! Another employee. Go give him a hug!"
"Yippee! Hahahaha!"
"This Jester is hilarious! Go tell that joke to that employee over there! Hahahaha!"
"Hey, you! I found some nuts for you to crack. They're over there!"
"Hey! Employee! Ever been dissolved by a slime?"
"That's one scary butler! I'm glad I'm not you! Hahahaha!"
"This one eats employees! I like it already!"
Prior Death (He will taunt his target based on how/if they died last round)
"A guy with a mask threw up on you and you fell over dead? Maybe that possessed clone has more braincells than you!" - Submitted by Sniker
"Yer parenting skills are worse than yer survival skills... I dinnae know that was even possible!" - Submitted by Sniker
"Remember that time ye missed that jump and died? Ha, Great times."
"They say 'fight fire with fire'. Well, ye fought fists with... yer face! HAHAHA!"
"What went up, came down... and splat! Just like you!"
"I heard tough guys don't look at explosions, which is probably why ye died." - Submitted by ThePatienceToad
"Gack! Couldn't breathe? Maybe ye should've tried breathing through your ears!"
"Looks like someone needed a breath of fresh air...permanently!"
"Torn limb from limb? Served you right for getting out of bed that morning!"
"My favorite part about the last moon. Bang! You were full of holes! What a surprise…"
"Flat as a pancake, ye were! Were you always that thin?
"You couldnae hold your breath longer than 10 seconds. Hahahaha!" - Submitted by ThePatienceToad
"Left behind, eh? Even your friends didn't like you!"
"Next time you get electrocuted, try not to pee yourself!"
"Kicked ya right into the goal last round ye were! Hahahaha!" - Submitted by ThePatienceToad
"Next time you get roasted, I'll bring some marshmallows."
"Next time you see a knife, try running away from it instead of towards it! Hahahaha!"
"You got blown away, literally!"
"Next time ye want to go head first into something hard, I'll give ya a good smack!"
"How much glue did they need to put ye back together?" - Submitted by ThePatienceToad
"Couldnae outsmart a bunch of birds with hairy bums, could ye?"
"Bracken snuck up on ye. Should've seen the look on yer face when ye felt those bony fingers on yer neck! Then crack like a twig!"
"Caught in a wee web, were ye? Should've seen yer face when she came crawlin' out! Like a hairy, eight-legged beastie!"
"Heard those bees gave ye quite the shock! Should've seen yer hair standin' on end! Hahahaha!"
"If you had the brains to turn around a half second sooner, you might have survived!" - Submitted by ThePatienceToad
"Swallowed whole, were ye? He's got an appetite for careless employees, that worm! Should've seen yer face when he popped up! HAHAHA!"
"The pup heard ye sneakin' about! Should've seen him come flyin' through the air! Like a furry, toothy missile!"
"Couldn't handle a bit of a haunting, could ye? Yer head just popped like a ripe melon! Messy!"
"Couldn't keep yer hands off his shiny bits, could ye? He gave ye a good polishin', though, didn't he?"
"Slow and steady wins the race, eh? Except when it's a giant puddle of acid chasin' ye! Hahahaha!"
"That Jester's got quite the spring in his step, eh? Should've seen yer face when he popped out! Hahahaha!"
"Did that wee beastie steal yer breath away? Should've seen ye flailin' about! Like a fish outta water!"
"Did ye trip over yer own feet tryin' to get away? Or did ye faint from the smell of his... perfume? HAHAHA! Either way, it's pathetic!"
"Ach, couldn't outrun a deaf beastie, could ye? Should've seen ye trippin' over yer own feet!"
"He's got a big appetite, that one! Try tried standin' still next time. Maybe he'll think yer a tree!"
"Heard ye screamin' all the way from here! Did ye think that would scare him off? He can't even hear ye! Hahahaha!"
"'Beware of gift bearing Greeks!' Or, in yer case, masks bearin' doom! Should've seen yer friends runnin'! Like wee bairns from a bogeyman!"
"He cracked ye good, didn't he? Should've seen ye dancin'! One step forward, two steps back... right into his shotgun blast!"
"He kicked ye so hard, ye flew higher than a hawk! Should've seen ye spinnin' through the air! Did ye land on yer head? Hahahaha!"
"Heard ye were lookin' for a close shave. He gave ye one, didn't he? A bit too close for comfort, I'd say!"
"He went out with a bang, didn't he? Took ye right wit him. Hahahaha!"
"Thought ye were done with him, did ye? Next time, try bringin' a fly swatter! Hahahaha!"
"Should've seen ye flailin' about with those wee snakes on yer head! Too bad ye broke the fall with ye face!"
"Heard ye were lookin' for a quick trip to the moon. He granted yer wish, didn't he? One-way ticket, though, I'm afraid!"
"He's got quite the footwork, that one! Should've seen him tap-dancin' on yer head!"
"He ran ye over like a wee speed bump, didn't he? Should've seen ye go flyin'!"
"Ach, he roasted ye like a wee marshmallow, didn't he? Should've seen ye glowin'! Nice and crispy on the outside, I bet!"
"He's a sneaky one, that Barber! Appears out of thin air, then snip snip! Should've seen yer face... oh wait, he cut it in half! Hahahaha!"
"Ye flew a bit too close to the sun? Should've seen ye splatter! Like a wee bug on a windshield!"
"Yer jetpack had a wee bit of a temper tantrum, didn't it? Should've seen the fireworks! And the confetti... made of employee bits! Hahahaha!"
"That ladder had a bone to pick with ye, didn't it? Came down right on top of ye! Should've seen the dent it made! Maybe ye should try wearin' a helmet next time!"
"Yer teammate gave ye a good whack, didn't they? Should've seen ye do a jig! One step forward, two steps back... right into the ground!"
"Your teammate gave ye a sign, didn't they? A stop sign... right to the head!"
"Your teammate gave ye a lesson in road safety, didn't they?"
"Thought ye could trust yer teammates, did ye? Turns out, they're sharper than they look!"
"They say 'don't put all yer eggs in one basket'. Well, ye put all yer faith in that one egg... and it blew up in yer face! Hahahaha!"
"Heard ye were tryin' out for the skeet shooting competition. Well, ye were the skeet!"
"They say 'the ground can swallow ye whole'. Well, it did! Should've worn yer floaties! Hahahaha!"
"That last death sure was stunning!"
"Thought ye were a master driver, did ye? Did you get your license out of a cereal box?"
"Thought ye could trust yer driver, did ye? Should've called a taxi!"
"My favorite look on ye. Exploded to bits!"
"Next time, try wearin' a traffic cone as a hat! Might make ye a wee bit more visible…"
"Heard ye were tryin' out for the diving team. Well, ye certainly took the plunge!"
"Next time ye want to go for a fall, try bringin' a parachute!"
"I heard ye took a bit of a tumble. Can you do it again? I wasn't looking last time."
"Watch your step! There's a pit there! Oh wait, too late. Hahahaha!"
"Ye took the express elevator to the bottom, didn't ye? Did ye make a wish on the way down?"
"Thought ye could make a deal with the devil, did ye? He took yer scrap... and yer soul! HAHAHA!"
"Heard ye were expectin' a package. Well, ye got one! Right on top of yer head!"
"You know what they say, watch where ye step. Oh, ye must have missed that one."
"They say 'don't poke the bear'. Well, ye shouldn't poke the turret either! Hahahaha!"
"They say 'lightning never strikes twice'. Well, it only needs to strike once to turn ye into a pile of ash! Hahahaha!"
"Heard ye were stargazin'. Well, ye got a closer look than ye planned!"
"How'd ye miss the big metal plate with spikes on it? Well it sure didn't miss you when it poked holes in ya! Hahahaha!"
"They say 'curiosity killed the cat'. Well, it also killed the employee who wandered too far! Hahahaha!"
"I can't believe it! You actually died of embarrassment! Hahahaha!" - Submitted by ThePatienceToad
"Thought ye could outsmart one of our own, did ye? Yer body sure did make a bloody good chair!"
To Do
- Add "Action" taunts. They will trigger based on some of your actions. - Idea submitted by Sniker
- Pick up an annoying item.
- Near a ledge
- Kill another enemy
- Getting lost
- Add Employee Classes soft dependency and integration. - Idea submitted by Plague
- Find more ways for him to be mischievous. (Keeping the theme of him trying to stay hidden)
Credits:
- Evaisa for creating LethalLib.
- Hamunii for Example Enemy.
- Xu Xiaolan for the youtube tutorial.
- qwbarch for uploading Concentus
- NVorbis: This mod uses the NVorbis library for decoding OGG files. You can find the library and its source code here: https://github.com/NVorbis/NVorbis
- RichAudio, Syiacka, and Nightare for testing with me.
Gargoyle Model Credit/Copyright - Original model by Lionhead Studios - Extracted by CharlieVet on cults3d.com - Modified by DropDaDeuce & Syiacka
The Gargoyle model was extracted from the game Fable II and prepared for printing including smoothing by CharlieVet on cults3d.comThis model is available for use under https://creativecommons.org/licenses/by-nc/4.0/
- Attribution: CharlieVet https://cults3d.com/en/3d-model/game/gargoyle-on-edge - Modified by: DropDaDeuce & Syiacka - License: Creative Commons Attribution-NonCommercial 4.0 International - You are free to: - Share: copy and redistribute the material in any medium or format - Adapt: remix, transform, and build upon the material - The licensor cannot revoke these freedoms as long as you follow the license terms. - Under the following terms: - Attribution: You must give appropriate credit , provide a link to the license, and indicate if changes were made . You may do so in any reasonable manner, but not in any way that suggests the licensor endorses you or your use. - NonCommercial: You may not use the material for commercial purposes . - No additional restrictions: You may not apply legal terms or technological measures that legally restrict others from doing anything the license permits.
CHANGELOG
v0.3.0 Employee Classes Update
New Features:
- Employee Classes Integration:
- Added soft dependency on the Employee Classes mod.
- The gargoyle now taunts players based on their chosen class if the Employee Classes mod is installed.
- Added a "Taunt - EmployeeClass" folder for custom voice lines related to employee classes.
- Added new voice lines for each employee class (Scout, Brute, Maintenance, Researcher, Employee).
- Taunt Variations:
- Implemented logic to randomly select from multiple audio clips with the same base name for Enemy, PriorDeath and Class taunts.
- Coroner Taunts:
- Moved Coroner PriorDeath taunts into a subfolder to prevent loading if the Coroner mod is not installed.
- Guaranteed Taunt Variation:
- Added logic to ensure the gargoyle will perform a taunt from a different category (Enemy, PriorDeath, or EmployeeClasses) after a set number of consecutive general taunts.
- The number of consecutive general taunts allowed is dynamically determined based on installed mods and player states.
Changes:
- Audio System:
- Optimized audio clip loading by adjusting the timing of the
WaitForClientReady
call.
- Optimized audio clip loading by adjusting the timing of the
- File Structure:
- Reorganized the file structure in the source directory.
- Gargoyle AI:
- Optimized gargoyle AI for improved performance and behavior.
- Optimized animation and state transitions for smoother movement.
- Added the ability for the gargoyle to target players even when outside.
- Introduced the ability for the gargoyle to close doors behind it.
- Updated acceleration, stopping distance, auto braking, and angular speed to improve target following during chases.
Bug Fixes:
- Fixed an issue where the gargoyle would get stuck in the
GetOutOfSight
state when spawned in front of a player. - Attmepted to improve the gargoyle AI for smoother animation transitions.
Documentation:
- Updated the README and CHANGELOG with the latest changes and improvements.
v0.2.0 Custom Voices Update
-
Audio System Rework:
- Voice lines are now loaded from folders within the plugin's directory instead of the asset bundle.
- The host loads audio lists at the start of a game.
- Clients receive audio data from the host upon joining.
- Added a "Custom Voice Lines" folder for replacing or adding custom voice lines (see
CustomVoiceLines.txt
for details).
-
Bug Fixes:
- Fixed enemy warning taunts.
Dependency Changes:
- Added NVorbis library for OGG decoding.
- Added Concentus dependency for required system libraries:
System.Memory
System.Buffers
System.Numeric.Vectors
System.Runtime.CompilerServices.Unsafe
Documentation:
- Updated the README and CHANGELOG with the latest changes and improvements.
- Reformatted the changelog to display the latest version at the top.
v0.1.0
New Features:
- Coroner Integration:
- Added soft dependency on the Coroner mod for custom causes of death.
- Expanded prior death taunts to include causes of death from the base game and the Coroner mod (78 new taunts).
- The gargoyle now taunts its target based on how they died in the previous round.
- New Voice Lines:
- Added 3 new aggro taunts.
- Added 2 new general taunts.
- Added 2 gargoyle attack voice lines.
- Added 2 gargoyle hit voice lines.
- Gameplay Adjustments:
- Adjusted gargoyle aggro state to be more challenging.
- Fixed gargoyle attack rate to prevent exceeding 1 attack per second.
- Reduced the maximum distance of gargoyle voice lines.
- Fixed enemy clips being incorrectly included in general taunts.
- Reduced the default idle range from 30 to 20 to improve target following.
Bug Fixes:
- Fixed an issue where the gargoyle's health was accidentally set to 0.
- Fixed enemy clips being pulled into general taunts.
v0.0.5
Changes:
- Optimized pathfinding and code for improved performance.
- Fixed various pathfinding issues.
v0.0.4
- Fixed spelling errors in the README.
v0.0.3
- Fixed an issue where the gargoyle could become permanently angry.
- Separated enemy taunts from general taunts and reduced their frequency.
- Fixed animation desynchronization issues.
- Fixed potential taunt desynchronization issues.
- Increased the aggro taunt timer.
- Fixed the swing attack.
- Fixed gargoyles talking at the same time.
v0.0.2
- Fixed an issue where the gargoyle would not wander.
- Added voice line synchronization between clients.
- Increased the idle range.
- Improved animation handling to prevent walking in place.
- Added logic to prevent the gargoyle from getting permanently angry.
v0.0.1
- Initial release.