Retiring PointsService

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.

3 Likes

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

2 Likes

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.

5 Likes

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

2 Likes

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.

9 Likes

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?

10 Likes

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?

6 Likes

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.

2 Likes

Oh no! It’s almost like the points system was one of the oldest and most useless current feature on the website.

2 Likes

NOOO POINTSSERVICE!!! RIP POINTSSERVICE :dove: :dove:

2 Likes

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.

8 Likes

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.

2 Likes

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?

3 Likes

I believe that was sarcasm considering what Roblox has done in the past. They are for once removing something we dont actually need.

1 Like