First, make sure you’ve read the Intro Tutorial (https://forums.unrealengine.com/showthread.php?75357-Tutorial-Getting-Started-with-the-ARK-Dev-Kit!) and understand the Cooking & Upload process described there – now, onwards!
Note: we now have a video tutorial that goes through this process!
With ARK Dev Kit v185, we’ve added the capability for core data mods, that can override the core game data and load any other map you want (usually TheIsland). This tutorial will go over how to set one up and briefly touch on what you can do with them (which is nearly anything
First, please make sure you get & install the latest ARK Dev Kit Engine DLL’s from GitHub, and the latest ARK Dev Kit content (v185) from Steam.
Then, with the Dev Kit, open up this Mod Map, which we’ve included as an example (it’s really just a shell to cook the data):
\steamapps\common\ARKDevKit\Projects\ShooterGame\Content\Mods\GenericMod\GenericMod.umap
In that map, open the properties for that level’s WorldSettings: see how the value for “Primal Game Data Override” points to “Blueprint’/Game/Mods/GenericMod/PrimalGameData_BP_GenericMod.PrimalGameData_BP_GenericMod’”? This level is really just a stub to contain the data and cook it; the WorldSettings “Force Load Map” Property (set to TheIsland) tells this stub level to actually load TheIsland instead!
You can edit “Blueprint’/Game/Mods/GenericMod/PrimalGameData_BP_GenericMod.PrimalGameData_BP_GenericMod’” to have anything you want!
The only thing to remember is that you shouldn’t modify any EXISTING game classes directly, anything that’s outside of the Mod directory should remain read-only. Instead if you want to change any classes values, you should SUBCLASS them and move the subclass into the "Mods\GenericMod" folder to ensure it gets cooked, and then reference that (or add a completely new asset there).
This enables you to effectively override all of the core game data, including the blueprint class used for DefaultGameMode (which you can create as a subclass of Blueprint’/Game/PrimalEarth/CoreBlueprints/TestGameMode.TestGameMode’, or just use the one we’ve already subclassed at Blueprint’/Game/Mods/GenericMod/TestGameMode_GenericMod.TestGameMode_GenericMod’) – thus enabling you to completely alter the gamemode of TheIsland as you wish, including the PlayerPawn that it spawns, the PlayerController, the HUD and all associated UI’s, etc! Just remember: use blueprint subclasses or blueprint duplicates and put your new Blueprint Assets into the Mod folder – don’t modify the original classes because they WON’T be cooked into your mod!
Furthermore, here are a few special arrays that are fairly self explanatory that will allow you to override specific aspects of TheIsland’s world without having to cook a new map:
**In the "Blueprint’/Game/Mods/GenericMod/PrimalGameData_BP_GenericMod.PrimalGameData_BP_GenericMod’:
**Remap NPC: any “From” NPC class will instead be changed into a “To” NPC class. This lets you spawn, for example, your new SUPER Raptors instead of regular Raptors, if you wish. Or Brontos instead of Dilos.
Remap Supply Crates: This is important if you want custom items to be dropped via Supply Crates. Subclass or Duplicate to create new Supply Crates (put them in the Mod folder), and then remap the existing supply crates to instead use the new ones!
Remap Resource Components: Subclass or Duplicate the Harvesting Components, and then they’ll use yours instead of the original ones. Useful if you want custom resources or resource harvesting values.
Remap NPC Spawn Entries: Remap the NPC Spawn Entry objects to new ones for totally custom spawn values across The Island!
In the "Blueprint’/Game/Mods/GenericMod/PrimalGameData_BP_GenericMod.PrimalGameData_BP_GenericMod’:
(Quick path to overriding various aspects of the Engrams/Item Drops if you do not wish to create an new set of Engram classes – can be faster , for example, if you just want to limit Engrams to make a primitive-tier mod)
Exclude Item Indices: will ignore dropping the items matching these indices
Override Engram Entries: will let you override the costs, visibility, and levels of the different engrams
Dino Spawn Weight Multipliers: if you want to quickly alter the weight of various dino spawn probabilities
Note you can also just override the WorldSettings’ “Primal Game Data Override” on any ModMap as well, if you actually want a custom core data on your own map. You don’t need to use the “Force Load Map Name”, that’s just if you want to explicitly have a coredata-only mod that actually runs ‘TheIsland’ map.
And remember, dedicated servers can use your mod with the following process (we’ll try to streamline this as we proceed):
So as you can see now, thee GenericMod is actually that Primitive-Tier mod! Specifically the GameData blueprint sets it to use a Custom GameMode, and the custom GameMode overrides the Engram levels and what Engrams & Items are dropped (you’ll likely want to reset the modified values out of the Blueprint’/Game/Mods/GenericMod/TestGameMode_GenericMod.TestGameMode_GenericMod’ if you intend to use this as an example and want more than the primitive-tier items :).
That is just the tip of the iceberg – as described above you can override essentially every aspect of the game via the GameData, the sky is pretty much the limit depending on how far you want to take it
Soon we’ll post more info on how to use blueprint logic to make even more customized game modes, such as competitive team modes. For now, go forth, mod, and see how far you can take ARK into whole new realms of gameplay – you have a vast hungry audience waiting to play your content