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 fields
- DcMsgPackBlob- marked TArray<>/Struct would be read as blob by MsgPack SerDe
 
- CHANGE Core type changes.
- FDcReader/FDcWriterchanges.- FDcStruct/ClassStatrenamed to- FDcStruct/ClassAccess.
- ReadStruct/ClassRoot()renamed to- ReadStruct/ClassRootAccess.
- AddReadStruct/ClassRoot()that takes no argument for common use cases.
- FDcReader::Coercion()now returns a- FDcResult
- [Read/Write]Soft[Object/Class]Referencetakes- FSoftObjectPtr.
- 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