Skip to content
ifBars edited this page Jan 4, 2026 · 3 revisions

Frequently Asked Questions (FAQ)

General Questions

What is MLVScan?

MLVScan is a security plugin for MelonLoader that scans mods before they execute, detecting malicious patterns commonly found in malware. It was created in response to malware mods being uploaded to modding sites.

How does MLVScan protect me?

MLVScan:

  1. Scans all mods before they execute
  2. Identifies 17+ types of malicious patterns
  3. Automatically disables suspicious mods
  4. Generates detailed security reports
  5. Prevents first-time infections

Is MLVScan 100% accurate?

No. No security tool is perfect. MLVScan:

  • ✅ Catches many common malware patterns
  • ✅ Uses multi-signal detection to reduce false positives
  • ❌ May miss sophisticated malware
  • ❌ May flag legitimate mods (false positives)

Always exercise caution and verify with the community.

Does MLVScan execute the mods it scans?

No. MLVScan uses static analysis via Mono.Cecil to examine the IL (Intermediate Language) code without executing it. This makes it safe to scan suspicious files.

Installation & Setup

Where do I install MLVScan?

Place MLVScan.dll in your game's Plugins folder:

YourGame/
├── Plugins/
│   └── MLVScan.dll  ← Here
├── Mods/
└── MelonLoader/

Do I need to configure anything?

No. MLVScan works out-of-the-box with sensible defaults. Configuration is optional and stored in MelonPreferences.cfg.

What are the default settings?

[MLVScan]
WhitelistedHashes = ["3918e145...", "8e6dd194...", ...]  # Common safe mods
DisableThreshold = Medium
DumpFullIlReports = false

Can MLVScan scan existing mods?

Yes. On first launch, MLVScan scans all installed mods. It re-scans whenever:

  • Game launches
  • New mods are added
  • Configuration changes

Whitelisting

How do I whitelist a mod?

  1. Get the SHA256 hash from the scan report
  2. Edit MelonPreferences.cfg
  3. Add hash to WhitelistedHashes array
  4. Save and restart game

See Whitelisting Guide for detailed instructions.

Why SHA256 hashes instead of filenames?

Security benefits:

  • Tamper detection (any modification changes hash)
  • Filename independence (renaming doesn't help malware)
  • Authenticity verification (confirms exact same file)
  • Collision resistance (can't fake a hash)

Can I clear the whitelist?

Yes. Set WhitelistedHashes = [] in MelonPreferences.cfg. MLVScan will re-initialize defaults on next launch.

What mods are whitelisted by default?

  • UnityExplorer (Mono & IL2CPP) - Debugging tool
  • CustomTV (Mono & IL2CPP) - Custom content loader

These are verified safe but trigger detection rules due to their functionality.

Understanding Detections

What does "Critical" severity mean?

Critical = Highly dangerous activities rarely legitimate in mods:

  • Shell command execution
  • Data exfiltration
  • Persistence mechanisms
  • Encrypted assembly loading

Action: DO NOT whitelist without extensive verification.

What does "High" severity mean?

High = Dangerous behaviors that might be legitimate:

  • Process execution
  • Reflection usage
  • Registry modification
  • Obfuscated strings

Action: Investigate carefully before whitelisting.

What are false positives?

False positives occur when legitimate code triggers detection rules:

Common causes:

  • Debugging tools using reflection
  • Asset loaders using Base64
  • Network features in multiplayer mods
  • DLL imports for advanced features

Solution: Verify with community, then whitelist by hash.

How does multi-signal detection work?

Instead of flagging individual suspicious operations, MLVScan looks for combinations:

Not flagged:

Base64.Decode(someData)  // Alone = benign

Flagged:

var command = Base64.Decode(encodedString);
Process.Start(command);  // Combined = suspicious

This reduces false positives while maintaining security.

Scan Reports

Where are scan reports saved?

YourGame/UserData/MLVScan/Reports/
├── ModName_timestamp.report.txt  # Main report
├── Prompts/ModName.prompt.md      # LLM analysis prompt
└── IL/ModName_timestamp.il.txt    # Full IL dump (optional)

What is the LLM prompt file?

A file you can copy into ChatGPT/Claude to help analyze whether a mod is malicious or a false positive.

Important: LLMs are NOT perfect at malware detection. Use as supplementary analysis at best.

What are IL code snippets?

IL (Intermediate Language) is the low-level code .NET compiles to. Snippets show the actual suspicious operations detected:

IL_0000: ldstr "cmd.exe"          # Loads string "cmd.exe"
IL_0005: call Process::Start      # Calls Process.Start

Should I enable Full IL Reports?

Only if:

  • You're doing deep security analysis
  • Sharing with security researchers
  • Contributing to rule improvements

Warning: Generates large files.

Performance & Compatibility

Does MLVScan slow down game startup?

Minimal impact. Scanning is fast:

  • First scan: ~5-10 seconds (depending on mod count)
  • Subsequent scans: Faster (whitelisted mods skipped)

Is MLVScan compatible with all mods?

Yes. MLVScan doesn't modify mods, just analyzes them. Compatible with:

  • All MelonLoader mods
  • Both Mono and IL2CPP games
  • Other security/utility plugins

Can MLVScan conflict with other plugins?

Unlikely. MLVScan runs at minimum priority (loads first) to scan before other plugins.

Does MLVScan work in multiplayer?

Yes, but:

  • Only scans local mods on your machine
  • Doesn't protect against server-side threats
  • Doesn't scan other players' mods

Troubleshooting

MLVScan disabled a mod I trust. What do I do?

  1. Read the report - Understand what was flagged
  2. Ask the community - Join Discord
  3. Verify the source - Ensure it's from official mod page
  4. Check the hash - Compare with known-good versions
  5. Whitelist - If verified safe, add hash to whitelist

How do I report a false positive?

  1. Join the GitHub
  2. Open a new issue
  3. Include:
    • Mod name and source
    • SHA256 hash
    • Scan report
    • Why it's legitimate

MLVScan won't start / crashes game. Help!

Troubleshooting steps:

  1. Check MelonLoader console for errors
  2. Ensure MelonLoader is up to date
  3. Try removing MelonPreferences.cfg (recreates defaults)
  4. Report issue on GitHub with:
    • Game name
    • MelonLoader version
    • MLVScan version
    • Console logs

Can I disable MLVScan temporarily?

Yes:

  1. Rename MLVScan.dll to MLVScan.dll.disabled
  2. Or move it out of the Plugins folder

Warning: Only do this if absolutely necessary.

Architecture & Development

What is MLVScan.Core?

A platform-agnostic NuGet package containing the scanning engine. It enables:

  • MelonLoader plugin (MLVScan)
  • Developer CLI tool (MLVScan.DevCLI)
  • Web scanner (MLVScan.Web)
  • Future BepInEx support

See Architecture for details.

How do I add new detection rules?

Detection rules live in MLVScan.Core repository:

  1. Create class implementing IScanRule
  2. Define Description and Severity
  3. Implement IsSuspicious(MethodReference)
  4. Add to RuleFactory.CreateDefaultRules()

See contributing guide.

Can I use MLVScan in my own project?

Yes! MLVScan.Core is available as a NuGet package:

dotnet add package MLVScan.Core

For mod developers, you can also use MLVScan.DevCLI to scan your builds:

dotnet tool install --global MLVScan.DevCLI
mlvscan-dev MyMod.dll

See Developer CLI Guide and MLVScan.Core Documentation for integration guide.

Is MLVScan open source?

Yes. Licensed under GPL-3.0-or-later:

Security & Privacy

Does MLVScan collect any data?

No. MLVScan:

  • ❌ Does not phone home
  • ❌ Does not collect telemetry
  • ❌ Does not upload files
  • ❌ Does not track usage

Everything happens locally on your machine.

Can malware bypass MLVScan?

Potentially, yes. Sophisticated malware could:

  • Use advanced obfuscation
  • Exploit unknown vulnerabilities
  • Delay malicious behavior
  • Target MLVScan specifically

Defense: MLVScan is one layer. Also use:

  • Trusted mod sources only
  • Active antivirus software
  • Regular system scans
  • Community verification

What if I already ran malware before installing MLVScan?

MLVScan only prevents future infections. If you ran malware before:

  1. Don't panic - but take it seriously
  2. Disconnect from internet (if actively infected)
  3. Run antivirus scan - Malwarebytes recommended
  4. Check reports - See what the mod did
  5. Change passwords - From clean device if possible
  6. Monitor accounts - Watch for suspicious activity

See scan reports for detailed security guidance.

How often is MLVScan updated?

  • Detection rules: Added as new threats emerge
  • Core engine: Regular improvements
  • Bug fixes: As needed

Check Releases for updates.

Comparison to Other Tools

MLVScan vs Antivirus

Feature MLVScan Antivirus
Pre-execution scanning ✅ Yes ❌ Usually post-execution
Unity mod specific ✅ Yes ❌ No
IL analysis ✅ Yes ⚠️ Limited
Real-time protection ⚠️ Startup only ✅ Continuous
Zero-day detection ⚠️ Pattern-based ✅ Behavior-based

Best practice: Use both MLVScan and antivirus.

MLVScan vs Manual Review

Approach Speed Accuracy Skill Required
MLVScan Instant Good None
Manual IL review Slow Excellent Expert

MLVScan is great for quick automated checks. Manual review by experts is more thorough.

Community & Support

Where can I get help?

  1. Modding Discord - Fastest response

    • #mod-releases channel (MLVScan thread)
  2. GitHub Issues - Bug reports

  3. GitHub Discussions - General questions

  4. Wiki - Documentation

How can I contribute?

Non-developers:

  • Report false positives
  • Share verified safe hashes
  • Help answer questions
  • Test new releases

Developers:

  • Add detection rules
  • Improve documentation
  • Fix bugs
  • Platform integrations

See Contributing Guide.

Who maintains MLVScan?

Created and maintained by Bars (ifBars) with community contributions.

Advanced Usage

Can I customize detection thresholds?

Yes, via DisableThreshold in config:

[MLVScan]
DisableThreshold = Critical  # Only disable critical threats
# Options: Low, Medium, High, Critical

Can I create custom scan rules?

Yes, but you'll need to:

  1. Fork MLVScan.Core
  2. Create custom rule classes
  3. Build your own version
  4. Reference in your MLVScan build

For most users, requesting new rules via GitHub is easier.

Can I scan mods without MelonLoader?

Yes! You have two options:

MLVScan.Web (github.com/ifBars/MLVScan.Web):

  • Browser-based
  • No installation
  • Same detection engine
  • Great for pre-screening mods

MLVScan.DevCLI (github.com/ifBars/MLVScan.DevCLI):

  • Command-line tool for developers
  • CI/CD integration
  • MSBuild support
  • Developer-friendly remediation guidance

See Developer CLI Guide for more information.

Related Documentation

Still Have Questions?

Ask in the Discord or open a Discussion!

Clone this wiki locally