Yea, there’s so much potential for player points in game pages and the like. It’s a shame that they chose to retire it instead of expanding it.
Well, it’s expansion is datastores. Kind of sad thinking classic games if not updated will be broken, although. I’m quite sure there’s a sort of breaking point in the backend which lead to this decision
i don’t think they will break
I remember when Player Points were first added. It started quite weird (global leaderboards + limits based on Robux revenue + rules against paying for Player Points) and ended up being something I completely forgot about. I applaud Roblox for not only keeping this working for over 9 years, but giving us the tools to migrate away from them. That amount of backward compatibility is insane for a feature as forgettable as Player Points. I doubt any big game still relies on Player Points and will rely on this migration, but thank you for giving us the ability to do so either way.
I think he means like the 2016 games used the system so now all the points data will be lost
Stalker Reborn does, as a heads up
Heheh, I’m still using the PointsService as a currency in The Stalker: Reborn
I don’t know why I did that honestly, guess I was just being lazy.
Really glad they’re giving us a backup of the records at least.
It seems the PointsServiceWrapper
is missing the PointsAwarded
event, which one part of my game was subscribing to. Will the event still work in some dummied state?
If not, here’s an edit for anyone who needs it:
-- change the datastore name as desired
local datastoreName = "_rbx_UserPoints"
local pointsAwarded = Instance.new("BindableEvent")
local ds = game:GetService("DataStoreService"):GetOrderedDataStore(datastoreName)
local ps = game:GetService("PointsService")
return {
AwardPoints = function(self: any, userId: number, amount: number)
if userId <= 0 then
error('User id must be positive')
end
if amount <= 0 then
error('Point amount must be positive')
end
-- optimistically assume that the user has already been migrated
local finalPoints = ds:UpdateAsync(userId, function (currentPoints: number?): number?
if not currentPoints then
-- oops, not actually migrated
return nil
end
return currentPoints + amount
end)
if not finalPoints then
-- this user has not been migrated, migrate it now
local legacyPoints = ps:GetGamePointBalance(userId)
finalPoints = ds:UpdateAsync(userId, function (currentPoints: number?): number
if not currentPoints then
-- still not migrated, add point amount from the legacy system
-- to the amount of points awarded
return legacyPoints + amount
else
-- the user must have been migrated from another instance;
-- disregard legacy points and proceed as usual
return currentPoints + amount
end
end)
end
if finalPoints then
pointsAwarded:Fire(userId, amount, finalPoints, finalPoints)
end
end,
GetGamePointBalance = function(self: any, userId: number): number
if userId <= 0 then
error('User id must be positive')
end
-- optimistically assume the user has been migrated
local points = ds:GetAsync(userId)
if not points then
-- user not migrated yet, query legacy system
points = ps:GetGamePointBalance(userId)
end
return points
end,
GetPointBalance = function(self: any, userId: number): number
return 0
end,
GetAwardablePoints = function(self: any): number
return 2^31 - 1
end,
PointsAwarded = pointsAwarded.Event,
}
Can this be appended @dragonknightflies?
They aren’t gonna be breaking any time soon.
Not entirely at least.
I guess ROBLOX is just relying on people doing everything in-game these days. Why spend the time and money to add a new feature to the website that the developers could just implement into their own games?
I’m surprised it took this long for it to be removed considering it had been soft-removed for practically years now. They may have had some usage back then but now they’re practically useless.
Thank you for offering migration tools. Roblox has always been pretty awful about backwards compatibility, but I feel like the engineers are finally starting to take it a bit more seriously.
after all of the metaverse stuff, after opening up to the stock market. Its only now you realized Roblox is a corporation? No offense, but the removal of points is probably one of the single least impactful decisions Roblox has made over the past couple years. Its practically like deleting a comment in your script. It has virtually 0 impact on the overall experience.
Oh no! It’s almost like the points system was one of the oldest and most useless current feature on the website.
NOOO POINTSSERVICE!!! RIP POINTSSERVICE
Oh please. You probably didn’t even actually care about Player Points to begin with, and even if you did; they got partially removed several years ago when clan leaderboards were removed. ROBLOX is just finishing the job because they’re literally useless now.
I’d understand the frusturation if it was regarding something like the Audio Update that actually impacted the platform, but this doesn’t change anything for most people.
I rarely stumble upon a game that uses the feature anymore, which goes to show how many developers implemented it in their games to begin with. Nothing’s stopping you from recreating it for your own game, but good luck coming up with a system to use them for.
Something none of us (in the modern day) cared about; yet it was used to tie the broken-up platform together. Something that was the same for all games. Something that you can say “I got this in several games”, let it be a platform-wide achievement.
Roblox needs that “something” in the future.
Hehehe
Nobody’s used points ever that I’ve seen laughs in Flee the Facility
I wonder if anyone still uses PointsService though, seems very useless.
Bruh. You should’ve revamped it, instead of just straight up removing it.
It was a minor but memorable feature, popped up at Work at a Pizza place, or when I completed an obby. Now it’s all gone.
From changing iconic avatars, getting rid of the Bloxys, replacing fun events with crappy corporatized boring events, to this. Roblox has become a soulless corporation, and I’m not liking it.
What is going on at Roblox HQ? Seriously?
I believe that was sarcasm considering what Roblox has done in the past. They are for once removing something we dont actually need.