AI Slop Code Risk Monitor

MirrorNetworking/Mirror

SlopCodeMonitor badge for MirrorNetworking/Mirror Adjusted legacy signal; badge bands: 25 / 50 / 75 (different from dashboard bands).

#1 Open Source Unity Networking Library

4.0 Low pattern signal View on GitHub

Open-Source Code Quality, Security and Technical Debt Review

This report summarizes scanner evidence for MirrorNetworking/Mirror, a C# project with 6,383 GitHub stars. SynthScan examined 120,421 lines of code across 1009 source files, recording 412 pattern matches distributed across 8 syntactic categories. The legacy adjusted pattern signal is 4.0 (Low pattern signal); it is not an authorship estimate.

Use the findings to ask whether maintainers can explain intent, verify dependencies, simplify unnecessary scaffolding, and focus review effort. Risk Payload v1 adds ownership, supply-chain, over-engineering, and review-effort vectors when available. These are prompts for human verification, not probabilities, security findings, or measured maintenance costs.

4.0
Adjusted Signal
4.0
Raw Pattern Score
100%
Time Factor
2026-10-19
Last Push
6.4K
Stars
C#
Language
120.4K
Lines of Code
1.0K
Files
412
Pattern Hits
2026-10-31
Scan Date
0.00
HC Hit Rate

Risk Review · Payload v1

Use each vector to guide manual verification of the underlying findings.

Payload schema: 1.0.0 · Engine: 2.0.0 · Scoring: heuristic-density-v1 · Scan date: 2026-10-31.

Cognitive Ownership Risk 15.0/100 · LOW

Can maintainers explain intent, assumptions, and trade-offs? 379 finding(s).

Hallucinated Dependency & Supply Chain Risk 0.2/100 · LOW

Are imports declared and package/API names verified? 5 finding(s).

Agent Over-Engineering Ratio 3.5/100 · LOW

Are wrappers, guards, and repeated structures necessary? 29 finding(s).

PR Review Velocity Impact 18.2/100 · LOW

Which changes need focused human review? 412 finding(s).

What These Metrics Mean

Adjusted Signal
Legacy pattern score normalized per 1,000 scanned lines and multiplied by the repository-level time factor. It is not an estimate of AI authorship.
Raw Pattern Score
Sum of severity- and context-weighted pattern findings before applying the time factor.
Time Factor
A coarse multiplier based on repository last-push metadata. It does not identify when individual code was written.
Pattern Hits
Count of configured pattern findings. Review each location and surrounding code before acting.
HC Hit Rate
High- and critical-severity findings per scanned file. Severity is a configured detector weight, not proof of a vulnerability or authorship.
Lines / Files
Scan coverage denominators used by the legacy normalized score.

Pattern-Signal History

This chart tracks the legacy adjusted pattern score across scan runs. Changes can reflect source changes, scan coverage, or detector/scoring versions; they do not measure AI adoption or prove that a team refactored code. Compare runs only when their scoring versions are compatible. The dashed line tracks the raw pattern-hit count.

Severity Breakdown

Groups findings by configured severity weight. Severity is not a confidence estimate, security rating, or proof that a package is missing. Verify imports against the project's manifests and inspect each finding in its local design context.

CRITICAL 0HIGH 1MEDIUM 33LOW 378

Directory Score Breakdown

This horizontal bar chart shows where configured pattern scores accumulate across directories. Treat the bars as locations to inspect, not as evidence of authorship or code quality. Use the file-level findings to decide whether a directory needs a focused ownership, dependency, complexity, or review check.

Pattern Findings

The scanner identified 412 distinct pattern matches across 8 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a detector match to inspect in context. Expand any category row to inspect the individual file paths, line numbers, code snippets, and the lexical context (CODE, COMMENT, or STRING) in which each match was detected.

Reading the findings table: The Severity column indicates the configured finding weight (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — legacy comment-context matches receive a ×1.5 score weight. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier under the legacy scoring model.

Over-Commented Block370 hits · 366 pts
SeverityFileLineSnippetContext
LOW.github/workflows/RunUnityTests.yml21COMMENT
LOW…__Network Authenticator-NewNetworkAuthenticator.cs.txt21COMMENT
LOW…7-Mirror__Network Transform-NewNetworkTransform.cs.txt101 /// Called by both CmdTeleport and RpcTeleport on server and clients, respectively.COMMENT
LOW…ror__Network Room Manager-NewNetworkRoomManager.cs.txt21 // Overrides the base singleton so we don'tCOMMENT
LOW…ror__Network Room Manager-NewNetworkRoomManager.cs.txt41COMMENT
LOW…ror__Network Room Manager-NewNetworkRoomManager.cs.txt61 /// </summary>COMMENT
LOW…ror__Network Room Manager-NewNetworkRoomManager.cs.txt121 /// This is called on the server when all the players in the room are ready.COMMENT
LOW…ror__Network Room Manager-NewNetworkRoomManager.cs.txt141 /// </summary>COMMENT
LOW…irror__Network Room Player-NewNetworkRoomPlayer.cs.txt21 /// <para>This could be triggered by NetworkServer.Listen() for objects in the scene, or by NetworkServer.Spawn() foCOMMENT
LOW…irror__Network Room Player-NewNetworkRoomPlayer.cs.txt41 /// </summary>COMMENT
LOW…irror__Network Room Player-NewNetworkRoomPlayer.cs.txt61 public override void OnStopAuthority() { }COMMENT
LOW…irror__Network Room Player-NewNetworkRoomPlayer.cs.txt81COMMENT
LOW…om Interest Management-CustomInterestManagement.cs.txt41 newObservers.Add(conn);COMMENT
LOW…om Interest Management-CustomInterestManagement.cs.txt81 void Update()COMMENT
LOW…nager With Actions-NewNetworkManagerWithActions.cs.txt161 }COMMENT
LOW…nager With Actions-NewNetworkManagerWithActions.cs.txt221 /// <summary>COMMENT
LOW…2-Mirror__Network Behaviour-NewNetworkBehaviour.cs.txt41COMMENT
LOW…2-Mirror__Network Behaviour-NewNetworkBehaviour.cs.txt61 /// Called when the local player object has been set up.COMMENT
LOW…es/50-Mirror__Network Manager-NewNetworkManager.cs.txt81 #region Scene ManagementCOMMENT
LOW…es/50-Mirror__Network Manager-NewNetworkManager.cs.txt101 /// Called on the server when a scene is completed loaded, when the scene load was initiated by the server with ServCOMMENT
LOW…es/50-Mirror__Network Manager-NewNetworkManager.cs.txt121 base.OnClientSceneChanged();COMMENT
LOW…es/50-Mirror__Network Manager-NewNetworkManager.cs.txt161 {COMMENT
LOW…es/50-Mirror__Network Manager-NewNetworkManager.cs.txt201 /// <summary>COMMENT
LOW…es/50-Mirror__Network Manager-NewNetworkManager.cs.txt221COMMENT
LOW…es/50-Mirror__Network Manager-NewNetworkManager.cs.txt241 /// This is invoked when the client is started.COMMENT
LOW…6-Mirror__Network Discovery-NewNetworkDiscovery.cs.txt41COMMENT
LOW…6-Mirror__Network Discovery-NewNetworkDiscovery.cs.txt61 /// such as the name of the host playerCOMMENT
LOW…6-Mirror__Network Discovery-NewNetworkDiscovery.cs.txt81 /// <returns>An instance of ServerRequest with data to be broadcasted</returns>COMMENT
LOWAssets/Mirror/Core/NetworkClient.cs21 public static partial class NetworkClientCOMMENT
LOWAssets/Mirror/Core/NetworkClient.cs41COMMENT
LOWAssets/Mirror/Core/NetworkClient.cs341 elseCOMMENT
LOWAssets/Mirror/Core/NetworkClient.cs421 // then all batched messages should have been processed now.COMMENT
LOWAssets/Mirror/Core/NetworkClient.cs461 // Raise the event before changing ConnectStateCOMMENT
LOWAssets/Mirror/Core/NetworkClient.cs1341COMMENT
LOWAssets/Mirror/Core/NetworkClient.cs1601 if (isSpawnFinished)COMMENT
LOWAssets/Mirror/Core/NetworkClient.cs2021 spawnableObjects.Clear();COMMENT
LOWAssets/Mirror/Core/NetworkMessages.cs21COMMENT
LOWAssets/Mirror/Core/NetworkMessages.cs61 // -> Every message in a batch has a varuint size header.COMMENT
LOWAssets/Mirror/Core/NetworkMessages.cs121 // protect against DOS attacks if attackers try to send invalidCOMMENT
LOWAssets/Mirror/Core/SyncObject.cs21 /// <summary>Used internally to check if we are currently tracking changes.</summary>COMMENT
LOWAssets/Mirror/Core/NetworkServer.cs41 // tick rate is in Hz.COMMENT
LOWAssets/Mirror/Core/NetworkServer.cs101COMMENT
LOWAssets/Mirror/Core/NetworkServer.cs241 {COMMENT
LOWAssets/Mirror/Core/NetworkServer.cs581 // both are stored in a single snapshot for interpolation.COMMENT
LOWAssets/Mirror/Core/NetworkServer.cs921 // processing. otherwise we might apply them to the old scene.COMMENT
LOWAssets/Mirror/Core/NetworkServer.cs981 catch (Exception e)COMMENT
LOWAssets/Mirror/Core/NetworkServer.cs1061 // transport errors will happen. logging a warning is enough.COMMENT
LOWAssets/Mirror/Core/NetworkServer.cs1181 // conn.Disconnect -> Transport.ServerDisconnect callsCOMMENT
LOWAssets/Mirror/Core/NetworkServer.cs1201 // call OnDisconnected unless local player in host modCOMMENT
LOWAssets/Mirror/Core/NetworkServer.cs1221 // automatically spawned, so you do not need to call NetworkServer.SpawnCOMMENT
LOWAssets/Mirror/Core/NetworkServer.cs1441COMMENT
LOWAssets/Mirror/Core/NetworkServer.cs1601 });COMMENT
LOWAssets/Mirror/Core/NetworkServer.cs1621 public static bool SpawnObjects()COMMENT
LOWAssets/Mirror/Core/NetworkServer.cs2001 {COMMENT
LOWAssets/Mirror/Core/NetworkServer.cs2121 bool hasNull = false;COMMENT
LOWAssets/Mirror/Core/NetworkServer.cs2261 // has this connection joined the world yet?COMMENT
LOWAssets/Mirror/Core/NetworkServer.cs2321 // for example, host mode server doesn't set .targetFrameRate.COMMENT
LOWAssets/Mirror/Core/NetworkBehaviour.cs41 [Tooltip("By default synced data is sent from the server to all Observers of the object.\nChange this to Owner tCOMMENT
LOWAssets/Mirror/Core/NetworkBehaviour.cs81 /// <summary>authority is true if we are allowed to modify this component's state. On server, it's true if SyncDCOMMENT
LOWAssets/Mirror/Core/NetworkBehaviour.cs141 // * run a delta compression algorithmCOMMENT
310 more matches not shown…
Decorative Section Separators28 hits · 84 pts
SeverityFileLineSnippetContext
MEDIUM…Mirror/Tests/Editor/NetworkServer/NetworkServerTest.cs1468// ── RegisterHandler ──────────────────────────────────────────────────────────COMMENT
MEDIUM…Mirror/Tests/Editor/NetworkServer/NetworkServerTest.cs1502// ── SendToReady ───────────────────────────────────────────────────────────────COMMENT
MEDIUM…Mirror/Tests/Editor/NetworkServer/NetworkServerTest.cs1539// ── SendToAll oversized ───────────────────────────────────────────────────────COMMENT
MEDIUM…Mirror/Tests/Editor/NetworkServer/NetworkServerTest.cs1558// ── Transport error / exception events ───────────────────────────────────────COMMENT
MEDIUM…Mirror/Tests/Editor/NetworkServer/NetworkServerTest.cs1589// ── exceptionsDisconnect = false ──────────────────────────────────────────────COMMENT
MEDIUM…Mirror/Tests/Editor/NetworkServer/NetworkServerTest.cs1608// ── Destroy ───────────────────────────────────────────────────────────────────COMMENT
MEDIUM…Mirror/Tests/Editor/NetworkServer/NetworkServerTest.cs1644// ── AddPlayerForConnection ────────────────────────────────────────────────────COMMENT
MEDIUM…Mirror/Tests/Editor/NetworkServer/NetworkServerTest.cs1692// ── RemovePlayerForConnection options ────────────────────────────────────────COMMENT
MEDIUM…Mirror/Tests/Editor/NetworkServer/NetworkServerTest.cs1796 // ── SendCommand from not-ready client ────────────────────────────────────────COMMENT
MEDIUM…sts/Editor/NetworkClient/NetworkClientTests_OnSpawn.cs575 // ── OnObjectSpawnStarted / OnObjectSpawnFinished ──────────────────────COMMENT
MEDIUM…/NetworkClient/NetworkClientTests_ReadyAndAddPlayer.cs95 // ── InternalAddPlayer() ───────────────────────────────────────────────COMMENT
MEDIUM…/NetworkClient/NetworkClientTests_TimeInterpolation.cs27 // ── InitTimeInterpolation (via ConnectHost / Initialize) ──────────────COMMENT
MEDIUM…/NetworkClient/NetworkClientTests_TimeInterpolation.cs61 // ── Computed properties ───────────────────────────────────────────────COMMENT
MEDIUM…/NetworkClient/NetworkClientTests_TimeInterpolation.cs78 // ── OnTimeSnapshot ───────────────────────────────────────────────────COMMENT
MEDIUM…/NetworkClient/NetworkClientTests_TimeInterpolation.cs148 // ── UpdateTimeInterpolation (via NetworkEarlyUpdate) ──────────────────COMMENT
MEDIUM…/NetworkClient/NetworkClientTests_TimeInterpolation.cs167 // ── Disconnect resets interpolation state ────────────────────────────────────COMMENT
MEDIUM…or/NetworkClient/NetworkClientTests_OnTransportData.cs66 // ── Too-short message (1-byte segment, < IdSize = 2) ─────────────────COMMENT
MEDIUM…or/NetworkClient/NetworkClientTests_OnTransportData.cs97 // ── Unknown message id (no handler registered for the type) ──────────COMMENT
MEDIUM…or/NetworkClient/NetworkClientTests_OnTransportData.cs140 // ── isLoadingScene halts the processing loop ─────────────────────────COMMENT
MEDIUM…tor/NetworkClient/NetworkClientTests_DestroyObjects.cs16 // ── OnObjectDestroy ───────────────────────────────────────────────────COMMENT
MEDIUM…tor/NetworkClient/NetworkClientTests_DestroyObjects.cs93 // ── DestroyAllClientObjects ───────────────────────────────────────────COMMENT
MEDIUM…ts/Editor/NetworkClient/NetworkClientTests_Shutdown.cs14 // ── Bool state fields ─────────────────────────────────────────────────COMMENT
MEDIUM…ts/Editor/NetworkClient/NetworkClientTests_Shutdown.cs49 // ── Reference fields ──────────────────────────────────────────────────COMMENT
MEDIUM…ts/Editor/NetworkClient/NetworkClientTests_Shutdown.cs66 // ── Event delegates ───────────────────────────────────────────────────COMMENT
MEDIUM…r/NetworkClient/NetworkClientTests_TransportAndSend.cs16 // ── Send() error paths ───────────────────────────────────────────────COMMENT
MEDIUM…r/NetworkClient/NetworkClientTests_TransportAndSend.cs39 // ── Disconnect() guard ───────────────────────────────────────────────COMMENT
MEDIUM…r/NetworkClient/NetworkClientTests_TransportAndSend.cs66 // ── OnTransportData null-connection guard ─────────────────────────────────────COMMENT
MEDIUM…r/NetworkClient/NetworkClientTests_TransportAndSend.cs79 // ── Transport error / exception event forwarding ──────────────────────────────────COMMENT
AI Slop Vocabulary4 hits · 12 pts
SeverityFileLineSnippetContext
MEDIUM…ports/Edgegap/EdgegapLobby/EdgegapLobbyKcpTransport.cs332 // Absolutely make sure there's time for the network request to hit edgegap servers.COMMENT
MEDIUM…ports/Edgegap/EdgegapLobby/EdgegapLobbyKcpTransport.cs339 // Absolutely make sure there's time for the network request to hit edgegap servers.COMMENT
MEDIUMAssets/Mirror/Transports/KCP/kcp2k/highlevel/KcpPeer.cs275 // this is just faster and more robust.COMMENT
MEDIUM…amples/AdditiveScenes/Scripts/ShootingTankBehaviour.cs5 // This script demonstrates the NetworkAnimator and how to leverageCOMMENT
AI Response Leakage1 hit · 8 pts
SeverityFileLineSnippetContext
HIGHAssets/Mirror/Examples/AdditiveLevels/Scripts/Portal.cs67 // Note that I have created layers called Player(6) and Portal(7) and set themCOMMENT
Fake / Example Data5 hits · 6 pts
SeverityFileLineSnippetContext
LOW…rror/Tests/Editor/SyncCollections/SyncListClassTest.cs24 TestObject item1 = new TestObject { id = 1, text = "Lorem ipsum dolor sit, amet consectetur adipisicing elitCODE
LOW…rror/Tests/Editor/SyncCollections/SyncListClassTest.cs26 TestObject item2 = new TestObject { id = 2, text = "Lorem ipsum dolor sit, amet consectetur adipisicing elitCODE
LOW…rror/Tests/Editor/SyncCollections/SyncListClassTest.cs51 TestObject item1 = new TestObject { id = 1, text = "Lorem ipsum dolor sit, amet consectetur adipisicing elitCODE
LOW…rror/Tests/Editor/SyncCollections/SyncListClassTest.cs53 TestObject item2 = new TestObject { id = 2, text = "Lorem ipsum dolor sit, amet consectetur adipisicing elitCODE
LOWAssets/Mirror/Hosting/Edgegap/Editor/EdgegapWindowV2.cs2417 /// <param name="placeholder">Placeholder value to use.</param>COMMENT
Self-Referential Comments1 hit · 3 pts
SeverityFileLineSnippetContext
MEDIUM.releaserc.yml72 # Create a new release on GitHubCOMMENT
Slop Phrases2 hits · 2 pts
SeverityFileLineSnippetContext
LOWAssets/Mirror/Hosting/Edgegap/Editor/EdgegapWindowV2.cs925 //OnBuildContainerizeUploadSuccess(_linuxRequirementsResultLabel, "Requirements installed. Don't forget COMMENT
LOWAssets/Mirror/Hosting/Edgegap/Editor/EdgegapWindowV2.cs1921 "Server deployed successfully. Don't forget to remove the deployment after testing.",CODE
Hyper-Verbose Identifiers1 hit · 1 pts
SeverityFileLineSnippetContext
LOW…ror/Hosting/Edgegap/Editor/EdgegapServerDataManager.cs81 public static class EdgegapServerDataManagerCODE