Jump to content

Admin / Trusted Player Tool - Game Save Visualiser


MirageUK

Recommended Posts

I hate the oddities of ARK data sometimes.  Turns out "normal" engrams are included in the Map.ARK save data as part of player inventory however Tek engrams are not.

Digging further I can see in my player.arkprofile data "PlayerState_EngramBluePrints" which appears to contain all learned engrams for that player.  I will update ASV later to use this data instead of inventory data from the game save.

Also available: Emotes, Explorer Notes

  • Like 1
Link to comment
Share on other sites

Version 4.2.1.3 now available to download:

https://drive.google.com/file/d/1A_Nh1Y9bPzvvKAxehkKwkn2ufHL4_gsr/view?usp=sharing

Features

  • Player Engrams - see what emotes, hairstyles and engrams a player has unlocked.

 

PlayerEngrams.jpg.82103cb48a9f8d6311ae7b0a7f831f25.jpg

 

I'll need to work out explorer notes. They are in an array of numbers rather than class strings so need to find out what each means before I can implement explorer notes found.

Edited by MirageUK
  • Like 2
Link to comment
Share on other sites

2 hours ago, MirageUK said:

Hi Mirage.

I'm getting "A fatal error was encountered. The library 'hostpolicy.dll' required to execute the application was not found in 'C:\Program Files\dotnet\'.   Failed to run as a self-contained app."

When trying  ASVExport 😞

Is the dll available anywhere please?

Link to comment
Share on other sites

I'll look into it - I thought the host stuff was only required when running on Linux.. which I don't have myself.  

 

edit. 

Seems to be an issue of running NLog command in the ASVPack.dll which is targeting .net framework 4.8 being called by ASVExport.exe which is .net core 3.

Will investigate and see what is required to get it working.  For now can you use ArkViewer command line to export instead? should be the same command line input and results.

 

edit 2. 

I'm going to be working on bringing all the projects up to date and unify them against Microsoft .Net 6 which is the latest and long term supported version of .net core.  Will hopefully have it complete this evening after I finish work today. (Yes, I work bank holidays)

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

Once you have the dotNet 6 runtimes installed the only dll's needed in the updated dotNet 6 version of ASVExport will be:

  • ASVExport.dll
  • ASVPack.dll
  • Newtonsoft.Json.dll
  • NLog.dll
  • SavegameToolkit.dll
  • SavegameToolkitAdditions.dll

The viewer will obviously need a few more:

  • ArkViewer.dll
  • FluentFTP.dll
  • Renci.SshNet.dll
  • SshNet.Security.Cryptography.dll
  • System.Windows.Forms.DataVisualisation

Got most of it upgraded this morning before work but had issues with the Chart control.  Apparently dotNet 6.0 doesn't support the original control and a port hasn't been done on a "designer" so will have to hand code the charts on the Tribe tab after work this evening.

Link to comment
Share on other sites

46 minutes ago, MirageUK said:

Got most of it upgraded this morning before work but had issues with the Chart control.  Apparently dotNet 6.0 doesn't support the original control and a port hasn't been done on a "designer" so will have to hand code the charts on the Tribe tab after work this evening.

I appreciate you doing this Mirage.

Don't you just love it when M$ remove parts of libraries that you rely on 😞

Link to comment
Share on other sites

New build now available. 4.3.0.0.

https://drive.google.com/file/d/1kfNKYTlwJVZRkHMCVMvf1tyDDgPW6cak/view?usp=sharing

All now fully ported to target Microsoft .Net 6.0

PLEASE NOTE:  If you haven't already got it installed you'll need to install v6 of the dotNet framework from: Microsoft dotNet Website

  • Console apps runtimes will be required for ASVExport and ArkViewer.
  • Desktop apps runtimes will be required to run ArkViewer.exe

New version of source code also available for those that are interested:

https://github.com/miragedmuk/ASV

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

I have a request for a potential feature, there are a couple commands which are newer which could be of use, TeleportCreatureToMe DinoID[Fstring], TeleportToCreature DinoID[Fstring], Cryo DinoID[FString]

I had done some testing with this and the DinoID is the long string of numbers that each dino has, it is seperated into 2 different numbers when the dino is exported. Now given the command would need to be used with-in the game rather than remotely a way to copy the dinoID or look up the DinoID would be very useful. I dont know if this is something that can be added but would allow a way to easily recover lost dinos. 

Once again Thank You for the hard work you put into the tool, I hope you have a wonderful day. 

Edited by Sirendire
Added Cryo DinoID[FString]
  • Like 1
Link to comment
Share on other sites

2 hours ago, Sirendire said:

Now given the command would need to be used with-in the game rather than remotely a way to copy the dinoID or look up the DinoID would be very useful. I dont know if this is something that can be added but would allow a way to easily recover lost dinos. 

 

The latest release includes the in-game DinoId.  Right click in the grid of the wild or tamed you want and select "Copy DinoId"

I will add your suggested commands and review the latest available commands and add any that are now also appropriate.

  • Thanks 1
Link to comment
Share on other sites

Love the tool.  Just found it recently and it has saved me a lot on debugging my server for potential errors and doing admin utilities.  

One request, would be on the Wild and Tamed Creatues is be able to apply a custom filter.  Currently I either have to choose a specific dino BP or choose all creatues and manually sort through the list.  For example, we have dinosaurs that spawn as both a parent and child variant.  Would love to be able to filter all the child variant by just searching on say Child_C and have it filter all Creatures that contain the string.  Perhaps add a button next to the spyglass that is for apply as filter?

Either way, so far loving the tool.  Keep up the great work.

Link to comment
Share on other sites

Hi Mirage.

Unfortunately, I'm getting an exception from 4-3-0-0 😞
I can upload the save file if you'd like to see it.

C:\ArkTools\ArkViewer-4-3-0-0>asvexport all "\ArkServer\ShooterGame\ShooterGame\Saved\SavedIsland\theisland.ark" \temp
ASV Command Line Started with 4 parameters.
CommandLineArg-0 = C:\ArkTools\ArkViewer-4-3-0-0\ASVExport.dll
CommandLineArg-1 = all
CommandLineArg-2 = \ArkServer\ShooterGame\ShooterGame\Saved\SavedIsland\theisland.ark
CommandLineArg-3 = \temp
Read ended in 00:00:05.1967109
Stored containers identified in 00:00:00.0741492
Properties loaded in 00:00:01.6757359
Objects added in 00:00:00.0077831
Failed export for: \ArkServer\ShooterGame\ShooterGame\Saved\SavedIsland\theisland.ark - Ex: Object reference not set to an instance of an object.

asv.log says...
2022-05-04 16:15:55.7929|INFO|Reading game save data...
2022-05-04 16:16:02.8976|INFO|Game data loaded in: 00:07.
2022-05-04 16:16:02.8976|INFO|Reading mission leaderboard data...
2022-05-04 16:16:02.8976|INFO|Reading .arkprofile(s)
2022-05-04 16:16:03.1521|INFO|Reading .arktribe(s)
2022-05-04 16:16:03.2118|INFO|Allocating players to tribes
2022-05-04 16:16:03.2499|INFO|Identifying map structures
2022-05-04 16:16:03.2499|ERROR|LoadSaveGame failedSystem.NullReferenceException: Object reference not set to an instance of an object.
   at ASVPack.Models.ContentContainer.<>c__DisplayClass43_0.<LoadSaveGame>b__5(GameObject s) in C:\Dev\ASV_New\ASVPack\ASVPack\Models\ContentContainer.cs:line 402
   at System.Linq.Enumerable.WhereSelectListIterator`2.MoveNext()
   at System.Linq.Enumerable.WhereEnumerableIterator`1.ToList()
   at ASVPack.Models.ContentContainer.LoadSaveGame(String saveFilename, String localProfileFilename) in C:\Dev\ASV_New\ASVPack\ASVPack\Models\ContentContainer.cs:line 379    at ASVPack.Models.ContentContainer.<>c__DisplayClass43_0.<LoadSaveGame>b__5(GameObject s) in C:\Dev\ASV_New\ASVPack\ASVPack\Models\ContentContainer.cs:line 402
   at System.Linq.Enumerable.WhereSelectListIterator`2.MoveNext()
   at System.Linq.Enumerable.WhereEnumerableIterator`1.ToList()
   at ASVPack.Models.ContentContainer.LoadSaveGame(String saveFilename, String localProfileFilename) in C:\Dev\ASV_New\ASVPack\ASVPack\Models\ContentContainer.cs:line 379


 

Link to comment
Share on other sites

FYI, I updated from 4.2.1.3 to 4.3.0 and had to delete my config.json file to be able to get it to download from FTP as it would always fail on frmViewer to connect with an authentication error.  Even when I would go in and add a new FTP server it would let me authenticate on that form but would still not download on frmViewer.

Once I deleted the config.json and re-added my FTP servers, I was able to download from frmViewer without issue.

Hopefully that helps anyone else having this issue.

Link to comment
Share on other sites

@Larkfields send me your save folder backup.  Will dig into it and see what's going on - I don't believe anything major was changed but I'm always tweaking things so could have accidentally broken something.

@Kraylin I'll have to try and reproduce this at some point but I no longer run my own ARK server so pretty limited on what I can test from FTP connection side of things atm.  Also - the sub filtering.  I might change the current search box from finding next to applying a filter find.  I believer you should then be able to use it for your purposes.

Link to comment
Share on other sites

On 5/2/2022 at 12:44 PM, MirageUK said:

All now fully ported to target Microsoft .Net 6.0

Wb, glad to see you are having more time again :)
I forked it a while back and played around with .net 6.0 already and it drastically improved the speed of extracting with ASVExport on Linux, got some server stuff I have to deal with, but will later write up how to get it working on a Debian based system.

  • Thanks 1
Link to comment
Share on other sites

Hello :)

 

I got this for the 4.3. I still downloaded (.NET 6.0 Runtime), installed and restarted the machine.

image.png.ed0fba96bf0ed835a3e20be60a89dbcd.png

Any ideas whats still missing?

 

Another question about the Tribes-Tab (and the export functionality):

When Player "Tom" plays on multiple maps (e.g. Ragnarok and The Island) the JSON "members" is empty when the player is leaving this server.

 

Example

Tom is on Ragnarok, server saves, tool is running. The output is fine:

[{"ign":"Tom","lvl":"1","playerid":"123","playername":"Tom","steamid":"123456"}]

Tom leaves Ragnarok and visit The Island. The Ragnarok server saves and the tool is running. The output doesnt include the members now:

[{}]

But when i looked via cheat into this tribe, the game still knowns the members. Is there way that you can fix?

Link to comment
Share on other sites

1 hour ago, MirageUK said:

@pleinx - did you install both the runtime and "desktop runtime"? ASVExport should work with just the runtime - ArkViewer will also need the desktop runtime installing

So, now i have both installed (thanks) and the ArkViewer works. But i have troubles with the export functionality.

 

I installed ASV from scratch and adjust the export line to this:

.\ASVExport.exe all "C:\temp\ARK\ASV_Test\TheCenter.ark" "C:\temp\output\"

No output in the CMD, no log in the asv.log. Any ideas? Sorry when i missed a major change. I checked some pages before and your start post but maybe i still missed it.

 

I sent you the savegame, for debugging.

 

EDIT:

Maybe this helps you. I tried also to open the same .ark file which i want to export things in the ark-viewer and getting this on tribe tab:

image.thumb.png.310ee52b557500f8aaea78107813c111.png

Edited by pleinx
Link to comment
Share on other sites

On 5/7/2022 at 9:49 AM, StevenB said:

Wb, glad to see you are having more time again :)
I forked it a while back and played around with .net 6.0 already and it drastically improved the speed of extracting with ASVExport on Linux, got some server stuff I have to deal with, but will later write up how to get it working on a Debian based system.

Greetz StevenB.

Can you tell me howto setup ASVExport on your linux dist? :) I'm running a Ubuntu 20.04 server.

 

EDIT:

i played today a little more with it. I installed .net-6.0 on the ubuntu machine from this docs:

https://docs.microsoft.com/en-us/dotnet/core/install/linux-ubuntu#2004-

 

now im getting this:

Quote

 ./ASVExport.dll /home/pleinx/Downloads/ASV_Test/TheCenter.ark /home/pleinx/Downloads/ASV_Test

Unhandled Exception:
System.TypeLoadException: Could not resolve type with token 01000018 from typeref (expected class 'System.AppDomain' in assembly 'System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a')
[ERROR] FATAL UNHANDLED EXCEPTION: System.TypeLoadException: Could not resolve type with token 01000018 from typeref (expected class 'System.AppDomain' in assembly 'System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a')

do you have any ideas?

Edited by pleinx
Link to comment
Share on other sites

@pleinx Not got your dm with save but Larkfields already sent me his which I've been quickly testing.

The command line export appears to have changed between the versions of .net - for some reason the regular expression I was using to parse it out no longer does.  I have a new version I'm working on - leave it with me half hour or so.  I guess I also forgot to package up System.Data.SqlClient.dll - will make sure I zip it up with next release.

  • Thanks 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...