Experience Notifications - Delay Parameter

TL;DR:

Add a “delay” parameter to the API for sending out experience notifications such that it sends the notifications after a specified number of seconds regardless of whether the server from which it was called in is still running after the specified delay time.


One common use case is reminding users when daily rewards are ready to collect. Given the 1 notification per day limit, it seems to be an ideal feature.

Unfortunately, since notifications are sent instantly by a script without a delay parameter which makes it impossible (afaik) to implement such a system as it would expect servers to stay up for 24 hours to send the notification.

As an alternative, I have set up my own server externally which sends out the notifications 24 hours later when the reward is ready. This can be difficult for many developers to implement if they do not have any knowledge of cloud services or experience with other programming languages.

It would be amazing if we were able to have a “delay time” parameter which would schedule the notification to be sent out to the target player after X seconds. This way, developers could schedule the notification to be sent out in 24*3600 seconds and notify their audience about the ready daily rewards accordingly.


Related to: Experience Notifications | Documentation - Roblox Creator Hub

9 Likes

Was just going to make a feature request about this. Adding onto it, there should be a way to send messages at bulk. Something like:

..other code

for _, player in pairs(game.Players:GetPlayers()) do
    campaign:AddReceipent(player, params)
end

campaign:SendOut(delay)

Not only this is easier for the developer, but it’s more performant

1 Like

While how this module works isn’t publically documented anywhere, there’s nothing stopping you from just invoking the UserNotification OpenCloudService request manually.

			return oc:InvokeAsync("v2", "userNotification", {
				["user"] = userId, 
				["userNotification"] = userNotification
			})

oc here refers to OpenCloudService

The actual API itself /cloud/v2/users/{user}/notifications, also only allows a single user, likely because they want you to target notifications specifically to players and not be generic with it.

You could probably just defer the notification request until a certain time elapses or the game tries to close.

1 Like

How does this contribute to the feature request? Fact is there’s no way to delay out notifications. Yeah sure you can be hacky with it and use messaging service but that’s way too much hassle for a feature that should be implemented.

Regarding targeting notifications to players, you should be able to target notifications to specific players in bulk as well. Not implementing this feature doesn’t mean that developers can’t use it unethically by sending bulk spam notifications one by one

Ultimately, delay isn’t ideal either. Here’s why:

Here are the examples that Roblox provided for experience notifications:

Winter Survival’s notification says “You’re 1 quest away from completing your daily challenge!”. Typically, you wouldn’t want to send this right after the user has logged out & lets say you would give it an hour or so of delay.

After 1 hour the notification will then send, but what if the user has logged in back into the game 30 minutes before the notification & completed the quest?

You could say the same about the egg hatch, where the player can purchase a hatching in game purchase or the drifting game where you’d want to have the notifications delayed out.

Point being, you’d want to have a query system where you are able to schedule specific notifications in-game as well be able to cancel them.

1 Like