[mirror of https://gitlab.com/veloren/veloren] An open world, open source voxel RPG inspired by Dwarf Fortress and Cube World. This repository is a mirror. Please submit all PRs and issues on our GitLab page.
This report summarizes scanner evidence for veloren/veloren, a Rust project with 7,669 GitHub stars. SynthScan examined 417,130 lines of code across 1101 source files, recording 581 pattern matches distributed across 9 syntactic categories. The legacy adjusted pattern signal is 1.5 (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.
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.
Can maintainers explain intent, assumptions, and trade-offs? 576 finding(s).
Are imports declared and package/API names verified? 5 finding(s).
Are wrappers, guards, and repeated structures necessary? 0 finding(s).
Which changes need focused human review? 581 finding(s).
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.
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.
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.
The scanner identified 581 distinct pattern matches across 9 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.
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | Cargo.toml | 241 | specs = { git = "https://github.com/amethyst/specs.git", rev = "4e2da1df29ee840baa9b936593c45592b7c9ae27" } | COMMENT |
| LOW | clippy.toml | 1 | # TODO: do we want to use `#[deny(clippy::disallowed_method)]` to disallow all unwraps (possibly only in non-test code)? | COMMENT |
| LOW | network/tests/closing.rs | 1 | //! How to read those tests: | COMMENT |
| LOW | network/tests/integration.rs | 261 | std::thread::sleep(SLEEP_EXTERNAL); | COMMENT |
| LOW | network/protocol/src/types.rs | 1 | use bitflags::bitflags; | COMMENT |
| LOW | network/protocol/src/types.rs | 21 | COMMENT | |
| LOW | network/protocol/src/types.rs | 61 | #[derive(PartialEq, Eq, Hash, Clone, Copy)] | COMMENT |
| LOW | network/protocol/src/lib.rs | 1 | //! Network Protocol | COMMENT |
| LOW | network/protocol/src/lib.rs | 21 | //! will result in dropped data using UDP with a TCP socket will be a waste of | COMMENT |
| LOW | network/protocol/src/lib.rs | 101 | /// [`ProtocolEvent`]. | COMMENT |
| LOW | network/protocol/src/lib.rs | 141 | /// it cannot recover from the error. | COMMENT |
| LOW | network/protocol/src/metrics.rs | 21 | pub struct ProtocolMetrics { | COMMENT |
| LOW | network/src/message.rs | 21 | /// [`send_raw`]: crate::api::Stream::send_raw | COMMENT |
| LOW | network/src/message.rs | 61 | #[cfg(not(feature = "compression"))] | COMMENT |
| LOW | network/src/message.rs | 81 | /// # use std::sync::Arc; | COMMENT |
| LOW | network/src/lib.rs | 1 | #![deny(unsafe_code)] | COMMENT |
| LOW | network/src/lib.rs | 21 | //! This [`Participant`] represents the connection between those 2 applications. | COMMENT |
| LOW | network/src/lib.rs | 41 | //! use std::sync::Arc; | COMMENT |
| LOW | network/src/lib.rs | 61 | //! let mut server_network = Network::new(Pid::new(), runtime); | COMMENT |
| LOW | network/src/lib.rs | 81 | //! } | COMMENT |
| LOW | network/src/api.rs | 61 | #[cfg(feature = "quic")] | COMMENT |
| LOW | network/src/api.rs | 141 | ///Participant was closed by remote side | COMMENT |
| LOW | network/src/api.rs | 161 | COMMENT | |
| LOW | network/src/api.rs | 181 | /// # Examples | COMMENT |
| LOW | network/src/api.rs | 221 | /// | COMMENT |
| LOW | network/src/api.rs | 241 | /// let runtime = Runtime::new().unwrap(); | COMMENT |
| LOW | network/src/api.rs | 261 | COMMENT | |
| LOW | network/src/api.rs | 341 | /// support multiple Protocols or NICs. | COMMENT |
| LOW | network/src/api.rs | 381 | /// When the method returns the Network either returns a [`Participant`] | COMMENT |
| LOW | network/src/api.rs | 401 | /// # return Ok(()); | COMMENT |
| LOW | network/src/api.rs | 441 | /// Returns a [`Participant`] created from a [`ListenAddr`] you | COMMENT |
| LOW | network/src/api.rs | 461 | /// while let Ok(participant) = network.connected().await { | COMMENT |
| LOW | network/src/api.rs | 561 | a2s_disconnect_s: Arc::new(Mutex::new(Some(a2s_disconnect_s))), | COMMENT |
| LOW | network/src/api.rs | 581 | /// side, resulting in very fast creation and closing latency. | COMMENT |
| LOW | network/src/api.rs | 601 | /// drop(network); | COMMENT |
| LOW | network/src/api.rs | 641 | /// Use this method to handle [`Streams`] opened from remote site, like the | COMMENT |
| LOW | network/src/api.rs | 661 | /// let mut p1 = network.connect(ConnectAddr::Tcp("127.0.0.1:2110".parse().unwrap())).await?; | COMMENT |
| LOW | network/src/api.rs | 681 | Ok(stream) | COMMENT |
| LOW | network/src/api.rs | 701 | /// is no longer reachable (e.g. as the network cable was unplugged) the | COMMENT |
| LOW | network/src/api.rs | 721 | /// println!("Participant connected: {}", participant.remote_pid()); | COMMENT |
| LOW | network/src/api.rs | 781 | COMMENT | |
| LOW | network/src/api.rs | 801 | /// # remote.listen(ListenAddr::Tcp("127.0.0.1:2040".parse().unwrap())).await?; | COMMENT |
| LOW | network/src/api.rs | 881 | /// speed is needed. The other side needs to use the respective [`recv`] | COMMENT |
| LOW | network/src/api.rs | 901 | /// # Example | COMMENT |
| LOW | network/src/api.rs | 921 | /// drop(network); | COMMENT |
| LOW | network/src/api.rs | 941 | /// | COMMENT |
| LOW | network/src/api.rs | 961 | /// let mut participant_a = network.connected().await?; | COMMENT |
| LOW | network/src/api.rs | 1001 | COMMENT | |
| LOW | network/src/api.rs | 1021 | /// # let remote = Network::new(Pid::new(), &runtime); | COMMENT |
| LOW | network/src/api.rs | 1041 | COMMENT | |
| LOW | network/src/api.rs | 1061 | /// let mut participant_a = network.connected().await?; | COMMENT |
| LOW | network/src/api.rs | 1101 | /// # Example | COMMENT |
| LOW | network/src/api.rs | 1121 | /// println!("{:?}", stream_a.try_recv::<String>()?); | COMMENT |
| LOW | network/src/participant.rs | 641 | /// Situation AS, AR, BS, BR. A wants to close. | COMMENT |
| LOW | voxygen/i18n-helpers/src/lib.rs | 41 | // Current implementation just checks if our player is humanoid, and if so, | COMMENT |
| LOW | voxygen/i18n-helpers/src/lib.rs | 61 | // - Neuter (or fallback Male) | COMMENT |
| LOW | voxygen/i18n-helpers/src/lib.rs | 81 | // we address the comment above at least. | COMMENT |
| LOW | voxygen/i18n-helpers/src/lib.rs | 101 | // And what about Mindflayer? They do have varied body_type, but do they | COMMENT |
| LOW | voxygen/src/discord.rs | 41 | /// Rich Presence asset keys: the backgrounds used in the main menu and | COMMENT |
| LOW | voxygen/src/profile.rs | 81 | profile | COMMENT |
| 492 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| CRITICAL | voxygen/src/hud/bag.rs | 1373 | self.global_state.settings.inventory.sort_order.next(), | CODE |
| CRITICAL | voxygen/src/hud/chat.rs | 184 | &self.global_state.settings.chat.chat_cmd_prefix.to_string(), | CODE |
| CRITICAL | voxygen/src/hud/settings_window/video.rs | 597 | Text::new(&self.global_state.settings.graphics.max_fps.to_string()) | CODE |
| CRITICAL | voxygen/src/hud/settings_window/video.rs | 777 | (self.global_state.settings.graphics.gamma.log2() * 8.0).round() as i32, | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | voxygen/src/mesh/greedy.rs | 692 | // FIXME: Either make more robust, or explicitly document that limits on texture | COMMENT |
| MEDIUM | voxygen/src/render/renderer/mod.rs | 206 | // Enable seamless cubemaps globally, where available--they are essentially a | COMMENT |
| MEDIUM | voxygen/src/scene/math.rs | 201 | // NOTE: Definitely non-ideal that we panic if the rounded value can't fit in an | COMMENT |
| MEDIUM | server/src/state_ext.rs | 765 | // it is added in initialized_character (to be robust we can also insert it if | COMMENT |
| MEDIUM | common/systems/src/shockwave.rs | 152 | // Might make this more nuanced if shockwaves are used for non damage effects | COMMENT |
| MEDIUM | common/systems/src/beam.rs | 158 | // Might make this more nuanced if beams are used for non damage effects | COMMENT |
| MEDIUM | common/systems/src/projectile.rs | 289 | // robust method. | COMMENT |
| MEDIUM | common/src/terrain/sprite/mod.rs | 10 | //! Fundamentally, sprites are composed of one or more elements: the | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | network/protocol/src/metrics.rs | 58 | /// ping per CHANNEL //TODO: implement | COMMENT |
| LOW | voxygen/src/window.rs | 204 | // TODO: implement controller layout detection/configuration | COMMENT |
| LOW | voxygen/src/ui/widgets/radio_list.rs | 182 | //TODO: implement default width / height functions | COMMENT |
| LOW | world/examples/water.rs | 329 | // TODO: implement removing horizon mapping. | COMMENT |
| LOW | world/src/pathfinding.rs | 24 | // TODO: implement this function | COMMENT |
| LOW | server/src/cmd.rs | 3279 | // TODO: implement atomic `insert_all_or_nothing` on Inventory | COMMENT |
| LOW | server/src/sys/agent/behavior_tree/mod.rs | 1016 | // TODO: implement for rtsim2 | COMMENT |
| LOW | common/assets/src/walk.rs | 31 | // TODO: implement iterator? | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | voxygen/src/hud/mod.rs | 4921 | // for this comment. Don't forget to update the code in | COMMENT |
| LOW | voxygen/src/hud/minimap.rs | 551 | // Don't forget to update the code in src/mop/hud.rs:4728 in the | COMMENT |
| LOW | server/src/terrain_persistence.rs | 340 | /// Don't forget to increment the version number in the | COMMENT |
| LOW | common/src/bin/asset_migrate.rs | 8 | // (don't forget to add serde derive-s, import if needed) | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | voxygen/src/ui/img_ids.rs | 128 | /// Example usage: | COMMENT |
| LOW | common/assets/src/lib.rs | 50 | /// Example usage: | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | rtsim/src/lib.rs | 109 | //! damping terms or parameter clamping), and should include guardrails that | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | server/src/persistence/character/conversions.rs | 52 | /// NOTE: This method does not yet handle persisting nested items within | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | voxygen/src/ui/widgets/item_tooltip.rs | 1334 | widget::Text::new("placeholder") | CODE |