GenericMod Questions

It is great to hear that ARK will now be supporting generic mods that can replace core game assets. ARK will be the first game I will be actually uploading mods for (excluding meddling around in Minecraft previously) and I will likely have more questions if I run in to problems with the test mod I have now uploaded (but waiting on the 185 deployment to test it).

  1. Since it is unlikely one modder is going to make a complete package of everything a user/server admin would like, how does one go about subscribing/selecting multiple mods for both single player and dedicated servers? (I am assuming the UI hasn’t been changed in the client for this change).

  2. Must mods be uploaded to the Steam workshop in order for a server to provide mods to a client? I understand that the servers tell clients to download the mod, but I am unclear whether the server is actually providing the mod folder it has, or if it is simply telling the client to subscribe to the mod in the Steam workshop.

  3. How are mods going to be enforced from a server perspective? More specifically, must all mods be also loaded to a server in order to be loaded for a client?

  4. After looking over the GenericMod template given in the ARK Devkit, I assume that the presence of the GenericMod.umap is required for any generic mod. However, how does a replacement of a base game asset exactly work? Is creating a child of a base component all that is necessary? Must it be <original name>_GenericMod.uasset or is <original name>_child.uasset for example also okay? Or am I going the complete wrong direction (since my little test mod did not take effect it seems in singleplayer)?

As I play around more I may stumble upon answers to my own questions, but thanks ahead of time!

Edit I suspect maybe game data overrides are completed purely though the PrimalGameData_BP so I will try that now instead. The problem with this though is I need to then alter the StructurePlacerBlueprint if I want to change a place-able structure. Otherwise, the item given (if it was originally place-able) is no longer place-able.

The test mod I am creating is to quadruple the light radius provided by torch emplacements. Another problem I ran across is that creating a child of a standing torch (if that is even necessary over just duplication) results in a component named ActivatedEmitter which can not be altered (because I assume the parent handles this component instead). Unfortunately, that emitter is exactly what I am trying to change in this instance.

Anyone have any luck creating a place-able structure that is still recognized by the StructurePlacerBlueprint or how to go about changing a child component such as ActivatedEmitter from StandingTorch when the StandingTorch is created as a child of the original? Here’s a couple pictures of the dilemma:


In the above image, a StandingTorch is created as a child of StandingTorch, it maintains its reference to StucturePlacerBlueprint (through the parent and thus is still place-able in the game), however the inherited component named ActivatedEmitter is not modifiable. I’m certain that there is something I can do about this here, but I am not sure how to go about resolving this problem. I would simply replicate the ActivatedEmitter component however it does not appear to be removable since it is inherited and even so I am certain it has some underlying code behind it that I do not think I can access. (And yes the torch is scaled abnormally just so I can confirm it is an object I modified.)


Alternatively, I can create a new object like I have done in the above image that is a duplicate of the original StandingTorch. It has a modifiable ActivatedEmitter where I can change the child actor component that spawns an emitter when activated. Unfortunately this object’s parent is Base Fuel Burner and no longer has a reference to StucturePlacerBlueprint. Although I can get it in to the game through PrimalGameData_BP, pulling out this item and using it does not have the construction that StructurePlacerBlueprint provides to objects. This method requires a means of updating the StructurePlacerBlueprint, or maybe I could create another StructurePlacerBlueprint to provide the same functionality to the new object?

Best best is to duplicate the Standing Torch, replace what you need to, subclass/duplicate the Standing Torch item (Blueprint’/Game/PrimalEarth/CoreBlueprints/Items/Structures/Misc/PrimalItemStructure_StandingTorch.PrimalItemStructure_StandingTorch’) and have it build you new structure, subclass or duplicate the Structure Placer Blueprint and put your new structure in it (also set your new structure to have the “Item to Consume” as your new Item), and subclass/duplicate the PlayerController and have it use your new Structure Placer. Set your new playercontroller into a subclass of TestGameMode and set your new GameMode into your PrimalGameData Override :slight_smile:

Cheers,

Thanks so much for your help, I was missing that entire branch for the structure placer and didn’t know until now that gamemode was able to replace the structure placer blueprint through player controller. I also struggled with some issues cooking the mod (somereason my cooked mod would not produce any files until I renamed the map from GenericMod to GenericMod_TorchBoost) but it seems to be working!

There unfortunately is a bug with my mod and I assume it is because there is an old asset (likely Player Controller) that may have not been updated in the Ark Dev kit. In the picture below you will see the respawn ui where the character preview is skewed (this also affects the inventory player preview). Do you know what I might need to change, or could the next Ark Dev kit get the updated asset that is in the live game?

Also, is there any update on support for running multiple mods? It doesn’t appear that the current single player UI supports this, but is there a way for dedicated servers to support this?

The glitch on the bottom is not a Dev Kit/Mod issue, I believe thats a gfx card/driver issue. I had that same problem on my old card about 2 weeks ago sometimes. Don’t think it is an old asset issue, but I could be wrong

I only get that graphical glitch when running my mod, not the base game or the test map in the editor currently.

EDIT After attempting to use the game mode from generic mod that only seemed to crash my game, I reverted the changes and this time I am no longer getting that graphical issue despite me testing a non-modded version of the game, not seeing the glitch, and returning to my mod with it. o.o Only thing that seems to be quirky now is getting too far from my torch derenders the light source when its origin is not in view.

EDIT2 Solved the derendering by adjusting the bounding box of the emitter. All good to go now! (though I never really got answers to questions 1-3)

Yea definitely had reports of this same issue outside of mod.

hey dathrek,

i am interested in the process you went through but i dont quite understand all the steps you bring it to work. it would be very nice if you could get a tut with pictures for it. I know its a bit of work…

Thnx in advance !

Kabs

For a couple users this got people going with creating a generic mod that updates an engram, structure, and placement blueprint: Generic Mod steps for a MortarAndPestle - Pastebin.com There also is a user made video series (mostly for mapping) here: https://www.youtube.com/playlist?list=PLp46z1UxQR1vo4FTLHe3ifYOhXgUWaBz9 in addition to what the developer put together that they mentioned recently in a sticky. General UE4 documentation here: Unreal Engine 5.3 Documentation | Unreal Engine 5.3 Documentation

Did all of this and added a PrimialInventoryBP for the Mortar which has the option to change default items. I changed that to use my new paste.

Still start the game and the past will not show up in my pestal.

Any thoughts?

There are only two other things I can recommend doing: Ensure that your primalitem for the chitin has selected your new primalitemstructure_mortarandpestle in “crafting requires inventory component”. Then if you run in to problems where it is always available without the player learning the engram first, you can try toggling the property “is engram” in primalitem for chitin.