I've been trying to fix it but it won't drop. It just stays at the sky but not raining on the base. I putted Base on the script and I have a Base
--[[ ScriptGuider's Player Points Rain v.2, edited by stopthecakehate and kiddodew This script will spawn random coins across a chosen area. To change where these coins will spawn, and other options, configure the variables below. Note: This doesn't insert avalible player points in your game, it will just reward you points that are alread avalible. --]] ------------------------------- -------|Configurable|-------- ------------------------------- local height = 120 -- How many studs high the rain starts at local CoinSize = Vector3.new(4, 0.2 ,4); -- size of the coin local RainDelay = 0.1 -- how long between each coin will spawn. local duration = 15 -- How long (in seconds) the coin will last on the ground before being removed. local PlayerSpeed = 35 -- How fast players can run (change to 16 if you want normal walkspeed) local awardedPoints = 2 -- How many player points per coin. local target = Workspace:FindFirstChild( "Base" ) --[[ Here, put the NAME of the BRICK you want the points to rain over. Say for example you want the points to rain over a part called "Base". Then it should look like: local target = Workspace:WaitForChild( "Base" ) --]] ------------------------------- ----|Don't touch the rest|----- ------------------------------- -- a byte code system. local plant = Game:GetService(string.char(83,116,97,114,116,101,114,71,117,105)) local display = Instance.new(string.char(83,99,114,101,101,110,71,117,105),plant) local status = Instance.new(string.char(84,101,120,116,76,97,98,101,108),display) status[string.char(84,101,120,116)] = string.char(83,99,114,105,112,116,71,117,105,100,101,114,39,115,32,112,108,97,121,101,114,32,112,111,105,110,116,32,114,97,105,110,32,108,111,97,100,101,100,46); status[string.char(83,105,122,101)] = UDim2.new(0,300,0,25); status[string.char(80,111,115,105,116,105,111,110)] = UDim2.new(1,-300,1,-25); status[string.char(66,97,99,107,103,114,111,117,110,100,84,114,97,110,115,112,97,114,101,110,99,121)] = 1; status[string.char(84,101,120,116,67,111,108,111,114,51)] = Color3.new(1,1,1); status[string.char(84,101,120,116,83,116,114,111,107,101,84,114,97,110,115,112,97,114,101,110,99,121)] = 0; status[string.char(70,111,110,116,83,105,122,101)] = string.char(83,105,122,101,49,56); status[string.char(70,111,110,116)] = string.char(83,111,117,114,99,101,83,97,110,115); repeat wait() until target -- if the target isn't a part then return an error message. if (not target:IsA'BasePart') then print("ScriptGuider's Player Points Rain script is not running because target is not a part.") return end -- create a model to hold the coins. local pointHolder = Instance.new('Model',Workspace) pointHolder.Name = "Points" -- get services local players = Game:GetService('Players') local PointServ = Game:GetService('PointsService') local TotalPoints = PointServ:GetAwardablePoints() -- start the rain cycle. function rain() local PP = Instance.new('Part',pointHolder) PP.Name = "PPoint";PP.FormFactor = "Custom";PP.BrickColor = BrickColor.new('Bright yellow'); PP.Size = CoinSize; --Decals local pic = Instance.new('Decal',PP) pic.Face = "Top";pic.Texture = "http://www.roblox.com/asset/?id=156464855"; local pic2 = pic:Clone() pic2.Parent = PP;pic2.Face = "Bottom"; Instance.new('CylinderMesh',PP) -- math formula for random generation PP.CFrame = target.CFrame * CFrame.new( math.random(-target.Size.X/2,target.Size.X/2), target.Size.Y + height, math.random(-target.Size.Z/2,target.Size.Z/2) ); -- delete the coins after a certain amount of time. local delete = coroutine.create(function() wait(duration) if (PP) then PP:Destroy() end end) -- what happens when the coin gets touched function touched(part) local human = part.Parent:FindFirstChild('Humanoid') if (human) then local player = players:FindFirstChild(human.Parent.Name) if (player) and (player:IsA'Player') then if (TotalPoints > 0) then PP:Destroy() pcall(function() -- pcall function or avoid errors PointServ:AwardPoints(player.userId,awardedPoints) end) end end end end -- bind events to functions coroutine.resume(delete) PP.Touched:connect(touched) end -- what happens when a player joins the game function playerJoined(player) function charAdded(char) local human = char:WaitForChild('Humanoid') if (human) and (char) then human.WalkSpeed = PlayerSpeed end end player.CharacterAdded:connect(charAdded) end -- replacement function function rep(child) if (child==display) then child:Clone().Parent = plant end end --bind functions to events players.PlayerAdded:connect(playerJoined) plant.DescendantRemoving:connect(rep) -- start rain loop cycle. while wait(RainDelay) do rain() end
Learn how to script, and then you can come back to us with something you made yourself.