null nil true 0 0.400000006 0.5 1 0 -0 0 0 1 0 -1 -0 ClassicPaintballGun rbxasset://Textures\Gun.png true true Paintball ball = script.Parent damage = 99 function onTouched(hit) local humanoid = hit.Parent:findFirstChild("Humanoid") if hit:getMass() < 1.2 * 200 then hit.BrickColor = ball.BrickColor end -- make a splat for i=1,3 do local s = Instance.new("Part") s.Shape = 1 -- block s.formFactor = 2 -- plate s.Size = Vector3.new(1,.4,1) s.BrickColor = ball.BrickColor local v = Vector3.new(math.random(-1,1), math.random(0,1), math.random(-1,1)) s.Velocity = 15 * v s.CFrame = CFrame.new(ball.Position + v, v) ball.BrickCleanup:clone().Parent = s s.BrickCleanup.Disabled = false s.Parent = game.Workspace end if humanoid ~= nil then tagHumanoid(humanoid) humanoid:TakeDamage(damage) wait(2) untagHumanoid(humanoid) end connection:disconnect() ball.Parent = nil end function tagHumanoid(humanoid) -- todo: make tag expire local tag = ball:findFirstChild("creator") if tag ~= nil then local new_tag = tag:clone() new_tag.Parent = humanoid end end function untagHumanoid(humanoid) if humanoid ~= nil then local tag = humanoid:findFirstChild("creator") if tag ~= nil then tag.Parent = nil end end end connection = ball.Touched:connect(onTouched) wait(8) ball.Parent = nil true false Mouselcon local MOUSE_ICON = 'rbxasset://textures/GunCursor.png' local RELOADING_ICON = 'rbxasset://textures/GunWaitCursor.png' local Tool = script.Parent local Mouse = nil local function UpdateIcon() if Mouse then Mouse.Icon = Tool.Enabled and MOUSE_ICON or RELOADING_ICON end end local function OnEquipped(mouse) Mouse = mouse UpdateIcon() end local function OnChanged(property) if property == 'Enabled' then UpdateIcon() end end Tool.Equipped:connect(OnEquipped) Tool.Changed:connect(OnChanged) true false PaintballShooter Tool = script.Parent colors = {45, 119, 21, 24, 23, 105, 104} function fire(v) Tool.Handle.Fire:play() local vCharacter = Tool.Parent local vPlayer = game.Players:playerFromCharacter(vCharacter) local missile = Instance.new("Part") local spawnPos = vCharacter.PrimaryPart.Position spawnPos = spawnPos + (v * 8) missile.Position = spawnPos missile.Size = Vector3.new(1,1,1) missile.Velocity = v * 100 missile.BrickColor = BrickColor.new(colors[math.random(1, #colors)]) missile.Shape = 0 missile.BottomSurface = 0 missile.TopSurface = 0 missile.Name = "Paintball" missile.Elasticity = 0 missile.Reflectance = 0 missile.Friction = .9 local force = Instance.new("BodyForce") force.force = Vector3.new(0,90,0) force.Parent = missile Tool.BrickCleanup:clone().Parent = missile local new_script = script.Parent.Paintball:clone() new_script.Disabled = false new_script.Parent = missile local creator_tag = Instance.new("ObjectValue") creator_tag.Value = vPlayer creator_tag.Name = "creator" creator_tag.Parent = missile missile.Parent = game.Workspace end Tool.Enabled = true function onActivated() if not Tool.Enabled then return end Tool.Enabled = false local character = Tool.Parent; local humanoid = character.Humanoid if humanoid == nil then print("Humanoid not found") return end local targetPos = humanoid.TargetPoint local lookAt = (targetPos - character.Head.Position).unit fire(lookAt) wait(0.1) Tool.Enabled = true end script.Parent.Activated:connect(onActivated) true true BrickCleanup -- this script removes its parent from the workspace after 120 seconds wait(120) script.Parent.Parent = nil true false -0.5 0.5 0 0 -0.5 0.5 0 0 194 -308.171051 16.299324 -522.388489 0.300854057 -0.953669786 -0.000759380753 -3.3196188e-009 0.000796270848 -0.999999642 0.953670025 0.300853968 0.000239558169 false false 0.5 0 0.300000012 -0.5 0.5 0 0 -0.5 0.5 0 0 false 256 Handle 0 -0.5 0.5 0 0 0 0 0 -0.5 0.5 0 0 0 0 0 0 true 1 1 3 2 2 2 rbxasset://fonts/PaintballGun.mesh 5 Mesh 0 0 0 1 1 1 rbxasset://textures/PaintballGunTex128.png 1 1 1 true false Fire 1 25 false rbxasset://sounds\\paintball.wav 1 true