Skip to content

LocCheck Changelog

Version 1.2.0

Major reliability and workflow update for Unreal Engine 5.5, 5.6, 5.7, and 5.8.

Gather Text and commandlet stability

  • Fixed a crash that could occur when Gather Text or another headless UnrealEditor-Cmd operation loaded LocCheck.
  • LocCheck no longer touches editor UI systems while running in commandlet mode.
  • Shutdown is safe even when the editor interface was never created.

Translation detection and cultures

  • Fixed valid translations being reported as missing.
  • Translation coverage is now read directly from localization data on disk and no longer depends on the editor's active language.
  • Added compiled locres fallback support for translations imported outside the normal Localization Dashboard workflow.
  • A translation whose text matches the source now correctly counts as translated.
  • Fixed parsing for namespaced archive entries and the nested subnamespaces used by String Tables.
  • Culture names are canonicalized and culture folder matching is case-insensitive.
  • Regional cultures now fall back only through their valid parent cultures. Sibling cultures are never substituted for one another.
  • Unrecognised culture names are reported instead of being silently ignored.
  • Added Translation Conflict warnings when localization targets provide different translations for the same namespace and key.

Usage detection

  • Fixed entries being incorrectly reported as unused because the Asset Registry was queried with the wrong identifier.
  • Fixed Usage Finder returning no results.
  • Added five clear coverage states: not scanned, references found, no references under complete coverage, truncated coverage, and failed coverage.
  • An entry is only described as unused when its table's relevant referencers were fully inspected.
  • Improved reference inspection for Widget Blueprints, Data Tables, Data Assets, Blueprint defaults, nested structs, arrays, sets, and maps.
  • String Tables are matched by exact identity, preventing tables with the same asset name in different folders from being mixed together.
  • Added Usage Scan — Max Referencers Per Table, including an unlimited mode with progress and cancellation.

Problems and bulk review

  • Added Ctrl/Shift multi-selection on the Problems page.
  • Added Select All Filtered and Clear Selection.
  • Added bulk Approved, Needs Review, and Ignore Selected Issues actions.
  • Added Approve All Filtered with confirmation for large operations.
  • Added live review-status badges to Problems rows.
  • Added a confirmation notification after every bulk action, including the number of affected entries or issues.
  • Bulk changes now use one batch and one save instead of rebuilding the list for every row.
  • Fixed bulk review actions having no visible feedback.
  • Review statuses and ignored issues persist through tab closure, rescanning, Gather Text, and full editor restarts.

Hardcoded Text and interface fixes

  • Fixed Hardcoded Text search not filtering.
  • Search now filters live across asset name, path, source or property, row, and suspect text.
  • Clearing the search or choosing All Risks restores the complete list.
  • Fixed missing scrollbars in Problems, Usage Finder, and Hardcoded Text.
  • Scan results now refresh after localization or asset changes when Quick Scan is run again; no editor restart is required.
  • LocCheck now appears in the shared Tools → ECal Studios → LocCheck menu.

Stability and compatibility

  • Source packages compile successfully on Unreal Engine 5.5, 5.6, 5.7, and 5.8.
  • Automated test suites pass on every supported engine version.
  • Unreal Engine 5.6 received complete live UI workflow verification.

Known limitations

  • Runtime-generated String Table keys cannot always be discovered statically and may still be flagged as unused. Use Unused Entry — Ignored Namespaces or the per-entry Ignore action for intentional dynamic keys.
  • Blueprint graph-pin text literals are not currently included in usage detection. Serialized values in widgets, Data Tables, Data Assets, and class defaults are supported.
  • When assets cannot be loaded or a scan is limited, LocCheck reports incomplete coverage instead of incorrectly declaring entries unused.

Version 1.1.0

Asset FText scanning and review workflow update.

Asset FText Scanner

  • Added project asset scanning for reflected FText fields stored outside String Tables and Widget Blueprints.
  • Added support for UDataAsset and UPrimaryDataAsset-based content, including common item, skill, spell, quest, NPC dialogue, buff/debuff, tooltip, and ability description data.
  • Added support for UDataTable row structs containing FText fields.
  • Added recursive inspection for nested structs, arrays, maps, and sets where safe.
  • Added safe Blueprint class default scanning for reflected FText fields.
  • Asset text risks now include asset path, asset type, property path, row name when available, suspect text preview, and review message.
  • Asset FText results appear in the existing Text Risks/Hardcoded Text review flow and exported reports.

Text Risk Review UI

  • Updated Text Risks to include Widget Blueprint text, Data Asset text, Data Table row text, and safe Blueprint class default text in one review page.
  • Added single-click row selection support that updates the right-side details panel.
  • Added selected-row visual indicators for Problems and Text Risks lists.
  • Kept double-click reveal support for opening or revealing related assets in the Content Browser.
  • Added Dashboard visibility for text risks so users can see when asset/widget text needs review.

Settings

  • Added Scan Data Assets and Data Tables for FText scanner toggle.
  • The new scanner is enabled by default and respects the configured include/exclude content paths.
  • Project content remains the default scan scope to avoid noisy engine/plugin text results.

Versioning and Packaging

  • Updated plugin version to 1.1.0.
  • Kept LocCheck as an editor-only plugin with no runtime impact.
  • Kept external dependencies at zero.

Notes

  • LocCheck scans reflected Unreal FText properties. Custom runtime-only text systems, external databases, non-reflected storage, or text created only in custom code paths may still require manual review.

Version 1.0.0

Initial release.

Dashboard

  • Added Localization Health Score with score ring, label, and color-coded result bands.
  • Added per-culture completion cards for translated, missing, empty, and long-text counts.
  • Added issue summary cards for total issues, critical issues, warnings, and scanned tables.
  • Added Top Fixes preview to show the most common problem categories.
  • Added preview table for entries with active issues.

Table Browser

  • Added full search across keys, source text, namespaces, table names, translations, and issue messages.
  • Added filters for table, review status, severity, and culture.
  • Added Problems Only toggle for issue-focused triage.
  • Added column sorting.
  • Added row selection synced to the Inspector Panel.

Problems View

  • Added issue-focused list for critical, warning, and suggestion review.
  • Added severity filter buttons.
  • Added synchronized inspector details when selecting a problem.
  • Added double-click reveal support for issue rows in Tables, Problems, and Hardcoded Text results.
  • Added Content Browser syncing for related String Tables, Blueprints, Widget Blueprints, and project assets.
  • Added documentation note that this reveals the related asset, but does not currently open the exact String Table entry, Blueprint node, graph pin, or text field automatically.

QA Scanners

  • Added Missing Translation scanner.
  • Added Empty Translation scanner.
  • Added Placeholder scanner for format argument checks.
  • Added rich text tag comparison through placeholder/rich text validation.
  • Added Text Length scanner with configurable ratio and absolute delta thresholds.
  • Added per-entry character limit support.
  • Added Duplicate scanner for duplicate keys and repeated source text.
  • Added Naming scanner for placeholder-style keys, keys with spaces, unnamespaced generic keys, and prefix rule violations.
  • Added Font Glyph scanner using TrueType/OpenType cmap parsing without external dependencies.
  • Added Unused Entry scanner using Asset Registry references and deep FText property inspection.

Hardcoded Text Scanner

  • Added scanning for Widget Blueprint TextBlock, RichTextBlock, EditableText, and EditableTextBox properties.
  • Added detection for common placeholder labels such as Text Block, Button, New Text, and TODO.
  • Added asset path, widget name, suspect text, reason, and severity output.

Inspector Panel

  • Added key, table, and namespace metadata.
  • Added source text display.
  • Added per-culture translation list with status badges and character deltas.
  • Added issue chips with severity, message, suggested fix, and per-issue Ignore action.
  • Added developer notes and context notes.
  • Added per-entry character limit field.
  • Added usage references with Open Asset actions.
  • Added actions for Mark Approved, Mark Needs Review, Ignore Issue, Copy Key, and Open Asset.

Review Workflow

  • Added review statuses: Unreviewed, Needs Review, Approved, Ignored, and Locked.
  • Added per-entry developer notes and context notes.
  • Added per-issue ignore flags.
  • Added persisted review data in Saved/LocCheck/ReviewData.json.

Reports

  • Added Markdown report export.
  • Added HTML report export.
  • Added CSV export.
  • Added Table Split Plan export for large table organization review.
  • Added Review Status Export for sprint planning and QA tracking.
  • Added timestamped filenames.
  • Added automatic output folder opening after export.

Settings

  • Added source culture and target culture configuration.
  • Added culture auto-detection from project localization files.
  • Added include and exclude content path settings.
  • Added text length threshold settings.
  • Added key naming convention rules and required prefixes.
  • Added scanner enable/disable toggles.
  • Added ignored namespaces for unused entry scanning.
  • Added score penalty multiplier.
  • Added report output directory setting.

Technical

  • Added editor-only C++ module named LocCheck.
  • Added Slate UI with custom dark theme, cards, badges, tables, scrollbars, and type scale.
  • Added progress dialog support through FScopedSlowTask, including cancellation.
  • Added localization archive fallback parsing when String Tables are not available through the runtime registry.
  • Added menu entry under Tools > ECal Studios > LocCheck — Localization QA.
  • Added keyboard shortcut Ctrl+Shift+L.
  • Added support for Unreal Engine 5.5, 5.6, and 5.7.
  • Added support for Windows, macOS, and Linux editor builds.

Copyright (c) 2026 ECal Studios. All Rights Reserved.