Dandori Battles
Dandori Battles in Pikmin 4 are slightly different to regular maps. The generator lists live in Maps/Madori/Ddb/
where there exist two sets of files: AP_{map}LVS_{type}.json
and AP_{map}_{type}.json
. The LVS
files are for the title screen Dandori Battles.
Most of the spawns in Dandori Battles are driven by PopPlaceActor
s. These are hidden entities that spawn other entities. Similar to ActorSpawner
s. I haven't mapped out the bytes of them yet, but all pertinent configuration is in the ActorSerializeParameter.PopPlace.Static
array. The ActorParameter
and AI
are always the same.
The second byte of PopPlace
is the GroupId
. This is how the game determines what the PopPlaceActor
should spawn, and how. These groups are actually defined in Carrot4/Core/VS/Pop/SettingTable/{type}/DT_Pop_{type}{something}.uasset
. An excerpt of one from Trial run (DDB_AI001):
{
"コチャッピー_リポップ_積み木の下": { // "Kochappi_Repop_Under the building blocks"
"StartTime": 0.0,
"EndTime": 240.0,
"IntervalType": "EVsPopIntervalType::Always",
"Interval": 40.0,
"IntervalJitter": 5.0,
"TargetGroupIds": [
2
],
"MaxPopObjectNum": 2,
"MaxPopObjectJitterNum": 0,
"PopObjectList": [],
"GenerateClassArray": [
{
"ObjectName": "BlueprintGeneratedClass'GKochappy_C'",
"ObjectPath": "/Game/Carrot4/Placeables/Teki/GKochappy.0"
}
],
"bIsExcludeSystemPopLimit": false,
"bIsForcePopBuriedPoint": false
}
}
Which defines Group ID 2 to spawn at most 2 kochappies every (40 ±5) seconds from the start of the battle. However this means DDB spawns are linked to DataTable files, and not just the actors in the AGL.
Presently, the UassetEncoder mangles the GenerateClassArray
to something unhelpful:
"GenerateClassArray": [
-7902643105768047879
],
Meaning we can't edit and re-encode the files to add more/edit the groups for each Dandori Battle, currently leaving them as only editable by using regular entities, ActorSpawners, or the existing groups.