Jump to content

ARK Tools v0.6.4 - tools for reading and manipulating ark savegame files


Qowyn

Recommended Posts

Hi everyone, i'm new to this tool, and not used to java, I only know DOS commands. I managed to transform .ark into a json but when i try to display all the tamed dinos on my server save it gives me an error message and I don't know what to do to get it right. 

Below is my screenshot of the DOS window; can anyone help me with the right command to display tamed dinos? 

By the way, my plan is to transfer a tamed dino from one save to another, if u can help me through the whole process =) 

Thx in advance. 

error.png

Link to comment
Share on other sites

  • 2 weeks later...
  • Replies 369
  • Created
  • Last Reply
On 1/4/2018 at 10:50 AM, coldino said:

For anyone struggling to run ark-tools or read its output, I've created Larkator which runs ark-tools for you and shows the results on a map. Check it out at https://github.com/coldino/Larkator. You'll still need ark-tools.

Features:

  • Find both wild and tamed creatures
  • Filter based on species, gender, min and max levels
  • Show the results on a map with full coordinates
  • Helps you find your lost tames
  • Creature stat-points are shown to help you find that elusive next tame
  • Automatically re-reads your .ark file when it changes

Please keep this thread on topic out of respect for ark-tools. If there is interest, I'll start a thread for Larkator.

Disclaimer: This tool is still very new so may be a little rough around the edges. It also currently only has a map of the Island as this is all I've used it with.

I'm excited and hope to see if this becomes a full gui for all sorts of things.  Going to check it out right now. :D

Link to comment
Share on other sites

On 1/4/2018 at 10:50 AM, coldino said:

For anyone struggling to run ark-tools or read its output, I've created Larkator which runs ark-tools for you and shows the results on a map. Check it out at https://github.com/coldino/Larkator. You'll still need ark-tools.

Features:

  • Find both wild and tamed creatures
  • Filter based on species, gender, min and max levels
  • Show the results on a map with full coordinates
  • Helps you find your lost tames
  • Creature stat-points are shown to help you find that elusive next tame
  • Automatically re-reads your .ark file when it changes

Please keep this thread on topic out of respect for ark-tools. If there is interest, I'll start a thread for Larkator.

Disclaimer: This tool is still very new so may be a little rough around the edges. It also currently only has a map of the Island as this is all I've used it with.

I pointed it to ark-tools.exe and the map directory and it gave me an error 'ark-tools.exe is not recognized as'.  Used the most recent one as of now.

Link to comment
Share on other sites

On ‎13‎/‎01‎/‎2018 at 6:24 PM, Mavrick said:

I pointed it to ark-tools.exe and the map directory and it gave me an error 'ark-tools.exe is not recognized as'.  Used the most recent one as of now.

Thanks for the report. I'm looking into the issue.

I've started a new topic for Larkator to avoid polluting this thread. Please report further issues or suggestions related to Larkator there.

Link to comment
Share on other sites

  • 2 weeks later...

I've gotten an error possibly related to some mods being installed, but in case it's a real issue, here's the output:

Spoiler

Exception in thread "main" java.lang.OutOfMemoryError: Java heap space
        at qowyn.ark.properties.PropertyRegistry$$Lambda$62/12743635.apply(Unknown Source)
        at qowyn.ark.properties.PropertyRegistry.readBinary(PropertyRegistry.java:62)
        at qowyn.ark.GameObject.loadProperties(GameObject.java:375)
        at qowyn.ark.HibernationEntry.readBinaryObjects(HibernationEntry.java:117)
        at qowyn.ark.HibernationEntry.readBinary(HibernationEntry.java:76)
        at qowyn.ark.HibernationEntry.<init>(HibernationEntry.java:50)
        at qowyn.ark.ArkSavegame.readBinaryHibernation(ArkSavegame.java:401)
        at qowyn.ark.ArkSavegame.readBinary(ArkSavegame.java:172)
        at qowyn.ark.FileFormatBase.readBinary(FileFormatBase.java:30)
        at qowyn.ark.ArkSavegame.<init>(ArkSavegame.java:87)
        at qowyn.ark.tools.CreatureListCommands.listImpl(CreatureListCommands.java:111)
        at qowyn.ark.tools.CreatureListCommands.creatures(CreatureListCommands.java:60)
        at qowyn.ark.tools.App$$Lambda$1/21767774.accept(Unknown Source)
        at qowyn.ark.tools.App.main(App.java:125)

 
 

Edit: The error was fixed by adding -preventhibernation to the startup parameters, if that helps with anything.

Link to comment
Share on other sites

  • 1 month later...
java -jar ark-tools.jar j2m aberration_p.json Aberration_P.ark
java.lang.NullPointerException
        at qowyn.ark.properties.PropertyBase.<init>(PropertyBase.java:36)
        at qowyn.ark.properties.PropertyUnknown.<init>(PropertyUnknown.java:23)
        at qowyn.ark.properties.PropertyRegistry.readJson(PropertyRegistry.java:68)
        at java.util.stream.ReferencePipeline$3$1.accept(Unknown Source)
        at java.util.Iterator.forEachRemaining(Unknown Source)
        at java.util.Spliterators$IteratorSpliterator.forEachRemaining(Unknown Source)
        at java.util.stream.AbstractPipeline.copyInto(Unknown Source)
        at java.util.stream.AbstractPipeline.wrapAndCopyInto(Unknown Source)
        at java.util.stream.ReduceOps$ReduceOp.evaluateSequential(Unknown Source)
        at java.util.stream.AbstractPipeline.evaluate(Unknown Source)
        at java.util.stream.ReferencePipeline.collect(Unknown Source)
        at qowyn.ark.structs.StructPropertyList.<init>(StructPropertyList.java:44)
        at qowyn.ark.structs.StructRegistry.readJson(StructRegistry.java:59)
        at qowyn.ark.arrays.ArkArrayStruct.<init>(ArkArrayStruct.java:65)
        at qowyn.ark.arrays.ArkArrayRegistry.readJson(ArkArrayRegistry.java:52)
        at qowyn.ark.properties.PropertyArray.<init>(PropertyArray.java:59)
        at qowyn.ark.properties.PropertyRegistry.readJson(PropertyRegistry.java:68)
        at qowyn.ark.GameObject.readJson(GameObject.java:207)
        at qowyn.ark.GameObject.<init>(GameObject.java:73)
        at qowyn.ark.ArkSavegame.readJsonObjects(ArkSavegame.java:747)
        at qowyn.ark.ArkSavegame.readJson(ArkSavegame.java:679)
        at qowyn.ark.tools.ConvertingCommands.fromJson(ConvertingCommands.java:121)
        at qowyn.ark.tools.ConvertingCommands.jsonToMap(ConvertingCommands.java:28)
        at qowyn.ark.tools.App.main(App.java:125)

No support for Aberration?
I dont changed anything in the .json file
Just converted it from .ark to json an want to convert it back

 

I tested the same with a Center savefile - same error
I tested it again with an older savefile from Center - ther my command work fine.

Link to comment
Share on other sites

  • 2 weeks later...
  • 4 weeks later...

Forgive my ignorance; I want to use this to decrease my level in a Single Player save game in The Center.

My first character made level 51 in a couple weeks. I've since vastly decreased the XP gain rate, but I can never seem to get his look right when I try to recreate him... As I've attempted about 15 times now.

I'd prefer to just edit his save game, but I have no idea how to get past simply opening this tool... Which by itself was a challenge for me. >.< I want to reduce his level to about 15. Can anyone help me?

Link to comment
Share on other sites

21 hours ago, AyamePasse said:

Forgive my ignorance; I want to use this to decrease my level in a Single Player save game in The Center.

My first character made level 51 in a couple weeks. I've since vastly decreased the XP gain rate, but I can never seem to get his look right when I try to recreate him... As I've attempted about 15 times now.

I'd prefer to just edit his save game, but I have no idea how to get past simply opening this tool... Which by itself was a challenge for me. >.< I want to reduce his level to about 15. Can anyone help me?

You could make a new character and then give him 15 levels of experience?

Link to comment
Share on other sites

On ‎05‎/‎01‎/‎2018 at 3:21 PM, max434 said:

Hi everyone, i'm new to this tool, and not used to java, I only know DOS commands. I managed to transform .ark into a json but when i try to display all the tamed dinos on my server save it gives me an error message and I don't know what to do to get it right. 

Below is my screenshot of the DOS window; can anyone help me with the right command to display tamed dinos? 

By the way, my plan is to transfer a tamed dino from one save to another, if u can help me through the whole process =) 

Thx in advance. 

error.png

Java is running out of memory. Tell it to use more use the -Xmx command line parameter, but you might have to run the jar file instead of the exe file.

java -Xmx1024m -jar C:\ArkTools\ark-tools\ark-tools.jar tamed ...

Link to comment
Share on other sites

20 hours ago, Mavrick said:

You could make a new character and then give him 15 levels of experience?

I know. But as mentioned in my post, I'd prefer not to. I know it sounds silly, but I've recreated him over a dozen times but still don't like the end result as much as my original character. >.< I always end up with some proportion looking completely bonkers. 

I guess I'll just have to add level points wherever I feel the need if I want to keep him, lol. Really ruins the whole "working hard to get where I want to be" aspect I was going for, but oh well. ;) Thanks anyway...

Link to comment
Share on other sites

  • 1 month later...

Hello,

I'm having trouble figuring out if this tool can do what I'm trying to do.  I've been playing on an unofficial modded server and didn't know there is a time limit on uploaded creatures and thus have a few that can't be downloaded now.  They show up in the menu but are grayed out.

The data for them is in PlayerLocalData.arkprofile and I can convert it to .json and see the dinos.  But I'm not sure how to extract them and put them into a world save, or edit the profile entries to make them downloadable again.  There is a UploadTime string, and I tried uploading a random dino and copying the new UploadTime value to the other entries, but that didn't work.

Edit: I got it to work.  Changing the unix timestamp wasn't working by itself, but I noticed this in the entries that weren't working:

          "name" : "DinoClass",
          "type" : "ObjectProperty",
          "size" : 10,
          "value" : -1

The value needs to be changed to the dino entity ID like so:

         "name" : "DinoClass",
          "type" : "ObjectProperty",
          "size" : 10,
          "value" : "BlueprintGeneratedClass /Game/PrimalEarth/Dinos/Rex/Rex_Character_BP.Rex_Character_BP_C"

Note this is just an example I made up, I don't know what the actual size value is for a Rex.

Link to comment
Share on other sites

  • 1 month later...
  • 1 month later...

Error generated:

ark-tools j2m Ragnarok.json Ragnarok.ark
java.lang.NullPointerException
        at qowyn.ark.properties.PropertyBase.<init>(PropertyBase.java:36)
        at qowyn.ark.properties.PropertyUnknown.<init>(PropertyUnknown.java:23)
        at qowyn.ark.properties.PropertyRegistry.readJson(PropertyRegistry.java:68)
        at java.util.stream.ReferencePipeline$3$1.accept(Unknown Source)
        at java.util.Iterator.forEachRemaining(Unknown Source)
        at java.util.Spliterators$IteratorSpliterator.forEachRemaining(Unknown Source)
        at java.util.stream.AbstractPipeline.copyInto(Unknown Source)
        at java.util.stream.AbstractPipeline.wrapAndCopyInto(Unknown Source)
        at java.util.stream.ReduceOps$ReduceOp.evaluateSequential(Unknown Source)
        at java.util.stream.AbstractPipeline.evaluate(Unknown Source)
        at java.util.stream.ReferencePipeline.collect(Unknown Source)
        at qowyn.ark.structs.StructPropertyList.<init>(StructPropertyList.java:44)
        at qowyn.ark.structs.StructRegistry.readJson(StructRegistry.java:59)
        at qowyn.ark.arrays.ArkArrayStruct.<init>(ArkArrayStruct.java:65)
        at qowyn.ark.arrays.ArkArrayRegistry.readJson(ArkArrayRegistry.java:52)
        at qowyn.ark.properties.PropertyArray.<init>(PropertyArray.java:59)
        at qowyn.ark.properties.PropertyRegistry.readJson(PropertyRegistry.java:68)
        at qowyn.ark.GameObject.readJson(GameObject.java:207)
        at qowyn.ark.GameObject.<init>(GameObject.java:73)
        at qowyn.ark.ArkSavegame.readJsonObjects(ArkSavegame.java:747)
        at qowyn.ark.ArkSavegame.readJson(ArkSavegame.java:679)
        at qowyn.ark.tools.ConvertingCommands.fromJson(ConvertingCommands.java:121)
        at qowyn.ark.tools.ConvertingCommands.jsonToMap(ConvertingCommands.java:28)
        at qowyn.ark.tools.App.main(App.java:125)

Link to comment
Share on other sites

  • 4 weeks later...

First of all this is an amazing tool and it's helped me out so many times.

I've been trying to use this to edit players which are currently transferring between two clustered servers. I noticed that when I use cloudToJson it doesn't parse any of the player data but simply leaves it as a byte array. I tried simply editing the byte array but Ark wasn't very happy with that. So instead I took the contents of that byte array, put it into a new file (adding on the version since that is missing) and then tried to use playerToJson on that new file which contained the player data. Sadly that didn't work, perhaps the formats differ in some other ways, and I get the following error:

java.lang.NullPointerException
        at java.util.concurrent.ConcurrentHashMap.computeIfAbsent(Unknown Source)                                                                          
        at qowyn.ark.types.ArkName.from(ArkName.java:28)
        at qowyn.ark.ArkArchive.getName(ArkArchive.java:210)
        at qowyn.ark.properties.PropertyRegistry.readBinary(PropertyRegistry.java:43)                                                                       
        at qowyn.ark.GameObject.loadProperties(GameObject.java:370)
        at qowyn.ark.ArkProfile.readBinary(ArkProfile.java:69)
        at qowyn.ark.FileFormatBase.readBinary(FileFormatBase.java:30)
        at qowyn.ark.tools.ConvertingCommands.toJson(ConvertingCommands.java:89)
        at qowyn.ark.tools.ConvertingCommands.profileToJson(ConvertingCommands.java:32)                                                                       
        at qowyn.ark.tools.App.main(App.java:125)

 I know it's a long shot but has anyone got any clue how to edit the player data in the cloud file?

Link to comment
Share on other sites

  • 2 weeks later...

Archived

This topic is now archived and is closed to further replies.


×
×
  • Create New...