Issues with OpenCloud Experience Notifications!

As a Roblox Developer working on top-engaging experiences, I encountered numerous issues with your Experience Notification API while implementing a seemingly simple feature. I had planned to introduce a feature that would notify offline users after two hours, notifying them to claim their offline in-game earnings via their cars, which produce “income” while offline.

To achieve this, I used MongoDB to store the data of every player who joins and leaves the experience. Tracking data includes: GameId, PlaceId, PrivateServerId, LastSessionTime (the time they left the experience), and LastSessionIncome (Their offline income per second).

One of the major flaws I encountered was the inability to check if a player had notifications enabled for my experience. While Experience notifications | Documentation - Roblox Creator Hub explained how to prompt notifications to players and how to detect if the notifications prompt was closed, it never disclosed whether a player had opted in. Therefore, my external api had to include them as having notifications enabled by default.

When implementing this feature on my external server using Node.js, I had to manually determine if a player had notifications disabled/couldn’t receive notifications due to age, based on the response error (status code: 400, response text includes: “FAILED_PRECONDITION”). When this response error occurred, I would disable/save their “HasNotifications” field to false. With players having their “HasNotifications” field enabled by default, the number of requests my servers had to send and Roblox servers had to receive increased.

This issue could be resolved by adding a feature/call to detect if a player has notifications enabled in an experience via “ExperienceNotificationService”.

Additionally, I encountered a minor issue with status code 429, which occurred when I hit Roblox’s rate limits (4000 requests per second among all API keys) or when a player had received their maximum daily notifications (1). While your documentation Experience notifications | Documentation - Roblox Creator Hub includes the maximum number of requests per day, your open cloud documentation UserNotification | Documentation - Roblox Creator Hub lacks information on the status code response Roblox sends back.

It would be helpful if the documentation identified how to check if a player had received the max amount of notifications per day, so that a user using your API could remove them from their queue, or yield twenty-four hours before sending another notification.

Detection:

  • Message includes : “1 notification per recipient”
  • Code : “RESOURCE_EXHAUSTED”
  • Status code : 429,

TLDR: Improve cloud notification documentation by including possible responses from Roblox’s API and a method to “ExperienceNotificationsService” to check if a player has opted into notifications for an experience.

3 Likes

This feature is very frustrating. It feels super half baked, at the minimum a way to pull if a user is signed up or not would be helpful. You must custom track users signing up in-game, and all those who sign-up on the website are completely useless, since you can’t track them.