Dandori Battles

From Pikmin Technical Knowledge Base
Revision as of 23:00, 20 July 2024 by Noodl (talk | contribs) (DDBs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search


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 PopPlaceActors. These are hidden entities that spawn other entities. Similar to ActorSpawners. 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.