You are viewing a potentially older version of this package. View all versions.
JacobG5-JLL-1.2.0 icon

JLL

Jacob's Lethal Libraries - For Jacob's Mods

Date uploaded a month ago
Version 1.2.0
Download link JacobG5-JLL-1.2.0.zip
Downloads 8126
Dependency string JacobG5-JLL-1.2.0

This mod requires the following mods to function

BepInEx-BepInExPack-5.4.2100 icon
BepInEx-BepInExPack

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

Preferred version: 5.4.2100
Evaisa-LethalLib-0.16.1 icon
Evaisa-LethalLib

Personal modding tools for Lethal Company

Preferred version: 0.16.1

README

Jacob's Lethal Libraries

My personal Library for my Lethal Company Mods.

I made this to contain some custom scripts I plan to use on my custom moons, and possibly other mods.

Other people can use this as a dependency if you want.

CHANGELOG

v1.5.2

  • Fixed x2

v1.5.0

  • Replaced DamageZoneTrigger with DamageTrigger. The new version has been reoptimized following some suggestions from IAmBatby (thanks!) I haven't removed DamageZoneTrigger just yet that way people have a chance to update without breaking their mods.
  • DamageTrigger's methods for damaging individual types can now be called by UnityEvents again.
  • DamageTrigger now has damage multipliers which can modify the damage applied to things.
  • DamageTrigger's damage for each type can now be set through UnityEvent scripting.
  • You can change the damage amount for each type through UnityEvent scripting.
  • RandomizedEvent now optionally be given to a player to trigger a PlayerEvent. PlayerEvent only gets triggered if a player is given when the script is initially triggered. Regardless if a player is given or not the old event still triggers.
  • Optimized TriggerEnterEvent by reusing some of the new code for DamageTriggers.
  • DelayScript can now also optionally be given a player similar to RandomizedEvent.
  • JLevelEventTriggers now have an option to only trigger ApparatusPulled on the first instance of an apparatus being pulled. (For interiors with multiple apparatus's)
  • Added ClientSeperator which can be used to trigger events only for specific targets. Be careful when using this to avoid client desync. This can allow you to do interesting things in combination with other scripts such as displaying a hud tip when a client enters a room without displaying that tip to every client in the game.
  • RandomizedEvent can now be used to trigger an event on a random player in the lobby. RandomPlayerEvent is the event triggered with a random player in the lobby after StartRandomPlayerEvent() is triggered.
  • JLevelProperties now get properly removed when leaving a game mid-round.
  • Packaged MagicWesley into the .dll. (Don't ask)
  • Added PlayerFilter which can be used to check the properties of a player and if all checks succeed will trigger an event. Currently, PlayerFilter is capable of checking if items are in a player's inventory, some properties of the currently held item, the player's health, the player's stamina, and the player's carry weight. I know this is very similar to Lethal Toolbox but some people wanted it anyway so I added it. I may add more filters in the future if they're requested.
  • Added JEventVariables which can be used to store variables for use in events. Say you want to make a damage trigger do 2 more damage each time it hurts somebody, or you want to save the first player to enter a trigger for use with a different event later. You can do that now! This script supports storing Numbers (floats), Booleans (true/false), GameObjects, Players, and Enemies. To modify the values of these variables you need to first set the target index with an event by calling TargetIndex(index). Some variable types have special operations you can perform such as AddNumber(number). When you want to trigger the Event related to a variable you must first set your target index to the correct index and then call Trigger(varType). The string identifier for varTypes is listed in parenthesis above each variable in the inspector.
  • JLevelEventTriggers now updates on FixedUpdate instead of Update.
  • Added EnemyFilter which can be used to check the properties of an enemy. It can currently check an enemy's type, if the enemy is invincible, and its health.
  • EnemySpawner should no longer throw an error when given an empty copy of a modded enemy when that modded enemy is not present in the game.
  • JWeatherObject now has the option to disable setting the active object to its self when no active object is provided.

v1.4.0

  • Added TelePoint which when triggered by an event can be used to teleport things to that object.
  • Added TriggerEnterEvent which can be used to trigger events when something enters a trigger collider on the same object.
  • Added a timeScale variable to DayCycleAnimator to change the length of time an in-game daylight cycle will animate through the animation.
  • Added custom UnityEvents: EnemyEvent (EnemyAI) VehicleEvent (VehicleController) and DamageableEvent (IHittable) among others.
  • Added RandomizedEvent which can be used to trigger events based on a randomized weight system that gets synced between clients.
  • Publicized the damage methods in DamageZoneTrigger to allow invoking them through Unity Events.
  • Added JMessageLogger which can be triggered by events to send log messages, chat messages, and HUD tips/warnings.
  • JLevelEventTriggers now can run events on hour changes.
  • JLevelPropertyRegistry now caches all entrance teleports for easy access to them.
  • JLevelProperties can now contain LevelPrefabs. When a level gets loaded these prefabs will be spawned at the specified location. This can be used to add new structures of objects to other vanilla or modded levels.
  • Added SeatController which can be used to make functional seats or benches. This acts similar to sitting in the passenger seat of a cruiser. I recommend looking at the cruiser prefab to figure out how to set it up with interact triggers.
  • JLevelPropertyRegistry when registering new level properties if properties already exist for that level it will merge the contents of both.

v1.3.0

  • DamageZoneTriggers no longer damage already dead players and creatures.
  • DamageZoneTriggers now have a public method to damage everything inside, which can be used for events.
  • Added EnemySpawner which can be used to spawn enemies without code. You can spawn from a random weighted pool or spawn a specific enemy. When spawning random if you don't include any enemies in your weighted pool then it will have an equal chance of spawning any enemy.
  • Added JWaterFilter which can be used to replace the HDRP Volume. (Basically, Change the color or completely override the water shader when attached to a water trigger)
  • Added JLevelEventTrigger. This object will probably get some updates in the future with more stuff but the idea is you can use it to add events that run scripts based on certain level events occurring. Right now there's: OnLevelLoaded (When the level finishes loading) OnShipLanded (When the ship landing animation finishes) and ApparatusPulled (When the apparatus gets pulled inside the facility.)
  • New additions to JWeatherObject: You can now specify the active object to enable/disable along with an inverse object that will be enabled/disabled the opposite of the normal object. When activeObject is left empty it reverts to the old behavior of enabling/disabling it's self. There are also now onActivate and onDeactivate events that you can use to script code execution.
  • Added JLevelPropertyRegistry which can be used to specify override properties for levels. Unlike a lot of the other bits in this mod, this registry is only usable through code and not an editor script as of now.
  • Added JMaterialReplacer. This was something Nikki originally requested. It can be used to replace the materials on objects. It also has the functionality to search through all of its children automatically. Only use this if you know what you are doing basically. This feature is experimental and may even be removed in the future.
  • JCompatabilityHelper now has a check for SimpleCommands (One of my other mods) and LLL.
  • Added LLL as a soft dependency and added a Helper Class for interacting with LLL.
  • Cleaned up DamageZoneTrigger code a bit.
  • Added damageOnCollision as an option for DamageZoneTriggers.
  • DamageZoneTriggers can now optionally damage Vehicles.
  • Added ExtendedLevelLocker which can either be used with triggers or in combination with UnityEvents to lock/unlock LLL extended levels.
  • Added event for DamageZoneTriggers for OnPlayerDamaged.
  • Replaced JFloodPath entirely with the new DayCycleAnimator. DayCycleAnimator lets you animate things synced with the time of day. To set this up add DayCycleAnimator to the same object that has your Animator script. Go into the animator pane and add a float called "time". Finally, in your animation clip check "parameter" for "Motion Time" and select the "time" variable you just created. After that, it should just work. 0 is the start of the day and 1 is the end of the day.
  • Added DelayScript which can be used as a timer before triggering events. Invoke "StartWaiting()" and after the delay you input it will invoke the events you put in it.

v1.2.0

Note: I talked with Mrov and & decided to delay JWeatherOverride compatibility with WeatherTweaksBeta because I might help implement a similar object override API to WeatherRegistry in the future. For now, I have worked on adding other compatibility features with WeatherRegistry.

  • Added MIT license.
  • Added DamageZoneTrigger which can be used by level creators to make triggers that can do customizable 1 time damage or continuous damage. You can also define if it can damage players, enemies, or objects individually.
  • Added TerrainObstacle which makes an object destructable by the cruiser with custom sounds and particle fx.
  • JWeatherObject now allows you to toggle between a whitelist (the only option before) and blacklist mode.
  • JWeatherObject now has options for dropdown weather selection instead of being forced to use string IDs.
  • JWeatherObject now supports custom weathers registered through WeatherRegistry. Check custom weather mods to see what name they were registered with.
  • JWeatherOverride can now override weathers registered through WeatherRegistry. (I've not tested this very extensively so there may still be issues)
  • Some minor tweaks to other code for performance & memory reduction.
  • Made project Netcode Compatible.
  • Added LethalLib as a dependency to make networking easier for me.
  • Added a small helper class for WeatherRegistry compatibility.
  • Changed how ChargeLimiter works.
  • Removed the Behaviors API for editing weather objects as it is no longer used. I marked it deprecated in the last patch so removing it now just felt right since nothing else uses it.

v1.1.5

  • Fixed issues with JWeatherOverride improperly handling weather-effect objects.
  • Fixed the issue causing JWeatherOverride to not work if the override was missing a permanent object.
  • Added JWeatherObject which can be used to make objects on custom moons only appear under certain weather conditions at the start of the round.
  • Added JFloodPath which can be used to make objects in custom moons lerp between different transform states throughout the day. This can be used to create custom flood planes in flooded weather or for basically whatever you want.
  • Added Support for applying fog weather variables to HDRP Volume Fog.
  • Fixed issue where multiple fog volumes in foggy weather would have different fog thicknesses.
  • Support for other mods hasn't been properly tested as of yet so there may be issues.
  • Deprecated the old weather override system from Pinnacle's release build. I may completely remove it in a later update, but for now, I'm keeping it for legacy reasons.

v1.1.0

  • Added weather override script that when placed on a custom moon allows you to replace weather objects.

v1.0.2

  • Fixed Missing Icon

v1.0.0 Release

  • Limited Use Recharge Stations
  • Level Weather Effect Modifications