New Modder, Old Programmer

This is primarily to the devs… I’ve been a programmer for over 20 years and Ark is the first game to catch my attention from a modding perspective. Kudos on a very well executed alpha so far, on the early modding support, and for a great vision towards a very moddable sandbox survival/building system.

Now, I have a lot of questions as I’d like to get into modding, and I’m a pretty quick learner. I’ve read a lot of what’s available for documentation and tidbits of users figuring stuff out, but clearly there isn’t much out there yet.

I have some pretty significant ideas and I’ve determined the only way to go was the total conversion system, since it’s new I’m focusing on just getting my feet wet and the environment setup. To that end, as a new user with no past modding experience with Ark, I am finding there is a little initial hurdle to deal with. As has been noted before, this new switch to using the Epic Launcher was good in terms of not having so many steps to get the kit, but it has also introduced this automatic overwrite and backup of changed files when it updates. This is good, that we won’t lose any work but I’m starting to wonder about the correct structure for a total conversion.

So far as I can tell, there is actually only a few files even within a total conversion that you would really need to edit. For example, let’s say like myself you want to start with something fairly simple but still somewhat challenging like replacing all the current wooden structure tiles with rescaled tiles to be uniformly square, including ramps to be 1x1x1 latching correctly, and fence posts that might be a little less twitchy for snapping (raised a bit out of the ground, since they are currently buried upto the cross bar for various reasons). So, here’s what I’m seeing so far, with a total conversion you could edit all the originals, and suffer an update eradicating them every time… Or you could make new tiles, set the requirements to 0 engrams, and depend on the predescessor (new wall requires knowing old wall, etc). So far this behaves much like a clean mod now, but let’s say this isn’t really want you want, you only want one wooden wall. So, now instead of a requirement, could you not remap everything in the PrimalGameData (I think that’s where it is) and basically only change one or two core game files to provide the entirely new system, while removing the old one at the same time?

The end result is that on updates, only the handful of files would need to be restored. Now, this brings up the next evolution of this, could the devs not provide “user” based files that are otherwise unaffected by most updates, and would thus not require end users to restore these files? As a programmer, it’s in my nature to ask “where are the interface contracts?”, or something akin to that behavior such that these updates have less influence every time. I understand the “contracts” may change from time to time, and thus require still to be restored when updated, but as it stands right now an update basically forces a complete restore every time.

I have many many more questions, hopefully most can be addressed as more of the internal documentation is revised and released to the public. But in the meantime, can you tell us exactly what we cannot do with the total conversion system as it stands? I’ve reviewed the forum and I’m hesitant to take the word of users who may simply not have the documentation to know how to achieve things. Devs say “you can edit and cook anything” but I somehow doubt that we can do EVERYTHING with this kit. Can we add new network traffic, for new operations within the protocol? Can we create new event triggers? Redesign the snapping system (god how I hate fence foundation snapping)? Adding new console (and cheat-based) commands? I doubt these things are possible, and knowing where the line is would help total conversion authors decide if their project is viable before getting 100 hours in to find out a critical part is not possible. Though I would really love to see a more convenient, ingame administration system (not the showmyadminmanager, but something that would make it easier for admins to manage everything in game from clicking on the map to teleport, to teleporting players to you, to having live lists of items and dinos you can spawn… in fact the one thing I do seem to see possible is to redo most of the HUD UI and whatnot to make it more friendly and less interruptive of gameplay, easier to reimburse players for losses from bugs, etc).

As a programmer, I’m not so concerned about example graphs myself, but this seems to be a hot topic, and my guess is it’s mostly due to a lack of documentation. Particularly on the functions that can be called and their exact inputs, outputs, and state changes, and with regards to events and exactly when they are called and under what circumstances. Most of the other graphing related entities are fairly self explanatory I think. I understand how daunting documentation can be, but with the mod contest going on right now, it’s hampering a lot of otherwise great mods and conversions from being realized. This contest may need to be extended with respect to getting decent documentation available. So many checkboxes, with absolutely no idea what goodies they provide (short of a wild guess, and a lot of testing, to find out they may not even work the way they are intended… documentation on how stuff is intended to work, can assist us in helping you find bugs in these functionalities that don’t work as intended).

Additional questions, related to multi map, and the capabilities and limitations for users to move between them. As I understand it, right now I could bake in another map, keeping the current island in, and roll out a new island for an event I’d like to run. What restrictions are there on a user switching to another map. Can the dedicated server currently handle running multiple at once? What kind of systems are in place to control access to the maps? Can we create an item and place it in game that allows a player to move to another map? Can they move dinos with them? can we prevent them from moving dinos? Can we lock a map based on certain realtime hours? Can we actually incorporate an SOTF type island into an otherwise PVE server, and automate the setup of events using new interactive items and UI menus to control signup?

Ideally, on my server, I’d like to run a variety of both event-based maps, and open maps for players to explore and settle in. Would users be able to fast travel back to other maps using their beds? If so, how does the in-game players map work with regards to multiple maps? The whole multi-map thing raises a great many questions, but it is also the one thing I’ve been most eager and waiting for with Ark total conversions.

Oh, and removing those silly roof ramps for a proper 1x1x1 ramp, yes it bugs me that much that the tiles are not uniformed, we could create so many nicer things with decent ramps, and less frustration with snapping and orientations. I’m of the mind that aside from orientation swap on walls, we need a way to just snap fence posts and be able to rotate them from their current snapped point through the interactive menu, cycling through the available snapping angles in the snap list, and have them raised a little off the ground because with the slightest bit of slope you cannot see half the fence foundation). I suspect this will be something I can do within the total conversion myself, once I figure out the right functions.

Obviously (even with TC) you cannot modify everything hardcoded (c++), you can only modify what i would call the blueprint part of the game.

If you are new to the unreal engine, i strongly advise you to read the documentation about the blueprint sytem and the editor itself, i think that will answer most of your questions about what is currently possible with the Ark Dev Kit.