Here are the problems that need to be fixed, that I don't know how to fix
Problem 1: The gamepass ID being mentioned in the script isn't working
And because of problem one, problem 2 and 3 happen.
Problem 2: HereComesTheMoney doesn't play
Problem 3: The message doesn't show up
I need help here ):
local id = 5131379
game.Players.PlayerAdded:connect(function(player)
if game:GetService("GamePassService"):PlayerHasPass(player, id) then
game.Workspace.HereComesTheMoney.Playing = true
local message = Instance.new('Message', game.Workspace) -- Insert a new message in the Workspace.
message.Text = "Someone in the server has the Infinite Rain Gamepass, Why did he/she buy it? Anyways it'll rain Robux forever."
wait(10)
message:Destroy() -- Remove the message after 10 seconds.f
object = script.Parent
if (object ~= nil) and (object ~= game.Workspace) then
model = object
backup = model:clone() -- Make the backup
waitTime = 0.3 --Time to wait between regenerations
wait(math.random(0, waitTime))
while true do
wait(waitTime) -- Regen wait time
model = backup:clone()
model.Parent = game.Workspace
model:makeJoints()
end

2 comments
':connect', ':clone()', the instance 'Message', and the second argument to 'Instance.new()' are deprecated, I recommend using ':Connect', ':Clone()', a GUI object, and Parenting the created Instance separately. (respectively) (Also, you need not do a 'wait()' function followed by destroying something as the 'Debris' class has a method inbuilt situations just like this.
And ':makeJoints()' is deprecated. I also recommend instead using ':MakeJoints()' and indenting your code for more readability. It isn't a fix to your question, but I think keeping these in mind will help in the event those deprecated items eventually get removed.