I noticed that FarmRPG seems to have the concept of time down to "on-the-hour" trigger events. I understand that it is timezone agnostic in this design to accommodate players around the world.
I propose a consideration for a time of day game mechanic that would operate on a 24 hr cycle relative to the user's configured timezone. This would enhance depths in existing game mechanics as well as open for more possibilities for future features.
For example, given any set of items in a fishing/exploring zone. We can statically represent each item % chance(y-axis 0-100%) as a curve on a 24hr (x-axis 00:00-24:00) duration, where the end of the curve line would meet up with the % chance at the beginning -- creating an uninterrupted repeating cycle crossing through midnight seamlessly. At any point in time, all curve lines % would add up to 100%. Let's call this static RNG curve an RNG-at-time filter. With this filter, we can use time of day as an input to pass through the RNG-at-time filter to produce the varying likelihood outcome of any item the user may fish/explore in that zone. This will add depths to consider for the player to try for something at a certain time for a higher chance. From the player's perspective, "Oh, I need to catch a whole lot of Flier, it'll be more common after 16:00 at Lake Tempest. It's only 14:00 right now, I'll try again later for a better haul and efficiency on my limited net uses."
The above concept can be applied to anything RNG based that we would like to add the varying depth.
Regarding the timezone differences for players around the world, perhaps we can introduce a new user profile/account property to represent the offset of time in hours from the server time. Allow the user to configure it once or have a very long cooldown in between changing (or make it difficult for users to change time offset on a whim) if we want to deter users from changing timezone offsets to unfairly game the system. With this time offset per player configured and stored on the server, the code running on the server can always localize to user's time, which would allow all users to observe the same RNG % at their respective 16:00.
Perhaps this time management system can be its own module/service to be applied over other mechanics.
Cheers!