You are viewing a potentially older version of this package. View all versions.
VELD-Enhanced_Monsters-1.1.3 icon

Enhanced Monsters

This mod adds ranking and allows killable mobs to be sold, even modded ones! Incompatible with SellBodiesFixed !

Date uploaded a day ago
Version 1.1.3
Download link VELD-Enhanced_Monsters-1.1.3.zip
Downloads 1505
Dependency string VELD-Enhanced_Monsters-1.1.3

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.2 icon
Evaisa-LethalLib

Personal modding tools for Lethal Company

Preferred version: 0.16.2

README

:trident: Enhanced Monsters

Latest release Thunderstore Downloads Source downloads
A mod aiming at enhancing gameplay with monsters, such as allowing to sell dead monsters, make masked/mimics return their mask once dead, Nutcrackers to drop their shotgun, and also adds a ranking mechanic to mobs.

Features

  • Allows you to sell dead mobs, even modded ones! If it can die, it can be sold. Technically.
  • All mobs will display a rank based on their dangerousness when you scan them. Their rank is synchronized between players from host's configuration.
  • Configurable mobs minimum and maximum values, mass, wether it can be sold or not, and mob's rank.
  • [WIP] - Nutcrackers have a chance to drop their shotgun when they die.
  • [WIP] - Masked mimics drop their mask when they die.
  • [WIP] - See and hear what's happening inside the facility from the door's windows.

I must still think about more features in fact.

Verified Compatibilities

Here are a few mods I have personally verified the compatibility with.

  • LethalConfig: I made sure that LethalConfig works fine to configure the mod's local settings. It's an optional mod.
  • LethalSettings: I made sure that LethalSettings works fine too, it's just so that you can use whatever mods you've installed instead of downloading yet another config mod.
  • Football (Kittenji): Football has a rank, I haven't verified if she has a ScanNode though, so maybe you won't even be able to scan her but yeah, should work anyway.
  • Giant Species (XuXiaolan): I'm trying to make a proper support for Giant Species mod, with ranks and eventually, for the smallest of them, prices and values.

How to edit mobs settings ?

No matter which way you do it, do never modify the Version field, it is made to verify enemies data compatibility between versions of the mod.

With R2ModMan

  • :warning: You need to launch the game at least once, in order to generate the config list.
  • Into r2modman, head into Settings, then Locations and click Browse profile folder.
  • Reach /BepInEx/plugins/EnhancedMonsters/
  • Double-click EnemiesData.json
  • For more efficient search, you can press [CTRL]+[F] in order to open the word search. Type the name of the mob you want to edit.
  • Edit the values. be careful, you need to respect the types given:
    • MinValue, MaxValue must be integers (integral numbers, without decimals).
    • Mass must be a floating point number (number with decimals) and it is in pounds (lb).
    • Pickupable must remain a boolean, it can only have two values: true or false.
    • Rank is a string, it has no length restriction but it's better to keep it short.
  • Don't forget to save! You need to relaunch the game for these settings to be applied.

For Warriors (manual installers yarrrgh)

  • :warning: You need to launch the game at least once, in order to generate the config list.
  • If you install mods, you technically know where you install them. Go to /BepInEx/plugins/EnhancedMonsters/
  • Open EnemiesData.json
  • Search a mob by its name with [CTRL]+[F]
  • Modify its values by respecting the information given in the R2ModMan notice
  • You need to relaunch the game in order to apply the settings.

Q&A

Q: Is it possible to make the mod client-side only so I can use only the ranking with my vanilla friends ?

A: I will probably do it, but it's far from being a priority.


Q: Is this mod compatible with SellBodies or SellBodiesFixed ?

A: No.


Q: Is this mod compatible with TakeThatMaskOff ?

A: For now, it is, but when the feature will be added, it won't.


Q: If I have a mod allowing to kill all enemies, will all of them be sellable

A: Yes but there are prerequisites for this. You need to go into the EnemiesData.json settings file and set every mob's Pickupable boolean value to true. Don't forget to add them values.


Q: Why do some of the modded monsters of my modpack aren't grabbable after killing them ?

A: By default, any mob that doesn't have default data is not "pickupable". You need to access the EnemyData config file and set the modded mob's values and wether it's pickupable or not. After that you need to restart the game. Note that some mods do register default data for their mobs so it is not required with every modded mob.


Q: I have encountered a bug, how do I report it ?

A: You can report it in the GitHub issues page, or join the Lethal Company Modding Discord Server and go to the Enhanced Monsters Topic inside the #mod-releases forum

For modders

Make Enhanced Monsters a Soft-Dependency

Here's a quick tutorial on how to use EnhancedMonsters without making it mandatory for users of your mods!

  • You still need to add a reference to the mod into your .csproj.
// Plugin.cs

[BepInDependency("com.velddev.enhancedmonsters", BepInDependency.DependencyFlags.SoftDependency)]
public class MyPlugin : BaseUnityPlugin
{
    private void Start()
    {
        if(EnhancedMonstersCompatibilityLayer.Enabled)
        {
            EnhancedMonstersCompatibilityLayer.RegisterCustomMonsterEnemyData();
        }
    }
}
// You can do the following part inside your main Plugin class, it just needs a container class.
public static class EnhancedMonstersCompatibilityLayer
{
    private static bool? _enabled;
    public static bool Enabled
    {
        get
        {
            if (_enabled == null)
                _enabled = BepInex.Bootstrap.Chainloader.PluginInfos.ContainsKey("com.velddev.enhancedmonsters");
            
            return (bool)_enabled;
        }
    }

    [MethodImpl(MethodImplOptions.NoInlining | MethodImplOptions.NoOptimization)]
    public static void RegisterCustomMonsterEnemyData()
    {
        // The EnemyName must ABSOLUTELY be the same than inside your EnemyType scriptable object!
        EnhancedMonster.Utils.EnemiesDataManager.RegisterEnemy(EnemyType.enemyName, /*is enemy sellable ?*/ true, /*min value:*/ 150, /*max value:*/ 200, /*mass:*/ 14, /*rank:*/ "S+");
        // ...
    }
}

Attributions

  • IAmBatby (LethalExpansion, LethalToolbox) for helping me with the networking and with my prefab generation system (for the mobs scraps)
  • Xilophor (LethalNetworkAPI, StaticNetcode) for helping me with the networking
  • Zagster (OpenBodyCams) for helping me with the networking and various hints
  • FROG for helping me with the networking
  • Xu Xiaolan (Giant Species) for various help
  • Moroxide (Lethal Resonance collaborator) for helping me beta testing the mod

CHANGELOG

Changelog

All notable changes will be documented in the changelog.

1.1.3 - 2025-01-19

View diff

  • Fixed mod not loading correctly when Lethal Config and/or LethalSettings were installed, but for real now, hopefully
  • Added a parameter on wether to play or not some mobs death animation. Turning this setting off on some monsters might fix some mobs to be invisible after their death animation.
  • Added new metadata to the enemies config, including rotation when dead (leave it to zero for enemies with death anim, define it when disabling their death anim.)
  • Added foundation of the next major update "Enemies Loots", will be implemented once the enemies scrap data is fully stable or at least in a satisfying state.

Known issues:

  • Sometimes, dead bodies appear next to the ship after landing on a new moon, I don't know why it happens.

1.1.2 - 2025-01-18

View diff

  • Fixed the mod not loading correctly when Lethal Config and Lethal Settings weren't installed.
  • Fixed error appearing when entering main menu. It will not change anything though, previously it was just there doing nothing.

1.1.1 - 2025-01-17

View diff

  • Fixed that some mobs wouldn't register their scrap self because I was not searching for ScanNode correctly inside of them, leading into some mobs could be killed but no corpse scrap was spawning
  • Fixed external mod EnemyDataRegister function: It should now be callable from BaseUnityPlugin.Awake() and .Start().

1.1.0 - 2025-01-16

View diff

  • Removed Xilo's StaticNetcode library for a proper networking.
  • Made LethalConfig an optional mod, it is no longer required, but the config mod will still be correctly implemented by Enhanced Monsters
  • Added support for LethalSettings, so users won't need to add yet another config mod if they didn't need one or another before.
  • Added a button in both configs to easily copy the path to EnemyData.json configuration file. All you need is to paste it inside the File Explorer.
  • Added a toggle to disable Ranks synchronization, so users can have their own ranking on their side. This setting is disabled by default.
  • Fixed desynchronization issues with the dead bodies that occurred when any player that is not the host picked up a dead monster
  • Fixed desynchronization that were occasionally occurring when killing a monster.
  • Reworked entirely the way enemy scraps were generated. They are now more consistent thanks to a custom GrabbableObject component.
  • There should be less errors in the console due to Enhanced Monsters, and there should be no error while in-game.
  • Fixed settings names not showing correctly in LethalConfig.

1.0.5 - 2025-01-13

View diff

  • Added a config versionning. Your current enemies data current configs will all be reset to the new default values.
  • Removed mobs collisions when they're dead
  • Removed mobs sounds when they die
  • Fixed ScanNode not showing on some dead monsters.

Known issues:

  • The butler keeps moving after its death... wtf?
  • The Forest Giant does not have any scan node for some reason, so I'll fix it next hotfix

1.0.4 - 2025-01-12

View diff

  • Fixed weight. The mass of object should now be exactly the same in the config file and in the inventory.
  • Fixed prop-ized mobs animation: they should now look dead... All of them hopefully.

1.0.3 - 2025-01-12

View diff

  • Fixed random number generator (used to generate mobs scrap value) which was not working on some modded moons.
  • Working on a fix for weight being completely wonky

1.0.2 - 2025-01-12

  • You will never know what this update changed

1.0.1 - 2025-01-12

View diff

  • Fixed LethalLib dependency issue. The GUID from LethalLib.PluginInfo.GUID is not the one used by BepInEx.

1.0.0 - 2025-01-12

  • Mod first release !