Editing Enemy Duplication Tutorial (WIP)

Jump to navigation Jump to search

Warning: You are not logged in. Your IP address will be publicly visible if you make any edits. If you log in or create an account, your edits will be attributed to your username, along with other benefits.

The edit can be undone. Please check the comparison below to verify that this is what you want to do, and then save the changes below to finish undoing the edit.

Latest revision Your text
Line 109: Line 109:
 
Search for "18043853737998893666" in the manifest.json and view the example image below
 
Search for "18043853737998893666" in the manifest.json and view the example image below
  
[[https://pikmintkb.com/wiki/File:Manifestdepen.png Dodoro Dependencies]]
 
  
The main piece we want to extract from this data are the dependencies themselves.
 
 
*These dependencies are all unique chunk id's that contain a related file to make Dodoro spawn, be it animations, property files, blueprints, materials, ECT
 
 
Copy the dependencies onto a notepad and copy the export objects value as well
 
 
        "exportObjects": 30,
 
        "dependencies": [
 
          17407843045982553768,
 
          17019850560319771916,
 
          8956011016958247193,
 
          3799598349955356934,
 
          102093049896583651,
 
          12001004102747703746,
 
          15693382491084914965,
 
          12374467043170984086,
 
          6020603924532580229,
 
          3336407754111646462,
 
          9602145455739581087,
 
          3978396927183273670,
 
          5261298423794478019,
 
          3499714614441730147,
 
          11699210257878842607,
 
          7210944756549394725,
 
          4085509499119183368,
 
          6854968642959447972,
 
          7585572468056942039,
 
          9158590446073112853,
 
          17861894223612263101,
 
          8308542404112000232,
 
          7786631499943187576
 
 
After having done that, navigate to your replaced chunk id file, for this example it will be
 
 
    {
 
      "Path": "/Carrot4/Content/Carrot4/Placeables/Teki/GDadoro.uasset",
 
      "ChunkId": "beba578ec3e0eb2800000002"
 
    },
 
 
*Convert the chunk id into a decimal and repeat the process from before to find this item's dependencies
 
 
Inside the dependencies section, paste the dependencies from GDodoro into GDadoro and paste the export object value as well.
 
 
Save your manifest.json after making your edits and copying the dependencies onto your new enemy.
 
 
=Hard References (GDodoroEgg)=
 
 
A hard reference is a little endian formed chunk id reference seen in some blueprints for eggs and spawners
 
 
this hard reference calls directly from the manifest.json file registry
 
 
For this example we will be using the blueprint for GDodoroEgg
 
 
*Retrieve the file located in \Placeables\Objects\Egg\GDodoroEgg.uasset
 
 
*Decompile this file using [https://pikmintkb.com/wiki/P4UassetEditor P4UassetEditor] and change the string Game/Carrot4/Placeables/Teki/GDodoro to Game/Carrot4/Placeables/Teki/GDadoro
 
 
*After having compiled this file, open the file in a hex editor and navigate to the offset for the GDodoro Blueprint, I will include a hard reference list for GDodoroEgg below.
 
 
0x3964 Egg Break Anim
 
0x3A68 Egg Shake Anim
 
 
0x3978 DT_AudioData_DodoroEgg
 
0x398C DT_AudioFlag_DodoroEggAI
 
 
0x39A0 BP_CameraShake_Small
 
0x3A2C ABP_DodoroEgg
 
 
0x3A7C Hikari Station
 
0x3A90 GDodoro Blueprint
 
0x3A18 GTekiBase Blueprint
 
0x3A40 GBulletDodoroCurseBall Blueprint
 
 
0x39B4 DT_MaterialPA_DodoroEgg00
 
0x39F0 SK_stg_DodoroEgg_Shadow
 
 
0x39C8 PS_eft_Dodoro_Appear00
 
0x39DC DT_EftLoadDodoro
 
0x3A04 PS_eft_DodoroEgg_Hit00
 
 
*at 0x3A90, you will see a little endian formatted ID, this is a hard reference, and thus is matching with the big endian chunk ID's seen in the manifest.json
 
 
Simply convert your new ID to little endian and paste it in the existing hex, for this example we used "beba578ec3e0eb28"
 
 
*"beba578ec3e0eb28" converted to little endian is "28EBE0C38E57BABE".
 
 
Paste that in and save your DodoroEgg Blueprint.
 
 
=Conclusion=
 
 
After you have made all the appropriate modification, you will now have a unique Smokey Progg spawn from the Smokey Progg Egg Object and you will still be able to spawn the OG Smokey Progg without the egg
 
 
Having a new enemy duplicated, you can now change the model to make a unique model using the same methods, you can change ANY property in the blueprint for GDadoro.uasset and it will be registered with its own unique stats, models, ect
 
 
Thanks for reading and if you got this far in without exploding, props to you, though our research is far from over (read below)
 
  
 
==Basic Problems + Dilemma + Soft References==
 
==Basic Problems + Dilemma + Soft References==
Line 218: Line 122:
  
 
Using these strings which are referenced in the blueprint files of duplicate enemies will not automatically help new enemies to spawn in via the soft reference method (generator files, zukan bp, ECT), It is currently unknown how to get additional soft references to work, feel free to add onto this article should you put time into researching the issue.
 
Using these strings which are referenced in the blueprint files of duplicate enemies will not automatically help new enemies to spawn in via the soft reference method (generator files, zukan bp, ECT), It is currently unknown how to get additional soft references to work, feel free to add onto this article should you put time into researching the issue.
 
Having soft references would allow us to spawn the enemies wherever we want, without having to sacrifice eggs and other spawner objects and completely skip having to use hard references at all.
 
 
*-- Sincerely, Lilith H
 

Please note that all contributions to Pikmin Technical Knowledge Base are considered to be released under the Creative Commons Attribution-ShareAlike (see Pikmin Technical Knowledge Base:Copyrights for details). If you do not want your writing to be edited mercilessly and redistributed at will, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource. Do not submit copyrighted work without permission!

To edit this page, please answer the question that appears below (more info):

Cancel Editing help (opens in new window)