Changes
All notable changes to this project will be documented in this file.
1.7.5 - 2025-10-22
- Initial UE 5.7 support.
1.7.4 - 2025-5-15
- Initial UE 5.6 support.
1.7.3 - 2024-12-25
- FIX Fix uninitialized struct fields which causes bogus errors.
1.7.2 - 2024-11-27
- New Better
FTextdeserialize handling.- See: Core Types - FText
1.7.1 - 2024-11-20
- BREAKING Empty
TArray/TSet/TMapproperties on write.- See: Breaking - 1.7.1
1.7.0 - 2024-10-2
- Initial UE 5.5 support.
- BREAKING Separate
DataConfig54.upluginandDataConfig.uplugin.- See: Breaking - 1.7.0
1.6.2 - 2024-5-18
- Misc Shipping configuration build fixes.
1.6.1 - 2024-4-28
- Fix compilation for UE 5.4.
1.6.0 - 2024-3-31
- BREAKING Removed
PredicateIsUStruct. Use struct handlers instead.- See: Breaking - 1.6.0
- NEW JSON Blueprint Library Nodes
- See: Extra - Blueprint Nodes
- Moved most editor extra samples to engine so it can be used at runtime.
- NEW Struct handlers added to serializer/deserializers.
- NEW JSON Writer improvements.
- Allows override config for inline object/arrays.
See: JSON - Override Config - Add float/int format strings to config.
- Allows override config for inline object/arrays.
- NEW UE core types serializers and deserializers.
- See: UE Core Types
- NEW Property reader/writer heuristic stack overflow detection.
- This avoids a hard crash when serializing running into infinite loop.
- FIX EditorConfig fixes.
- Now properly indented with tab just like UE code base.
1.5.0 - 2024-2-20
- BREAKING
EDcDataEntry::Nilrenamed toEDcDataType::None.- This is necessary to fix Mac builds.
- UE 5.4 support.
- NEW Optional support.
- See Optional
1.4.3 - 2023-8-27
- NEW Extra samples.
- CHANGE small QoL changes:
- Fix
FDcDiagnosticenum argument captures. - Better
FDcJsonReader::FinishRead()behavior. - Diagnostic message fixes.
- Relax JSONReader a bit to allow root object/array.
- Add
PredicateIsRootPropertyutil to select root property.
- Fix
1.4.2 - 2023-8-1
- UE 5.3 support.
1.4.1 - 2023-2-15
- Fix compilation on
!WITH_EDITORONLY_DATA.- See No MetaData.
- UE 5.2 support.
1.4.0 - 2022-11-17
Checkout blog post "DataConfig 1.4 Released with UE 5.1 Support".
- NEW Support for UE 5.1.
- See UE version upgrade.
- NEW Extra samples and docs.
- CHANGE Use separated
upluginfor UE4 and UE5.- See Integration
- FIX Core changes and fixes:
- Fail when
FPropertyWriter::WriteObjectReference()takes nullptr. See test:DataConfig.Core.Property.DiagNullObject - Additional check for class mismatch for default object deserialize handlers.
See test:
DataConfig.Core.Deserialize.DiagObjectClassMismatch
- Fail when
1.3.0 - 2022-6-20
Checkout blog post "DataConfig Core and JSON Asset 1.3 Release".
- CHANGE Property reader/writer improvement and fixes
- Allow reading
Array/Set/Mapand native array likeint arr[5]as root.
See: Non Class/Struct Root - Expand property with
ArrayDim > 1as array.
See: Property - Performance improvement by caching
FScript/Array/SetHelper
- Allow reading
- NEW Extra samples:
- FIX Core changes and fixes:
- Fix stale enum property fields serialization crash.
- Fix
TSet/TMapserialization crashes. - Fix soft object/class reference serialize to nil when it's not loaded.
- Fix pipe property class/object handlers.
- Fix
TObjectPtr<>serialization and deserialization. - Fix
PeekReadDataPtron class property. - Removed
FScopedStackedReader/FScopedStackedWriterusage. - Fix
HeuristicVerifyPointerdiagnostic. - Fix
DC_TRYshadowing variableRet. - JSON now support non string keyed
TMap<>as[{ "$key": <foo>, "$value": <bar> }].
See: JSON - Map - Fix
DcPropertyUtils::DcIsSubObjectProperty()
Now it only checks forCPF_InstancedReference. - Update screenshots to UE5.
Note that DataConfig still supports from 4.25 and onwards. - Update Property docs.
1.2.2 - 2022-4-5
- Support for UE 5.0.0
- Add
DebugGetRealPropertyValuefor double BP fields.
1.2.1 - 2022-2-23
- Support for UE5 Preview 1.
- FIX Compile fixes for examples on UE 4.25.
- FIX UE 4.25/4.26 editor extra BP serde automation test fixes.
- FIX
FDcAnsiJsonWriterwrites non ascii char to?when string contains escaping characters.FDcJsonWriterwas unaffected. This only happens to the ansi char writer and only when input has escapes like\t.
1.2.0 - 2022-1-26
Checkout blog post "Introducing DataConfig 1.2".
- NEW Serializer. Previously we only have deserializers.
- Serializer API mirrors deserializers.
- Builtin serialization and deserialization handlers are all roundtrip-able.
DcDiagnosticDeserialize -> DcDiagnosticSerDefor sharing diagnostics.DcDeserializeUtils -> DcSerDeUtilsfor sharing code.
- NEW MsgPack reader and writer.
- Full spec implemented, minus the "Timestamp extension type".
- Integrate and passes kawanet/msgpack-test-suite.
- NEW JSON writer.
- With
WIDECHAR/ANSICHARspecialization as JSON Reader. - Accept config to output pretty or condensed output.
- With
- NEW Builtin metas.
DcSkip- skip marked fieldsDcMsgPackBlob- marked TArray<>/Struct would be read as blob by MsgPack SerDe
- CHANGE Core type changes.
FDcReader/FDcWriterchanges.FDcStruct/ClassStatrenamed toFDcStruct/ClassAccess.ReadStruct/ClassRoot()renamed toReadStruct/ClassRootAccess.- Add
ReadStruct/ClassRoot()that takes no argument for common use cases. FDcReader::Coercion()now returns aFDcResult[Read/Write]Soft[Object/Class]ReferencetakesFSoftObjectPtr.- RTTI with
GetId()andCastById()
FDcSerializer/FDcDeserializerchanges.DcDiagnosticDeserialize->DcDiagnosticSerDefor sharing diagnostics.DcDeserializeUtils->DcSerDeUtilsfor sharing code.- Add handlers to read/write
Soft/Lazyreferences as is, without loading the object. - Implicit call
Properties.Push()before contextPrepare(). - Removed
FDcScopedPropertyin favor ofDcDeserializeUtils::RecursiveDeserialize()it's more concise.
FDcPropertyReader/FDcPropertyWriterchanges.- When reading class object keys any one with
$will be ignored.- previously only allow
$type,$path. - note that struct by default don't check for these. It's trivia to add the logic if you want to.
- previously only allow
- Add
FDcPropertyReader::PeekReadDataPtrmatches withPeekProperty
- When reading class object keys any one with
FDcJsonReaderchanges.- Remove object key length limit, which was 2048 and it's incorrect.
- Though
FNameis capped at 1024, which is a Unreal Engine limit.
- Though
- Fix
ReadName()which previously would fail. - Fix quoted string parsing/escaping in
ParseQuotedString
- Remove object key length limit, which was 2048 and it's incorrect.
- Add
EDcDataEntry::Extension. - Add
FDcPropertyDatumtemplate constructor to directly construct one from aFStruct*. FPrettyPrintWriternow print blobs with hash, previously it's pointer value.DcAutomationUtils::SerializeIntoJson/DeserializeIntoJson->SerializeInto/DeserializeFromas we're supporting other formats.- Add
HeuristicVerifyPointerto check common magic invalid pointers.
- Misc fixes and QOL improvements.
- Fixed linux build. Now the headless program target cross compiles and runs under wsl.
- Serializer/Deserializer now also report diagnostics.
- Better Json reader diagnostic formatting. Now it clamps long lines properly.
- Add
DataConfigEditorExtra.DcCoreTestsCommandletas tests runner. - Add performance benchmark.
- Restructured DataConfig book for topics on serializer and MsgPack.
1.1.1 - 2021-10-6
- Support for UE 4.27.
- Support for UE 5.
1.1.0 - 2021-4-24
- Integrate nst/JSONTestSuite. Now
DcJSONParserpass most of them. Skipped tests are also documented. FDcAnsiJsonReadernow detect and convert non ASCII UTF8 characters. Previously these characters are dropped.- Headless test runner pass along parameters to tests, for example
DataConfigHeadless-Win64-Debug.exe Parsing -- n_array_just_minus