RollingGiant
Updated 10 months agoMade by Andrew Burke
Adds the Rolling Giant as a new enemy type into Lethal Company. Sounds are included.
Features:
- Adds the Rolling Giant as a new enemy
- Adds a custom scrap poster for the Rolling Giant
- Rolling Giants can be scanned to read their own unique bestiary entry
- Multiple AI behaviours to choose from
- Can change the scale of the Rolling Giant between two values
- Can change the Rolling Giant's movement speed, wait durations, move durations, and more
- Rolling Giants have the option to rotate to face the player if they have been still for some time
- Can change the AI type of all Rolling Giants on the fly:
- A hot key to reload the entire config file
- Hotkeys to cycle between AI types
Installation
Put the /BepInEx/
folder inside your /steamapps/common/Lethal Company/
folder after installing all the dependencies.
Config
Generated after launching the game for the first time.
General
GiantScaleInsideMin
- The minimum scale of the Rolling Giant's model inside- This changes how small the Giant can be
GiantScaleInsideMax
- The maximum scale of the Rolling Giant's model inside- This changes how big the Giant can be
GiantScaleOutsideMin
- The minimum scale of the Rolling Giant's model outside- This changes how small the Giant can be
GiantScaleOutsideMax
- The maximum scale of the Rolling Giant's model outside- This changes how big the Giant can be
Spawn Conditions
These do not update when reloading the config in-game!
SpawnIn
- Levels that the Rolling Giant can spawn in, separated by their chances of spawning- Vanilla caps at 100, but you can go farther.
- This chance is also a weight, not a percentage
- Higher chance = higher chance to get picked
- The names are what you see in the terminal
Vow:45,March:45,Rend:54,Dine:65,Offense:45,Titan:65
SpawnInOutsideChance
- The chance for the Rolling Giant to spawn outside in the levels fromSpawnIn
SpawnInAny
- If the Rolling Giant can spawn on any levelSpawnInAnyChance
- The chance for the Rolling Giant to spawn in any levelSpawnInAnyOutsideChance
- The chance for the Rolling Giant to spawn outside in any levelCanSpawnInside
- If the Rolling Giant should spawn inside the dungeonCanSpawnOutside
- If the Rolling Giant should spawn outsideDisableOutsideAtNight
- If the Rolling Giant will turn off if it is outside at night.MaxPerLevel
- The maximum amount of Rolling Giant's that can spawn in a levelSpawnPosterIn
- Where the Rolling Giant poster scrap can spawn, separated by their chances of spawning- Vanilla caps at 100, but you can go farther.
- This chance is also a weight, not a percentage
- Higher chance = higher chance to get picked
- The names are what you see in the terminal
Vow:12,March:12,Rend:12,Dine:12,Offense:12,Titan:12
AI
AiType
- Type of AI the Rolling Giant uses- Putting multiple will randomly choose between them each time you land on a moon
- Coilhead - Move when the player is not looking at it
- MoveWhenLooking - Move when the player is looking at it
- RandomlyMoveWhileLooking - Randomly move while the player is looking at it
WaitTimeMin
- The minimum duration in seconds that the Rolling Giant waits before moving againWaitTimeMax
- The maximum duration in seconds that the Rolling Giant waits before moving againRandomMoveTimeMin
- The minimum duration in seconds that the Rolling Giant moves toward the playerRandomMoveTimeMax
- The maximum duration in seconds that the Rolling Giant moves toward the player
- LookingTooLongKeepsAgro - If the player looks at it for too long it doesn't stop chasing
LookTimeBeforeAgro
- How long the player can look at the Rolling Giant before it starts chasing.
- FollowOnceAgro - Once the player is noticed, the Rolling Giant will follow the player constantly
- OnceSeenAgroAfterTimer - Once the player sees the Rolling Giant, it will agro after a timer
WaitTimeMin
- The minimum duration in seconds that the Rolling Giant waits before chasing the playerWaitTimeMax
- The minimum duration in seconds that the Rolling Giant waits before chasing the player
- All - Will select all of the ai types
AiTypeChangeOnHourInterval
- If the AI type should change every X hours. Set to 0 to disableMoveSpeed
- Speed of the Rolling Giant's movement in m/s²MoveAcceleration
- How long it takes the Rolling Giant to get to its movement speed in secondsMoveDeceleration
- How long it takes the Rolling Giant to stop moving in secondsRotateToLookAtPlayer
- If the Rolling Giant should rotate to face the player if it has been still for some timeDelayBeforeLookingAtPlayer
- The delay before the Rolling Giant looks at the playerLookAtPlayerDuration
- The duration the Rolling Giant takes to look at the player
Host
These do not update when reloading the config in-game!
GotoPreviousAiTypeKey
- The key to go to the previous AI type- This uses Unity's New Input System's key-bind names
- Defaults to
Keypad 7
GotoNextAiTypeKey
- The key to go to the next AI type- This uses Unity's New Input System's key-bind names
- Defaults to
Keypad 8
ReloadConfigKey
- The key to reload the config. Does not update spawn conditions- This uses Unity's New Input System's key-bind names
- Defaults to
Keypad 9
Building the project
Removing the local plugin package step
Remove the PreBuild
step in the csproj, and replace the PostBuild
step with
<Target Name="PostBuild" AfterTargets="PostBuildEvent">
<Exec Command="cd $(NetcodePatcherDir)
NetcodePatcher.dll $(TargetDir) deps/
xcopy /y /d "$(TargetDir)$(TargetName).dll" "$(GameDir)\BepInEx\plugins\RollingGiant\"
" />
</Target>
Also remove:
<ItemGroup>
<Folder Include="plugin\BepInEx\plugins\RollingGiant\" />
</ItemGroup>
Initial steps
- Open the .csproj
- Change
<GameDir>
to where your game is installed - Change
<NetcodePatcherDir>
to where you have the Unity Netcode Patcher extracted
Can also remove the enter netcode patcher step if you want to use the nuget version instead, but I haven't updated to that yet, so I haven't looked into it
- Build
When built, it will patch the dll and then copy the dll to the game's plugin folder.
If you don't want the auto-copying to the game directory, then remove this from the PostBuild
step:
xcopy /y /d "$(TargetDir)$(TargetName).dll" "$(GameDir)\BepInEx\plugins\RollingGiant\"

Changelog
2.5.2
- Fixed LLL spawning
- Fixed daytime variant's shader being missing (somehow)
- Fixed daytime variant, when disabled, not disabling audio
2.5.1
- Fixed timers that didn't reset when ai types changed hourly
- Fixed some ai types slowing down dramatically due to timers not resetting
2.5.0
- Added
AiTypeChangeOnHourInterval
to the config so the ai type can change every X amount of hours - The
InverseCoilhead
ai type will now move towards a player if it can't see any of them, until it gets back into line of sight
2.4.4
- Added
@Headcraps
to the acknowledgments for making the original Rolling Giant model- I was given this by a friend so I wasn't aware that Headcraps initially made it, sorry about that!
2.4.3
- Fixes outside ai!
2.4.2
- Clients properly get targetted during the roaming phase
2.4.1
- Fixed an ownership issue that caused the Rolling Giant to spam errors
- Fixed an ownership issue that caused the Rolling Giant to not untarget from someone
- Fixed an ownership issue that caused the Rolling Giant to target people outside of the factory
- Removed capsule collider and added a box collider as it was causing issues with the Rolling Giant's attack
- Rolling Giants outside still don't work properly, but is getting worked on 🫡
2.4.0
- Fixed the Rolling Giant's bestiary entry breaking when scanning the outside versions of it
- Fixed the Rolling Giant not being able to get on the ship
- Fixed the latency teleportation of the Rolling Giant on clients; now moves smoothly across all clients
- Fixed ai path issues if the player jumped or got onto a high place. Now the Rolling Giant paths to the closest point to the player if they are inaccessable
- Fixed the Rolling Giant damaging the player when clipping into the ship and the player is in the ship. Now it won't damage the player in this case
- Fixed ai type syncing between clients
- Fixed various ai types by syncing shared variables between clients
- Fixed
LookingTooLongKeepsAgro
where the Rolling Giant wouldn't move while the timer is partially completed - Fixed
LookingTooLongKeepsAgro
where the time would restart when it switched players, or lost the player - Fixed
OnceSeenAgroAfterTimer
where the time would restart when it switched players, or lost the player - Fixed ai type timers resetting when the player jumped or went out of range
- Fixed the Rolling Giant's audio stuttering if it makes quick small movements to reach a location
- Improved the wandering speed so it will speed up to their max speed like their chasing state
- Rolling Giants past 1.2 size can no longer get onto the ship
- Rolling Giant scale now slightly affects their rolling audio pitch
2.3.0
- Added a config option to change the max amount of Rolling Giant's that can spawn in a level
- Changed the config option for AiType to accept multiple values
- This allows for a random AI type to be picked at the start of each moon
- AI type is now synced across clients with a NetworkVariable instead of with the config sync
- Added a new Rolling Giant model that is more optimized than the previous one
- Thanks to
Krampus
for the help on that!
- Thanks to
- The Rolling Giant now properly checks line of sight to start chasing the player
- Fixed a client bug that would complain about an invalid navmesh agent
2.2.1
- Fixed dead body shader being applied to all dead bodies and not only to the Rolling Giant player death type
2.2.0
- Added a config option to spawn the Rolling Giant on any level and a weight for that option
2.1.4
- Fixed client audio not playing due to agent speed mismatch
2.1.3
- Slightly increases the now too low default poster spawn weight
2.1.2
- Removed a multipler that was applied to the poster rarity for some reason
2.1.1
- Removed the soft dependency to LethalSettings, as it somehow broke through a try catch which broke the mod loading.
- Increased the default spawn weights slightly.
- Added a slight probability curve to the giant's spawning inside, outside, and outside during the day.
- Inside will slightly more common at the start
- Outside will be slightly more common at the start and a bit more common near the end
- Outside during the day will be slightly more common at the start
2.1.0
- Renamed
SpawnInside
toCanSpawnInside
, and is now just a toggle - Renamed
SpawnOutside
toCanSpawnOutside
, and is now just a toggle - Renamed
SpawnDaytime
toDisableOutsideAtNight
as it was too confusing for many people, and is now just a toggle - Added extra notes to various config options to make them more clear
- Added the Rolling Giant to the in-game dev enemy spawn list
- Fixed the Rolling Giant's outside AI
- Gave the Rolling Giant, when it is a daytime type, a disabled state
2.0.1
- Removed logs from ai modes that spammed the console :(
2.0.0
- Removed Terminal API dependency
- Converted the Rolling Giant into a completely custom enemy that can be added to the spawn pools
- Overhauled all AI behaviors
- Fixed many audio and networking sync issues
- All AI types will wander by default if all players get out of range
- Added a new player death type for when the Rolling Giant kills the player
- Removed wander settings
- Added config options:
GotoPreviousAiTypeKey
- The key to go to the previous AI type.- This uses Unity's New Input System's key-bind names
GotoNextAiTypeKey
- The key to go to the next AI type.- This uses Unity's New Input System's key-bind names
ReloadConfigKey
- The key to reload the config. Does not update spawn conditions.- This uses Unity's New Input System's key-bind names
SpawnIn
- Levels that the Rolling Giant can spawn in, separated by their chances of spawningSpawnInside
- If the Rolling Giant should spawn inside the dungeonSpawnDaytime
- If the Rolling Giant should spawn during the daySpawnOutside
- If the Rolling Giant should spawn outsideMoveDeceleration
- How long it takes the Rolling Giant to stop moving in secondsSpawnPosterIn
- Where the Rolling Giant poster scrap can spawn, separated by their chances of spawning
1.2.0
- Removed unused LC_API dependency
- Added a config option to tell the Rolling Giant to wander again if the player goes past a certain distance
- Added a config option to change that distance between the player and the Rolling Giant
- Added a config option to change how long it takes the Rolling Giant to get to its movement speed
- Added a config option to change the Rolling Giant's visual scale between two values
- Added a config option to change the duration the player has to look at the Rolling Giant before agro for the LookingTooLongKeepsAgro AI
- Audio volume scales based on the Rolling Giant's speed up to a cap of 1.0
- Added new AI types for the Rolling Giant:
- FollowOnceAgro = Once provoked, the Rolling Giant will follow the player constantly
- OnceSeenAgroAfterTimer = Once the player sees the Rolling Giant, it will agro after a timer
- Fixed RandomlyMoveWhileLooking AI not taking into account player viewing for timers
- Fixed movement speed not applying to AI tick loop
- Overhauled all settings to allow for per-AI type settings
- AI types are now grouped with the data they need
- Previous settings are removed automatically
1.1.1
- Made the Rolling Giant rng utilize the map seed to make results less samey
1.1.0
- Multiple AI types for the Rolling Giant:
- Coilhead = Coilhead AI
- MoveWhenLooking = Move when player is looking at it
- RandomlyMoveWhileLooking = Randomly move while the player is looking at it
- LookingTooLongKeepsAgro = If the player looks at it for too long it doesn't stop chasing
- Can change the scale of the Rolling Giant's model
- Can change the Rolling Giant's movement speed and wait/move random durations
- Rolling Giants have the option to rotate to face the player if they have been still for some time
- Rolling Giant variant is now synced visually across clients
1.0.0
- Initial release
Acknowledgments
Ayyobee
for a bunch of online testing and suggestions.Krampus
for the help with the new Rolling Giant model.@Headcraps
for the original Rolling Giant model!
Pages
- [0] ExpansionCompany README
- [1] ExpansionCompany FULL CHANGE LIST
- [1] ExpansionCompany FULL CHANGE LIST [RU]
- [2] ExpansionCompany QoL LIST
- [2] ExpansionCompany QoL LIST [RU]
- AdvancedCompany
- AdvancedCompany [RU]
- Arachnophilia
- Arachnophilia [RU]
- Backrooms
- Backrooms [RU]
- Diversity
- Diversity [RU]
- DontBlink
- DontBlink [RU]
- Dont Touch Me
- Dont Touch Me [RU]
- Emergency Dice
- Emergency Dice [RU]
- ExtraTerminalCommands
- ExtraTerminalCommands [RU]
- FacilityMeltdown
- FacilityMeltdown [RU]
- FairGiants
- FairGiants [RU]
- HDLethalCompany
- HDLethalCompany [RU]
- ImmersiveScraps
- ImmersiveScraps [RU]
- Immersive Visor
- Immersive Visor [RU]
- Lategame Upgrades
- Lategame Upgrades [RU]
- LETHALRESONANCE
- LETHAL RESONANCE MELTDOWN
- LETHAL RESONANCE MELTDOWN [RU]
- LETHALRESONANCE [RU]
- LethalStats
- LethalStats [RU]
- LethalThings
- LethalThings [RU]
- MaskedEnemyOverhaul
- MaskedEnemyOverhaul [RU]
- Mimics
- Mimics [RU]
- Mirage
- Mirage [RU]
- MoreInteriors
- MoreInteriors [RU]
- NeedyCats
- NeedyCats [RU]
- Peepers
- Peepers [RU]
- PoolRooms
- PoolRooms [RU]
- RollingGiant
- RollingGiant [RU]
- ScarletDevilMansion
- ScarletDevilMansion [RU]
- Scoopys Variety Mod
- Scoopys Variety Mod [RU]
- Scopophobia
- Scopophobia [RU]
- The Fiend
- The_Fiend [RU]
- TooManyEmotes
- TooManyEmotes [RU]
- WeatherTweaks
- WeatherTweaks [RU]
- Wesleys Moons
- Wesleys Moons [RU]