Jump to content

Admin / Trusted Player Tool - Game Save Visualiser


MirageUK

Recommended Posts

Yeah we're all well thank you. 

Just been quite an adjustment to working from home which left me somewhat un-motivated to sit at the same computer doing my own stuff (including this) on an evening after a day of work for the day job.

I'm increasingly aware of the imminent release of Genesis 2 so thought I'd best get back into it in preperation.

Apologies for leaving you guys so long without looking into and fixing things for you.

  • Like 3
Link to comment
Share on other sites

New version available for download:

http://www.miragesoftware.co.uk/ARK/Apps/ArkViewer2021.zip

@pleinx - Added support for SteamId on player export.


@Sirendire - Fixed selection of death cache items and added inventory button which will be enabled if the cache contains items.


@Shodan - Added support for Fjordur map.


@Foppa  / @Koltran - Same issue.  Now ignores dropped items it doesn't recognise instead of crashing.


@c0mical - Fixed.  Issue was that I populate the list in 2 ways and I forgot to include the additional fields for "solo" players.


@Wolfamid - The source code is all available on GitHub.  If you have any knowledge of C# please feel free to suggest any improvements I can make to the performance.

GitHub repository: https://github.com/miragedmuk/ARKViewer-Master

 

Everybody else - I'll need a sample save file to replicate and fix the "tames as wild" issue as I don't encounter that on our own saves.

  • Like 1
Link to comment
Share on other sites

3 hours ago, MirageUK said:

Everybody else - I'll need a sample save file to replicate and fix the "tames as wild" issue as I don't encounter that on our own saves.

It's great to have you back Mirage.

I've PM'd you with a link to a save file with tame dinos that are showing as wild.

I can probably find more examples if you need them.

  • Thanks 1
Link to comment
Share on other sites

New release available:

http://www.miragesoftware.co.uk/ARK/Apps/ArkViewer2021-2.zip

@Larkfields kindly provided me with a sample save of Ragnarok and I was able to fix the "tames as wilds" and improve load speed when the save game has lots of cryopod creatures.

For example, using the previous release of viewer and the provided game save on my machine it took over 22 minutes to load.  With the new changes made to how I load cryopod data it takes just under 4.5 minutes for the same save, on the same machine.

  • Like 1
  • Thanks 1
Link to comment
Share on other sites

And again...

http://www.miragesoftware.co.uk/ARK/Apps/ArkViewer2021-3.zip

 

  • Fixed issues with cryopod loads using multi-threading for performance pass.  Changed to use a "thread-safe" list to prevent exception.
  • Fixed issue where standard FTP server connections would not first call Connect() before attempting to download the save game.
  • Fixed right click player export.  It had incorrect header for SteamId and was not outputting the steam id number as it attempted to convert to int and failed due to the number being too high.

 

Edited by MirageUK
  • Thanks 1
Link to comment
Share on other sites

Mode: Mode_Offline

Save:
\\gvoltserver\ArkServer\GV\Crystal Isles\ShooterGame\Saved\SavedArks\CrystalIsles.ark

Message:
An item with the same key has already been added.

Trace:
   at System.ThrowHelper.ThrowArgumentException(ExceptionResource resource)
   at System.Collections.Generic.Dictionary`2.Insert(TKey key, TValue value, Boolean add)
   at System.Linq.Enumerable.ToDictionary[TSource,TKey,TElement](IEnumerable`1 source, Func`2 keySelector, Func`2 elementSelector, IEqualityComparer`1 comparer)
   at System.Linq.Enumerable.ToDictionary[TSource,TKey,TElement](IEnumerable`1 source, Func`2 keySelector, Func`2 elementSelector)
   at ArkSavegameToolkitNet.Domain.ArkGameData.Update(CancellationToken ct, ArkPlayerExternal[] externalPlayerData, Boolean deferApplyNewData, ArkAnonymizeData anonymize) in F:\Projects\VS\ARKViewer-Master\ArkSavegameToolkitNet.Domain\ArkGameData.cs:line 113
   at ARKViewer.frmViewer.LoadData() in F:\Projects\VS\ARKViewer-Master\ARKViewer\frmViewer.cs:line 224
   at ARKViewer.frmViewer.btnSettings_Click(Object sender, EventArgs e) in F:\Projects\VS\ARKViewer-Master\ARKViewer\frmViewer.cs:line 3338
   at System.Windows.Forms.Control.OnClick(EventArgs e)
   at System.Windows.Forms.Button.OnClick(EventArgs e)
   at System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent)
   at System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
   at System.Windows.Forms.Control.WndProc(Message& m)
   at System.Windows.Forms.ButtonBase.WndProc(Message& m)
   at System.Windows.Forms.Button.WndProc(Message& m)
   at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)

 

Mode: Mode_Offline

Save:
\\gvoltserver\ArkServer\GV\Island\ShooterGame\Saved\SavedArks\TheIsland.ark

Message:
An item with the same key has already been added.

Trace:
   at System.ThrowHelper.ThrowArgumentException(ExceptionResource resource)
   at System.Collections.Generic.Dictionary`2.Insert(TKey key, TValue value, Boolean add)
   at System.Linq.Enumerable.ToDictionary[TSource,TKey,TElement](IEnumerable`1 source, Func`2 keySelector, Func`2 elementSelector, IEqualityComparer`1 comparer)
   at System.Linq.Enumerable.ToDictionary[TSource,TKey,TElement](IEnumerable`1 source, Func`2 keySelector, Func`2 elementSelector)
   at ArkSavegameToolkitNet.Domain.ArkGameData.Update(CancellationToken ct, ArkPlayerExternal[] externalPlayerData, Boolean deferApplyNewData, ArkAnonymizeData anonymize) in F:\Projects\VS\ARKViewer-Master\ArkSavegameToolkitNet.Domain\ArkGameData.cs:line 113
   at ARKViewer.frmViewer.LoadData() in F:\Projects\VS\ARKViewer-Master\ARKViewer\frmViewer.cs:line 224
   at ARKViewer.frmViewer.btnSettings_Click(Object sender, EventArgs e) in F:\Projects\VS\ARKViewer-Master\ARKViewer\frmViewer.cs:line 3338
   at System.Windows.Forms.Control.OnClick(EventArgs e)
   at System.Windows.Forms.Button.OnClick(EventArgs e)
   at System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent)
   at System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
   at System.Windows.Forms.Control.WndProc(Message& m)
   at System.Windows.Forms.ButtonBase.WndProc(Message& m)
   at System.Windows.Forms.Button.WndProc(Message& m)
   at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)

Edited by Rattgtg
Link to comment
Share on other sites

Can you upload the save for me to check out please @Rattgtg?  Looks like it maybe duplicating something somewhere as that line is attempting to map out the status component data for tamed creatures.

Also - is that with the latest version? I was having some issues where I would experience duplicates/empty objects before I updated the list to be thread safe.

Link to comment
Share on other sites

@Rattgtg looks like I've got some race conditions going onl as it's attempting to sequentially read the file.. but then doing so over multiple threads/processes to speed it up.  I'm going to need some time to work out how best to handle it, I kinda adapted some code from the underlying framework without fully understanding it.

Leave it with me tonight, will hopefully get something to fix it all tomorrow.

Link to comment
Share on other sites

Scrap my last comment. Found the issue. It doesn't affect my map as I only have at most 1 vivarium, but I'm accidentally incrementing a counter I'm then using as a base for other objects for each vivarium - causing duplicate object id's.

I will do a build first thing in the morning to fix it - been a long day coding and packing up to move house and time for me to relax :)

Link to comment
Share on other sites

Hi Mirage..  Great to see you again :D !!

I would like to notify a bug that I have been observing lately to see if it has a solution,
It's about the last connection of a tribe.
There are players who only enter a map to reset the decay and inmediatly goes offline to other map.
When this happens, the last tribe connection is not updated and the previous "connection time" continues.

I don't know if you understand what I mean..


 

Link to comment
Share on other sites

Hi Mirage.

I've just noticed that ArkViewer2021-4 is producing duplicate entries for some tames on my Extinction map.
This is one example, but there are others.  Not every dino is duplicated.  

Let me know if you'd like a copy of the map.

{"id":550894212200354989,"tribeid":1163197200,"tribe":"Tribe of (no imprint) Du","tamer":"Tribe of (no imprint) Du","imprinter":null,"imprint":null,"creature":"Spindles_Character_BP_C","name":"Mum","sex":1,"base":172,"lvl":219,"lat":51.3597221,"lon":57.2920761,"hp-w":25,"stam-w":26,"melee-w":26,"weight-w":19,"speed-w":28,"food-w":27,"oxy-w":20,"craft-w":0,"hp-t":11,"stam-t":7,"melee-t":24,"weight-t":0,"speed-t":5,"food-t":0,"oxy-t":0,"craft-t":0,"c0":8,"c1":32,"c2":44,"c3":34,"c4":46,"c5":42,"mut-f":0,"mut-m":0,"cryo":false,"viv":false,"ccc":"58336.63 10877.78 -24652.47"},
{"id":550894212200354989,"tribeid":1163197200,"tribe":"Tribe of (no imprint) Du","tamer":"Tribe of (no imprint) Du","imprinter":null,"imprint":null,"creature":"Spindles_Character_BP_C","name":"Mum","sex":1,"base":172,"lvl":219,"lat":51.3597221,"lon":57.2920761,"hp-w":25,"stam-w":26,"melee-w":26,"weight-w":19,"speed-w":28,"food-w":27,"oxy-w":20,"craft-w":0,"hp-t":11,"stam-t":7,"melee-t":24,"weight-t":0,"speed-t":5,"food-t":0,"oxy-t":0,"craft-t":0,"c0":8,"c1":32,"c2":44,"c3":34,"c4":46,"c5":42,"mut-f":0,"mut-m":0,"cryo":false,"viv":false,"ccc":"58336.63 10877.78 -24652.47"},
 

 

  • Facepalm 1
Link to comment
Share on other sites

@MirageUK i test it now and it seems not being working for the command-line export 😕 I see the steamID while im exporting via GUI but not via cmd:

  {
    "playerid": 1234567,
    "steam": "FooBar",
    "name": "pleinx",
    "tribeid": 12345678910,
    "tribe": "FooBar",
    "sex": 0,
    "lvl": 103,
    "lat": 16.59224,
    "lon": 3.77611542,
    "hp": 30,
    "stam": 12,
    "melee": 2,
    "weight": 22,
    "speed": 9,
    "food": 5,
    "water": 3,
    "oxy": 0,
    "craft": 8,
    "fort": 11,
    "active": "2021-05-13T21:33:56Z",
    "ccc": "-330038,5 -238531,4 3888,095"
  },

My CMD

.\ARKSaveViewer.exe players "C:\temp\players_output.json" "C:\temp\Ragnarok\Ragnarok.ark"

 

I tried with "ArkViewer2021-4"

Edited by pleinx
Link to comment
Share on other sites

7 hours ago, MirageUK said:

Apologies, GUI exports everything in the grid... command line doesn't use same grid. I'll get it updated this weekend.

Thanks! Yeah, i thought so. But keep this format :) Means make all that data exportable via cmd. Thats cool!

 

You can btw. add the steamID to every tab / export.

Edited by pleinx
Link to comment
Share on other sites

I have gotten this a few times, it will error on first start of program but i can start it right back up and work normal with no error on 2nd try

Mode: Mode_Offline

Save:
\\gvoltserver\ArkServer\GV\Valguero\ShooterGame\Saved\SavedArks\Valguero_P.ark

Message:
An item with the same key has already been added.

Trace:
   at System.ThrowHelper.ThrowArgumentException(ExceptionResource resource)
   at System.Collections.Generic.Dictionary`2.Insert(TKey key, TValue value, Boolean add)
   at System.Linq.Enumerable.ToDictionary[TSource,TKey,TElement](IEnumerable`1 source, Func`2 keySelector, Func`2 elementSelector, IEqualityComparer`1 comparer)
   at System.Linq.Enumerable.ToDictionary[TSource,TKey,TElement](IEnumerable`1 source, Func`2 keySelector, Func`2 elementSelector)
   at ArkSavegameToolkitNet.Domain.ArkGameData.Update(CancellationToken ct, ArkPlayerExternal[] externalPlayerData, Boolean deferApplyNewData, ArkAnonymizeData anonymize) in F:\Projects\VS\ARKViewer-Master\ArkSavegameToolkitNet.Domain\ArkGameData.cs:line 113
   at ARKViewer.frmViewer.LoadData() in F:\Projects\VS\ARKViewer-Master\ARKViewer\frmViewer.cs:line 224
   at ARKViewer.frmViewer..ctor() in F:\Projects\VS\ARKViewer-Master\ARKViewer\frmViewer.cs:line 90
   at ARKViewer.Program.Main() in F:\Projects\VS\ARKViewer-Master\ARKViewer\Program.cs:line 1000

Link to comment
Share on other sites

Feature-Request for export via CMD

Current Commands:

.\ARKSaveViewer.exe players "C:\temp\players.json" "C:\temp\Viking_P\Viking_P.ark"
.\ARKSaveViewer.exe tamed "C:\temp\tamed.json" "C:\temp\Viking_P\Viking_P.ark"
.\ARKSaveViewer.exe structures "C:\temp\tribes.json" "C:\Viking_P\Viking_P.ark"
.\ARKSaveViewer.exe tribes "C:\temp\tribes.json" "C:\temp\Viking_P\Viking_P.ark"

Can we combine this export rules to one to save execution time? For bigger savegames (about 350MB) it takes up to 20minutes on NVMe. Is possible that you add this?

.\ARKSaveViewer.exe players,tamed,structures,tribes "C:\temp\*.json" "C:\temp\Viking_P\Viking_P.ark"

Which create JSON-Files like exportKey (players|tamed|structures|tribes)

C:\temp\players.json
C:\temp\tamed.json
C:\temp\structures.json
C:\temp\tribes.json

This should save a lot of time, because only one parsing time for savegame itself and the exports going really quick. That would be very cool! 🙂

 

EDIT:

If its easier / faster for you to implement this feature, make a "export all" function. I really dont need wild.json but wouldn't be a drama because, like already said, the export time itself is really quick, just the parsing takes long time.

Quote

.\ARKSaveViewer.exe all "C:\temp\*.json" "C:\temp\Viking_P\Viking_P.ark"

 

Edited by pleinx
Link to comment
Share on other sites

10 minutes ago, pleinx said:

Feature-Request for export via CMD

Current Commands:


.\ARKSaveViewer.exe players "C:\temp\players.json" "C:\temp\Viking_P\Viking_P.ark"
.\ARKSaveViewer.exe tamed "C:\temp\tamed.json" "C:\temp\Viking_P\Viking_P.ark"
.\ARKSaveViewer.exe structures "C:\temp\tribes.json" "C:\Viking_P\Viking_P.ark"
.\ARKSaveViewer.exe tribes "C:\temp\tribes.json" "C:\temp\Viking_P\Viking_P.ark"

Can we combine this export rules to one to save execution time? For bigger savegames (about 350MB) it takes up to 20minutes on NVMe. Is possible that you add this?


.\ARKSaveViewer.exe players,tamed,structures,tribes "C:\temp\*.json" "C:\temp\Viking_P\Viking_P.ark"

Which create JSON-Files like exportKey (players|tamed|structures|tribes)


C:\temp\players.json
C:\temp\tamed.json
C:\temp\structures.json
C:\temp\tribes.json

This should save a lot of time, because only one parsing time for savegame itself and the exports going really quick. That would be very cool! 🙂

 

EDIT:

If its easier / faster for you to implement this feature, make a "export all" function. I really dont need wild.json but wouldn't be a drama because, like already said, the export time itself is really quick, just the parsing takes long time.

 

Already has an option for "all":

.\ARKSaveViewer.exe all "C:\temp\" "C:\temp\Viking_P\Viking_P.ark"

 

  • Like 1
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...