Announcement

Collapse
No announcement yet.

Tutorial: Creating a core-data Mod (Not a Map, just a Mod :)

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

    Tutorial: Creating a core-data Mod (Not a Map, just a Mod :)

    First, make sure you've read the Intro Tutorial (https://forums.unrealengine.com/show...he-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):
    http://steamcommunity.com/sharedfile.../?id=478227612

    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
    Last edited by StudioWildcard; 07-16-2015, 06:23 PM.

    #2
    Got it, done it. I also made new level, copied blueprints by hand, linked them up to my world and when I click play I crash HELP Meeeee :- )

    Ok for nobss like me, u need to add PostProcess stuff in to there too so ur game wont crash...
    Last edited by Dariusz1989; 07-09-2015, 12:08 PM.

    Comment


      #3
      #vote sticky

      Comment


        #4
        stickied Happy Adventuring
        Twitter - @TheKRushin

        Feel free to ask questions and come learn to be an #UnrealDev

        How to report a Bug

        Comment


          #5
          To test it, what you'd want to do is open TheIsland, set the Primal Game Data Override, and the PIE. That works fine for me -- what is your exact process?

          Comment


            #6
            A step by step video tutorial would be great, i hope that will be showcased on the Twitch stream today.
            DinoOverhaul X CLICK HERE

            Comment


              #7
              How long does the upload process usually take? Mine just keeps hanging forever at "Loading Steam API...OK."

              Comment


                #8
                Should only take a few moments, it's surprising that it'd hang for any significant length of time -- can you try shutting down your Steam Client before you run the Dev Kit?

                Comment


                  #9
                  Originally posted by StudioWildcard View Post
                  Should only take a few moments, it's surprising that it'd hang for any significant length of time -- can you try shutting down your Steam Client before you run the Dev Kit?
                  Trying that right now, but it doesn't look like its making a difference. I had warnings during the cooking, maybe thats why? I'm very confused on how to cook out a custom version of TheIsland PLUS custom game mechanic mods right now, and not sure how that would work. I've read the whole post and still am quite confused as to how I would go about this

                  Comment


                    #10
                    If you want a custom version of TheIsland AND new mechanics, then what you're gonna wanna do is move all the contents of Maps\TheIslandSubmaps (I think you can just move the whole directory) into the Mods\YourMod folder, and in the WorldSettings of TheIsland.umap, set a subclass of the PrimalGameData (which you should put in Mods\YourMod) into the "Primal Game Data Override" property. Then cook your Mod, with the map TheIsland in the "Maps to cook" textbox. It'll be a verrrry long cook because TheIsland is quite huge, but it should eventually finish. Anyhow, the Steam Upload should give more output than that either way, so it's very strange that it would hang for some reason. We'll see if we can reproduce that.

                    However, consider what is it about TheIsland that you want to change necessarily, would it really require recooking TheIsland itself? For example, if you just want farmable Cannabis seeds, those could be droppable or harvestable via additions to the PrimalGameData Override, and not actually require modifying/recooking TheIsland itself?

                    -Drake

                    Comment


                      #11
                      Originally posted by StudioWildcard View Post
                      If you want a custom version of TheIsland AND new mechanics, then what you're gonna wanna do is move all the contents of Maps\TheIslandSubmaps (I think you can just move the whole directory) into the Mods\YourMod folder, and in the WorldSettings of TheIsland.umap, set a subclass of the PrimalGameData (which you should put in Mods\YourMod) into the "Primal Game Data Override" property. Then cook your Mod, with the map TheIsland in the "Maps to cook" textbox. It'll be a verrrry long cook because TheIsland is quite huge, but it should eventually finish. Anyhow, the Steam Upload should give more output than that either way, so it's very strange that it would hang for some reason. We'll see if we can reproduce that.

                      However, consider what is it about TheIsland that you want to change necessarily, would it really require recooking TheIsland itself? For example, if you just want farmable Cannabis seeds, those could be droppable or harvestable via additions to the PrimalGameData Override, and not actually require modifying/recooking TheIsland itself?

                      -Drake
                      Thank you, this helps me out tremendously! I can't get over how much support you guys are giving to your customer base, I feel like we are being pampered here!

                      Well let me ask you this about the recooking aspect; I had to manually paint in the cannabis plants onto each sublevel, so therefore wouldn't I need to cook out each of those sublevels? Correct me if I am wrong please, I might be missing something.

                      Also, I have a firewall on my router and port 27015 forwarded for steam, could that be the issue why its not uploading and just hanging there? In addition to that, I am also running a dedi server of Ark on port 27017 (doubt that would be the problem).
                      Last edited by HeatHass; 07-09-2015, 02:18 PM. Reason: Update

                      Comment


                        #12
                        Originally posted by sinarisinestro
                        Alright, I set it up correctly to cook out, and it cooked out fine, but now its stuck hanging at the Loading Steam API...OK again. Can confirm I do NOT see ANY internet activity from UE4 in my taskmanager.

                        Note: I did try closing out of steam before loading up the dev kit and uploading. Also what port is the Dev Kit using to try to upload? If I have the port then maybe I can forward it and that will solve the issue.

                        UPDATE: Fixed! I asked in the UE4 Twitch stream chat cause why not, and someone informed me that I had to run the SteamCMD to authenticate steamguard, and voila, fixed!

                        But now I'm getting this error when uploading (not sure if its preventing it from uploading successfully or not yet);

                        [ATTACH=CONFIG]47127[/ATTACH]
                        Hmm odd. Can I get a copy of your SinestrosRealmMod.vdf?

                        Comment


                          #13
                          Originally posted by BorisDos View Post
                          Hmm odd. Can I get a copy of your SinestrosRealmMod.vdf?
                          New error this time after shortening the description (thats what fixed the other error it looks like, either that or removing " from the description/changelog)

                          Click image for larger version

Name:	ADK_Cook_Error.png
Views:	1
Size:	17.0 KB
ID:	1081429

                          Comment


                            #14
                            Ah Sinsarisinestro, unfortunately your cooked map exceeds Steam's current Workshop Item Limit of 500 MB

                            We'll see if they can raise it to 2GB for our needs, but until then, your best bet may be to try to achieve your goals through a PrimalGameData Mod, or use a reduced version of the map...

                            Hopefully Valve will help us with this soon

                            Cheers,
                            Drake

                            Comment


                              #15
                              Originally posted by StudioWildcard View Post
                              Ah Sinsarisinestro, unfortunately your cooked map exceeds Steam's current Workshop Item Limit of 500 MB

                              We'll see if they can raise it to 2GB for our needs, but until then, your best bet may be to try to achieve your goals through a PrimalGameData Mod, or use a reduced version of the map...

                              Hopefully Valve will help us with this soon

                              Cheers,
                              Drake
                              Hm alright. Not sure how I would use a reduced version of the map. Gonna brainstorm I guess! Thanks for the help, and could we get a sticky/announcement when steam raises the file size cap? Please and thank you.

                              If it will help I can contact steam and pester them about raising it too :P
                              Last edited by HeatHass; 07-09-2015, 03:44 PM.

                              Comment

                              Working...
                              X