Hello, hello! Welcome to the Buying Grandma’s discussion.
Stringing off of the research topic: | Player ID Research |, we found a possible way to gain rewards while out of gimkit with the Player ID. Here’s some important information from the research topic (and why we stringed away for this mechanic):
why we need to figure out encryption:
The reason this is a separate topics is for we don’t cog up the other Research one, and they can continue figuring out the basics of a Player ID, and so we can stay organized with our finds and studies.
any other important stuff can be edited onto here if a tl4 can make this a wiki.
Our current example is that we have 6 Grandmas, and need to find a way to save the amount of cookies those grandma’s produce when you’re off the game and how to save those 6 Grandmas for the next time you log in.
I mean, you could have them input the digits that stay the same, and then somehow gather those digits(and letters, too) and then see if they are the same. Possibly.
You could track positions to get where the player was since their last playthrough, but what about things like inventories?
Sending players to the right area would be hard as well.
The player ID changes after time has passed, so could it change when other things happen like getting an item? If that were the case and the player ID did store inventory data, save codes could work.
For save codes, are we talking as soon as the player joins they get their items, or they have to input their save codes. Because if we are talking the second, I have a theory/possible way to execute it.
The latter is what we’re going for unless ‘new game’
Edit 2025-05-03T14:46:00Z: I’m thinking of the game ‘The World Ends with You’ where one gains pin points (pp) for the amount of time they were off-game…
That’s what the ID is for. In the research guide for ID we discovered that the first 8 digits are hexadecimal code for UTC time or seconds since the UNIX Epoch that started on January 1, 1970. The idea is to give the player a save code of that timestamp, so when they rehost and plug in that timestamp, the game will compare that to the new ID and calculate how much time has passed.
What if we could figure out the timestamp, and then the player would enter the part of their ID that has their unique ID. Then, you add the timestamp and their unique ID, and see if those two added together equal the players full ID?
But it has to start from game end not game start.
Solution
Find hex conversion time. Get time difference from game start to game end.
Get the game end time.
Encrypt game end time.
Go new game, decode hex.
Use input code.
You make a good point, but how will we find the end time? The ID remains the same throughout so how will it identify the end? We could try adding seconds to the hex from game start. That might mean converting the hexadecimal string to a decimal or even current time and then add seconds.
The Player ID only tells us the current UNIX timestamp (# of seconds since Jan 1, 1970), meaning that the only thing we can use it for is to calculate the time since the player last played. Here’s the information we would include in the save file to make this work, in the context of a clicker game with offline earnings.
We would encrypt this data and give it to the player as a save code for them to re-enter. When they rejoin the game, they re-enter the code, and their new balance is then calculated like so:
Finally, in order to ensure we compute from the game end time and not the game start time, when a player joins, we can start a counter, ticking up once per second. We then can calculate the UNIX timestamp for the savecode by doing: