cadon / ARKStatsExtractor

A tool for the game ARK: Survival Evolved. Extracts possible levelups of creatures to get the values for breeding. With library and pedigree-view.
MIT License
481 stars 248 forks source link

Creature ID Feature Question #762

Closed PreshusRoze closed 4 years ago

PreshusRoze commented 6 years ago

I've updated Smart Breeder to the latest version 0.28.9 and was happily wanting to test out the new feature of the Creature ID line, as I like to keep track of the IDs because we breed and sell in-game. And yes, I know that it was posted that it would be a week or so before updates were implemented - so no rush on my side,

Can someone explain what "creature ID" is being auto-loaded from the creature export feature as opposed to the one I'm seeing in-game?

ark-id-question 20180823141722_1

cadon commented 6 years ago

Interesting. When using the import-option, the id that is present in the export-file is used. I assumed this is the same id as displayed ingame. Unfortunately I can only investigate that further in a week or so.

dustinpianalto commented 6 years ago

I will look into this when I get home tonight. I'll also pull a save file from our server and see how it is stored there.

PreshusRoze commented 6 years ago

@dustinpianalto mammothm205-id

I play official so pulling saved filed is not an option for me. This the screenshot is the rest of the displayed info in the dino export saved file.

mammothm205-id002

*edited I see where in this file matches the in game ID 158838715166002505 that is displayed in Creature Ancestry But what was in the file & in game was NOT what loaded into Smart Breeder. I'll try with another dino that was just hatched and see if the issue repeats.

PreshusRoze commented 6 years ago

-- I updated to 0.28.9.1 -- I exported an argent that was hatched w/i the last 4 hours (no imprint). -- It's In-game and ini-file IDs matched (& were 18 digits) but the ID that loaded into SB was nowhere similar and had 19 digits. -- I hit CLEAR a couple of times (had to manually highlight and delete the ID section) then used LAST EXPORT. -- It only loaded: Name, Owner, [the same incorrect] ID, and stats for the Argent. -- It did not load the parental info like it does (sporadically) the 1st time - though this has been an ongoing thing for a while. -- The incorrect ID that loaded for the Argent is not the same as the incorrect ID that loaded for the Mammoth nor were they anywhere similar to each other.

coldino commented 6 years ago

Ark's ID is simply the concatenation of DinoID1 and DinoID2 as strings. This is not a good way to make an ID and will lead to cases where two different creatures have the same ID occasionally.

Internally to ASB the DinoID1 and DinoID2 are combined using a method copied from ark-tools, which simply puts each 32-bit field into each half of a 64-bit field. This allows ASB to have compatibility between imports from Ark exports and ark-tools.

Instead of changing ASB's ID system and causing countless problems with existing saves I would suggest adding a new field to creatures, storing the "Ark ID". This can be calculated from imports or could be entered by the user, but should not be used for looking up creatures - the current internal ID can continue to be used as it is more robust than Ark's ID.

dustinpianalto commented 6 years ago

I concur with coldino's assessment. The way Ark displays the IDs is flawed and should not be used for a unique identifier. Internally Ark keeps the two IDs separate and therefore it isn't an issue except for when it is displayed for the user. For example if you had a dino where ID1 = 1234567 and ID2 = 89012345 and a different dino with ID1 = 12345678 and ID2 = 9012345 Ark can tell that they are different dinos because it stores the IDs separate, but they would both be displayed to the user as 123456789012345 and therefore it should not be used as a unique identifier no matter how rare this case may be.

ASB should continue to use its current method for creating the UUID but I agree it would be good to add an ARK ID field to hold the value as it is displayed inside of ARK.

PreshusRoze commented 6 years ago

I'm not fully understanding the ASB ID creation and where it comes from. I did not see anything similar in numeric value or numeric combination, in any of the exported ini files I looked at for my dinos. I'll trust you do know so I'll leave it at that.

As for now, I'll go with your assessments then and continue to use the NOTE field for the in-game ID until such time as a section/line is created to store the in-game ID info. Even a dual line setup to correspond with the DinoID1 and DinoID2 parts of the Dinos' ID as it displays in the ini file and in-game specimen ID would be acceptable. Though, likely confusing to those not knowing/understanding that long ID comes in 2 parts w/i the ini.

I do hope the additional line is created as that is more readily available to view and compare with in-game as opposed to the ASB ID. Especially since that only shows up when exporting/importing, and to do that every time to compare would be most time consuming.

-With that said; renaming the current line of "ARK-ID" to "ASB-ID" may help to lessen (some of the) confusion when that information populates and it does not match the ID in-game. Thank you!

dustinpianalto commented 6 years ago

@PreshusRoze The current ID creation is a binary operation on DinoID1 and DinoID2 so it won't necessarily be noticeable where it comes from. I can explain it further if you would like but the Discord chat would probably be a better forum for that discussion. https://discord.gg/qCYYbQK

cadon commented 4 years ago

The issue has been fixed, for imported creatures there will be an extra field that displays the ID from ingame alongside the real id.