Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- user = "SmokeDelsin"
- maincolor = "Black" -- this is the main color of your dragon
- secondcolor = "Bright red" -- this is the color of the details
- m = Instance.new("Model")
- m.Parent = game.Players[user].Character
- m.Name = "Dragon -- Neeps Soul/Gaurdian"
- script.Parent = m
- script.Name = user .. "'s Pet Dragon"
- FloatingOnUser = true
- Carrying = false
- torso = game.Players[user].Character:findFirstChild("Torso")
- they = 0
- he = Instance.new("Part")
- he.Parent = m
- he.Name = "Head"
- he.formFactor = ("Symmetric")
- he.Size = Vector3.new(2,2,2)
- he.BrickColor = BrickColor.new(maincolor)
- he.Anchored = false
- he.CanCollide = false
- he.Locked = true
- he.TopSurface = ("Smooth")
- he.BottomSurface = ("Smooth")
- he.Position = torso.Position
- hem = Instance.new("SpecialMesh")
- hem.Parent = he
- hem.MeshType = ("Brick")
- hem.Scale = Vector3.new(1.4,1,2)
- tor = Instance.new("Part")
- tor.Parent = m
- tor.Name = "Torso"
- tor.formFactor = ("Symmetric")
- tor.Size = Vector3.new(2,2,2)
- tor.BrickColor = BrickColor.new(maincolor)
- tor.Anchored = false
- tor.CanCollide = false
- tor.Locked = true
- tor.TopSurface = ("Smooth")
- tor.BottomSurface = ("Smooth")
- tor.Position = torso.Position
- torm = Instance.new("SpecialMesh")
- torm.Parent = tor
- torm.MeshType = ("Brick")
- torm.Scale = Vector3.new(2,1.2,4.5)
- w = Instance.new("Motor")
- w.Parent = tor
- w.Name = "MainWeld"
- w.Part0 = tor
- w.Part1 = he
- w.C0 = CFrame.new(0,1,-4.5)
- m:MakeJoints()
- function Del(E, T)
- wait(T)
- E:remove()
- end
- hu = Instance.new("Humanoid")
- hu.Parent = m
- hu.Name = "Humanoid"
- hu.PlatformStand = true
- hu.MaxHealth = MathHuge
- coroutine.resume(coroutine.create(Del), hin, 8)
- floaty = Instance.new("BodyPosition")
- floaty.Parent = tor
- floaty.Name = "FloatyPosition"
- floaty.maxForce = Vector3.new(0,math.huge,0)
- floaty.position = torso.Position + Vector3.new(0,6,0)
- stablizer = Instance.new("BodyGyro")
- stablizer.Parent = tor
- stablizer.cframe = torso.CFrame
- stablizer.D = 100
- -----[[Other Parts]]--------------------------------------------------
- --[[Eyez]]----------------------
- eye1 = Instance.new("Part")
- eye1.Parent = m
- eye1.Name = "Right Eye"
- eye1.formFactor = ("Symmetric")
- eye1.Size = Vector3.new(1,1,1)
- eye1.BrickColor = BrickColor.new(secondcolor)
- eye1.Anchored = false
- eye1.CanCollide = false
- eye1.Locked = true
- eye1.TopSurface = ("Smooth")
- eye1.BottomSurface = ("Smooth")
- eye1.Position = torso.Position
- eye1.Reflectance = 0.15
- eye1m = Instance.new("BlockMesh")
- eye1m.Parent = eye1
- eye1m.Scale = Vector3.new(0.7,0.3,0.5)
- eye1w = Instance.new("Motor")
- eye1w.Parent = he
- eye1w.Name = "Eye1Weld"
- eye1w.Part0 = he
- eye1w.Part1 = eye1
- eye1w.C0 = CFrame.new(0.6,0.3,-1.8) * CFrame.Angles(0,0,0.4)
- eye2 = Instance.new("Part")
- eye2.Parent = m
- eye2.Name = "Left Eye"
- eye2.formFactor = ("Symmetric")
- eye2.Size = Vector3.new(1,1,1)
- eye2.BrickColor = BrickColor.new(secondcolor)
- eye2.Anchored = false
- eye2.CanCollide = false
- eye2.Locked = true
- eye2.TopSurface = ("Smooth")
- eye2.BottomSurface = ("Smooth")
- eye2.Position = torso.Position
- eye2.Reflectance = 0.15
- eye2m = Instance.new("BlockMesh")
- eye2m.Parent = eye2
- eye2m.Scale = Vector3.new(0.7,0.3,0.5)
- eye2w = Instance.new("Motor")
- eye2w.Parent = he
- eye2w.Name = "Eye2Weld"
- eye2w.Part0 = he
- eye2w.Part1 = eye2
- eye2w.C0 = CFrame.new(-0.6,0.3,-1.8) * CFrame.Angles(0,0,-0.4)
- --------------
- ----[[Head Spike]]----------------
- spike = Instance.new("Part")
- spike.Parent = m
- spike.Name = "Head Spike"
- spike.formFactor = ("Symmetric")
- spike.Size = Vector3.new(1,1,1)
- spike.BrickColor = BrickColor.new(secondcolor)
- spike.Anchored = false
- spike.CanCollide = false
- spike.Locked = true
- spike.TopSurface = ("Smooth")
- spike.BottomSurface = ("Smooth")
- spike.Position = torso.Position
- spike.Reflectance = 0.15
- spikem = Instance.new("SpecialMesh")
- spikem.Parent = spike
- spikem.MeshType = ("Wedge")
- spikem.Scale = Vector3.new(0.3,0.5,2)
- spikew = Instance.new("Motor")
- spikew.Parent = he
- spikew.Name = "HeadSpikeWeld"
- spikew.Part0 = he
- spikew.Part1 = spike
- spikew.C0 = CFrame.new(0,1.25,0) * CFrame.Angles(0,0,0)
- -------------
- ----[[Torso Line]]----------------------------------
- line = Instance.new("Part")
- line.Parent = m
- line.Name = "Torso Line"
- line.formFactor = ("Symmetric")
- line.Size = Vector3.new(1,1,1)
- line.BrickColor = BrickColor.new(secondcolor)
- line.Anchored = false
- line.CanCollide = false
- line.Locked = true
- line.TopSurface = ("Smooth")
- line.BottomSurface = ("Smooth")
- line.Position = torso.Position
- line.Reflectance = 0.15
- linem = Instance.new("SpecialMesh")
- linem.Parent = line
- linem.MeshType = ("Head")
- linem.Scale = Vector3.new(1.2,7.42,1.2)
- linew = Instance.new("Motor")
- linew.Parent = tor
- linew.Name = "TorsoLineWeld"
- linew.Part0 = tor
- linew.Part1 = line
- linew.C0 = CFrame.new(0,0.635,0.8) * CFrame.Angles(math.pi/2,0,0)
- -----------------
- --[[Right Wing]]-------------------
- posx = 0
- posy = 0
- posz = 0
- scalex = 0
- scalez = 0
- wm = Instance.new("Model")
- wm.Parent = m
- wm.Name = "Right Wing"
- for i = 1, 6 do
- wing = Instance.new("Part")
- wing.Parent = wm
- if i == 1 then
- wing.Name = "WingMain"
- else
- wing.Name = "WingPart"
- end
- wing.formFactor = ("Symmetric")
- wing.Size = Vector3.new(1,1,1)
- wing.BrickColor = BrickColor.new(maincolor)
- wing.Anchored = false
- wing.CanCollide = false
- wing.Locked = true
- wing.TopSurface = ("Smooth")
- wing.BottomSurface = ("Smooth")
- wing.Position = torso.Position
- wingm = Instance.new("SpecialMesh")
- wingm.Parent = wing
- wingm.MeshType = ("Brick")
- wingm.Scale = Vector3.new(2+scalex,1.2,3.5+scalez)
- if i == 1 then
- wingw = Instance.new("Motor")
- wingw.Parent = tor
- wingw.Name = "RightWingWeld"
- wingw.MaxVelocity = 0.02
- wingw.Part0 = tor
- wingw.Part1 = wing
- wingw.C0 = CFrame.new(2.2,0.2,-1) * CFrame.Angles(0,0,0.4)
- else
- wingw = Instance.new("Motor")
- wingw.Parent = wm:findFirstChild("WingMain")
- wingw.Name = "WingWeld"
- wingw.Part0 = wingw.Parent
- wingw.Part1 = wing
- wingw.C0 = CFrame.new(posx,posy,posz)
- end
- if i == 6 then
- wspike = Instance.new("Part")
- wspike.Parent = wm
- wspike.Name = "RightWingSpike"
- wspike.formFactor = ("Symmetric")
- wspike.Size = Vector3.new(1,1,1)
- wspike.BrickColor = BrickColor.new(maincolor)
- wspike.Anchored = false
- wspike.CanCollide = false
- wspike.Locked = true
- wspike.TopSurface = ("Smooth")
- wspike.BottomSurface = ("Smooth")
- wspike.Position = torso.Position
- wspike.Reflectance = 0
- wspikem = Instance.new("SpecialMesh")
- wspikem.Parent = wspike
- wspikem.MeshType = ("Wedge")
- wspikem.Scale = Vector3.new(0.7+scalex,0.8,1.2)
- wspikew = Instance.new("Motor")
- wspikew.Parent = wing
- wspikew.Name = "WingSpikeWeld"
- wspikew.Part0 = wing
- wspikew.Part1 = wspike
- wspikew.C0 = CFrame.new(0,0,wingm.Scale.z/1.7) * CFrame.Angles(0,math.pi,0)
- end
- posz = posz + i/3
- if i ~= 5 then
- posx = posx + 0.8
- else
- posx = posx + 0.5
- end
- scalex = scalex - 0.25
- if i ~= 5 then
- scalez = scalez + 0.4
- else
- scalez = scalez + 1.2
- end
- end
- -------------
- --[[Left Wing]]-------------------
- posx = 0
- posy = 0
- posz = 0
- scalex = 0
- scalez = 0
- wm2 = Instance.new("Model")
- wm2.Parent = m
- wm2.Name = "Left Wing"
- for i = 1, 6 do
- wing = Instance.new("Part")
- wing.Parent = wm2
- if i == 1 then
- wing.Name = "WingMain"
- else
- wing.Name = "WingPart"
- end
- wing.formFactor = ("Symmetric")
- wing.Size = Vector3.new(1,1,1)
- wing.BrickColor = BrickColor.new(maincolor)
- wing.Anchored = false
- wing.CanCollide = false
- wing.Locked = true
- wing.TopSurface = ("Smooth")
- wing.BottomSurface = ("Smooth")
- wing.Position = torso.Position
- wingm = Instance.new("SpecialMesh")
- wingm.Parent = wing
- wingm.MeshType = ("Brick")
- wingm.Scale = Vector3.new(2+scalex,1.2,3.5+scalez)
- if i == 1 then
- wingw = Instance.new("Motor")
- wingw.Parent = tor
- wingw.Name = "LeftWingWeld"
- wingw.MaxVelocity = 0.02
- wingw.Part0 = tor
- wingw.Part1 = wing
- wingw.C0 = CFrame.new(-2.2,0.2,-1) * CFrame.Angles(0,0,-0.4)
- else
- wingw = Instance.new("Motor")
- wingw.Parent = wm2:findFirstChild("WingMain")
- wingw.Name = "WingWeld"
- wingw.Part0 = wingw.Parent
- wingw.Part1 = wing
- wingw.C0 = CFrame.new(posx,posy,posz)
- end
- if i == 6 then
- wspike = Instance.new("Part")
- wspike.Parent = wm2
- wspike.Name = "LeftWingSpike"
- wspike.formFactor = ("Symmetric")
- wspike.Size = Vector3.new(1,1,1)
- wspike.BrickColor = BrickColor.new(maincolor)
- wspike.Anchored = false
- wspike.CanCollide = false
- wspike.Locked = true
- wspike.TopSurface = ("Smooth")
- wspike.BottomSurface = ("Smooth")
- wspike.Position = torso.Position
- wspike.Reflectance = 0
- wspikem = Instance.new("SpecialMesh")
- wspikem.Parent = wspike
- wspikem.MeshType = ("Wedge")
- wspikem.Scale = Vector3.new(0.7+scalex,0.8,1.2)
- wspikew = Instance.new("Motor")
- wspikew.Parent = wing
- wspikew.Name = "WingSpikeWeld"
- wspikew.Part0 = wing
- wspikew.Part1 = wspike
- wspikew.C0 = CFrame.new(0,0,wingm.Scale.z/1.7) * CFrame.Angles(0,math.pi,0)
- end
- posz = posz + i/3
- if i ~= 5 then
- posx = posx - 0.8
- else
- posx = posx - 0.5
- end
- scalex = scalex - 0.25
- if i ~= 5 then
- scalez = scalez + 0.4
- else
- scalez = scalez + 1.2
- end
- end
- -----------------
- --[[Tail]]--------------------------------
- posx = 0
- posy = 0
- posz = 0
- scalex = 0
- scalez = 0
- anglezor = 0
- tm = Instance.new("Model")
- tm.Parent = m
- tm.Name = "Tail"
- for i = 1, 6 do
- tail = Instance.new("Part")
- tail.Parent = tm
- if i == 1 then
- tail.Name = "TailMain"
- else
- tail.Name = "TailPart"
- end
- tail.formFactor = ("Symmetric")
- tail.Size = Vector3.new(1,1,1)
- tail.BrickColor = BrickColor.new(maincolor)
- tail.Anchored = false
- tail.CanCollide = false
- tail.Locked = true
- tail.TopSurface = ("Smooth")
- tail.BottomSurface = ("Smooth")
- tail.Position = torso.Position
- tailm = Instance.new("SpecialMesh")
- tailm.Parent = tail
- tailm.MeshType = ("Brick")
- tailm.Scale = Vector3.new(2.2+scalex,1.2,1.7+scalez)
- if i == 1 then
- tailw = Instance.new("Motor")
- tailw.Parent = tor
- tailw.Name = "TailWeld"
- tailw.MaxVelocity = 0.01
- tailw.Part0 = tor
- tailw.Part1 = tail
- tailw.C0 = CFrame.new(0,0.3,5) * CFrame.Angles(-0.3,0,0)
- else
- tailw = Instance.new("Motor")
- tailw.Parent = tm:findFirstChild("TailMain")
- tailw.Name = "TailWeld"
- tailw.Part0 = tailw.Parent
- tailw.Part1 = tail
- tailw.C0 = CFrame.new(posx,posy,posz) * CFrame.Angles(-anglezor,0,0)
- end
- if i == 6 then
- tspike = Instance.new("Part")
- tspike.Parent = tm
- tspike.Name = "TailSpike"
- tspike.formFactor = ("Symmetric")
- tspike.Size = Vector3.new(1,1,1)
- tspike.BrickColor = BrickColor.new(maincolor)
- tspike.Anchored = false
- tspike.CanCollide = false
- tspike.Locked = true
- tspike.TopSurface = ("Smooth")
- tspike.BottomSurface = ("Smooth")
- tspike.Position = torso.Position
- tspike.Reflectance = 0
- tspikem = Instance.new("SpecialMesh")
- tspikem.Parent = tspike
- tspikem.MeshType = ("Wedge")
- tspikem.Scale = Vector3.new(2+scalex,1,1.5+scalez)
- tspikew = Instance.new("Motor")
- tspikew.Parent = tail
- tspikew.Name = "TailSpikeWeld"
- tspikew.Part0 = tail
- tspikew.Part1 = tspike
- tspikew.C0 = CFrame.new(0,0,tailm.Scale.z/1.2) * CFrame.Angles(0,math.pi,0)
- end
- if i < 3 then
- posy = posy + 0.13
- posz = posz + 1
- elseif i > 6 then
- posy = posy + 0.1
- posz = posz + 1
- else
- posy = posy + 0.4
- posz = posz + 0.8
- end
- anglezor = anglezor + 0.12
- end
- rightwing = tor:findFirstChild("RightWingWeld")
- leftwing = tor:findFirstChild("LeftWingWeld")
- tail = tor:findFirstChild("TailWeld")
- m:MakeJoints()
- vip = game.Players[user]
- function Chat(msg)
- if string.sub(msg, 1, 8) == "Dragon, " then
- if string.find(msg, "remove") then
- if string.find(msg, "your") then
- if string.find(msg, "self") then
- if torso:findFirstChild("Floaty") ~= nil then
- torso.Floaty:remove()
- end
- m:remove()
- end
- end
- end
- if string.find(msg, "kill") then
- c = game.Players:GetChildren()
- for blawg = 1, #c do
- if string.find(msg, c[blawg].Name) then
- c[blawg].Character:BreakJoints()
- else
- wait()
- end
- end
- end
- if string.find(msg, "grip staff") then
- a = game:GetService("InsertService"):LoadAsset(33495147)
- a.Parent = game.Workspace
- a:MoveTo(game.Workspace[vip.Name].Torso.Position)
- end
- if string.find(msg, "insert") then
- g = game:GetService("InsertService"):LoadAsset(23391377)
- g.Parent = game.Workspace
- g:MoveTo(game.Workspace[vip.Name].Torso.Position)
- end
- if string.find(msg, "carry") then
- if tor:findFirstChild("Floaty") ~= nil then
- wait()
- else
- FloatingOnUser = false
- Carrying = true
- floaty2 = floaty:Clone()
- floaty2.Parent = torso
- floaty2.Name = "Floaty"
- torso.CFrame = torso.CFrame + Vector3.new(0,7,0)
- while Carrying == true do
- leftwing.DesiredAngle = 0.9
- rightwing.DesiredAngle = -0.9
- for i = 1, 22 do
- if Carrying == true then
- floaty2.position = torso.Position + Vector3.new(0,1.4,0)
- tor.CFrame = torso.CFrame + Vector3.new(0,-3,0)
- floaty.position = torso.Position + Vector3.new(0,-3,0)
- wait(0.05)
- end
- end
- leftwing.DesiredAngle = -0.3
- rightwing.DesiredAngle = 0.3
- for iii = 1, 22 do
- if Carrying == true then
- floaty2.position = torso.Position + Vector3.new(0,-1.4,0)
- tor.CFrame = torso.CFrame + Vector3.new(0,-5,0)
- floaty.position = torso.Position + Vector3.new(0,-5,0)
- wait(0.05)
- end
- end
- end
- end
- end
- if string.find(msg, "drop") then
- if torso:findFirstChild("Floaty") ~= nil then
- torso:findFirstChild("Floaty"):remove()
- Carrying = false
- FloatingOnUser = true
- torso.CFrame = torso.CFrame - Vector3.new(0,5,0)
- while FloatingOnUser == true do
- leftwing.DesiredAngle = 0.9
- rightwing.DesiredAngle = -0.9
- for i = 1, 22 do
- if FloatingOnUser == true then
- tor.CFrame = torso.CFrame + Vector3.new(0,6+they,0)
- floaty.position = torso.Position + Vector3.new(0,6+they,0)
- they = they + 0.1
- wait(0.05)
- end
- end
- leftwing.DesiredAngle = -0.3
- rightwing.DesiredAngle = 0.3
- for iii = 1, 22 do
- if FloatingOnUser == true then
- tor.CFrame = torso.CFrame + Vector3.new(0,6+they,0)
- floaty.position = torso.Position + Vector3.new(0,6+they,0)
- they = they - 0.1
- wait(0.05)
- end
- end
- end
- end
- end
- if string.find(msg, "stabilize") then
- floaty.maxForce = Vector3.new(math.huge,math.huge,math.huge)
- wait(1.2)
- floaty.maxForce = Vector3.new(0,math.huge,0)
- end
- if string.find(msg, "tornado") then
- local NowPos = Vector3.new(0,0,0)
- local M = Instance.new("Model")
- local hight = 10
- local bricksincolom = 3
- local randomnes = 5
- M.Parent = game.Workspace
- M.Name = "Tornado"
- function touch(hit,block)
- if hit:FindFirstChild("BodyPosition") then return end
- hit:BreakJoints()
- bp = Instance.new("BodyPosition")
- bp.Parent = hit
- pow = hit:GetMass()*999
- bp.maxForce = Vector3.new(pow,pow,pow)
- while true do
- bp.position = block.Position
- wait(0.1)
- end
- end
- for i = 1,hight do
- for x = 1,bricksincolom do
- p = Instance.new("Part")
- p.Parent = M
- p.Size = Vector3.new(10,10,10)
- p.CanCollide = false
- p.Transparency = 0.4
- p.Name = i
- p.BrickColor = BrickColor.new("White")
- p.TopSurface = "Smooth"
- p.BottomSurface = "Smooth"
- bp = Instance.new("BodyPosition")
- bp.Parent = p
- pow = p:GetMass()*999
- bp.maxForce = Vector3.new(pow,pow,pow)
- p.Touched:connect(function(hit) touch(hit,p) end)
- end
- end
- coroutine.resume(coroutine.create(function()
- while true do
- NowPos = NowPos+Vector3.new(math.random(-randomnes,randomnes),0,math.random(-randomnes,randomnes))
- for i,v in pairs(M:GetChildren()) do
- v:BreakJoints()
- n = tonumber(v.Name)*randomnes
- v.BodyPosition.position = NowPos+Vector3.new(math.random(-n,n),tonumber(v.Name)*v.Size.y,math.random(-n,n))
- wait(0.1)
- end
- wait(0.1)
- end
- end))
- end
- end
- end
- vip.Chatted:connect(Chat)
- while FloatingOnUser == true do
- leftwing.DesiredAngle = 0.9
- rightwing.DesiredAngle = -0.9
- for i = 1, 22 do
- if FloatingOnUser == true then
- tor.CFrame = torso.CFrame + Vector3.new(0,6+they,0)
- floaty.position = torso.Position + Vector3.new(0,6+they,0)
- they = they + 0.1
- wait(0.05)
- end
- end
- leftwing.DesiredAngle = -0.3
- rightwing.DesiredAngle = 0.3
- for iii = 1, 22 do
- if FloatingOnUser == true then
- tor.CFrame = torso.CFrame + Vector3.new(0,6+they,0)
- floaty.position = torso.Position + Vector3.new(0,6+they,0)
- they = they - 0.1
- wait(0.05)
- end
- end
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement