Well , I want To Add a New Feature To my game , Do Basically , I have This "Raining PP Script"
--[[
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( "BasePlateLayer2" ) --[[ 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
There We Go , It is not Mine ... Free Model but , Is there away to ONLY make It Active When A Person In my Game Buys A Shirt Called Activation For Rain Script And Then it start
