Description

The presence of a colon ':' character in the category string of a UPROPERTY will cause iterative cooking to generate the following error:
Found unparsable ini setting Windows.EditorPerProjectUserSettings:DetailCategories:EQSTestingPawn_C.Character Movement: Walking:0 for platform mac, invalidating cook.
The above is one such example from UCharacterMovementComponent on a mac build, though it would happen regardless of component or platform.

The cause appears to be that UCookOnTheFlyServer::GetCookedIniVersionStrings assumes that each string will be delimited with exactly 3 colons as follows:
FileName:SectionName:ValueName:ValueIndex

This assumption is broken by UPROPERTY categories that have a colon in their name, such as found in UCharacterMovementComponent::MaxStepHeight which is declared as:

/** Maximum height character can step up */
UPROPERTY(Category="Character Movement: Walking", EditAnywhere, BlueprintReadWrite, meta=(ClampMin="0", UIMin="0"))
float MaxStepHeight;

Steps to Reproduce

Include a colon in a uproperty and see if iterative cookign works.

Have Comments or More Details?

There's no existing public thread on this issue, so head over to Questions & Answers just mention UE-40623 in the post.

1
Login to Vote

Fixed
ComponentUE - Foundation - Core - Cooker
Affects Versions4.14
Target Fix4.16
Fix Commit3254162
Main Commit3295859
Release Commit3390270
CreatedJan 13, 2017
ResolvedJan 23, 2017
UpdatedJun 23, 2018