Jump to content

Admin / Trusted Player Tool - Game Save Visualiser


MirageUK

Recommended Posts

2 minutes ago, pleinx said:

@MirageUK thanks for adding the additional infos to Tribes-Export. But can you please re-check the output JSON is totally broken.

 

Thanks in advance :)

I really should not code on a night.. another stupid mistake on my part.  Closing off the array of members.. even if a tribe has no members and the array hasn't been started yet.

LOTS of test code in there at the moment though so give me some time to tidy it all up and get a release together.

Link to comment
Share on other sites

27 minutes ago, pleinx said:

Personally i like coding in the night

I didn't say I had no enjoyment, just some things should be done whilst fresh and not tired and / or intoxicated.

 

... such as my current overhaul.  Hopefully you guys won't notice the difference but in the background I'm adding a new layer of abstraction for the UI to use so that I can create my own format and re-use it for the export to players part.  Glad I started this early, it's getting time to think about leaving it until tomorrow now though.

Edited by MirageUK
Link to comment
Share on other sites

Ark Save Visualiser v2.1 now available.

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

Features

  • Major overhaul of anything that previously connected the UI to the original game save file and toolkit. 
  • Added ability to export various data to JSON from settings page.
  • Added ability to export a filtered version of the map save to provide to your own users.
  • Added ability to use new filtered map save file format (.asv). 
  • Shows the configuration page on loading if it is unable to find the configured (or not) map file.  

Fixes / Changes

  •  
  • Fixed window position on save to prevent the app from loading off screen if closed when minimized/maximized.

Future Planned Changes

  • Fix filters on the Dropped Items tab.
  • Move the map drawing code into its own place so that I can easily seperate the map out to display on a popout window, or to be exported to file.
  • Split map from main tab and grid interface to allow it to be floated elsewhere (another screen etc.)

FYI - If you currently use the "Ftp Server" map option it may first need to refresh the download before it picks it up on startup again.

You shouldn't have any issues with the new UI abstraction layer but as always, if you do, please let me know and I'll investigate.  

Edited by MirageUK
Filters still not right atm for dropped items tab.
Link to comment
Share on other sites

Getting this error when clicking any structure on the players structure tab

 

Mode: Mode_Offline

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

Message:
Object reference not set to an instance of an object.

Trace:
   at ARKViewer.ContentManager.<>c__DisplayClass61_0.<GetInventory>b__0(ContentInventory i) in F:\Projects\VS\ARKViewer-Master\ARKViewer\ContentManager.cs:line 128
   at System.Linq.Enumerable.FirstOrDefault[TSource](IEnumerable`1 source, Func`2 predicate)
   at ARKViewer.ContentManager.GetInventory(Int64 inventoryId) in F:\Projects\VS\ARKViewer-Master\ARKViewer\ContentManager.cs:line 128
   at ARKViewer.frmViewer.lvwStructureLocations_SelectedIndexChanged(Object sender, EventArgs e) in F:\Projects\VS\ARKViewer-Master\ARKViewer\frmViewer.cs:line 3533
   at System.Windows.Forms.ListView.OnSelectedIndexChanged(EventArgs e)
   at System.Windows.Forms.ListView.WmReflectNotify(Message& m)
   at System.Windows.Forms.ListView.WndProc(Message& m)
   at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)

  • Thanks 1
Link to comment
Share on other sites

Version 2.2 now available.

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

More code changes to tidy things up and fix bugs.

  • Map drawing is now done in one place and outside of the main UI.  Seems to have improved performance a little as a side bonus but this will now allow me to work on splitting off the map into a seperate tool window.
  • Dropped items overhaul.  Filters hopefully now all work. Added grid sorting.
  • Fix to re-parent cryopod creatures if their targeting tribe doesnt match the cryopod tribe.  On a map save provided by @Larkfields this surfaced over 600 podded creatures that weren't visible before due to having a tribe ASV didn't recognise.

Unless there is anything major that breaks things in this version, and being an optmist on the expected release of Genesis 2, I'm unlikely to be putting out another release this week.

...

Well so much for my optimism.  At least tomorrow afternoon now before Genesis 2.  Guess I have a few hours to kill - let's see what else I can break in ASV for the next release.

Couple of screen shots of planned seperate/popout and optionally visible tool windows for visible map:

Map by itself

Map with hidden custom structure markers expanded

Map structure options

You will be able to position and size them as required so you can make better use of your screen space.

 

Edited by MirageUK
Gen 2 delayed
  • Like 1
  • Thanks 1
Link to comment
Share on other sites

For me the latest version not working correctly.

 

Via Export-Command

.\ARKSaveViewer.exe all "C:\Test\Output\" "C:\Test\Viking_P\Viking_P.ark"

Doesnt export to the given folder. Found the files (other named) in the same directory like the ARKSavegameViewer named with "ASV_{TAB_KEY}.json" instead of "ARKViewer_Export_{TAB_KEY}.json".

The Name is not the big thing, but the folder.

 

First Time when i started the latest verison im getting these errors:

useRights, FileShare share, Int32 bufferSize, FileOptions options, SECURITY_ATTRIBUTES secAttrs, String msgPath, Boolean bFromProxy, Boolean useLongPath, Boolean checkHost)
   bei System.IO.FileStream..ctor(String path, FileMode mode, FileSystemRights rights, FileShare share, Int32 bufferSize, FileOptions options)
   bei System.IO.MemoryMappedFiles.MemoryMappedFile.CreateFromFile(String path, FileMode mode, String mapName, Int64 capacity, MemoryMappedFileAccess access)
   bei ArkSavegameToolkitNet.ArkSavegame..ctor(String fileName, ArkNameCache arkNameCache, Nullable`1 savegameMaxDegreeOfParallelism, ArkNameTree exclusivePropertyNameTree)
   bei ArkSavegameToolkitNet.Domain.ArkGameData.Update(CancellationToken ct, ArkPlayerExternal[] externalPlayerData, Boolean deferApplyNewData, ArkAnonymizeData anonymize) in F:\Projects\VS\ARKViewer-Master\ArkSavegameToolkitNet.Domain\ArkGameData.cs:Zeile 73.
   bei ARKViewer.Program.Main() in F:\Projects\VS\ARKViewer-Master\ARKViewer\Program.cs:Zeile 106.










Mode: Mode_SinglePlayer

Save:
TheIsland.ark

Message:
Der Objektverweis wurde nicht auf eine Objektinstanz festgelegt.

Trace:
   bei ARKViewer.frmSettings.frmSettings_Load(Object sender, EventArgs e) in F:\Projects\VS\ARKViewer-Master\ARKViewer\frmSettings.cs:Zeile 331.
   bei System.Windows.Forms.Form.OnLoad(EventArgs e)
   bei System.Windows.Forms.Form.OnCreateControl()
   bei System.Windows.Forms.Control.CreateControl(Boolean fIgnoreVisible)
   bei System.Windows.Forms.Control.CreateControl()
   bei System.Windows.Forms.Control.WmShowWindow(Message& m)
   bei System.Windows.Forms.Control.WndProc(Message& m)
   bei System.Windows.Forms.Form.WmShowWindow(Message& m)
   bei System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)

After i started the app again and selected a savegame, closed it, now i can export without getting "busted" message.

  • Thanks 1
Link to comment
Share on other sites

I've reproduced and got a fix for the command line export path.

Other errors both seem to relate to permissions. 

1st error was that the toolkit couldn't access the game save data. 

2nd one was attempting to access registry to determine location of your steam settings for single player.

I'll check the code over to make sure it only checks the registry for single player if single player map mode is chosen.

@pleinx - Re-packed and re-uploaded.  Same version/link.

Edited by MirageUK
Re-packed after fixing command line export path and implementing check around registry for steam folders.
  • Like 2
Link to comment
Share on other sites

Version 3.0 now available.

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

Features

  • Re-work of the UI. 
  • Each "view" now has it's own window, accessible from the main grid window.
  • ASV will save the size/locations of these popout windows and restore them the next time you choose to display them again.

As a reminder to anybody that can code in C# the code is all available on GitHub:

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

 

Issues

  • Player "view" crashes out and doesn't load the various inventories etc.
Edited by MirageUK
Found issues.
  • Thanks 1
Link to comment
Share on other sites

Good.. so is the release. Saves you some problems.  Will update the link when I've fixed the release.

... [Update 1]

Player Inventory / Tame Inventory views now working.

Uploaded to the correct link location in previous post.

... [Update 2]

To do

  • More specific error handling.
  • Update WIKI making it into a proper user guide.
  • Add future map support - next up when it's available, Genesis 2.
  • Dino ancestor view.. still not sure on how to lay this out or how it'll work so we'll see if I can come up with something.

Possibly another popout "tame" grid showing the details of generations where ASV is able to determine them (might not be alive anymore).

Ancestors.thumb.jpg.7899dd1ca263f349f76bcc729b8d9304.jpg

Wiki

https://github.com/miragedmuk/ARKViewer-Master/wiki

 

Edited by MirageUK
Updated image for WIP ancestry view.
Link to comment
Share on other sites

Thanks to the Genesis 2 waiting game, version 3.1 is now available.

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

Features:

  • Tamed creature ancestor view implemented.

Showing multi-generations of living ancestors (one in cryo)

Ancestors.thumb.jpg.2d9a0cffef9983b1694c2fe690bc4758.jpg

Showing one cryo and one dead/missing.

DeadAncestor.thumb.jpg.38a8c344a3b3bd95b28ee592b78d0c6d.jpg

To do:

  • Re-implement reverse lookup.  Where it highlights the appropriate grid item when you click on the marker on the map image. Just noticed it's a feature I have lost in the big UI overhaul.
  • Add a command-line export option to create player friendly ASV pack files for your users.
Edited by MirageUK
Added Todo.
Link to comment
Share on other sites

Version 3.2 now available.

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

Features

  • New automated command line option to output ASV pack file version of the data for users.
  • Basic support for GENESIS 2.  No visual map available for me yet but I've finally got in-game and worked out the scale and offsets - so included support for the co-ordinate system.

ASV Pack Command Line:

ArkViewer.exe pack "C:\temp\packSettings.json"

Available options to put in your own packSettings.json:

{
	"mapFilename": "C:\temp\maps\TheIsland.ark",
	"tribeId": 0,
	"playerId": 0, 
	"filterLat": 50.0, 
	"filterLon": 50.0, 
	"filterRad": 250.0,
	"packStructureLocations": true,
	"packStructureContent": true,
	"packDroppedItems": true,
	"packTribesPlayers": true, 
	"packTamed": true, 
	"packWild": true, 
	"packPlayerStructures": true
}

If no packSettings.json is provided it will attempt to load the last configured map selection and export using the above default options.

For any other developers out there that do similar work - Genesis 2 seems to have a scale of 14,500 with a 49.6 offset.

Known Issues

  • Fails to remember selected map structure types and reverts to just having Obelisks/Terminals checked.

 

Edited by MirageUK
Known issues.
Link to comment
Share on other sites

Bad news Mirage...

I can't be sure, but I think it was processing Crystal Isles.


 

Mode: Mode_SinglePlayer

Save:
TheIsland.ark

Message:
One or more errors occurred.

Trace:
   at System.Threading.Tasks.Task.ThrowIfExceptional(Boolean includeTaskCanceledExceptions)
   at System.Threading.Tasks.Task.Wait(Int32 millisecondsTimeout, CancellationToken cancellationToken)
   at System.Threading.Tasks.Parallel.ForWorker[TLocal](Int32 fromInclusive, Int32 toExclusive, ParallelOptions parallelOptions, Action`1 body, Action`2 bodyWithState, Func`4 bodyWithLocal, Func`1 localInit, Action`1 localFinally)
   at System.Threading.Tasks.Parallel.ForEachWorker[TSource,TLocal](IEnumerable`1 source, ParallelOptions parallelOptions, Action`1 body, Action`2 bodyWithState, Action`3 bodyWithStateAndIndex, Func`4 bodyWithStateAndLocal, Func`5 bodyWithEverything, Func`1 localInit, Action`1 localFinally)
   at System.Threading.Tasks.Parallel.ForEach[TSource](IEnumerable`1 source, Action`1 body)
   at ARKViewer.Models.ContentPack.LoadGameData(ArkGameData gd) in F:\Projects\VS\ARKViewer-Master\ARKViewer\Models\ContentPack.cs:line 658
   at ARKViewer.Models.ContentPack..ctor(ArkGameData gd, Int64 selectedTribeId, Int64 selectedPlayerId, Decimal lat, Decimal lon, Decimal rad, Boolean includeGameStructures, Boolean includeGameStructureContent, Boolean includeTribesPlayers, Boolean includeTamed, Boolean includeWild, Boolean includePlayerStructures) in F:\Projects\VS\ARKViewer-Master\ARKViewer\Models\ContentPack.cs:line 101
   at ARKViewer.Models.ContentPack..ctor(ArkGameData gd, Int32 selectedTribeId, Int32 selectedPlayerId, Decimal lat, Decimal lon, Decimal rad) in F:\Projects\VS\ARKViewer-Master\ARKViewer\Models\ContentPack.cs:line 104
   at ARKViewer.Program.Main() in F:\Projects\VS\ARKViewer-Master\ARKViewer\Program.cs:line 108

Link to comment
Share on other sites

Greetz :)

Hmm, in my case (e.g. Map Fjördur) i get no exports. Your log says:

2021-06-04 00:10:53 - ASV Command Line Started: 4
	Arg-0 = "C:\temp\test_new\ARKSaveViewer.exe"
	Arg-1 = all
	Arg-2 = C:\temp\
	Arg-3 = C:\temp\ARK\Viking_P\Viking_P.ark

So means arguments looks fine, but no output.

Edited by pleinx
Link to comment
Share on other sites

Version 3.3 now available.

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

Features

  • Added map image for Genesis 2.
  • Updated map image for mod map Astral ARK.

Fixes

  • Map structure checkboxes now save and load correctly to remember your choices.
  • Command line exports fixed.
  • Pack export config file options fixed

Example pack config for command line export.

{
    "mapFilename": "C:\\Temp\\TestMap.ark",
    "exportFilename": "C:\\Temp\\TestPack.asv",
    "tribeId": 0,
    "playerId": 0,
    "filterLat": 50.0,
    "filterLon": 50.0,
    "filterRad": 250.0,
    "packStructureLocations": true,
    "packStructureContent": true,
    "packDroppedItems": true,
    "packTribesPlayers": true,
    "packTamed": true,
    "packWild": true,
    "packPlayerStructures": true
}

Known Issues

  • Selected Tame visual marker drawn using lon/lon instead of lon/lat.
  • Error viewing ancestor view for a tame in cryo.
  • Doesnt remember your zoom level when map view closed and re-opened.

Future Plans

  • Implement a REST api, accessible via the web when ASV is running.
  • Implement a web based interface for users.
Edited by MirageUK
  • Thanks 1
Link to comment
Share on other sites

Good morning.

Version 3.4 now available.

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

Bug Fixes

  • Lat/Lon marker for selected TAME was using Lon/Lon. Updated to use Lat/Lon as required.
  • Ancestor view error when attempting to view ancestors of a tame in cryo.
  • Zoom level of map display now remembered and restored when re opening map view.

Issues

  • Shouldn't be obvious but it looks like I'm loading some things twice after the initial game save data is loaded.  No visual / user issues but adds some time to the initial load that isn't necessary.

Future Changes

  • Re-implement reverse lookup.  Highlight the grid item when the marker is clicked on the visual map.
  • Increase resolution of image maps to at least 2048 x 2048.
  • Add a REST service that will be accessible over the web for whitelisted IP addresses while ASV is running providing the information as an API.
  • Possibly implement a basic web based interface to use with the API.
  • Add support for any other requested maps.
  • Work on fleshing out the WIKI.

... and for nostalgia a picture of an early release that was as far as this app was going to go for our own personal use until you guys got involved and inspired me to add features. 🥰

firstscrape.jpg.751e4ca27e2c247c8901ae5e81c26e00.jpg

Edited by MirageUK
Added Issues and Future Changes.
  • Thanks 1
Link to comment
Share on other sites

Version 3.6 now available.

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

Features

  • Re-implemented map image click reverse lookup to select the grid item of clicked map marker.
  • Added save option to export the current map view as PNG.

Fixes

  •  Removed additional unrequired call to load raw game objects into domain containers.  Might increase loading speed a little but the main load is in the raw data which was only loaded once.
  • Removed unrequired calls to draw map if the map toolbox is not displayed.
  • Tweaks to UI icons, only enabling ancestor / inventory views if selected has them.
  • Added error handling around loading .ark game files. Now fails gracefully and asks to refresh download or check settings.
  • Stores and restores your last choice for showing cryo/vivarium tames.
  • Vivarium tame background now light green. Pink/light red been allocated to dead  / missing ancestors.

Planned Changes

  • Add ability to export map view images from command line.
  • Allow grouping options for custom markers.
  • Add logging to file with more error detail when exceptions occur on UI version.
  • Add a FTP browser option for file selection.
  • Allow saved FTP server details to be edited.
  • UI pass to ensure all screens have app icons and update for consistent feel across the app.
  • Re-visit player mission scores.
  • Re-visit item stats / quality stuff again.
  • Possible "Breeding Finder" - click on your tame and have it find any wilds with stats higher than a set level difference to your tame.
  • Add REST service to provide web API when ASV running.
  • Re-add "auto-refresh" to the UI to allow it to get latest game save data on schedule.  This will allow the web API service to provide up to date data (last save) without admin having to refresh it themselves.
  • Work on the user guide WIKI.
  • Suport future official or user requested maps.

Known Issues

  • Adding new FTP server isn't working properly.
  • "Log view" for tribe tab isn't working.
Edited by MirageUK
New version 3.6
  • Thanks 2
Link to comment
Share on other sites

Hi MirageUK, I started again using your tool today after a 4 months break. I'm amazed by all of these new features, thank you so much !

I have a problem though : I can't manage to save my server FTP credentials in the settings window of ARKViewer. I complete every field, but the "Save" button remains disabled. I guess that one field hasn't exactly the expected information (or the format is wrong, a missing "/" for example), but I can't figure out which one. Maybe it's the save path, I don't know.

Could you help me please ? Maybe with an example ?

  • Thanks 1
Link to comment
Share on other sites

I've just noticed that bug myself Elgar, adding a new server in for my own Genesis 2.  It's on my fix list.

... you can always manually download and put ASV into offline mode to view the files youve downloaded until I get a fix out

FYI I estimate next build to be within 24 hours - not going to be as fast a turnaround on this one as the others (1-2 hours) .  I've started re-working command line export options to work from json config input files and started coding up the FTP server browser feature.

Other than more error handling / logging and a UI pass to make it all consistent it's starting to look quite close to a full feature finished app now.  I can finally feel that I've actually added a decent amount over the original toolkit :)

Almost completed the re-work of the command line exports to include option to export map images.  Another half hour or so to test it a little then move on to doing the FTP server browser for adding new servers and editing existing ones.

Edited by MirageUK
Progress update
Link to comment
Share on other sites

Sample JSON config files for command line exports.

  • Pack export - to export player pack files to provide them with limited information and no direct access to game save data raw files.
{
    "mapFilename": "C:\\Temp\\TestMap.ark",
    "exportFilename": "C:\\Temp\\TestPack.asv",
    "tribeId": 0,
    "playerId": 0,
    "filterLat": 50.0,
    "filterLon": 50.0,
    "filterRad": 250.0,
    "packStructureLocations": true,
    "packStructureContent": true,
    "packDroppedItems": true,
    "packTribesPlayers": true,
    "packTamed": true,
    "packWild": true,
    "packPlayerStructures": true
}

 

  • JSON export(s)
{
	"mapFilename": "C:\\temp\\Rattgtg\\crystalisles.ark",
	"tribeId": 0,
	"playeId": 0,
	"filterLat": 50,
	"filterLon": 50,
	"filterRad": 250,
	"exportTribes": {
		"jsonFilename": "C:\\temp\\tribes.json",
		"imageFilename": "C:\\temp\\tribes.png",
		"addStructures": true,
		"addStructureContent": true,
		"addPlayers": true,
		"addTames": true
	},
	"exportStructures":
	{
		"jsonFilename": "C:\\temp\\structures.json",
		"imageFilename": "C:\\temp\\structures.png",
		"className": ""
	},
	"exportPlayers":
	{
		"jsonFilename": "C:\\temp\\players.json",
		"imageFilename": "C:\\temp\\players.png"
	},	
	"exportWild":
	{
		"jsonFilename": "C:\\temp\\wilds.json",
		"imageFilename": "C:\\temp\\wilds.png",	
		"className": "",
		"minLevel": 0,
		"maxLevel": 999		
	},
	"exportTamed":
	{
		"jsonFilename": "C:\\temp\\tames.json",
		"imageFilename": "C:\\temp\\tames.png",	
		"className": "",
		"includeStored": true		
	}
}

 

Link to comment
Share on other sites

Hi Mirage.

A crash from version 3.6 while processing Genesis 😞

 

Mode: Mode_SinglePlayer

Save:


Message:
One or more errors occurred.

Trace:
   at System.Threading.Tasks.Task.ThrowIfExceptional(Boolean includeTaskCanceledExceptions)
   at System.Threading.Tasks.Task.Wait(Int32 millisecondsTimeout, CancellationToken cancellationToken)
   at System.Threading.Tasks.Parallel.ForWorker[TLocal](Int32 fromInclusive, Int32 toExclusive, ParallelOptions parallelOptions, Action`1 body, Action`2 bodyWithState, Func`4 bodyWithLocal, Func`1 localInit, Action`1 localFinally)
   at System.Threading.Tasks.Parallel.ForEachWorker[TSource,TLocal](IEnumerable`1 source, ParallelOptions parallelOptions, Action`1 body, Action`2 bodyWithState, Action`3 bodyWithStateAndIndex, Func`4 bodyWithStateAndLocal, Func`5 bodyWithEverything, Func`1 localInit, Action`1 localFinally)
   at System.Threading.Tasks.Parallel.ForEach[TSource](IEnumerable`1 source, Action`1 body)
   at ARKViewer.Models.ContentPack.LoadGameData(ArkGameData gd) in F:\Projects\VS\ARKViewer-Master\ARKViewer\Models\ContentPack.cs:line 657
   at ARKViewer.Models.ContentPack..ctor(ArkGameData gd, Int64 selectedTribeId, Int64 selectedPlayerId, Decimal lat, Decimal lon, Decimal rad, Boolean includeGameStructures, Boolean includeGameStructureContent, Boolean includeTribesPlayers, Boolean includeTamed, Boolean includeWild, Boolean includePlayerStructures) in F:\Projects\VS\ARKViewer-Master\ARKViewer\Models\ContentPack.cs:line 102
   at ARKViewer.Program.Main() in F:\Projects\VS\ARKViewer-Master\ARKViewer\Program.cs:line 192

Edited by Larkfields
correction
  • Sad 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...