Legoman-Monitor_Label_Continued icon

Monitor Label Continued

Adds a label to the icons on the monitor for players, radar boosters, enemies and items

Last updated a day ago
Total downloads 196
Total rating 0 
Categories Mods Misc BepInEx Client-side Tweaks & Quality Of Life
Dependency string Legoman-Monitor_Label_Continued-3.1.0
Dependants 0 other packages depend on this package

This mod requires the following mods to function

BepInEx-BepInExPack-5.4.2305 icon
BepInEx-BepInExPack

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

Preferred version: 5.4.2305

README

This mod is a continuation for newer versions

This mod is an unofficial port of MonitorLabels. It fixes incompatibilities introduced in recent game updates and resolves several bugs. I ported and fixed this mod purely for fun and to learn more about C# modding, and I get to do something that might be useful to others. I don't claim ownership of the original code, nor do I get anything out of this other than the valuable experience.

Credits

  • Originally created by Danny-vD.
  • Patched, fixed, and continued by Lego.

Optional Dependencies

This mod is a standalone mod and does not require other mods

While not strictly required, this mod has integration for these mods:

Report Bugs & Suggestions

If you find an issue, a bug, or have a suggestion for an improvement (no matter how small or minor it might seem), please feel free to reach out to me directly on Discord: legota__

Known issues

  • API: I haven't gone through the mod's API code yet. If you are playing with custom monster mods that rely on the original MonitorLabels API, they will likely not be detected for now.
  • Log Levels: The configuration setting for log levels is currently not implemented, so the mod will print a lot of logs to your console.
  • GitHub Repository: I haven't set up my own GitHub repository for this port yet, but I plan to do so in the future. For now, the source code link on Thunderstore points directly to the original mod's repository.

.

Original description

What Does This Mod do?

This mod adds a label to the icons on the monitor for players, radar boosters, enemies and scrap!

The mod is fully customisable to your liking, like turning off certain features.

It also exposes an API for other mods to add their own labels (in case they add new enemies)

What is Configurable?

• How many characters a player label will have
• Whether the currently focused player should have a label too
• Whether radar boosters should have a label
• Whether enemies should have a label
• Whether non-scrap objects should have an icon (e.g. Keys, Shovels and Flashlights)
• Whether non-scrap objects should have a label (e.g. Keys, Shovels and Flashlights)
• Whether scrap should have a label
• The label of a player that is dead
• All enemy labels can have a custom label
• All colours

Examples

Player labels example

Enemy labels example

Radar booster labels example

Overall example

Scrap example

Tool example

Supports Lethal Config!

This mod supports the Lethal Config Mod by adding an extra option to their UI that tells MonitorLabels to load the settings.
This allows you to change settings and apply them immediately without requiring a restart! Even while playing!

The config UI is still entirely generated by LethalConfig.

Some changes (especially the labels for enemies) may not have an immediate effect until later (for example, when that enemy dies or a new enemy of that type is spawned)

For Developers

Custom Labels

MonitorLabels.AIMapLabelManager.CustomAINames is a Dictionary<Type, CustomLabelData> where you can add your own types to, to give them custom labels.
MonitorLabels.AIMapLabelManager.TryAddNewAI(Type, CustomLabelData), MonitorLabels.AIMapLabelManager.TryAddNewAI(Type, String, Bool) and MonitorLabels.AIMapLabelManager.RemoveAI(Type) are helper functions for this purpose.

The CustomLabelData.ShowLabel boolean is used if you want to hide the label of that AI.

Example

MonitorLabels.AIMapLabelManager.TryAddNewAI(typeof(MyAI), "MyLabel");

Important

If you do not call base.Start() in your overriden Start function, then you will have to manually call MonitorLabels.AIMapLabelManager.AddLabelToAI(EnemyAI) for it to have a label.

Configuration

The Configuration files can be publicly accessed from the MonitorLabels.Utils.ModUtils.ConfigUtil class if for whatever reason you want to modify something.

General Info

The GUID, PLUGIN_NAME and PLUGIN_VERSION can be accessed from their respective fields in the MonitorLabels.MonitorLabelsPlugin class.