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.
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 | 2 years ago |
| Version | 0.0.4 |
| Download link | DropDaDeuce-LethalGargoyles-0.0.4.zip |
| Downloads | 808 |
| Dependency string | DropDaDeuce-LethalGargoyles-0.0.4 |
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.0Zaggy1024-PathfindingLib
Provides functionality for mod authors to run pathfinding off of the main thread.
Preferred version: 2.4.1README
Lethal Gargoyles!
This gargoyle's goal is to follow you around, and annoy you. But be wary, he's not so passive if you don't respect his space.
This is my first experience with Unity, C#, models, and animations. If you see any way I can improve the code, model, or the mod in general please let me know!
I did all the voice lines myself and I'm willing to take voice line requests for this mod. I can't guarantee that each request will be approved.
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?"
Aggro (When you aggro him)
"That's It! I'll kick yer arse!"
"You think you're tough!? I got some scrap for ya!"
Death (When he dies)
"These are my final words... I hate you. Hahah- *coughs to death*"
Enemy (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!"
To Do
- Add "Prior Death" taunts. This will be a chance to taunt you for how you died in the prior round.
- Died to fall damage
- Died to a specific enemy
- Add "Action" taunts. They will trigger based on some of your actions.
- Pick up an annoying item.
- Near a ledge
- Kill another enemy
- Find more ways for him to be mischievous. (Keeping the theme of him trying to stay hidden)
Credits:
- Hamunii for Example Enemy
- Xu Xiaolan for the youtube tutorial
- RichAudio, Syiacka, and Nightare for testing with me.
Gargoyle Model Credit/Copyright - Original model by Lionhead Studio - 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.7.0 - The Gargoyle Is Back!
AI Improvements:
- Integrated PathfindingLib for improved pathfinding and navigation.
- Improved the Gargoyle's navigation so it can reach players more reliably and gets stuck less often.
- Tweaked behavior logic (searching, sneaking, chasing, idling, and pushing) to make the AI feel more consistent and responsive.
- General performance improvements when multiple Gargoyles are active (less repeated heavy logic per tick).
Game Parity:
- Updated the asset bundle to Unity 2022.3.62f3.
- Updated netcode to be compatible with v73.
Icon
- Thank you Purple for the Gargoyle render used in the icon!
Documentation
- Added/updated the changelog format and entries.
v0.6.1 - Compatibility & Fixes
New Features:
- Enhanced Monsters Compatibility:
- Added compatibility with the Enhanced Monsters mod. WIP.
Changes:
Bug Fixes:
- Modified the animator controller for the die animation of the gargoyle.
- Fixed an issue with the gargoyle statue scrap not being activated properly on servers.
Notes:
- Enhanced Monsters compatibility is currently under development by the mod author.
v0.6.0 - The Gargoyle's Treasure
New Features:
- Gargoyle Statue Scrap:
- Added a new gargoyle statue scrap item that can be found in the game.
- The Eyeless Dog can hear the gargoyle statue scrap.
- The gargoyle statue scrap has its own voice lines!
- Sound Effects:
- The gargoyle now has footstep sound effects.
Changes:
- Updated various assets for improved visuals and sound effects.
v0.5.0 - The Talkative Gargoyle
New Features:
- Activity-Based Taunts:
- The gargoyle now reacts to various player activities with unique taunts.
- Added 21 new voice lines for activity-based taunts.
- Added 1 new voice line for nearby gargoyle detection.
- Added 1 new voice line for SteamID taunts. (This is just to get the taunt type loaded. Additions will need to be added by the host in the Custom Voice Lines folder.)
- Custom Steam ID Taunts:
- You can now add custom taunts for specific players by placing OGG files in the "Taunt - SteamIDs" folder, using the player's Steam ID as the file name prefix.
Changes:
- Audio System:
- Refactored taunt logic for better performance and maintainability.
Bug Fixes:
- Fixed minor bugs related to gargoyle behavior and AI.
- Updated enemy names in taunt clips to align with internal names.
v0.4.2
Changes:
- Gargoyle AI:
- Improved gargoyle AI responsiveness.
- Optimized the process of finding nearby railings.
- Refined targeting logic for improved efficiency.
- Performance:
- Significantly improved gargoyle performance through various optimizations, including:
- Replacing LINQ methods with more efficient loops.
- Utilizing optimized distance calculations.
- Caching frequently accessed values.
- Reducing redundant function calls.
- Significantly improved gargoyle performance through various optimizations, including:
These changes enhance the gargoyle's performance and responsiveness, leading to smoother gameplay.
v0.4.1 - Hot Fix
- Bug Fixes:
- Fixed one of the new methods erroring out if Coroner was not installed.
v0.4.0 - The Pushy Gargoyle
New Features:
- Push Attack:
- Added a new "PushTarget" attack pattern where the gargoyle attempts to push players off edges.
- Implemented a new cause of death in Coroner for deaths caused by gargoyle pushes.
- New Voice Lines:
- Added a voice line for the gargoyle push death.
- Configuration:
- Added a config option to enable or disable the "PushTarget" attack.
- Nerfed default value for Aggro Range from 6 to 4.
Changes:
- Gargoyle AI:
- Adjusted pathfinding logic to support the new
PushTargetstate. - Added a 45-second cooldown to the
PushTargetstate after a successful push. - Prevented line of sight from breaking the
PushTargetstate within aggro range. - Improved target selection to distribute targets more evenly among players.
- Gargoyles now attempt to spread their targets across all players in the same area.
- Improved base pathfinding to utilize positions near AI nodes instead of directly on them, increasing pathing options and preventing gargoyle stacking.
- Decreased speed in the aggressive state.
- Introduced caching for AI nodes to avoid redundant lookups.
- Adjusted pathfinding logic to support the new
- CoronerClass:
- Changed the registry name of the gargoyle push death to avoid conflicts.
- Performance:
- Optimized
LethalGargoylesAIfor improved performance and readability.
- Optimized
- Attack Changes:
- Removed the fear level component from the gargoyle's attack.
Documentation:
- Updated the README with the latest changes and improvements.
- Separated vanilla Prior Death and Coroner Prior Death voice lines in the "Current Voice Lines" section.
- Added Employee Classes voice lines to the "Current Voice Lines" section.
- Updated the
Strings_en-us_gargoyle.xmllocalization file with new death messages for the gargoyle push death.
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
WaitForClientReadycall.
- 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
GetOutOfSightstate when spawned in front of a player. - Attmepted to improve the gargoyle AI for smoother animation transitions.
Documentation:
- Updated the README 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.txtfor details).
-
Bug Fixes:
- Fixed enemy warning taunts.
Dependency Changes:
- Added NVorbis library for OGG decoding.
- Added Concentus dependency for required system libraries:
System.MemorySystem.BuffersSystem.Numeric.VectorsSystem.Runtime.CompilerServices.Unsafe
Documentation:
- Updated the README 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.