User Tag List

Results 1 to 40 of 567

Thread: 5/9: ARK Dev Kit v257.45 has been posted to the Epic Launcher!

Threaded View

  1. #1
    Unreal Engine Partner
    Join Date
    Mar 2015

    Post 5/9: ARK Dev Kit v257.45 has been posted to the Epic Launcher!

    Hey all,

    The ARK Dev Kit v257.45 has been posted to the Epic Launcher!

    This version has major functional additions useful for Mods, including PrimalItem "CustomItemDatas" finally fully working, with save and load support. Here are two examples of it in use in Blueprint:

    For storing custom "meta" Player profile Data in the "Implant", and then processing this data to generate a dynamic description text: Blueprint'/Game/PrimalEarth/CoreBlueprints/Items/Notes/PrimalItem_StartingNote.PrimalItem_StartingNote'

    For storing and retrieving an entire Dino serialization (via a Byte Array Object) in the Bee Hive!!!:


    With this functionality, you can write, network, retrieve, and process any custom data in your PrimalItems. Including storing entire Dinos or Object serializations if you are inclined (such as a "Dino Item Trading" Pokeball style Mod). Just remember, you must fill in a "blank" array literal when making the CustomItemData struct, as you'll see in our examples (kind of annoying Blueprint limitation which we'll change later). (Similar DinoData functionality is used to save the DinoData for "Cloning" within the Cloning Chamber: Blueprint'/Game/PrimalEarth/Structures/TekTier/TekCloningChamber.TekCloningChamber' )

    Furthermore, Base Mods and TC's can now specify a custom PrimalPlayerData Blueprint class, as you'll see BASE_PrimalGameData now does. This PrimalPlayerDataBP (in our case ) gets a bunch of events for when a player spawns or creates a new character, and can have its own SaveGame variables. It is effectively the "meta" profile data for an individual "account" on your server, and you can use it to generate and save persistent gameplay information for that player's account which that you can apply when they create a character, or on login, to do whatever you want! We use this in ARK to store the "Ascension" meta information, for example, and a record of what Bosses the player has defeated, all done in Blueprint. Note that a new PrimalPlayerData instance is generated whenever a player creates a "NEW" Survivor, of course!

    Also, you'll notice more global lighting editable tweak options (such as "SM5SKyLightMultiplier" and "SM5DirectionalLightMultiplier") in the WorldSettings, which you can preview in "real-time" by running the "reattachlighting" co
    nsole command when you change the values

    Finally, note that you can now specify variables to be ReplicatedInitial, and then still have them replicate when changed via the "MulticastProperty" option in the variable's Set action (may not work for all Variable types, but works for most). Finally, as a new feature, any "pre-placed" Map Actor can have Multicast Functions called on it, even the Actor itself is NOT Replicated!

    Have fun, and happy modding!!!!

    -Jeremy Stieglitz

    The ARK Dev Kit v255.5 has been posted to the Epic Launcher! In addition to the new content's BP functionality, v255.5 also fixes Blueprint Execution Traces to properly report the callstacks during Blueprint debugging.

    v254.x includes the latest released content, such as TekTier and the new Dinos, which includes powerful new Buff features and functions (highly recommend looking at the Tek Rifle and Tek Saddle Buff, as well as perhaps the other Tek Buffs). Also, there's a new Hair system, and hairstyle meshes can be added by Mods via "AdditionalHeadHairStyleDefinitions" and "AdditionalFacialHairStyleDefinitions". I will upload the source model files for our initial hairstyles soon, so you can see how we set ours up if you wish to make them dynamically growable like ours!

    Furthermore, Items can now store, write and read, and initialize with arbritrary Custom Data arrays -- which automatically replicate to clients -- using these functions:

    TArray<FCustomItemData> CustomItemDatas;

    UFUNCTION(BlueprintCallable, Category = "Item")
    bool GetCustomItemData(FName CustomDataName, FCustomItemData& OutData);

    UFUNCTION(BlueprintCallable, Category = "Item")
    void SetCustomItemData(const FCustomItemData& InData);

    uint32 bUseBPGetItemNetInfo : 1;

    void BPGetItemNetInfo(); //you can optionally use this if desired to modify an in-game Item Object's customdata in preparation for immediate replication. However, be careful to not do toooo much processing here, as this function is called very often.

    uint32 bUseBPInitFromItemNetInfo : 1;

    void BPInitFromItemNetInfo(); //you can use this to handle "initializing" the object from its NetInfo as the Item Object is being reconstructed on the client and server. Specifically, if you wish to do any custom processing from the Custom Data array, this may be an ideal place to interpret the data.

    uint32 bUseBPInitializeItem : 1;

    void BPItemBroken(); //this is called immediately before an item actually Initializes into the World. You can do any final processing based on customdata here before it exists in the world, sets up its in-game mesh attachments, etc.

    v253.0 has powerful new functionality associated with the 5 new Dino's and new Camera weapon. But even more importantly, it has the first round of community-requested features added, listed here:

    (Also note that in 253.86, in addition to a mod-stackable PrimalGameData LoadedWorld event, PrimalGameData now has a TickedWorld event as well! You can use the World object as a context for IsServer() checking too if you want to only do server-side logic there.)

    ComplexMinded can help go into these new features in more detail if you get in touch with him on Discord. Good luck and happy ARK modding!!! Each DevKit major update going forward will add/improve more community-requested features (the ones we agree with in any case ), so keep 'em coming!

    This build includes all of the v252 content, and some of the notable DevKit functional changes to this build include:
    * Action Wheel entries can now have a "Category" integer specified, and you can also have a wheel entry navigate between Category entries by calling ShooterPlayerController.SetMultiUseWheelCategory() on the Client's BPClientDoMultiUse. See the Moschops as an example of this. You can also specify Colors for enabled Action Wheel Entries now too. Using Categories and Colors allows much more organization of complex Action Wheel entries for your Dino and Structure Blueprints, and for example we're looking forward to reorganizing all the AI commands under this new system.

    * Extra Option to "stream" in "Far" map sublevels, for large memory and performance gains (but reduced visual quality & draw distance).
    --- To improve performance, all levels with "Far" in the name will now stream dynamically (based on their Level Bounds and a distance of 40000 units) unless the end-user has set "" to true in their Options. So FYI on your custom maps, if you really want a sublevel to always be loaded, don't put "Far" in its name!

    * There is a new dino base BP " Blueprint'/Game/PrimalEarth/CoreBlueprints/Dino_Character_BP_Nocturnal.Dino_Character_BP_Nocturnal' ", which can be inherited from to implement Nocturnal Dino functionality ala the Megalosaurus.

    The ARK Dev Kit v248.9 has been posted to the Epic Launcher!

    The big change in v248 is support for Procedural ARK Generation, and indeed custom Procedura ARK Generator Blueprints which end-users can use!

    To try out the Procedural ARK Generator in the DevKit, open the "PGARK" level, and then select the "SimpleTerrain" Actor in the level, and check the "Generate" property on that actor in the map (to do it again, click "Clear" and click "Generate" again). Make sure your Preview viewport is in "Real-Time" view mode in order for this to work. To use a larger terrain preview size (takes longer to generate), set the "Preview Size" property of the Terrain Actor to 6144 (that matches the in-game terrain size).

    To test out your customized Procedural Generator Blueprint, set the "Terrain Generator Template" property of the TerrainActor that is placed within the level to "Blueprint'/Game/Mods/TerrainGeneratorOverride/Simple_TerrainGenerator_BP_Child.Simple_TerrainGenerator_BP_Child'", and then you can edit/add whatever values you like within "Blueprint'/Game/Mods/TerrainGeneratorOverride/Simple_TerrainGenerator_BP_Child.Simple_TerrainGenerator_BP_Child'" and "Blueprint'/Game/PrimalEarth/CoreBlueprints/TerrainGenerators/SimpleTerrain_BP.SimpleTerrain_BP'".

    For example, in my Super Rocks Blueprint'/Game/Mods/TerrainGeneratorOverride/Simple_TerrainGenerator_BP_Child.Simple_TerrainGenerator_BP_Child' (end result here:, I just added a high-probability large-scaled "Ultimate Rock 5" foliage to the "Grass" entities array ("Grass" and "Trees" entities arrays are for Grasslands, the rest are obviously named). To then experience your values in-gameplay (rather than just viewport preview), you can save it in the map and try PIE, or load into the map in standalone play via "Engine\Binaries\Win64\UE4Editor.exe ShooterGame -game".

    Once you're happy with the results, to Cook your custom TerainActor & Generator, just cook "TerrainGeneratorOverride" as a 'Cook Island Extension', like so:
    Name:  upload.jpg
Views: 13915
Size:  148.5 KB

    Then to actually Use it in-game via Steam Workshop, just activate it like any other Map Extension (as described here ).

    Any new Editable float, integer, or vector variables that you add to your custom TerrainActor or TerrainGenerator can automatically be dynamically-modified by the end-user via their INI's "PGTerrainPropertiesString" string (as further described here: ). So you can make your Generator BP highly customizable by the end-user (even though you can't modify the UI for that, yet, they can change all the values via the INI string!).

    Note that Blueprint'/Game/Mods/TerrainGeneratorOverride/Simple_TerrainGenerator_BP_Child.Simple_TerrainGenerator_BP_Child' is a Child of the base Terrain Generator Blueprint (Blueprint'/Game/PrimalEarth/CoreBlueprints/TerrainGenerators/Simple_TerrainGenerator_BP.Simple_TerrainGenerator_BP'), so you can override its individual functions such as Paint() or Decorate() in order to apply more customized logic (you can copy/paste the contents of those functions from the base BP, or reparent it to a duplicate of the base BP and modify that directly -- the generator's per-pixel logic is almost 100% blueprint driven so you can really create entirely unique generation rules if you're ambitious!). To simply alter what entities spawn and where, however, can be done via the many obviously-named Entity/Spawner/Biome Arrays within "Blueprint'/Game/Mods/TerrainGeneratorOverride/Simple_TerrainGenerator_BP_Child.Simple_TerrainGenerator_BP_Child'".

    We also recommend that you give yourself a unique number for the "Version" property in Blueprint'/Game/Mods/TerrainGeneratorOverride/Simple_TerrainGenerator_BP_Child.Simple_TerrainGenerator_BP_Child', such as 3493441 or whatnot that is unique to you, and increment it by one each time you release an update for your generator. This will clear existing savegames for your generator, and force the map to discard old \GeneratedMapCache cached files -- very useful because any significant changes to the generator would likely crash old savegames/cache data.

    Have fun, we're looking forward to seeing what better looking, better-populated, and even better dynamically generated ARK's that modders can devise using this system!

    IMPORTANT Fix for macros on 248.7 after Epic Launcher installation. Download the file below and place into:

    Note: due to changes in v247, there will be a long one-time shader compilation & texture rebuild that can take a very long time. This will only occur once, and will be eliminated upon this content being deployed via the Epic Launcher.

    v247.8 New changes include:
    * Mods' PrimalGameDatas now have stackable "TheNPCSpawnEntriesContainerAdditions" array, which can be used to Add Dino Spawns to specific Spawners!
    * Mods' PrimalGameDatas now have stackable "AdditionalDinoEntries" array, which can be used to add Dino Entries to correspond to new Dino classes!
    * Mods' PrimalGameDatas now have stackable "AdditionalBuffPostProcessEffects" array, which can be used to add new buff postprocess materials for your Mod's Buff classes to use!
    * Mods' PrimalGameDatas now have stackable "RemoveEngramBlueprintClasses" array, which can be used for your Mod to remove pre-existing Engram Blueprints (if you want to, for example, remove base-game Engrams)!

    All latest PC content thru v247!
    ScorchedEarth content!! I highly recommend reviewing all of the Dino Blueprint logics. There are massive amounts of new features for dino behaviors and huge amounts of new general Blueprint functions & variables, as well as new Buff & Weapon functionalities. The ScorchedEarth map itself also has some very interesting Blueprint functionality that interacts with a new Blueprint DayCycleManager.
    TheCenter and TheIsland map updates
    Note: Any reuploads of the ScorchedEarth map itself to Steam Workshop will necessarily be banned. We're providing the ScorchedEarth map for learning purposes and for modders to re-use its assets in other Mods.

    v245.9 New changes include:

    PrimalGameData Mod functionality new properties:
    RemoveEngramBlueprintClasses: Mods can now easily Remove Engrams from the game by adding them to the "Remove Engram Blueprint Classes" array in the Mod's PrimalGameData. This is useful for Mods that wish to, say, remove certain original Engrams for balancing reasons. This array automatically stacks between Mods.

    TheNPCSpawnEntriesContainerAdditions: Dinosaur spawn entries can now be ADDED to the map's NPC Spawners without having to completely override the NPC Spawners. This allows stackable Mods to automatically combine to add more kinds of Dinosaur spawns into the map. This is done via the "NPCSpawn Entries Container Additions" array in the Mod's PrimalGameData, and here's an example of it in-use:

    Mods will now also automatically cook any NEW assets which they reference, regardless of whether the assets are located in the Mod directory. Note that this only works assets that you ADD to the SotF Dev Kit, not any assets which are already there by default.

    Lotta new Item Properties:

    int32 CraftingGiveItemCount;

    int32 CraftingGivesItemQuantityOverride;

    UFUNCTION(BlueprintCallable, Category = "Item")
    void BPGetItemID(int32& ItemID1, int32& ItemID2);

    UFUNCTION(BlueprintCallable, Category = "Item")
    bool BPMatchesItemID(int32 ItemID1, int32 ItemID2);

    int32 BlueprintAllowMaxCraftings; //limits the number of times you can craft a blueprint, after which the blueprint is automatically destroyed

    Also have a look at these Blueprints for examples of neat new functionality:

    This is an awesome example of what you can do with custom structure interactions via Blueprint, the entire Industrial Grinder functionality is done 100% thru Blueprint:

    And the Fishing Rod is also done 100% thru Blueprint!

    The Allosaurus' Pack Buff logic is done entirely thru Blueprint:

    And Flyers now have the option to allow landing on Water:

    7/6 ARK Dev Kit v243:
    Have a look at an overview of the many changes here:

    6/11: 242:
    Be sure to have a look at the new Persistent Buff/Disease system (there is capability to save & modify custom metadata variables with the Diseases for long-term multi-stage effects, I'll work up an example soon) ala Blueprint'/Game/PrimalEarth/CoreBlueprints/Buffs/Buff_SwampFever.Buff_SwampFever' and Blueprint'/Game/PrimalEarth/CoreBlueprints/Items/Consumables/BaseBPs/PrimalItemConsumable_CureLow.PrimalItemConsumable_CureLow', as well as the Buff-driven capabilities of the Leech (Blueprint'/Game/PrimalEarth/CoreBlueprints/Buffs/Buff_Leech.Buff_Leech', Blueprint'/Game/PrimalEarth/CoreBlueprints/Buffs/Buff_Leech_Diseased.Buff_Leech_Diseased'
    Blueprint'/Game/PrimalEarth/Dinos/Leech/Leech_Character.Leech_Character'), the complete Blueprint-driven AI states of the Dragon Boss (including spline following patterns and Blueprint state attack/condition logic), and the multi-Seat setup of the Diplodocus!

    Be sure to have a look at the Lystrosaurus to see how to use Blueprint Multi-use Entries for customized interactions with a PrimalDinoCharacter, as well as the Bola to see how you can extend Weapon functionality and Blueprint and do more with Buffs in Blueprint, including overriding whether they can be applied and attaching additional visual effects and even interacting with the Bola buff through Multi-use entries (Buffs can add more multi-use entries to a character)! Also note, "Override Exact Class Crafting Requirement" can now be set on Items if you want that Child class to explicitly force itself to allow being used in place of a Parent Class crafting requirement (i.e. Meat classes, though in v240.6 we have now defaulted Meat to have this enabled by default so you actually shouldn't need to update your Mods).

    Have a look at this new Blueprint to see how the Cannon's functionality is implemented ENTIRELY within Blueprint:


    And these new Blueprints control the Boss Arena functionality, an example of how you can design advanced map/area functionality through Blueprint:


    The Dev Kit also includes support for exporting Font assets for localization, as described here: .

    Have a look at the new Electric Shock prod item for an interesting example of single-use weapon setup and also how to have a DIFFERENT Repair cost than Crafting cost. Also have a look at the Gallimimus for an example of multi-seat (Passenger) Saddle setup

    Btw, stay tuned next week for the introduction of our new in-house full-time Mod Community Liason, along with new ARK Mod Community initiatives!


    - Here's an example of a stackable Map Extension which adds Raptor Claus back into the game, as an example for reference of what you can do:


    - Here's an example Mod which adds a 3-Seater Passenger Saddle for the Trike. In case, say, someone wanted to make cool Passenger Saddles for all the Dinos

    Source: (fixed Passenger sitting animations now!)

    v228.6 Note: You now have the option of clamping the user's render cull distance in your TC's PrimalGlobals, useful for competitive game modes like SotF. (to prevent players from setting the view distance too low)

    Hey, just updated the GitHub devkit binaries. Will get them updated into the Epic Launcher soon. Here are the source files for the Pandora Isles ( )"Map Extension", by the way, which shows you the file structure (the map goes in Maps\TheIslandSubmaps, while any custom assets go into your Mods\ModName folder):

    Note that you can now include a PrimalGameData in your Map Extension "mod" just by having any "PrimalGameData" asset in your Mod's subfolder. That includes if you want to use a custom PrimalGameData in your map extension. And remember, any custom assets referenced by your Map Extension must be in the Mods\ModName subfolder that you will be cooking your Map Extension with. A Map Extension can not reference assets used by other, separate mods!

    Cheers and have fun!!!! So close to next Mod Contest announcement now


    Big new modding feature added to ARK Dev Kit v228.2 is the "Cook TheIsland Map Extension" option. A "Map Extension" is, effectively, a set of sublevels that either adds-to or overrides regular "ARK" sublevels (or 'TheIsland' persistent level). Simply specify the sublevel names (or TheIsland if persistent) that you wish to cook and click the button (the sublevels should be located on your disk in Maps\TheIslandSubmaps\YourSublevelNamesWhatever.umap)!

    As examples, this could be used to override "PersistentGameplaySublevel_DinoSpawns" and completely change the existing spawn zones (or override "PersistentGameplaySublevel_SupplyDrops" for the supply drops), or add new spawn zones by adding an additional "Uncategorized" (always loaded) sublevel of whatever name, or add Floating Islands to the map (as I've done here in 1 minute dev time: ), or add new weather systems (if someone doesn't make a Tornado environmental mod, then I will have to do so ), NPC shop trader roaming the ARK, world geometry, you name it -- if it's related to the ARK's environment, THIS is how you effectively can heavily customize or add to it with very minimal dev time & download size + full stackability. This is similar to the functionality environmental mods have in Skyrim, for example.

    Map Extensions are technically a "mod" (so it optionally can include a custom PrimalGameData as well as custom assets in the "Mod\ModName" subfolder) and will list in the "Mods" section in-game.

    You can apply a Map Extension along with any other stackable mods as normal (and even with other Map Extensions, though the first environmental extension on the list takes precedent with regards to overriding a map). We encourage all Map Extensions to say "Map Extension: " in their title and to list which sublevels they add or override (as done in the sample here ), to help end-users avoid Map Extension stacking conflicts.

    Hope you all have fun with this, and remember.. Tornado/Dynamic Weather Mod... pleeeeeeeeeeaaaaaaaazee


    New ShooterGameState BP functions (remember you can also inherit your GameMode/GameState from CustomGameMode and CustomGameState respectively for even more implementable functions):

    UFUNCTION(BlueprintCallable, Category=Helper)
    FString GetDayTimeString();

    UFUNCTION(BlueprintCallable, meta = (FriendlyName = "GetCustomActors"), Category = "Utilities")
    ACustomActorList * BaseGetCustomActors(FName SearchCustomTag);

    UFUNCTION(BlueprintCallable, meta = (FriendlyName = "GetAllControllers"), Category = "Utilities")
    TArray<AShooterPlayerController *> BaseGetAllShooterControllers();

    UFUNCTION(BlueprintCallable, meta = (FriendlyName = "GetAllPlayers"), Category = "Utilities")
    TArray<AShooterCharacter *> BaseGetAllShooterCharacters();

    UFUNCTION(BlueprintCallable, meta = (FriendlyName = "GetAllPlayersOfTeam"), Category = "Utilities")
    TArray<AShooterCharacter *> BaseGetAllShooterCharactersOfTeam(int32 KillerTeam);

    UFUNCTION(BlueprintCallable, meta = (FriendlyName = "GetAllNPCsOfTeam"), Category = "Utilities")
    TArray<APrimalDinoCharacter *> BaseGetAllDinoCharactersOfTeam(int32 KillerTeam);

    UFUNCTION(BlueprintCallable, meta = (FriendlyName = "IsTribeID"), Category = "Utilities")
    static bool BaseIsTribeID(int32 TeamId);

    UFUNCTION(BlueprintCallable, meta = (FriendlyName = "ProjectWorldToScreenPosition"), Category = "Utilities")
    static FVector2D BaseProjectWorldToScreenPosition(const FVector& WorldLocation, APlayerController* ThePC);

    UFUNCTION(BlueprintCallable, meta = (FriendlyName = "SpawnBuffAndAttachToCharacter"), Category = "Utilities")
    static APrimalBuff * BaseSpawnBuffAndAttachToCharacter(UClass*Buff, APrimalCharacter* PrimalCharacter, float ExperiencePoints);

    UFUNCTION(BlueprintCallable, meta = (FriendlyName = "DrawTileOnCanvas"), Category = "Utilities")
    static void BaseDrawTileOnCanvas(AShooterHUD* HUD, UTexture* Tex, float X, float Y, float XL, float YL, float U, float V, float UL, float VL, FColor DrawColor);

    UFUNCTION(BlueprintCallable, Category = "Helper")
    static bool BPFastTrace(UWorld* theWorld, FVector TraceEnd, FVector TraceStart, AActor * ActorToIgnore = NULL);


    Buffs now have this bool:

    if a buff sets that, it'll call this implementable function whenever the dino's floating hud is drawn (when close to the dino), which you can use for the buff to draw custom floating HUD graphics:
    UFUNCTION(BlueprintNativeEvent, Category = "Buff")
    void DrawBuffFloatingHUD(int32 BuffIndex, class AShooterHUD* HUD, float CenterX, float CenterY, float DrawScale);

    Also v222.6 adds some new options for Total Conversions in the PrimalGlobals Blueprint:
    bTotalConversionShowUnofficialServers: this will make your TC show "Unofficial" Servers by default (since most TC's except for SotF do not have Official Servers ). Defaults to TRUE
    UIOnlyShowMapFileNames: This is an array of filenames (no extension and not case sensitive) for Maps to list in your TC's Host Game UI. If your TC includes and only supports a custom map, then you'll want to add it to this array. If there are entries in this array, then all installed maps are shown.
    UIOnlyShowModIDs: This is an array of Steam Workshop ID's for your Total Conversion to support. If there are no entries in this array, all Mods will be shown at the Host Game UI. If there are any entries, only Mod ID's in that array will be shown. If you want no mods to show, just add one entry that is an invalid ID like "0"

    Thanks all, and keep up the great work!

    All the best,
    Jeremy "Drake" Stieglitz

    Please see for older ADK patch notes
    Last edited by StudioWildcard; 05-11-2017 at 10:11 PM.

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts