FOnline Engine
Current 2026.1.58-dev GitHub
Documentation Docs/en/reference/text-format/validation.md

Text Format Validation

Generated reference. Do not edit directly. Update BuildTools/TextFormatInterface.json, then run python BuildTools/docs_text_format.py --write.

Index Syntax Languages Prototype text Runtime Validation Canonical JSON Guide
Stable ID Rule Requirement Why Source
text-format.validation.malformed-raw Malformed raw text A raw source with a missing required field or unterminated value fails the text bake even if other entries parsed successfully. LoadFromString reports aggregate failure and TextBaker rejects the complete source file. Source/Common/TextPack.cpp, Source/Tools/TextBaker.cpp, Source/Tests/Test_TextPack.cpp
text-format.validation.empty-languages Empty BakeLanguages TextBaker, ProtoTextBaker, and TextPack normalization reject an empty Baking.BakeLanguages list. No deterministic base language can be selected. Source/Tools/TextBaker.cpp, Source/Tools/ProtoTextBaker.cpp, Source/Common/TextPack.cpp
text-format.validation.raw-unsupported-warning Unsupported raw language warning Unsupported raw language files produce a warning and no output for that language. Projects can keep unrelated sources in a broader input tree without silently publishing them. Source/Tools/TextBaker.cpp
text-format.validation.proto-token-count Prototype key token count A prototype $Text key with more than Language, Key2, and Key3 after $Text fails baking. TextPackKey has no additional key field. Source/Tools/ProtoTextBaker.cpp, Source/Tests/Test_ProtoTextBaker.cpp
text-format.validation.proto-intersection Prototype output intersection Duplicate complete keys produced by different prototype type sources in one output pack fail baking. The generated pack must not depend on iteration order across type catalogs. Source/Tools/ProtoTextBaker.cpp, Source/Tests/Test_ProtoTextBaker.cpp
text-format.validation.binary-payload Bounded binary decoding and failed-load state Bound binary counts/lengths before allocation; invalid data raises DataReadingException. Sort on successful loads only; failures do not sort or roll back. Dirty reads reject; successful retries sort retained entries. Sort errors propagate. Empty packs and trailing bytes remain accepted. Sort explicitly after successful decoding; an earlier exception preserves the original load error. Failed partial loads need not be readable. Source/Common/TextPack.cpp, Source/Tests/Test_TextPack.cpp

Validation commands

python BuildTools\docs_text_format.py --check
python -m unittest BuildTools.tests.test_docs_text_format
cmake --build <build-dir> --config RelWithDebInfo --target RunUnitTests

In an embedding project, finish with its resource bake, localization guards, and a visible client check for language switching and formatted text that the project itself owns.

Start typing to search.