Jump to content

Admin / Trusted Player Tool - Game Save Visualiser


MirageUK

Recommended Posts

Version 4.0.0.29 now available.

https://drive.google.com/file/d/1xozXnYLKAricODDdfYCJ_EwR49YJH-to/view?usp=sharing

Changes

  • Removed the additional column data from Death Cache view so columns line up correctly again.
  • Re-implemented the Tribe Log colour settings - noticed the button did nothing when testing.
    • Default background and foreground colours always available.
    • Click on a text line you want to change the colour of to map your text colour for it.

TribeLog.png.284439d7fe30aaf23de50818a18fa21c.png

 

TribeLogColourConfig.png.f71865c154ab40b492e9668cb39acff9.png

Work in progress

  • Local Profile tab - disabled it all in the release until I get it implemented.
  • Leaderboard tab. (Missions)

 

Leaderboard.thumb.png.ca67b8dcdb9c916e6a0d2b379713f29e.png

 

Edited by MirageUK
Forgot to mention Mission Leaderboard
  • Like 2
  • Thanks 1
Link to comment
Share on other sites

8 hours ago, pleinx said:

Uhh, Tribe-Log? Nice! 

 

Sorry was little bit busy last time, is it possible (or already done? :P) that we can export the tribe-log data via cmd?

Tribe logs have been in the UI version forever.  Features and functions you "command line exporters" miss out on ;)

I'll look at adding an ASV_TribeLogs.json as part of the normal Tribe export option

Example of Tribelog.json when I implement it in next release.

[
	{
        "tribeid": -2147483648,
        "tribe": "[ASV Abandoned]"
    }, 
	{
        "tribeid": 2000000000,
        "tribe": "[ASV Unclaimed]"
    }, 
	{
        "tribeid": 841085915,
        "tribe": "Tribe of Human"
    }, 
	{
        "tribeid": 1810584726,
        "tribe": "Raptorbait",
        "logs": ["Day 573, 13:30:02: Hep froze R-Velonasaur - Lvl 194 (R-Velonasaur)", "Day 573, 16:25:12: Hep froze HepRex - Lvl 304 (Tek Rex)"]
	}
]
Edited by MirageUK
Link to comment
Share on other sites

Hi Mirage, the "numbers always displayed on colors" feature introduced with 4.00.28 build is a bless, thank you so much !

I noticed something with items. We have a lot of Ascendant items and blueprints but they always show as Mastercraft in ASV. Not a big deal of course, especially with the very useful Rating field.

I know that the item quality is difficult to guess. An interesting read about that : https://usebeacon.app/help/item_quality_is_different_than

Link to comment
Share on other sites

I don't do any fancy calculates and  simply use the stored ItemQualityIndex and base my text representation on the ranges defined by the Wiki:

https://ark.fandom.com/wiki/Item_Quality

if (itemQual <= 1)
{
	Quality = "Primitive";
}
else if (itemQual > 1 && itemQual <= 1.25)
{
	Quality = "Ramshackle";
}
else if (itemQual > 1.25 && itemQual <= 2.5)
{
	Quality = "Apprentice";
}
else if (itemQual > 2.5 && itemQual <= 4.5)
{
	Quality = "Journeyman";
}
else if (itemQual > 4.5 && itemQual <= 7)
{
	Quality = "Mastercraft";
}
else if (itemQual > 7)
{
	Quality = "Ascendant";
}

If this isn't correct - somebody else needs to look at the source code and math involved.  

Edited by MirageUK
Link to comment
Share on other sites

1 minute ago, Elgar said:

I forgot to mention that when I select an item in the Item Search tab, very often in the list there is 1 item (sometimes more) which has no quality and no rating. Happens a lot with saddles.

See previous post.  I'm not doing any calculations, just listing out where a ItemQualityIndex value is set.

Link to comment
Share on other sites

1 minute ago, MirageUK said:

I don't do any fancy calculates and  simply use the stored ItemQualityIndex and base my text representation on the ranges defined by the Wiki:

That's weird. According to ASV there isn't a single Ascendant item on my server, although we have dozens of them. And we play vanilla, no mods at all.

Does ASV show Ascendant items for you ?

Link to comment
Share on other sites

I'll be honest, with all the changes recently I've not had ANY chance to really play and verify things.

I'll get the ARK Dev Kit installed and see if I can work out how to actually do the quality properly - and whether it's possible using just data available in .ark file.

Edited by MirageUK
Link to comment
Share on other sites

  • Volunteer Moderator
2 hours ago, MirageUK said:

See previous post.  I'm not doing any calculations, just listing out where a ItemQualityIndex value is set.

I believe the problem is that you are using the wrong property. The value of ItemQualityIndex is really just pointing to the associated FPrimalItemQuality inside the global ItemQualityDefinitions array. Assuming mods didn't override the definitions, the index for an Ascendant item would be 5 which evaluates as Mastercraft in your code:

else if (itemQual > 4.5 && itemQual <= 7)

Here is a simple Python script that emulates what the game internally does to retrieve and assign the quality index of an item:

class FPrimalItemQuality:
    """
    struct FPrimalItemQuality
    {
        FLinearColor QualityColor;
        FString QualityName;
        float QualityRandomMultiplierThreshold;
        float CraftingXPMultiplier;
        float RepairingXPMultiplier;
        float CraftingResourceRequirementsMultiplier;
    };
    """
    def __init__(self, **kwargs):
        for k, v in kwargs.items():
            setattr(self, k, v)

"""
struct UPrimalGameData
{
    TArray<FPrimalItemQuality, FDefaultAllocator> ItemQualityDefinitions;
}
"""
ItemQualityDefinitions = [
    FPrimalItemQuality(
        QualityColor=(179, 179, 179, 1),
        QualityName='Primitive',
        QualityRandomMultiplierThreshold=1.0,
        CraftingXPMultiplier=1.0,
        RepairingXPMultiplier=1.0,
        CraftingResourceRequirementsMultiplier=1.0
    ),
    FPrimalItemQuality(
        QualityColor=(51, 255, 51, 1),
        QualityName='Ramshackle',
        QualityRandomMultiplierThreshold=1.25,
        CraftingXPMultiplier=2.0,
        RepairingXPMultiplier=2.0,
        CraftingResourceRequirementsMultiplier=1.333333
    ),
    FPrimalItemQuality(
        QualityColor=(51, 76, 255, 1),
        QualityName='Apprentice',
        QualityRandomMultiplierThreshold=2.5,
        CraftingXPMultiplier=3.0,
        RepairingXPMultiplier=3.0,
        CraftingResourceRequirementsMultiplier=1.666667
    ),
    FPrimalItemQuality(
        QualityColor=(127, 51, 255, 1),
        QualityName='Journeyman',
        QualityRandomMultiplierThreshold=4.5,
        CraftingXPMultiplier=4.0,
        RepairingXPMultiplier=4.0,
        CraftingResourceRequirementsMultiplier=2.0
    ),
    FPrimalItemQuality(
        QualityColor=(255, 243, 25, 1),
        QualityName='Mastercraft',
        QualityRandomMultiplierThreshold=7,
        CraftingXPMultiplier=5.0,
        RepairingXPMultiplier=5.0,
        CraftingResourceRequirementsMultiplier=2.5
    ),
    FPrimalItemQuality(
        QualityColor=(0, 255, 255, 1),
        QualityName='Ascendant',
        QualityRandomMultiplierThreshold=10,
        CraftingXPMultiplier=6.0,
        RepairingXPMultiplier=6.0,
        CraftingResourceRequirementsMultiplier=3.5
    )
]

def GetItemQualityIndex(ItemRating):
    """
    unsigned int UPrimalGameData::GetItemQualityIndex(float ItemRating)
    {
      for (i = this->ItemQualityDefinitions.ArrayNum - 1; i > 0; --i) {
            if (ItemRating > *(float *)&this->ItemQualityDefinitions.AllocatorInstance.Data[sizeof(FPrimalItemQuality) * i + offsetof(FPrimalItemQuality, QualityRandomMultiplierThreshold)]) {
                return (unsigned int)i;
            }
      }
      return 0;
    }
    """
    for i, k in enumerate(reversed(ItemQualityDefinitions)):
        if ItemRating > k.QualityRandomMultiplierThreshold:
            return len(ItemQualityDefinitions) - i if i else i - 1
    return 0

def GetItemQualityName(ItemRating):
    return ItemQualityDefinitions[GetItemQualityIndex(ItemRating)].QualityName


assert GetItemQualityName(0) == 'Primitive'
assert GetItemQualityName(1.0) == 'Primitive'
assert GetItemQualityName(1.1) == 'Ramshackle'
assert GetItemQualityName(1.24) == 'Ramshackle'
assert GetItemQualityName(1.26) == 'Apprentice'
assert GetItemQualityName(2.5) == 'Apprentice'
assert GetItemQualityName(2.6) == 'Journeyman'
assert GetItemQualityName(4.5) == 'Journeyman'
assert GetItemQualityName(4.6) == 'Mastercraft'
assert GetItemQualityName(7.0) == 'Mastercraft'
assert GetItemQualityName(7.1) == 'Ascendant'
assert GetItemQualityName(100.0) == 'Ascendant'

As you can see, it tests the ItemRating against the thresholds; not the ItemQualityIndex.

  • Thanks 2
Link to comment
Share on other sites

Version 4.0.0.30 now available.

https://drive.google.com/file/d/1NOzGpqC25QEi09YaxKYHHs0E9n-it95n/view?usp=sharing

Rainbows.png.5eb687d2acbc615546b9198bdd55ebf7.png

Changes

  • Changed Quality name calculations to use the value of Rating.
  • Added colours to items where quality can be determined.
  • Added command line export for Tribe Logs - use command option "all" or "logs" @pleinx

Work in progress

  • Local Profile tab - If it can detect your steam folder it will currently load data for your own personally Uploaded Characters and Uploaded Tames (in the background)
    • Not loading into the UI yet until I've tested it more and worked out best way to get item quality in from the obelisk data to complete it all.
  • Leaderboard tab - no code behind this one yet but plan on listing Genesis mission leaderboard.
Edited by MirageUK
  • Like 1
  • Thanks 2
Link to comment
Share on other sites

53 minutes ago, AlphynenBlackwolf said:

What plans for adding other Maps? or Modded Maps do you have?  My Cluster uses Amissa, Olympus, Fjordur, Ebenus Astrum and ARKFourm Event map. I would love to have some way to track the players on these maps. 

Any that are requested and have decent map images available online that I can use.

 

...edit - found a map for Amissa, calculated approx co-ords and added for release in next build.

Amissa.thumb.jpg.c31a4c01fa804f13b9bea6933eefeab5.jpg

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

... and Ebenus Astrum

EbenusAstrum.thumb.jpg.8bd4c08acd4a17a77a4942e8e72cc8bd.jpg

I can't seem to find any visual map for the ArkForum Event map but will see if I can at least map out the co-ordinates until somebody can point me in the direction of a visual map to use.

..edit

ArkForum EventMap co-ords added. Standard 50/50 offsets with a size of 1500x1500.

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

Version 4.1.0.0 now available.

https://drive.google.com/file/d/1SpGEvje-Fq4_vG23gyZWfpvLKBxZWXR4/view?usp=sharing

Changes

  • Map support for: Amissa, Olympus, Ebenus Astrum
  • Basic map support for ArkForum EventMap - not sure how it'd help on an event map but I like to do what I can when people request them.
  • Local Profile tab - Personally uploaded characters and tames.  Still working on Items.
  • Leaderboard tab - Mission counts and leaderboard scores for Genesis / Genesis 2.
Edited by MirageUK
  • Thanks 1
Link to comment
Share on other sites

  • Basic map support for ArkForum EventMap - not sure how it'd help on an event map but I like to do what I can when people request them.

We use the Event map for more than events. We have our cluster's storage unit on a corner of the map, as well as our Auction tribe, that we would like to keep track of tames, item counts for.  Your tool is a large piece of how we regulate our rules and server size goals. Thank you for all the hard work!

Alphy.

  • Like 1
Link to comment
Share on other sites

42 minutes ago, Gamer2020 said:

Hi. Really great tool! I have been using it for the past few weeks on a server I started.

One question, I've noticed on recent updates that I don't see Tek Rexes anymore in the Wild Creatures tab on Crystal Isles. Is this expected?

Nope - if they don't show, they not spawned in.

Just did a quick single player test this morning to check and can confirm they appear for me:

 

TekRexCI.png.df06e95fb803b9c97d828af5c9a63fae.png

Edited by MirageUK
Link to comment
Share on other sites

7 minutes ago, BoRGaMeS said:

Hi.

Version 4.1.0.0, 4.0.0.30 stopped opening my saves. 

Ошибка.png

Guessing something not expected in your LocalProfiles\PlayerLocalData.arkprofile - only thing that's really changed.  Any ASV.log information to see what the last action it was that completed?

.. zip it up and send me the link.  Will investigate.  Seems to work for me using your Island and Ragnarok backups.

Edited by MirageUK
  • 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...