This script does work. However, when I buy something during the game, it doesnt update and its just the same number the whole time. Though, it does update the points after the game has been reloaded. (shutdown & rejoin server)
points = game:GetService("PointsService")
grant = game.Workspace:FindFirstChild("Grant", true)
gui = game.Workspace:FindFirstChild("IngamePoints", true)
awardablepoints = points:GetAwardablePoints()
repeat wait() until points
if points ~= nil then
gui.Text = awardablepoints
end

2 comments
I tried a while loop but that didnt even work, it would still act the same.
Again, you are only calling it once. You would need something like while workspace do wait() if points ~= nil then gui.Text = awardablepoints end