This page up to date for:

Static Badge

Log Muncher

Log Muncher is a command-line tool that parses BepinEx logs and helps identify which errors are the most in need of attention. At the most extremes, Log Muncher can take a file with over 400,000 lines and condense it into fewer than 100 potential issues, of which, the top 10 will likely contain the most valuable information for debugging.

Log Muncher will output any log it analyzes into easy-to-read html format that can be displayed directly in your browser.

Table of Contents

Download

Currently, Log Muncher is available at The Community Repo but will require building manually.

Usage and Arguments

Log Muncher must be sent arguments to tell it what to do. I’ll briefly describe how to use each one, below:

-i
This tells Log Muncher to use a specific file as input. Optionally, you should indicate an output file with -o or Log Muncher will default to the input filename with the extension changed to html Example usage:
LogMuncher -i LogInput.log
-o
This tells Log Muncher to use a specific file as output. You should indicate an input file as well with -i or Log Muncher will not run with only this argument. It is strongly recommended to use the extension html on output files as that is the format Log Muncher will output to Example usage:
LogMuncher -i LogInput.log -o Output.html
-f
This tells Log Muncher to use a specific folder as input. All other input and output options will be ignored if this option is set. Log Muncher will output the converted files in a folder underneath the given folder called "munched" and will erase any existing html files with the same name as outputted files. Example usage:
LogMuncher -f MyFolderFullOfLogs
--quiet
If this flag appears anywhere in the arguments Log Muncher will not output anything but critical errors to the console window at all. This option causes Log Muncher to run marginally faster
--source
This argument can be provided a source name to filter for. Source names are the names LogMuncher outputs in the resulting HTML files like this `Source: LethalLevelLoader`. This argument can be provided multiple times to allow more than one source but each provided source increases the time needed to filter by a small amount. It is recommended to use --quiet when filtering to reduce console spam. Because source names are controlled by the plugin itself and can be any string you may need to quote the string if it has spaces in it `"My Cool Mod"` and source names must match exactly including capitalization. Example usage:
LogMuncher -f MyFolderFullOfLogs --source LethalLevelLoader --source HarmonyX --quiet
--version
Simply outputs the version number of the program. I often forget to update this, sorry :[
--help
Outputs a basic description of all the flags and inputs Log Muncher accepts. Useful if I forget to update this page when adding new features!

For a reminder of these options simply use LogMuncher --help at any time.

LC Problem Matcher

The LC Problem Matcher is the source of Log Muncher’s amazing Log Munching ability. Each entry under a log issue will have a problem matcher code in the format of LCMXXXX with a short description of the problem as well as a link to this document for the full breakdown

Ignorable Non-Issues

Errors in this category can be safely ignored so all lines matching them are strongly reduced in weight.

LCM 00000

This warning is completely safe to ignore

This rule matches when BepinEx notices a mod is compiled against a newer version of BepinEx than the running version. The Lethal Company Community currently uses the 2200 build which is a single revision behind the main build as is completely compatible.

LCM 00001

This error is completely safe to ignore

This rule matches a common error that is displayed when a player ragdoll is not defined. This tends to be the case for all lobby expander mods but is completely harmless.

Slight Issues

None Yet

Moderate Issues

Rules in this category may cause issues but are not guaranteed to do so. As such, lines matching these rules have their weights moderately increased.

LCM 20000

Expression contains a null reference

This rule matches the classic “object not set to an instance of” output that is a common error.

Null References mean that somewhere along the way an object was lost or never properly set. This tends to be a fairly bad thing as all code operating on that lost object will simply fail. This could mean anything from quietly failing to change a scrap’s value to exactly 100 (non-destructive) to a mod losing track of it’s own UI interface (very bad).

LCM 20001

BepinEx is skipping a plugin because it already loaded it once

This rule matches lines that indicate BepinEx has encountered a mod’s unique GUID more than once in the chainloader

This is a pretty bad thing, the only way this log can show up is if you have multiple of the same mod installed in different directories under /plugins/ or if two mods are using the same GUID. A GUID is unique by design and mods should not share it under the majority of circumstances and multiple mods using the same GUID should not exist simultaneously.

LCM 20002

A file failed to load due to a sharing violation

This rule specifically matches sharing violations that indicate a mod was unable to open a specific file (usually an asset bundle). Mods failing to load a file can range in severity from simply using default configurations instead of a loaded config file all the way to becoming completely inoperable due to failing to load an asset bundle.

Serious Issues

Serious issues indicate something really went wrong but may still be recoverable. As such all lines matching these rules are strongly increased in weight.

LCM 35000

Expression originates from HarmonyX, this is usually a bad sign

This rule matches errors specifically from HarmonyX. Harmony is the backbone of many mods so this indicates something pretty severe has gone wrong.

Critical Issues

Critical issues indicate something really went wrong and may not be recoverable. As such all lines matching these rules are drastically increased in weight.

LCM 40000

Expression contains an Exception

This rule matches when the line contains any valid Exception type following the convention of ending an exception with the word ‘exception’. Exceptions tend to mean something went really wrong.