The Ren'Py Visual Novel Engine
This report summarizes scanner evidence for renpy/renpy, a Ren'Py project with 6,957 GitHub stars. SynthScan examined 185,098 lines of code across 390 source files, recording 4568 pattern matches distributed across 19 syntactic categories. The legacy adjusted pattern signal is 25.1 (Elevated 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? 1028 finding(s).
Are imports declared and package/API names verified? 2959 finding(s).
Are wrappers, guards, and repeated structures necessary? 971 finding(s).
Which changes need focused human review? 4568 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 4568 distinct pattern matches across 19 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 | distribute.py | 4 | CODE | |
| LOW | distribute.py | 4 | CODE | |
| LOW | distribute.py | 4 | CODE | |
| LOW | distribute.py | 4 | CODE | |
| LOW | distribute.py | 4 | CODE | |
| LOW | distribute.py | 18 | CODE | |
| LOW | add.py | 2 | CODE | |
| LOW | add.py | 9 | CODE | |
| LOW | renpy.py | 27 | CODE | |
| LOW | renpy.py | 27 | CODE | |
| LOW | main.py | 27 | CODE | |
| LOW | main.py | 27 | CODE | |
| LOW | launcher/game/webserver.py | 1 | CODE | |
| LOW | launcher/game/change_icon.py | 25 | CODE | |
| LOW | launcher/game/change_icon.py | 26 | CODE | |
| LOW | launcher/game/gui7/code.py | 22 | CODE | |
| LOW | launcher/game/gui7/__init__.py | 22 | CODE | |
| LOW | launcher/game/gui7/__init__.py | 22 | CODE | |
| LOW | launcher/game/gui7/__init__.py | 22 | CODE | |
| LOW | launcher/game/gui7/images.py | 26 | CODE | |
| LOW | renpy/bootstrap.py | 475 | CODE | |
| LOW | renpy/ecsign.py | 23 | CODE | |
| LOW | renpy/scriptedit.py | 25 | CODE | |
| LOW | renpy/scriptedit.py | 25 | CODE | |
| LOW | renpy/scriptedit.py | 25 | CODE | |
| LOW | renpy/scriptedit.py | 25 | CODE | |
| LOW | renpy/scriptedit.py | 25 | CODE | |
| LOW | renpy/scriptedit.py | 26 | CODE | |
| LOW | renpy/scriptedit.py | 26 | CODE | |
| LOW | renpy/scriptedit.py | 26 | CODE | |
| LOW | renpy/scriptedit.py | 26 | CODE | |
| LOW | renpy/scriptedit.py | 26 | CODE | |
| LOW | renpy/scriptedit.py | 26 | CODE | |
| LOW | renpy/scriptedit.py | 26 | CODE | |
| LOW | renpy/scriptedit.py | 26 | CODE | |
| LOW | renpy/scriptedit.py | 26 | CODE | |
| LOW | renpy/scriptedit.py | 26 | CODE | |
| LOW | renpy/scriptedit.py | 31 | CODE | |
| LOW | renpy/execution.py | 29 | CODE | |
| LOW | renpy/config.py | 26 | CODE | |
| LOW | renpy/config.py | 26 | CODE | |
| LOW | renpy/config.py | 26 | CODE | |
| LOW | renpy/config.py | 26 | CODE | |
| LOW | renpy/config.py | 26 | CODE | |
| LOW | renpy/config.py | 27 | CODE | |
| LOW | renpy/config.py | 27 | CODE | |
| LOW | renpy/config.py | 27 | CODE | |
| LOW | renpy/config.py | 27 | CODE | |
| LOW | renpy/config.py | 27 | CODE | |
| LOW | renpy/config.py | 27 | CODE | |
| LOW | renpy/config.py | 27 | CODE | |
| LOW | renpy/config.py | 27 | CODE | |
| LOW | renpy/config.py | 27 | CODE | |
| LOW | renpy/config.py | 27 | CODE | |
| LOW | renpy/config.py | 27 | CODE | |
| LOW | renpy/config.py | 29 | CODE | |
| LOW | renpy/config.py | 29 | CODE | |
| LOW | renpy/savelocation.py | 27 | CODE | |
| LOW | renpy/savelocation.py | 27 | CODE | |
| LOW | renpy/savelocation.py | 27 | CODE | |
| 2881 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | distribute.py | 23 | except ImportError: | CODE |
| HIGH | launcher/game/installer.py | 58 | except Exception: | CODE |
| HIGH | launcher/game/installer.py | 373 | except Exception: | CODE |
| HIGH | launcher/game/installer.py | 132 | except Exception: | CODE |
| HIGH | launcher/game/installer.py | 126 | except Exception: | CODE |
| HIGH | launcher/game/installer.py | 368 | except Exception: | CODE |
| HIGH | launcher/game/gui7/images.py | 54 | except Exception: | CODE |
| HIGH | launcher/game/gui7/images.py | 122 | except Exception: | CODE |
| HIGH | renpy/bootstrap.py | 55 | except Exception: | CODE |
| HIGH | renpy/bootstrap.py | 554 | except renpy.game.ParseErrorException: | CODE |
| HIGH | renpy/execution.py | 207 | except Exception: | CODE |
| HIGH | renpy/execution.py | 566 | except Exception: | CODE |
| HIGH | renpy/execution.py | 559 | except Exception: | CODE |
| HIGH | renpy/savelocation.py | 117 | except Exception: | CODE |
| HIGH | renpy/savelocation.py | 461 | except Exception: | CODE |
| HIGH | renpy/savelocation.py | 733 | except Exception: | CODE |
| HIGH | renpy/savelocation.py | 184 | except Exception: | CODE |
| HIGH | renpy/savelocation.py | 282 | except Exception: | CODE |
| HIGH | renpy/savelocation.py | 288 | except Exception: | CODE |
| HIGH | renpy/error.py | 1643 | except Exception: | CODE |
| HIGH | renpy/error.py | 1649 | except Exception: | CODE |
| HIGH | renpy/error.py | 1699 | except Exception: | CODE |
| HIGH | renpy/error.py | 1709 | except Exception: | CODE |
| HIGH | renpy/error.py | 1735 | except Exception: | CODE |
| HIGH | renpy/error.py | 1741 | except Exception: | CODE |
| HIGH | renpy/error.py | 1752 | except Exception: | CODE |
| HIGH | renpy/savetoken.py | 209 | except Exception: | CODE |
| HIGH | renpy/memory.py | 80 | except Exception: | CODE |
| HIGH | renpy/log.py | 288 | except Exception: | CODE |
| HIGH | renpy/log.py | 119 | except Exception: | CODE |
| HIGH | renpy/log.py | 270 | except Exception: | CODE |
| HIGH | renpy/log.py | 125 | except Exception: | CODE |
| HIGH | renpy/pyanalysis.py | 957 | except Exception: | CODE |
| HIGH | renpy/pyanalysis.py | 973 | except Exception: | CODE |
| HIGH | renpy/util.py | 35 | except Exception: | CODE |
| HIGH | renpy/util.py | 48 | except Exception: | CODE |
| HIGH | renpy/game.py | 413 | except EndReplay: | CODE |
| HIGH | renpy/arguments.py | 39 | except Exception: | CODE |
| HIGH | renpy/__init__.py | 604 | except ImportError: | CODE |
| HIGH | renpy/__init__.py | 105 | except Exception: | CODE |
| HIGH | renpy/rollback.py | 149 | except Exception: | CODE |
| HIGH | renpy/rollback.py | 167 | except Exception: | CODE |
| HIGH | renpy/rollback.py | 174 | except Exception: | CODE |
| HIGH | renpy/rollback.py | 659 | except RuntimeError: | CODE |
| HIGH | renpy/substitutions.py | 87 | except KeyError: | CODE |
| HIGH | renpy/loadsave.py | 281 | except Exception: | CODE |
| HIGH | renpy/loadsave.py | 188 | except Exception: | CODE |
| HIGH | renpy/loadsave.py | 68 | except FileNotFoundError: | CODE |
| HIGH | renpy/dump.py | 242 | except Exception: | CODE |
| HIGH | renpy/parser.py | 1816 | except Exception: | CODE |
| HIGH | renpy/parser.py | 1804 | except Exception: | CODE |
| HIGH | renpy/add_from.py | 112 | except Exception: | CODE |
| HIGH | renpy/loader.py | 56 | except Exception: | CODE |
| HIGH | renpy/loader.py | 751 | except Exception: | CODE |
| HIGH | renpy/loader.py | 859 | except Exception: | CODE |
| HIGH | renpy/loader.py | 541 | except Exception: | CODE |
| HIGH | renpy/loader.py | 597 | except IOError: | CODE |
| HIGH | renpy/lexer.py | 37 | except ImportError: | CODE |
| HIGH | renpy/lexer.py | 148 | except Exception: | CODE |
| HIGH | renpy/lexer.py | 154 | except Exception: | CODE |
| 96 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | distribute.py | 135 | except Exception: | CODE |
| LOW | renpy.py | 121 | except Exception: | CODE |
| LOW | renpy.py | 158 | except Exception: | CODE |
| MEDIUM | renpy.py | 114 | def test_writable(d): | CODE |
| LOW | main.py | 121 | except Exception: | CODE |
| LOW | main.py | 158 | except Exception: | CODE |
| MEDIUM | main.py | 114 | def test_writable(d): | CODE |
| LOW | launcher/Visual Studio Code.edit.py | 99 | except Exception: | CODE |
| LOW | launcher/Visual Studio Code (System).edit.py | 99 | except Exception: | CODE |
| LOW | launcher/VSCodium (System).edit.py | 99 | except Exception: | CODE |
| LOW | launcher/game/webserver.py | 135 | except Exception: | CODE |
| LOW | launcher/game/installer.py | 58 | except Exception: | CODE |
| LOW | launcher/game/installer.py | 126 | except Exception: | CODE |
| LOW | launcher/game/installer.py | 132 | except Exception: | CODE |
| LOW | launcher/game/installer.py | 163 | except Exception: | CODE |
| LOW | launcher/game/installer.py | 368 | except Exception: | CODE |
| LOW | launcher/game/installer.py | 373 | except Exception: | CODE |
| LOW | launcher/game/installer.py | 436 | except Exception as e: | CODE |
| LOW | launcher/game/gui7/images.py | 54 | except Exception: | CODE |
| LOW | launcher/game/gui7/images.py | 122 | except Exception: | CODE |
| LOW | renpy/bootstrap.py | 55 | except Exception: | CODE |
| LOW | renpy/bootstrap.py | 136 | except Exception: | CODE |
| LOW | renpy/bootstrap.py | 451 | except Exception as e: | CODE |
| LOW | renpy/bootstrap.py | 476 | except Exception as e: | STRING |
| LOW | renpy/bootstrap.py | 517 | except Exception: | STRING |
| LOW | renpy/bootstrap.py | 557 | except Exception as e: | STRING |
| MEDIUM | renpy/bootstrap.py | 48 | def null_files(): | CODE |
| LOW | renpy/scriptedit.py | 529 | except Exception: | CODE |
| LOW | renpy/color.py | 373 | except Exception: | CODE |
| LOW⚡ | renpy/color.py | 385 | except Exception: | CODE |
| LOW⚡ | renpy/color.py | 395 | except Exception: | CODE |
| LOW⚡ | renpy/color.py | 405 | except Exception: | CODE |
| LOW | renpy/execution.py | 207 | except Exception: | CODE |
| LOW | renpy/execution.py | 559 | except Exception: | CODE |
| LOW | renpy/execution.py | 566 | except Exception: | CODE |
| LOW | renpy/execution.py | 690 | except Exception: | CODE |
| LOW | renpy/execution.py | 964 | except Exception: | CODE |
| LOW | renpy/execution.py | 1087 | except Exception: | CODE |
| MEDIUM | renpy/execution.py | 196 | def __repr__(self): | CODE |
| LOW⚡ | renpy/savelocation.py | 282 | except Exception: | CODE |
| LOW⚡ | renpy/savelocation.py | 288 | except Exception: | CODE |
| LOW⚡ | renpy/savelocation.py | 292 | except Exception: | CODE |
| LOW | renpy/savelocation.py | 117 | except Exception: | CODE |
| LOW | renpy/savelocation.py | 132 | except Exception: | CODE |
| LOW | renpy/savelocation.py | 184 | except Exception: | CODE |
| LOW | renpy/savelocation.py | 264 | except Exception: | CODE |
| LOW | renpy/savelocation.py | 314 | except Exception: | CODE |
| LOW | renpy/savelocation.py | 317 | except Exception: | CODE |
| LOW | renpy/savelocation.py | 461 | except Exception: | CODE |
| LOW | renpy/savelocation.py | 733 | except Exception: | CODE |
| LOW | renpy/savelocation.py | 740 | except Exception as e: | CODE |
| LOW | renpy/importer.py | 330 | except Exception as e: | CODE |
| MEDIUM | renpy/error.py | 208 | def getvalue(self): | CODE |
| LOW⚡ | renpy/error.py | 439 | except Exception: | CODE |
| LOW⚡ | renpy/error.py | 441 | except Exception: | CODE |
| LOW | renpy/error.py | 398 | except Exception: | CODE |
| LOW | renpy/error.py | 464 | except Exception: | CODE |
| LOW | renpy/error.py | 809 | except Exception: | CODE |
| LOW | renpy/error.py | 938 | except Exception: | CODE |
| LOW | renpy/error.py | 981 | except Exception: | CODE |
| 351 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | renpy/bootstrap.py | 199 | def disable_requests_ca_bundle(adapters) -> None: | CODE |
| LOW | renpy/scriptedit.py | 414 | def nodes_on_line_at_or_after(filename, linenumber): | CODE |
| LOW | renpy/config.py | 1039 | def say_attribute_transition_callback(*args): | CODE |
| LOW⚡ | renpy/error.py | 451 | def normalize_renpy_line_offset(filename: str, linenumber: int, offset: int, line: str): | CODE |
| LOW | renpy/__init__.py | 32 | def _install_system_python_hook(): | CODE |
| LOW | renpy/rollback.py | 1166 | def get_identifier_checkpoints(self, identifier): | CODE |
| LOW | renpy/webloader.py | 204 | def process_downloaded_resources(): | CODE |
| LOW | renpy/easy.py | 38 | def lookup_displayable_prefix(d: str) -> Displayable | None: | CODE |
| LOW | renpy/parser.py | 102 | def parse_simple_expression_list(l, image=False): | CODE |
| LOW | renpy/asynctask.py | 134 | def _check_slow_task_threshold(self) -> None: | CODE |
| LOW | renpy/loader.py | 397 | def scandirfiles_from_remote_file(add, seen): | CODE |
| LOW | renpy/loader.py | 427 | def scandirfiles_from_filesystem(add, seen): | CODE |
| LOW | renpy/loader.py | 456 | def scandirfiles_from_archives(add, seen): | CODE |
| LOW | renpy/loader.py | 518 | def load_from_file_open_callback(name): | CODE |
| LOW | renpy/python.py | 452 | def find_starred_match_patterns(node): | CODE |
| LOW | renpy/character.py | 289 | def compute_widget_properties(who_args, what_args, window_args, properties, variant=None, multiple=None): | CODE |
| LOW | renpy/persistent.py | 502 | def _background_save_completed(write): | CODE |
| LOW | renpy/ast.py | 560 | def probably_side_effect_free(expr: str) -> bool: | CODE |
| LOW | renpy/parameter.py | 231 | def with_pos_only_as_pos_or_kw(self): | CODE |
| LOW | renpy/lint.py | 684 | def check_style_property_displayable(name, property, d): | CODE |
| LOW | renpy/lint.py | 1038 | def check_orphan_translations(none_lang_identifiers, translation_identifiers): | CODE |
| LOW | renpy/test/testexecution.py | 270 | def evaluate_enabled_expressions() -> None: | CODE |
| LOW | renpy/test/testexecution.py | 521 | def dispatch_exception_to_control_frame(self, exc: Exception) -> bool: | CODE |
| LOW | renpy/test/testexecution.py | 528 | def move_to_next_node_if_possible(self) -> None: | CODE |
| LOW | renpy/test/testparser.py | 623 | def one_line_python_statement(l: Lexer, loc: NodeLocation) -> testast.Python: | CODE |
| LOW | renpy/test/testparser.py | 712 | def parse_testcase_parameters(l: Lexer, loc: NodeLocation) -> list[dict[str, Any]]: | CODE |
| LOW | renpy/test/testreporter.py | 347 | def get_outcome_by_test_block(self, test_block: BaseTestBlock) -> BaseOutcome: | CODE |
| LOW | renpy/test/testreporter.py | 408 | def get_assertion_error_string(epc: renpy.error.ExceptionPrintContext, assert_node: Assert, node_name: str) -> str: | CODE |
| LOW | renpy/test/testreporter.py | 521 | def _format_with_status_color(self, msg: str, status: OutcomeStatus | None) -> str: | CODE |
| LOW | renpy/test/testreporter.py | 587 | def _print_summarized_outcomes(self, outcome: OutcomeManager) -> None: | CODE |
| LOW | renpy/test/testast.py | 246 | def current_parameterized_name(self) -> str: | CODE |
| LOW | renpy/test/testast.py | 251 | def current_full_parameterized_path(self) -> str: | CODE |
| LOW | renpy/test/testast.py | 293 | def current_full_parameterized_path(self) -> str: | CODE |
| LOW | renpy/test/testast.py | 331 | def generate_parameter_combinations(self, parameters: list[list[dict[str, Any]]] | None) -> list[dict[str, Any]]: | CODE |
| LOW | renpy/test/testast.py | 349 | def advance_to_next_parameter_set(self): | CODE |
| LOW | renpy/test/testast.py | 378 | def has_all_parameters_been_processed(self) -> bool: | CODE |
| LOW | renpy/test/testast.py | 478 | def advance_to_next_parameter_set(self): | CODE |
| LOW | renpy/test/testast.py | 530 | def has_completed_all_subtests(self) -> bool: | CODE |
| LOW | renpy/test/testast.py | 592 | def element_not_found_during_perform(self) -> None: | CODE |
| LOW | renpy/test/testast.py | 706 | def element_not_found_during_perform(self) -> None: | CODE |
| LOW | renpy/test/testast.py | 770 | def element_not_found_during_perform(self) -> None: | CODE |
| LOW | renpy/test/testast.py | 1905 | def format_parameterized_name(name: str, parameters: dict[str, Any]) -> str: | CODE |
| LOW | renpy/translation/__init__.py | 896 | def get_translation_identifier(): | CODE |
| LOW | renpy/sl2/slparser.py | 130 | def update_incompatible_props(prefix, prop): | CODE |
| LOW | renpy/sl2/slparser.py | 544 | def add_prefix_style_property(self, prefix, name): | CODE |
| LOW | renpy/exports/fetchexports.py | 133 | def get_fetch_requests_progress() -> float: | CODE |
| LOW | renpy/exports/fetchexports.py | 275 | def get_fetch_emscripten_progress() -> float: | CODE |
| LOW | renpy/exports/sayexports.py | 249 | def count_seen_dialogue_blocks(): | CODE |
| LOW | renpy/exports/sayexports.py | 260 | def count_newly_seen_dialogue_blocks(): | CODE |
| LOW | renpy/exports/statementexports.py | 362 | def execute_default_statement(start=False): | CODE |
| LOW | renpy/exports/rollbackexports.py | 242 | def get_identifier_checkpoints(identifier): | CODE |
| LOW | renpy/exports/displayexports.py | 34 | def count_displayables_in_layer(layer): | CODE |
| LOW | renpy/common/00sshtransition_ren.py | 47 | def _scene_show_hide_transition_callback(statement): | CODE |
| LOW | renpy/display/screen.py | 1619 | def get_displayable_properties(id, screen=None, layer=None): | CODE |
| LOW | renpy/display/behavior.py | 1956 | def get_caret_above_below_pos(self): | CODE |
| LOW | renpy/display/layout.py | 1522 | def dynamic_displayable_compat(st, at, expr): | CODE |
| LOW | renpy/display/predict.py | 131 | def predict_registered_shaders(): | CODE |
| LOW | renpy/display/core.py | 1381 | def check_background_screenshot(self): | CODE |
| LOW | renpy/display/core.py | 2121 | def set_text_editing_candidates(self, candidates: "IMECandidates | None"): | CODE |
| LOW | renpy/display/core.py | 2134 | def update_ime_candidates_screen(self): | CODE |
| 261 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | renpy.py | 1 | #!/usr/bin/env python | COMMENT |
| LOW | setup.py | 1 | #!/usr/bin/env python | COMMENT |
| LOW | main.py | 1 | #!/usr/bin/env python | COMMENT |
| LOW | launcher/game/change_icon.py | 1 | # Copyright 2004-2026 Tom Rothamel <pytom@bishoujo.us> | COMMENT |
| LOW | launcher/game/change_icon.py | 361 | # | COMMENT |
| LOW | launcher/game/installer.py | 1 | # Copyright 2004-2026 Tom Rothamel <pytom@bishoujo.us> | COMMENT |
| LOW | launcher/game/gui7/code.py | 1 | # Copyright 2004-2026 Tom Rothamel <pytom@bishoujo.us> | COMMENT |
| LOW | launcher/game/gui7/__init__.py | 1 | # Copyright 2004-2026 Tom Rothamel <pytom@bishoujo.us> | COMMENT |
| LOW | launcher/game/gui7/images.py | 1 | # Copyright 2004-2026 Tom Rothamel <pytom@bishoujo.us> | COMMENT |
| LOW | launcher/game/gui7/parameters.py | 1 | # Copyright 2004-2026 Tom Rothamel <pytom@bishoujo.us> | COMMENT |
| LOW | renpy/bootstrap.py | 1 | # Copyright 2004-2026 Tom Rothamel <pytom@bishoujo.us> | COMMENT |
| LOW | renpy/ecsign.py | 1 | # Copyright 2004-2026 Tom Rothamel <pytom@bishoujo.us> | COMMENT |
| LOW | renpy/scriptedit.py | 1 | # Copyright 2004-2026 Tom Rothamel <pytom@bishoujo.us> | COMMENT |
| LOW | renpy/color.py | 1 | # Copyright 2004-2026 Tom Rothamel <pytom@bishoujo.us> | COMMENT |
| LOW | renpy/execution.py | 1 | # Copyright 2004-2026 Tom Rothamel <pytom@bishoujo.us> | COMMENT |
| LOW | renpy/config.py | 1 | # Copyright 2004-2026 Tom Rothamel <pytom@bishoujo.us> | COMMENT |
| LOW | renpy/config.py | 101 | COMMENT | |
| LOW | renpy/config.py | 241 | # choice from a menu. This can be used for making a demo version of a | COMMENT |
| LOW | renpy/savelocation.py | 1 | # Copyright 2004-2026 Tom Rothamel <pytom@bishoujo.us> | COMMENT |
| LOW | renpy/importer.py | 1 | # Copyright 2004-2026 Tom Rothamel <pytom@bishoujo.us> | COMMENT |
| LOW | renpy/error.py | 1 | # Copyright 2004-2026 Tom Rothamel <pytom@bishoujo.us> | COMMENT |
| LOW | renpy/error.py | 541 | # Binary ops, subscripts, and calls are expressions, so | COMMENT |
| LOW | renpy/screenlang.py | 1 | # Copyright 2004-2026 Tom Rothamel <pytom@bishoujo.us> | COMMENT |
| LOW | renpy/savetoken.py | 1 | # Copyright 2004-2026 Tom Rothamel <pytom@bishoujo.us> | COMMENT |
| LOW | renpy/memory.py | 1 | # Copyright 2004-2026 Tom Rothamel <pytom@bishoujo.us> | COMMENT |
| LOW | renpy/object.py | 1 | # Copyright 2004-2026 Tom Rothamel <pytom@bishoujo.us> | COMMENT |
| LOW | renpy/log.py | 1 | # Copyright 2004-2026 Tom Rothamel <pytom@bishoujo.us> | COMMENT |
| LOW | renpy/pyanalysis.py | 1 | # Copyright 2004-2026 Tom Rothamel <pytom@bishoujo.us> | COMMENT |
| LOW | renpy/revertable.py | 1 | # Copyright 2004-2026 Tom Rothamel <pytom@bishoujo.us> | COMMENT |
| LOW | renpy/util.py | 1 | # Copyright 2004-2026 Tom Rothamel <pytom@bishoujo.us> | COMMENT |
| LOW | renpy/ui.py | 1 | # Copyright 2004-2026 Tom Rothamel <pytom@bishoujo.us> | COMMENT |
| LOW | renpy/game.py | 1 | # Copyright 2004-2026 Tom Rothamel <pytom@bishoujo.us> | COMMENT |
| LOW | renpy/arguments.py | 1 | # Copyright 2004-2026 Tom Rothamel <pytom@bishoujo.us> | COMMENT |
| LOW | renpy/preferences.py | 1 | # Copyright 2004-2026 Tom Rothamel <pytom@bishoujo.us> | COMMENT |
| LOW | renpy/__init__.py | 1 | # Copyright 2004-2026 Tom Rothamel <pytom@bishoujo.us> | COMMENT |
| LOW | renpy/rollback.py | 1 | # Copyright 2004-2026 Tom Rothamel <pytom@bishoujo.us> | COMMENT |
| LOW | renpy/types.py | 1 | # Copyright 2004-2026 Tom Rothamel <pytom@bishoujo.us> | COMMENT |
| LOW | renpy/substitutions.py | 1 | # Copyright 2004-2026 Tom Rothamel <pytom@bishoujo.us> | COMMENT |
| LOW | renpy/loadsave.py | 1 | # Copyright 2004-2026 Tom Rothamel <pytom@bishoujo.us> | COMMENT |
| LOW | renpy/webloader.py | 1 | # Copyright 2004-2026 Tom Rothamel <pytom@bishoujo.us> | COMMENT |
| LOW | renpy/dump.py | 1 | # Copyright 2004-2026 Tom Rothamel <pytom@bishoujo.us> | COMMENT |
| LOW | renpy/easy.py | 1 | # Copyright 2004-2026 Tom Rothamel <pytom@bishoujo.us> | COMMENT |
| LOW | renpy/parser.py | 1 | # Copyright 2004-2026 Tom Rothamel <pytom@bishoujo.us> | COMMENT |
| LOW | renpy/asynctask.py | 1 | # Copyright 2004-2026 Tom Rothamel <pytom@bishoujo.us> | COMMENT |
| LOW | renpy/atl.py | 1 | # Copyright 2004-2026 Tom Rothamel <pytom@bishoujo.us> | COMMENT |
| LOW | renpy/atl.py | 541 | COMMENT | |
| LOW | renpy/atl.py | 581 | # if args_param_name: | COMMENT |
| LOW | renpy/atl.py | 841 | # trans is the transform we're working on. | COMMENT |
| LOW | renpy/atl.py | 1161 | # This can become one of four things: | COMMENT |
| LOW | renpy/add_from.py | 1 | # Copyright 2004-2026 Tom Rothamel <pytom@bishoujo.us> | COMMENT |
| LOW | renpy/loader.py | 1 | # Copyright 2004-2026 Tom Rothamel <pytom@bishoujo.us> | COMMENT |
| LOW | renpy/curry.py | 1 | # Copyright 2004-2026 Tom Rothamel <pytom@bishoujo.us> | COMMENT |
| LOW | renpy/debug.py | 1 | # Copyright 2004-2026 Tom Rothamel <pytom@bishoujo.us> | COMMENT |
| LOW | renpy/lexer.py | 1 | # Copyright 2004-2026 Tom Rothamel <pytom@bishoujo.us> | COMMENT |
| LOW | renpy/python.py | 1 | # Copyright 2004-2026 Tom Rothamel <pytom@bishoujo.us> | COMMENT |
| LOW | renpy/character.py | 1 | # Copyright 2004-2026 Tom Rothamel <pytom@bishoujo.us> | COMMENT |
| LOW | renpy/persistent.py | 1 | # Copyright 2004-2026 Tom Rothamel <pytom@bishoujo.us> | COMMENT |
| LOW | renpy/ast.py | 1 | # Copyright 2004-2026 Tom Rothamel <pytom@bishoujo.us> | COMMENT |
| LOW | renpy/warp.py | 1 | # Copyright 2004-2026 Tom Rothamel <pytom@bishoujo.us> | COMMENT |
| LOW | renpy/versions.py | 1 | # Copyright 2004-2026 Tom Rothamel <pytom@bishoujo.us> | COMMENT |
| 182 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | distribute.py | 51 | CODE | |
| LOW | renpy.py | 232 | CODE | |
| LOW | main.py | 232 | CODE | |
| LOW | launcher/Visual Studio Code.edit.py | 14 | CODE | |
| LOW | launcher/Visual Studio Code.edit.py | 79 | CODE | |
| LOW | launcher/Visual Studio Code (System).edit.py | 14 | CODE | |
| LOW | launcher/Visual Studio Code (System).edit.py | 79 | CODE | |
| LOW | launcher/VSCodium (System).edit.py | 14 | CODE | |
| LOW | launcher/VSCodium (System).edit.py | 79 | CODE | |
| LOW | launcher/game/installer.py | 112 | CODE | |
| LOW | launcher/game/installer.py | 144 | CODE | |
| LOW | launcher/game/installer.py | 174 | CODE | |
| LOW | launcher/game/installer.py | 349 | CODE | |
| LOW | launcher/game/gui7/code.py | 293 | CODE | |
| LOW | renpy/bootstrap.py | 345 | CODE | |
| LOW | renpy/ecsign.py | 252 | CODE | |
| LOW | renpy/scriptedit.py | 74 | CODE | |
| LOW | renpy/color.py | 174 | CODE | |
| LOW | renpy/execution.py | 1043 | CODE | |
| LOW | renpy/execution.py | 591 | CODE | |
| LOW | renpy/execution.py | 784 | CODE | |
| LOW | renpy/execution.py | 887 | CODE | |
| LOW | renpy/savelocation.py | 715 | CODE | |
| LOW | renpy/savelocation.py | 820 | CODE | |
| LOW | renpy/savelocation.py | 161 | CODE | |
| LOW | renpy/savelocation.py | 267 | CODE | |
| LOW | renpy/savelocation.py | 295 | CODE | |
| LOW | renpy/error.py | 451 | CODE | |
| LOW | renpy/error.py | 817 | CODE | |
| LOW | renpy/error.py | 862 | CODE | |
| LOW | renpy/error.py | 887 | CODE | |
| LOW | renpy/error.py | 1314 | CODE | |
| LOW | renpy/error.py | 1458 | CODE | |
| LOW | renpy/error.py | 1517 | CODE | |
| LOW | renpy/savetoken.py | 99 | CODE | |
| LOW | renpy/savetoken.py | 264 | CODE | |
| LOW | renpy/memory.py | 91 | CODE | |
| LOW | renpy/memory.py | 430 | CODE | |
| LOW | renpy/memory.py | 500 | CODE | |
| LOW | renpy/memory.py | 97 | CODE | |
| LOW | renpy/memory.py | 510 | CODE | |
| LOW | renpy/pyanalysis.py | 258 | CODE | |
| LOW | renpy/pyanalysis.py | 551 | CODE | |
| LOW | renpy/ui.py | 1117 | CODE | |
| LOW | renpy/rollback.py | 111 | CODE | |
| LOW | renpy/rollback.py | 399 | CODE | |
| LOW | renpy/rollback.py | 515 | CODE | |
| LOW | renpy/rollback.py | 542 | CODE | |
| LOW | renpy/rollback.py | 614 | CODE | |
| LOW | renpy/rollback.py | 736 | CODE | |
| LOW | renpy/rollback.py | 939 | CODE | |
| LOW | renpy/substitutions.py | 47 | CODE | |
| LOW | renpy/substitutions.py | 131 | CODE | |
| LOW | renpy/webloader.py | 178 | CODE | |
| LOW | renpy/webloader.py | 204 | CODE | |
| LOW | renpy/dump.py | 63 | CODE | |
| LOW | renpy/easy.py | 56 | CODE | |
| LOW | renpy/easy.py | 100 | CODE | |
| LOW | renpy/easy.py | 146 | CODE | |
| LOW | renpy/parser.py | 125 | CODE | |
| 250 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | renpy.py | 3 | # This file is part of Ren'Py. The license below applies to Ren'Py only. | COMMENT |
| MEDIUM | main.py | 3 | # This file is part of Ren'Py. The license below applies to Ren'Py only. | COMMENT |
| MEDIUM | renpy/scriptedit.py | 22 | # This file contains code to add and remove statements from the AST | COMMENT |
| MEDIUM | renpy/execution.py | 22 | # This file contains code responsible for managing the execution of a | COMMENT |
| MEDIUM | renpy/error.py | 22 | # This file contains code for formatting tracebacks. | COMMENT |
| MEDIUM | renpy/memory.py | 22 | # This file contains functions used to help debug memory leaks. They aren't | COMMENT |
| MEDIUM | renpy/log.py | 22 | # This module handles the logging of messages to a file. | COMMENT |
| MEDIUM | renpy/revertable.py | 22 | # This file contains code that handles the execution of python code | COMMENT |
| MEDIUM | renpy/ui.py | 22 | # This file contains functions that can be used to display a UI on the | COMMENT |
| MEDIUM | renpy/game.py | 22 | # This module is intended to be used as a singleton object. | COMMENT |
| MEDIUM | renpy/arguments.py | 22 | # This file handles argument parsing. Argument parsing takes place in | COMMENT |
| MEDIUM | renpy/__init__.py | 628 | # Create the store. | COMMENT |
| MEDIUM | renpy/rollback.py | 22 | # This file contains code that handles the execution of python code | COMMENT |
| MEDIUM | renpy/types.py | 22 | # This file contains the various types that Ren'Py uses. | COMMENT |
| MEDIUM | renpy/substitutions.py | 22 | # This file contains support for string translation and string formatting | COMMENT |
| MEDIUM | renpy/loadsave.py | 22 | # This file contains functions that load and save the game state. | COMMENT |
| MEDIUM | renpy/dump.py | 22 | # This file contains code to write the reflect.json file. This file contains | COMMENT |
| MEDIUM | renpy/parser.py | 22 | # This module contains the parser for the Ren'Py script language. It's | COMMENT |
| MEDIUM | renpy/atl.py | 1539 | # Create a new transform state, and apply the property | COMMENT |
| MEDIUM | renpy/debug.py | 22 | # This file contains debugging code that isn't enabled in normal Ren'Py | COMMENT |
| MEDIUM | renpy/python.py | 22 | # This file contains code that handles the execution of python code | COMMENT |
| MEDIUM | renpy/python.py | 231 | # Create the dict. | COMMENT |
| MEDIUM | renpy/character.py | 720 | # Create a callback object specific to this pause. | COMMENT |
| MEDIUM | renpy/character.py | 774 | # Create the callback that is called when the slow text is done. | COMMENT |
| MEDIUM | renpy/persistent.py | 279 | # Create the backup of the persistent data. | COMMENT |
| MEDIUM | renpy/ast.py | 22 | # This file contains the AST for the Ren'Py script language. Each class | COMMENT |
| MEDIUM | renpy/statements.py | 22 | # This module contains code to support user-defined statements. | COMMENT |
| MEDIUM | renpy/main.py | 470 | # Initialize persistent variables. | COMMENT |
| MEDIUM | renpy/script.py | 22 | # This file contains code that is responsible for storing and executing a | COMMENT |
| MEDIUM | renpy/update/generate.py | 146 | # Create a list of files by reverse mtime. The idea is that the newer | COMMENT |
| MEDIUM | renpy/sl2/slast.py | 46 | # This file contains the abstract syntax tree for a screen language | COMMENT |
| MEDIUM | renpy/sl2/slast.py | 942 | # Create the context. | COMMENT |
| MEDIUM | renpy/sl2/slast.py | 2062 | # Create an old-style displayable name for this call site. | COMMENT |
| MEDIUM | renpy/exports/__init__.py | 22 | # This file contains functions that are exported to the script namespace as | COMMENT |
| MEDIUM | renpy/common/00sshtransition_ren.py | 22 | # This file contains support for a transition after a sequence of | COMMENT |
| MEDIUM | renpy/display/anim.py | 22 | # This file contains support for state-machine controlled animations. | COMMENT |
| MEDIUM | renpy/display/error.py | 22 | # This file contains code to handle GUI-based error reporting. | COMMENT |
| MEDIUM | renpy/display/behavior.py | 2007 | # This class contains information about an adjustment that can change the | COMMENT |
| MEDIUM | renpy/display/emulator.py | 22 | # This file contains code to emulate various other devices on the PC. | COMMENT |
| MEDIUM | renpy/display/layout.py | 22 | # This file contains classes that handle layout of displayables on | COMMENT |
| MEDIUM | renpy/display/predict.py | 22 | # This file contains the routines that manage image prediction. | COMMENT |
| MEDIUM | renpy/display/core.py | 955 | # Create a cache of the mouse information. | COMMENT |
| MEDIUM | renpy/display/imagemap.py | 22 | # This file handles imagemap caching. | COMMENT |
| MEDIUM | renpy/display/pgrender.py | 48 | # Create a sample surface. | COMMENT |
| MEDIUM | renpy/display/pgrender.py | 62 | # Create the sample surface. | COMMENT |
| MEDIUM | renpy/display/viewport.py | 22 | # This file contains classes that handle layout of displayables on | COMMENT |
| MEDIUM | renpy/display/im.py | 22 | # This file contains the new image code, which includes provisions for | COMMENT |
| MEDIUM | renpy/display/motion.py | 22 | # This file contains displayables that move, zoom, rotate, or otherwise | COMMENT |
| MEDIUM | renpy/display/transform.py | 22 | # This file contains displayables that move, zoom, rotate, or otherwise | COMMENT |
| MEDIUM | renpy/display/imagelike.py | 22 | # This file contains displayables that are image-like, because they take | COMMENT |
| MEDIUM | renpy/display/image.py | 22 | # This file contains some miscellaneous displayables that involve images. | COMMENT |
| MEDIUM | renpy/display/focus.py | 22 | # This file contains code to manage focus on the display. | COMMENT |
| MEDIUM | renpy/text/emoji_trie.py | 3 | # This file is generated by module/emoji/make_emoji_trie.py. Do not | COMMENT |
| MEDIUM | renpy/text/text.py | 1048 | # Create the texture. | COMMENT |
| MEDIUM | sphinx/source/conf.py | 6 | # This file is execfile()d with the current directory set to its containing dir. | COMMENT |
| MEDIUM | sphinx/source/fill-translator-credits.py | 4 | # This file is part of Ren'Py. The license below applies to Ren'Py only. | COMMENT |
| MEDIUM | scripts/generate_styles.py | 438 | # This file is generated by generate_styles.py. | COMMENT |
| MEDIUM | scripts/unicode/make_emoji_trie.py | 174 | # This file is generated by module/emoji/make_emoji_trie.py. Do not | STRING |
| MEDIUM | scripts/sdl3/main.py | 78 | # This file is automatically generated by scripts/sdl3/main.py. Do not edit manually. | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | renpy/ecsign.py | 347 | Returns the uncompressed 64-byte binary representation (X || Y). | STRING |
| HIGH | renpy/ecsign.py | 488 | Signs `data` with ECDSA (NIST256p). Returns a 64-byte binary signature (r || s). | STRING |
| HIGH | renpy/webloader.py | 63 | if (xhr.status == 200 || xhr.status == 304 || xhr.status == 206 || (xhr.status == 0 && xhr.response)) { | CODE |
| HIGH | renpy/webloader.py | 63 | if (xhr.status == 200 || xhr.status == 304 || xhr.status == 206 || (xhr.status == 0 && xhr.response)) { | CODE |
| HIGH | renpy/atl.py | 1474 | if (old_child is not None) and (old_child is not renpy.display.motion.null) and (self.transition is not None): | CODE |
| HIGH | renpy/main.py | 251 | || (navigator.userAgent.indexOf("Mac") != -1 && navigator.maxTouchPoints > 1)""" | CODE |
| HIGH | renpy/exports/fetchexports.py | 234 | command = """fetchFile("{method}", "{url}", null, "{fn}", null, "{headers}")""".format( | CODE |
| HIGH | renpy/common/00textshader_ren.py | 206 | if (u__duration <= 0.0 || u_text_time < u__duration) { | CODE |
| HIGH⚡ | renpy/audio/webaudio.py | 42 | emscripten.run_script("renpyAudio.{}.apply(null, {});".format(function, dumps(args))) | CODE |
| HIGH⚡ | renpy/audio/webaudio.py | 50 | return emscripten.run_script_int("renpyAudio.{}.apply(null, {});".format(function, dumps(args))) | CODE |
| HIGH⚡ | renpy/audio/webaudio.py | 58 | rv = emscripten.run_script_string("renpyAudio.{}.apply(null, {});".format(function, dumps(args))) | CODE |
| HIGH | renpy/display/behavior.py | 2807 | return render(self.null, width, height, st, at) | CODE |
| HIGH | renpy/display/layout.py | 569 | self.add(null) | CODE |
| HIGH | renpy/display/tts.py | 463 | language = locale.toString().replace("_", "-") | CODE |
| HIGH | renpy/display/core.py | 2820 | ld.add(null) | CODE |
| HIGH | renpy/display/viewport.py | 777 | self.add(null) | CODE |
| HIGH | renpy/gl2/live2d.py | 124 | window.live2d_csm.ccall("csmInitializeAmountOfMemory", null, ["number"], [{renpy.config.live2d_max_memory}]); | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | renpy/revertable.py | 349 | CODE | |
| LOW | renpy/ui.py | 842 | CODE | |
| LOW | renpy/ui.py | 930 | CODE | |
| LOW | renpy/ui.py | 1248 | CODE | |
| LOW | renpy/preferences.py | 379 | CODE | |
| LOW | renpy/parser.py | 850 | CODE | |
| LOW | renpy/parser.py | 874 | CODE | |
| LOW | renpy/parser.py | 1236 | CODE | |
| LOW | renpy/parser.py | 1245 | CODE | |
| LOW | renpy/lexer.py | 1797 | CODE | |
| LOW | renpy/character.py | 342 | CODE | |
| LOW | renpy/character.py | 1428 | CODE | |
| LOW | renpy/statements.py | 37 | CODE | |
| LOW | renpy/test/testparser.py | 537 | CODE | |
| LOW | renpy/test/testparser.py | 562 | CODE | |
| LOW | renpy/test/testast.py | 405 | CODE | |
| LOW | renpy/test/testast.py | 768 | CODE | |
| LOW | renpy/update/common.py | 100 | CODE | |
| LOW | renpy/update/common.py | 117 | CODE | |
| LOW | renpy/update/common.py | 152 | CODE | |
| LOW | renpy/translation/generation.py | 419 | CODE | |
| LOW | renpy/sl2/slast.py | 699 | CODE | |
| LOW | renpy/sl2/slast.py | 1854 | CODE | |
| LOW | renpy/sl2/slast.py | 1871 | CODE | |
| LOW | renpy/sl2/slast.py | 1917 | CODE | |
| LOW | renpy/sl2/slparser.py | 740 | CODE | |
| LOW | renpy/exports/fetchexports.py | 285 | CODE | |
| LOW | renpy/exports/displayexports.py | 371 | CODE | |
| LOW | renpy/exports/displayexports.py | 1349 | CODE | |
| LOW | renpy/exports/menuexports.py | 202 | CODE | |
| LOW | renpy/exports/inputexports.py | 68 | CODE | |
| LOW | renpy/audio/webaudio.py | 60 | CODE | |
| LOW | renpy/audio/music.py | 36 | CODE | |
| LOW | renpy/audio/audio.py | 951 | CODE | |
| LOW | renpy/display/screen.py | 226 | CODE | |
| LOW | renpy/display/anim.py | 466 | CODE | |
| LOW | renpy/display/behavior.py | 876 | CODE | |
| LOW | renpy/display/behavior.py | 999 | CODE | |
| LOW | renpy/display/behavior.py | 1327 | CODE | |
| LOW | renpy/display/behavior.py | 1515 | CODE | |
| LOW | renpy/display/behavior.py | 2050 | CODE | |
| LOW | renpy/display/behavior.py | 2371 | CODE | |
| LOW | renpy/display/displayable.py | 676 | CODE | |
| LOW | renpy/display/movetransition.py | 457 | CODE | |
| LOW | renpy/display/transition.py | 488 | CODE | |
| LOW | renpy/display/transition.py | 841 | CODE | |
| LOW | renpy/display/dragdrop.py | 327 | CODE | |
| LOW | renpy/display/core.py | 2456 | CODE | |
| LOW | renpy/display/pgrender.py | 189 | CODE | |
| LOW | renpy/display/pgrender.py | 86 | CODE | |
| LOW | renpy/display/viewport.py | 77 | CODE | |
| LOW | renpy/display/motion.py | 61 | CODE | |
| LOW | renpy/display/motion.py | 439 | CODE | |
| LOW | renpy/display/motion.py | 637 | CODE | |
| LOW | renpy/display/particle.py | 666 | CODE | |
| LOW | renpy/display/module.py | 215 | CODE | |
| LOW | renpy/display/video.py | 655 | CODE | |
| LOW | renpy/display/imagelike.py | 202 | CODE | |
| LOW | renpy/display/scenelists.py | 350 | CODE | |
| LOW | renpy/display/scale.py | 70 | CODE | |
| 9 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | launcher/game/change_icon.py | 391 | # There's already a header size, and this isn't changing headers, so just add. | COMMENT |
| MEDIUM | renpy/error.py | 98 | # TODO: Make it more robust by is_relative_to check. | COMMENT |
| MEDIUM⚡ | renpy/translation/__init__.py | 1229 | # robust against minor ordering oddities. First valid match per slot wins, | COMMENT |
| LOW | renpy/sl2/slast.py | 885 | # We do not want to pass keywords to our parents, so just return. | COMMENT |
| LOW | renpy/display/behavior.py | 638 | # If we have been drawn since the timeout, simply return | COMMENT |
| LOW | renpy/display/swdraw.py | 62 | # allows us to just return without having to do any cleanup | COMMENT |
| MEDIUM | renpy/gl2/live2d.py | 1171 | # Handle seamless. | STRING |
| LOW | scripts/setuplib.py | 336 | # On Windows, pkg-config is not used, so just return the empty dict. | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW⚡ | renpy/translation/__init__.py | 1223 | # Step 2: language subtag must be 2 or 3 alphabetic characters (ISO 639-1/2/3). | COMMENT |
| LOW⚡ | renpy/translation/__init__.py | 1228 | # Step 3: walk remaining subtags. Identify by shape, not position, so we're | COMMENT |
| LOW⚡ | renpy/translation/__init__.py | 1245 | # Step 4: infer region if missing. | COMMENT |
| LOW⚡ | renpy/translation/__init__.py | 1249 | # Step 5: handle script. Only Chinese commonly carries a script in practice, | COMMENT |
| LOW | renpy/translation/__init__.py | 1208 | # Step 1: strip BCP 47 extensions. Everything from "-u-", "-t-", or "-x-" | COMMENT |
| LOW | renpy/display/transform.py | 1138 | # NOTE: This function is duplicated (more or less) in ATLTransform. | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW⚡ | renpy/translation/__init__.py | 1223 | # Step 2: language subtag must be 2 or 3 alphabetic characters (ISO 639-1/2/3). | COMMENT |
| LOW⚡ | renpy/translation/__init__.py | 1228 | # Step 3: walk remaining subtags. Identify by shape, not position, so we're | COMMENT |
| LOW⚡ | renpy/translation/__init__.py | 1245 | # Step 4: infer region if missing. | COMMENT |
| LOW⚡ | renpy/translation/__init__.py | 1249 | # Step 5: handle script. Only Chinese commonly carries a script in practice, | COMMENT |
| LOW | renpy/translation/__init__.py | 1208 | # Step 1: strip BCP 47 extensions. Everything from "-u-", "-t-", or "-x-" | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | renpy/sl2/slast.py | 1849 | CODE | |
| MEDIUM | renpy/sl2/slast.py | 1866 | CODE | |
| MEDIUM | renpy/sl2/slast.py | 1912 | CODE | |
| MEDIUM | renpy/sl2/slast.py | 1956 | CODE | |
| MEDIUM | testcases/pytests/test_asynctask.py | 418 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| CRITICAL | testcases/pytests/test_presplash.py | 136 | jnius.autoclass.return_value.mActivity.hidePresplash.assert_called_once_with() | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | renpy/config.py | 1510 | # Set this to true to log events to log.txt. | COMMENT |
| LOW | renpy/main.py | 496 | # Check if we should simulate android. | COMMENT |
| LOW | renpy/script.py | 510 | # Assign names to statements that don't have one already. | COMMENT |
| LOW | renpy/test/testparser.py | 885 | ## Check if we have another condition after this one | COMMENT |
| LOW | renpy/update/generate.py | 167 | # Write the filelist to a file. | COMMENT |
| LOW | renpy/display/layout.py | 666 | # Set this to true to force the box to adjust its children's times. | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | renpy/bootstrap.py | 286 | def set_utf8_locale() -> None: | CODE |
| LOW | renpy/minstore.py | 179 | __all__ = [ | CODE |
| LOW | renpy/compat/__init__.py | 132 | __all__ = [ | CODE |
| LOW | renpy/test/testexecution.py | 212 | def set_next_execution_node(next_node: Node | None) -> None: | CODE |
| LOW | renpy/test/testexecution.py | 290 | def update_enable_flag() -> None: | CODE |
| LOW | renpy/test/testexecution.py | 468 | def set_next_node(self, next: Node | None) -> None: | CODE |
| LOW | renpy/test/testexecution.py | 471 | def set_end_callback(self, callback: Callable | list[Callable]) -> None: | CODE |
| LOW | renpy/test/testreporter.py | 901 | def _update_assert_counters(self, outcome: BaseOutcome, status: OutcomeStatus) -> None: | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | renpy/text/extras.py | 337 | # ============================================== | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | scripts/unicode/LineBreak.txt | 1927 | B77D..B797 ; H3 # Lo [27] HANGUL SYLLABLE RAG..HANGUL SYLLABLE RAH | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | renpy/gl2/live2d.py | 860 | # Note: When adding new parameters, make sure to add them to _duplicate, too. | STRING |