“When” is significantly easier than “What” or “Why”, there’s probably 2 or 3 semesters of Computer Science to get to “What” and “Why” and even then every programming language is different on “How”, and “How” is often very important to the What and Why
Use the Child option when you want to automatically receive changes that ARK makes to the original item, AND if your new item should substitute for the original item in some ways (but not completely replace the original item). For instance, say you want to make a CookedFish item to add to the game in addition to the existing CookedMeat. If you make CookedFish a child of CookedMeat, and in the next version ARK boosts the food value of CookedMeat to 30 instead of 20, your CookedFish will also receive that boost (unless you changed the food value yourself). Note that not everything will work exactly the same: if you take a look at the requirements to make CookedMeatJerky, you will see that the CookedMeat requirement has a checkbox that says that the resource must be an exact match. That means your CookedFish won’t count to make CookedMeatJerky. It probably won’t work for the other cooking pot recipes either. But, if you look at the DinoSettings_Carnivore_Large_Carno blueprint, you will see that in the list of things the dinosaur will eat, it mentions that one of the Food Item Parents is “PrimalItemConsumable_CookedMeat”. This means that as long as CookedMeat is a parent of CookedFish, the Carno will eat your fish like it would eat meat.
When you use the Copy option, all of the variables are copied like they are right now. If a later ARK version changes CookedMeat, your CookedFish will not receive any of the changes unless you manually edit the blueprint yourself. Also, your CookedFish will copy CookedMeat’s parent: PrimalItemConsumableEatable. This means that if you try to feed it to a Carno, the Carno will not treat it as CookedMeat. In the “parent/child” relationship model, your Fish will be a sibling of Meat, instead of a child of Meat.
The existing classes Parent/Child settings also works for you as a modder. Say, for instance, you copied the meat to make fish, and now you want to make all the carnivores eat fish too. Since the carnivores won’t see your new fish items as meat, you could mod each carnivore individually… or you could see that the ARK devs set the DinoSettings_Carnivore_Large_Carno blueprint’s parent to the DinoSettings_Carnivore_Large blueprint… and that blueprint has DinoSettings_Carnivore as the parent. So, if you mod DinoSettings_Carnivore to add Fish, ALL of the Carnivores should start eating fish when appropriate *
*: note that you will need to set your mod’s PrimalGameData blueprint to remap your mod’s version of DinoSettings_Carnivore in place of the original blueprint so that when the game spawns dinos, they will use your mod’s version of DinoSettings_Carnivore instead of the default. Otherwise, you’d have to mod all of the DinoSettings classes to change their parent to the modded Carnivore, then mod all of the dinos to use the modded DinoSettings classes and so on.