1/18/2021: ARK Dev Kit v321.1 is now available on the Epic Launcher

Hey all,

1/7:
ARK Dev Kit v231.2 has been posted to the Epic Launcher! ** Note that it has a long PIE/Map load time until we update the Derived Data Cache, which we will do later today.

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 ( http://steamcommunity./sharedfiles/filedetails/?id=584076324 )“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 :wink:


(Btw the next Worldwide ARK Dev Kit contest will be announced after the Alienware Contest concludes, so in about a week! This next one will be worldwide and will have different competition tracks for Total Conversion, Mod, and Maps respectively! So keep at it :slight_smile: )

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: http://steamcommunity./sharedfiles/filedetails/?id=584076324 ), or add new weather systems (if someone doesn’t make a Tornado environmental mod, then I will have to do so :wink: ), 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 http://steamcommunity./sharedfiles/filedetails/?id=584076324 ), to help end-users avoid Map Extension stacking conflicts.

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


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(UClassBuff, 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:
bBuffDrawFloatingHUD

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 :wink: ). 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,

[/QUOTE]

Some Total Conversions still freeze at the main menu…
It started with the winter wonderland patch I think, my TC (and others aswell) began to freeze when entering the main menu after a few seconds… I thought this would go away when winter wonderland would end, but no, they still frezze.

I don’t think this is an issue caused by the mod devs, I can speak for myself that I have not a single file in my TC that touches the main menu. Some people reported that after a few minutes, the game works again.

Finally found that the problem comes from “\ShooterGame\SeekFreeContent\PrimalEarth\CoreBlueprints\PrimalGameData_BP.uasset”"

Test TC : http://steamcommunity./sharedfiles/filedetails/?l=schinese&id=505802807