Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- --[[ script made by Louis_Ceater67 --
- @ceat_ceat2
- just a little thing i made, have fun
- hold down left click to shoot
- press 1 to get normal projectiles
- press 2 to get explosive projectiles
- press e to switch between concentrated fire and spread fire
- press r while in spread fire mode to do some nice rings
- type id/youraudioid in chat to change bgm
- ]]
- warn([[script made by Louis_Ceater67!!!!
- @ceat_ceat
- simple danmaku v0.6
- hold down left click to shoot
- press 1 to get normal projectiles
- press 2 to get explosive projectiles
- press e to switch between concentrated fire and spread fire
- press r while in spread fire mode to do some nice rings
- type id/youraudioid in chat to change bgm
- some of the sounds are really inconsistent and only sometimes work if you spam an input
- ]])
- local plr = game.Players.LocalPlayer
- local chr = plr.Character
- local uis = game:GetService("UserInputService")
- local mous = plr:GetMouse()
- local ts = game:GetService("TweenService")
- firing = false
- explosive = false
- pewpewpew = false
- rdebounce = false
- -- setup --
- chr.Humanoid.WalkSpeed = 30
- chr.Humanoid.MaxHealth = math.huge
- chr.Humanoid.Health = math.huge
- local ff = Instance.new("ForceField", chr)
- ff.Visible = false
- local spinne = Instance.new("Model", chr)
- local part = Instance.new("Part", spinne)
- part.Transparency = 1
- part.CanCollide = false
- part.Massless = true
- local weld = Instance.new("Weld", part)
- weld.Part0 = part
- weld.Part1 = chr.HumanoidRootPart
- local partattach = Instance.new("Attachment", part)
- partattach.WorldOrientation = Vector3.new(0,0,90)
- local p1 = Instance.new("Part", spinne)
- p1.Name = "p1"
- p1.Massless = true
- p1.Material = Enum.Material.Neon
- p1.Size = Vector3.new(3,3,3)
- p1.Shape = Enum.PartType.Ball
- p1.CanCollide = false
- local plattach1 = Instance.new("Attachment", p1)
- plattach1.WorldOrientation = Vector3.new(0,0,90)
- local p2 = Instance.new("Part", spinne)
- p2.Name = "p2"
- p2.Massless = true
- p2.Material = Enum.Material.Neon
- p2.Size = Vector3.new(3,3,3)
- p2.Shape = Enum.PartType.Ball
- p2.CanCollide = false
- local plattach2 = Instance.new("Attachment", p2)
- plattach2.WorldOrientation = Vector3.new(0,0,90)
- local effectmodel = Instance.new("Model", chr)
- effectmodel.Name = "effects"
- p1.CFrame = part.CFrame * CFrame.new(-10,0,0)
- p2.CFrame = part.CFrame * CFrame.new(10,0,0)
- plattach1.WorldPosition = partattach.WorldPosition
- plattach2.WorldPosition = partattach.WorldPosition
- function attach(thing)
- local cy1 = Instance.new("CylindricalConstraint", part)
- cy1.Attachment0 = partattach
- cy1.Attachment1 = thing.Attachment
- cy1.AngularActuatorType = Enum.ActuatorType.Motor
- cy1.MotorMaxTorque = math.huge
- cy1.AngularVelocity = -2.5
- cy1.LimitsEnabled = true
- cy1.UpperLimit = 0.05
- local p1attach2 = Instance.new("Attachment", thing)
- p1attach2.Position = Vector3.new(-1.5, 0, 0)
- local p1attach3 = Instance.new("Attachment", thing)
- p1attach3.Position = Vector3.new(1.5, 0, 0)
- local trail1 = Instance.new("Trail", thing)
- trail1.Attachment0 = p1attach2
- trail1.Attachment1 = p1attach3
- trail1.LightEmission = 1
- trail1.Transparency = NumberSequence.new{NumberSequenceKeypoint.new(0,0), NumberSequenceKeypoint.new(1,1)}
- trail1.FaceCamera = true
- end
- attach(p1)
- attach(p2)
- part.CustomPhysicalProperties = PhysicalProperties.new(0.01,0,0,0,0)
- p1.CustomPhysicalProperties = PhysicalProperties.new(0.01,0,0,0,0)
- p2.CustomPhysicalProperties = PhysicalProperties.new(0.01,0,0,0,0)
- local bgm = Instance.new("Sound", chr.Humanoid)
- bgm.Name = "bgm"
- bgm.Looped = true
- bgm.SoundId = "rbxassetid://316040492"
- bgm:Play()
- function weld(part0, part1, c0)
- local weld = Instance.new("Weld", part0)
- weld.Part0 = part0
- weld.Part1 = part1
- weld.C0 = c0
- end
- local billboard = Instance.new("BillboardGui", chr.Head)
- billboard.Size = UDim2.new(50, 0,1, 0)
- billboard.StudsOffsetWorldSpace = Vector3.new(0, 3, 0)
- billboard.Name = "Custom Chat Thing"
- local chattext = Instance.new("TextLabel", billboard)
- chattext.Size = UDim2.new(1, 0,1, 0)
- chattext.BackgroundTransparency = 1
- chattext.Text = ""
- chattext.TextColor3 = Color3.fromRGB(255,255,255)
- chattext.TextStrokeTransparency = 0
- chattext.Font = Enum.Font.SourceSansSemibold
- chattext.TextScaled = true
- local explosiveparticles = Instance.new("ParticleEmitter", p1)
- explosiveparticles.Color = ColorSequence.new{ColorSequenceKeypoint.new(0, Color3.fromRGB(255,0,0)),ColorSequenceKeypoint.new(1, Color3.fromRGB(255,255,0))}
- explosiveparticles.Texture = "rbxassetid://1541834978"
- explosiveparticles.Lifetime = NumberRange.new(1,5)
- explosiveparticles.RotSpeed = NumberRange.new(-180, 180)
- explosiveparticles.Size = NumberSequence.new{NumberSequenceKeypoint.new(0,0),NumberSequenceKeypoint.new(0.1,2.5),NumberSequenceKeypoint.new(1,0)}
- explosiveparticles.LightEmission = 1
- explosiveparticles.Rate = 30
- explosiveparticles.Transparency = NumberSequence.new{NumberSequenceKeypoint.new(0,0.5),NumberSequenceKeypoint.new(1,1)}
- explosiveparticles.Acceleration = Vector3.new(0,10,0)
- explosiveparticles.Enabled = false
- local explosiveparticles2 = explosiveparticles:Clone()
- explosiveparticles2.Parent = p2
- local gui = Instance.new("ScreenGui", plr.PlayerGui)
- local frame1 = Instance.new("Frame", gui)
- frame1.AnchorPoint = Vector2.new(0,0.5)
- frame1.Position = UDim2.new(0, 0,0.5, 0)
- frame1.BackgroundTransparency = 1
- local frame2 = Instance.new("Frame", frame1)
- frame2.Size = UDim2.new(0, 200,0, 21)
- frame2.Position = UDim2.new(0, 0,0.23, 0)
- frame2.Style = Enum.FrameStyle.DropShadow
- local textlabel = Instance.new("TextLabel", frame2)
- textlabel.AnchorPoint = Vector2.new(0,0.5)
- textlabel.Position = UDim2.new(0, 0,0.5, 0)
- textlabel.Size = UDim2.new(1, 0,3.5, 0)
- textlabel.BackgroundTransparency = 1
- textlabel.Text = "Switch to Explosive [2]"
- textlabel.TextColor3 = Color3.fromRGB(255,255,255)
- textlabel.TextScaled = true
- textlabel.TextStrokeTransparency = 0
- textlabel.Font = Enum.Font.SourceSansSemibold
- local frame3 = Instance.new("Frame", frame1)
- frame3.Size = UDim2.new(0, 200,0, 21)
- frame3.Position = UDim2.new(0, 0,0.2, 0)
- frame3.AnchorPoint = Vector2.new(0,1)
- frame3.Style = Enum.FrameStyle.DropShadow
- local textlabel2 = Instance.new("TextLabel", frame3)
- textlabel2.AnchorPoint = Vector2.new(0,0.5)
- textlabel2.Position = UDim2.new(0, 0,0.5, 0)
- textlabel2.Size = UDim2.new(1, 0,3.5, 0)
- textlabel2.BackgroundTransparency = 1
- textlabel2.Text = "Switch to Spread Fire [E]"
- textlabel2.TextColor3 = Color3.fromRGB(255,255,255)
- textlabel2.TextScaled = true
- textlabel2.TextStrokeTransparency = 0
- textlabel2.Font = Enum.Font.SourceSansSemibold
- local frame4 = Instance.new("Frame", frame1)
- frame4.Size = UDim2.new(0, 200,0, 21)
- frame4.Position = UDim2.new(0, 0,0, -21)
- frame4.Style = Enum.FrameStyle.DropShadow
- frame4.AnchorPoint = Vector2.new(0,1)
- local textlabel3 = Instance.new("TextLabel", frame4)
- textlabel3.AnchorPoint = Vector2.new(0,0.5)
- textlabel3.Position = UDim2.new(0, 0,0.5, 0)
- textlabel3.Size = UDim2.new(1, 0,3.5, 0)
- textlabel3.BackgroundTransparency = 1
- textlabel3.Text = "Enable Spread Fire to Use This"
- textlabel3.TextColor3 = Color3.fromRGB(255,255,255)
- textlabel3.TextScaled = true
- textlabel3.TextStrokeTransparency = 0
- textlabel3.Font = Enum.Font.SourceSansSemibold
- -- functions --
- function createprojectile(startingpos)
- if pewpewpew ~= true then
- if startingpos ~= chr.HumanoidRootPart then
- local projectile = Instance.new("Part", effectmodel)
- projectile.Name = "projectile"
- projectile.CanCollide = false
- projectile.Material = Enum.Material.Neon
- projectile.Shape = Enum.PartType.Ball
- projectile.Size = Vector3.new(2, 2, 2)
- if explosive == true then
- projectile.Color = Color3.fromRGB(255, 0, 0)
- end
- projectile.Orientation = chr.HumanoidRootPart.Orientation
- projectile.Position = startingpos.Position
- projectile.CFrame = CFrame.new(projectile.Position, Vector3.new(mous.Hit.X, projectile.Position.Y, mous.Hit.Z))
- local bv = Instance.new("BodyVelocity", projectile)
- bv.Velocity = projectile.CFrame.LookVector * 60
- game.Debris:AddItem(projectile, 10)
- local sound = Instance.new("Sound", startingpos)
- sound.SoundId = "rbxassetid://3727467952"
- sound:Play()
- game.Debris:AddItem(sound, sound.TimeLength)
- projectile.Touched:Connect(function(hit)
- if hit.Parent ~= spinne and hit.Parent ~= chr and hit.Name ~= "Handle" and hit.Name ~= "projectile" and hit.Name ~= "switchaura" and hit.Transparency < 0.3 then
- if hit.Parent:FindFirstChild("Humanoid") then
- if projectile.BrickColor == BrickColor.new("Really red") == true then
- hit.Parent.Humanoid:TakeDamage(20)
- else
- hit.Parent.Humanoid:TakeDamage(10)
- end
- end
- if projectile.BrickColor == BrickColor.new("Really red") == true then
- local exp = Instance.new("Explosion", workspace)
- exp.Position = projectile.Position
- --exp.BlastRadius = 0
- exp.BlastPressure = 2000
- local soundpart = Instance.new("Part", workspace)
- soundpart.Name = plr.Name .. "'s explosionsoundpart"
- soundpart.Anchored = true
- soundpart.CanCollide = false
- soundpart.Transparency = 1
- local sound = Instance.new("Sound", soundpart)
- sound.SoundId = "rbxassetid://1060191237"
- sound.Volume = 4
- sound:Play()
- game.Debris:AddItem(soundpart, sound.TimeLength)
- end
- projectile:Destroy()
- end
- end)
- end
- else
- local p
- if startingpos == chr.HumanoidRootPart then
- p = 50
- else
- p = 3
- end
- for i = 1, p do
- local projectile = Instance.new("Part", effectmodel)
- projectile.Name = "projectile"
- projectile.CanCollide = false
- projectile.Material = Enum.Material.Neon
- projectile.Shape = Enum.PartType.Ball
- projectile.Size = Vector3.new(2, 2, 2)
- if explosive == true then
- projectile.Color = Color3.fromRGB(255, 0, 0)
- end
- projectile.Orientation = chr.HumanoidRootPart.Orientation
- projectile.Position = startingpos.Position
- projectile.CFrame = startingpos.CFrame * CFrame.Angles(0,math.rad(360/p*i),0)
- local bv = Instance.new("BodyVelocity", projectile)
- bv.Velocity = projectile.CFrame.LookVector * 60
- game.Debris:AddItem(projectile, 10)
- local sound = Instance.new("Sound", startingpos)
- sound.SoundId = "rbxassetid://3727467952"
- sound:Play()
- game.Debris:AddItem(sound, sound.TimeLength)
- projectile.Touched:Connect(function(hit)
- if hit.Parent ~= spinne and hit.Parent ~= chr and hit.Name ~= "Handle" and hit.Name ~= "projectile" and hit.Name ~= "switchaura" and hit.Transparency < 0.3 then
- if hit.Parent:FindFirstChild("Humanoid") then
- if projectile.BrickColor == BrickColor.new("Really red") == true then
- hit.Parent.Humanoid:TakeDamage(20)
- else
- hit.Parent.Humanoid:TakeDamage(10)
- end
- end
- if projectile.BrickColor == BrickColor.new("Really red") == true then
- local exp = Instance.new("Explosion", workspace)
- exp.Position = projectile.Position
- --exp.BlastRadius = 0
- exp.BlastPressure = 2000
- local soundpart = Instance.new("Part", effectmodel)
- soundpart.Name = plr.Name .. "'s explosionsoundpart"
- soundpart.Anchored = true
- soundpart.CanCollide = false
- soundpart.Transparency = 1
- local sound = Instance.new("Sound", soundpart)
- sound.SoundId = "rbxassetid://1060191237"
- sound.Volume = 4
- sound:Play()
- game.Debris:AddItem(soundpart, sound.TimeLength)
- end
- projectile:Destroy()
- end
- end)
- end
- end
- end
- mous.Button1Down:Connect(function()
- firing = true
- while firing == true do
- wait(0.1)
- createprojectile(p1)
- createprojectile(p2)
- end
- end)
- mous.Button1Up:Connect(function()
- firing = false
- end)
- --[[uis.InputBegan:Connect(function(input, gameProcessed)
- if input.KeyCode == Enum.KeyCode.One and explosive == true and not gameProcessed then
- explosive = false
- textlabel.Text = "Switch to Explosive [2]"
- local sound = Instance.new("Sound", chr.Humanoid)
- sound.SoundId = "rbxassetid://3723411843"
- sound.Volume = 5
- sound:Play()
- game.Debris:AddItem(sound,sound.TimeLength)
- for i = 1,2 do
- local aura = Instance.new("Part", effectmodel)
- aura.Name = "switchaura"
- aura.BrickColor = BrickColor.new("Medium stone grey")
- aura.CanCollide = false
- aura.Anchored = true
- aura.Material = Enum.Material.Neon
- aura.CFrame = chr.HumanoidRootPart.CFrame
- aura.Size = Vector3.new(0,0,0)
- ts:Create(aura, TweenInfo.new(0.3, Enum.EasingStyle.Cubic, Enum.EasingDirection.Out), {Size = Vector3.new(20, 20, 20), Transparency = 1, Orientation = Vector3.new(math.random(0,360),math.random(0,360),math.random(0,360))}):Play()
- game.Debris:AddItem(aura, 0.3)
- end
- for i, v in pairs(spinne:GetChildren()) do
- if string.sub(v.Name, 1, 1) == "p" then
- v.BrickColor = BrickColor.new("Medium stone grey")
- v.Trail.Color = ColorSequence.new{ColorSequenceKeypoint.new(0, Color3.fromRGB(255,255,255)), ColorSequenceKeypoint.new(1, Color3.fromRGB(255,255,255))}
- end
- end
- end
- end)]]
- uis.InputBegan:Connect(function(input, gameProcessed)
- if input.KeyCode == Enum.KeyCode.Two and explosive == false and not gameProcessed then
- explosive = true
- textlabel.Text = "Switch to Normal [1]"
- local sound = Instance.new("Sound", chr.Humanoid)
- sound.SoundId = "rbxassetid://3723411843"
- sound.Volume = 5
- sound:Play()
- game.Debris:AddItem(sound,sound.TimeLength)
- explosiveparticles.Enabled = true
- explosiveparticles2.Enabled = true
- for i = 1,2 do
- local aura = Instance.new("Part", effectmodel)
- aura.Name = "switchaura"
- aura.BrickColor = BrickColor.new("Really red")
- aura.CanCollide = false
- aura.Anchored = true
- aura.Material = Enum.Material.Neon
- aura.CFrame = chr.HumanoidRootPart.CFrame
- aura.Size = Vector3.new(0,0,0)
- ts:Create(aura, TweenInfo.new(0.3, Enum.EasingStyle.Cubic, Enum.EasingDirection.Out), {Size = Vector3.new(20, 20, 20), Transparency = 1, Orientation = Vector3.new(math.random(0,360),math.random(0,360),math.random(0,360))}):Play()
- game.Debris:AddItem(aura, 0.3)
- end
- for i, v in pairs(spinne:GetChildren()) do
- if string.sub(v.Name, 1, 1) == "p" then
- v.BrickColor = BrickColor.new("Really red")
- v.Trail.Color = ColorSequence.new{ColorSequenceKeypoint.new(0, Color3.fromRGB(255,0,0)), ColorSequenceKeypoint.new(1, Color3.fromRGB(255,0,0))}
- end
- end
- elseif input.KeyCode == Enum.KeyCode.One and explosive == true and not gameProcessed then
- explosive = false
- textlabel.Text = "Switch to Explosive [2]"
- local sound = Instance.new("Sound", chr.Humanoid)
- sound.SoundId = "rbxassetid://3723411843"
- sound.Volume = 5
- sound:Play()
- game.Debris:AddItem(sound,sound.TimeLength)
- explosiveparticles.Enabled = false
- explosiveparticles2.Enabled = false
- for i = 1,2 do
- local aura = Instance.new("Part", effectmodel)
- aura.Name = "switchaura"
- aura.BrickColor = BrickColor.new("Medium stone grey")
- aura.CanCollide = false
- aura.Anchored = true
- aura.Material = Enum.Material.Neon
- aura.CFrame = chr.HumanoidRootPart.CFrame
- aura.Size = Vector3.new(0,0,0)
- ts:Create(aura, TweenInfo.new(0.3, Enum.EasingStyle.Cubic, Enum.EasingDirection.Out), {Size = Vector3.new(20, 20, 20), Transparency = 1, Orientation = Vector3.new(math.random(0,360),math.random(0,360),math.random(0,360))}):Play()
- game.Debris:AddItem(aura, 0.3)
- end
- for i, v in pairs(spinne:GetChildren()) do
- if string.sub(v.Name, 1, 1) == "p" then
- v.BrickColor = BrickColor.new("Medium stone grey")
- v.Trail.Color = ColorSequence.new{ColorSequenceKeypoint.new(0, Color3.fromRGB(255,255,255)), ColorSequenceKeypoint.new(1, Color3.fromRGB(255,255,255))}
- end
- end
- end
- end)
- uis.InputBegan:Connect(function(input, gameProcessed)
- if input.KeyCode == Enum.KeyCode.E and not gameProcessed and rdebounce == false then
- if pewpewpew == false then
- pewpewpew = true
- textlabel2.Text = "Switch to Concentrated Fire [E]"
- if rdebounce == false then
- textlabel3.Text = "Rings [R]"
- else
- textlabel3.Text = "Debounce"
- end
- for i = 1,3 do
- local beam = Instance.new("Part", effectmodel)
- beam.Name = "switchaura"
- beam.Size = Vector3.new(2048, 0.5, 0.5)
- beam.Anchored = true
- beam.CanCollide = false
- beam.BrickColor = p1.BrickColor
- beam.Shape = Enum.PartType.Cylinder
- beam.Material = Enum.Material.Neon
- beam.CFrame = chr.HumanoidRootPart.CFrame * CFrame.Angles(0, math.rad(120 * i), 0) * CFrame.new(1024, 0, 0)
- ts:Create(beam, TweenInfo.new(0.4, Enum.EasingStyle.Linear, Enum.EasingDirection.In), {Size = Vector3.new(2048, 20, 20), Transparency = 1}):Play()
- game.Debris:AddItem(beam,0.4)
- end
- else
- pewpewpew = false
- textlabel2.Text = "Switch to Spread Fire [E]"
- textlabel3.Text = "Enable Spread Fire to Use This"
- local beam = Instance.new("Part", effectmodel)
- beam.Name = "switchaura"
- beam.Size = Vector3.new(2048, 0.5, 0.5)
- beam.Anchored = true
- beam.CanCollide = false
- beam.BrickColor = p1.BrickColor
- beam.Shape = Enum.PartType.Cylinder
- beam.Material = Enum.Material.Neon
- beam.CFrame = chr.HumanoidRootPart.CFrame * CFrame.Angles(0, math.rad(90), 0) * CFrame.new(1024, 0, 0)
- ts:Create(beam, TweenInfo.new(0.4, Enum.EasingStyle.Linear, Enum.EasingDirection.In), {Size = Vector3.new(2048, 20, 20), Transparency = 1}):Play()
- game.Debris:AddItem(beam,0.4)
- end
- local sound = Instance.new("Sound", chr.Humanoid)
- sound.SoundId = "rbxassetid://5077617448"
- sound.Volume = 5
- sound:Play()
- game.Debris:AddItem(sound, sound.TimeLength)
- elseif input.KeyCode == Enum.KeyCode.R and not gameProcessed and rdebounce == false and pewpewpew == true then
- rdebounce = true
- textlabel3.Text = "Debounce"
- local sound = Instance.new("Sound", chr.Humanoid)
- sound.SoundId = "rbxassetid://3723411843"
- sound.Volume = 5
- sound:Play()
- weld(chr["Left Arm"], chr.Torso, CFrame.new(1.5,0,0))
- weld(chr["Right Arm"], chr.Torso, CFrame.new(-1.5,0,0))
- weld(chr["Left Leg"], chr.Torso, CFrame.new(-0.5,2,0))
- weld(chr["Right Leg"], chr.Torso, CFrame.new(0.5,2,0))
- weld(chr.Head, chr.Torso, CFrame.new(0,-1.5,0))
- weld(chr.HumanoidRootPart, chr.Torso, CFrame.new(0,0,0))
- local laweld = chr["Left Arm"].Weld
- local raweld = chr["Right Arm"].Weld
- chr.Humanoid.WalkSpeed = 0
- chr.Humanoid.JumpPower = 0
- ts:Create(laweld, TweenInfo.new(1, Enum.EasingStyle.Cubic, Enum.EasingDirection.Out), {C0 = CFrame.new(0.5,2,0) * CFrame.Angles(0,0,math.rad(90))}):Play()
- ts:Create(raweld, TweenInfo.new(1, Enum.EasingStyle.Cubic, Enum.EasingDirection.Out), {C0 = CFrame.new(-0.5,2,0) * CFrame.Angles(0,0,math.rad(-90))}):Play()
- for i = 1, 31 do
- chattext.Text = string.sub("some normal rings would be cool", 1, i)
- wait(0.04)
- end
- wait(0.75)
- chattext.Text = ""
- for i = 1, 15 do
- wait(0.5)
- createprojectile(chr.HumanoidRootPart)
- end
- wait(1)
- ts:Create(laweld, TweenInfo.new(1, Enum.EasingStyle.Cubic, Enum.EasingDirection.Out), {C0 =CFrame.new(1.5,0,0)}):Play()
- ts:Create(raweld, TweenInfo.new(1, Enum.EasingStyle.Cubic, Enum.EasingDirection.Out), {C0 = CFrame.new(-1.5,0,0)}):Play()
- wait(1)
- chr.Humanoid.WalkSpeed = 30
- chr.Humanoid.JumpPower = 50
- for i, v in pairs(chr:GetChildren()) do
- if v.ClassName == "Part" then
- if v:FindFirstChild("Weld") then
- v.Weld:Destroy()
- end
- end
- end
- rdebounce = false
- textlabel3.Text = "Rings [R]"
- end
- end)
- plr.Chatted:Connect(function(msg)
- if string.sub(msg, 1, 3) == "id/" then
- bgm.SoundId = "rbxassetid://" .. string.sub(msg, 4, #msg)
- bgm:Play()
- end
- for i = 1, #msg do
- chattext.Text = string.sub(msg, 1, i)
- wait(0.04)
- end
- wait(2)
- chattext.Text = ""
- end)
- print("script loaded")
Add Comment
Please, Sign In to add comment