Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- --[[
- ゴ
- ゴ
- ゴ
- ゴ
- ゴ
- ゴ
- ゴ
- ]]
- if game:GetService("RunService"):IsClient() then error("Script must be server-side in order to work; use h/ and not hl/") end
- local Player,game,owner = owner,game
- local RealPlayer = Player
- do
- warn("SCP-323 by TameDoNotClick")
- warn("SCP-323 can also be called The Pony")
- warn("Due to the game, Pony Island")
- warn("WIP, will be buggy")
- local rp = RealPlayer
- script.Parent = rp.Character
- --RemoteEvent for communicating
- local Event = Instance.new("RemoteEvent")
- Event.Name = "UserInput_Event"
- --Fake event to make stuff like Mouse.KeyDown work
- local function fakeEvent()
- local t = {_fakeEvent=true,Functions={},Connect=function(self,f)table.insert(self.Functions,f) end}
- t.connect = t.Connect
- return t
- end
- --Creating fake input objects with fake variables
- local m = {Target=nil,Hit=CFrame.new(),KeyUp=fakeEvent(),KeyDown=fakeEvent(),Button1Up=fakeEvent(),Button1Down=fakeEvent()}
- local UIS = {InputBegan=fakeEvent(),InputEnded=fakeEvent()}
- local CAS = {Actions={},BindAction=function(self,name,fun,touch,...)
- CAS.Actions[name] = fun and {Name=name,Function=fun,Keys={...}} or nil
- end}
- --Merged 2 functions into one by checking amount of arguments
- CAS.UnbindAction = CAS.BindAction
- --This function will trigger the events that have been :Connect()'ed
- local function te(self,ev,...)
- local t = m[ev]
- if t and t._fakeEvent then
- for _,f in pairs(t.Functions) do
- f(...)
- end
- end
- end
- m.TrigEvent = te
- UIS.TrigEvent = te
- Event.OnServerEvent:Connect(function(plr,io)
- if plr~=rp then return end
- m.Target = io.Target
- m.Hit = io.Hit
- if not io.isMouse then
- local b = io.UserInputState == Enum.UserInputState.Begin
- if io.UserInputType == Enum.UserInputType.MouseButton1 then
- return m:TrigEvent(b and "Button1Down" or "Button1Up")
- end
- for _,t in pairs(CAS.Actions) do
- for _,k in pairs(t.Keys) do
- if k==io.KeyCode then
- t.Function(t.Name,io.UserInputState,io)
- end
- end
- end
- m:TrigEvent(b and "KeyDown" or "KeyUp",io.KeyCode.Name:lower())
- UIS:TrigEvent(b and "InputBegan" or "InputEnded",io,false)
- end
- end)
- Event.Parent = NLS([==[
- local Player = game:GetService("Players").LocalPlayer
- local Event = script:WaitForChild("UserInput_Event")
- local Mouse = Player:GetMouse()
- local UIS = game:GetService("UserInputService")
- local input = function(io,a)
- if a then return end
- --Since InputObject is a client-side instance, we create and pass table instead
- Event:FireServer({KeyCode=io.KeyCode,UserInputType=io.UserInputType,UserInputState=io.UserInputState,Hit=Mouse.Hit,Target=Mouse.Target})
- end
- UIS.InputBegan:Connect(input)
- UIS.InputEnded:Connect(input)
- local h,t
- --Give the server mouse data 30 times every second, but only if the values changed
- --If player is not moving their mouse, client won't fire events
- while wait(1/30) do
- if h~=Mouse.Hit or t~=Mouse.Target then
- h,t=Mouse.Hit,Mouse.Target
- Event:FireServer({isMouse=true,Target=t,Hit=h})
- end
- end]==],Player.Character)
- ----Sandboxed game object that allows the usage of client-side methods and services
- --Real game object
- local _rg = game
- --Metatable for fake service
- local fsmt = {
- __index = function(self,k)
- local s = rawget(self,"_RealService")
- if s then return s[k] end
- end,
- __newindex = function(self,k,v)
- local s = rawget(self,"_RealService")
- if s then s[k]=v end
- end,
- __call = function(self,...)
- local s = rawget(self,"_RealService")
- if s then return s(...) end
- end
- }
- local function FakeService(t,RealService)
- t._RealService = typeof(RealService)=="string" and _rg:GetService(RealService) or RealService
- return setmetatable(t,fsmt)
- end
- --Fake game object
- local g = {
- GetService = function(self,s)
- return self[s]
- end,
- Players = FakeService({
- LocalPlayer = FakeService({GetMouse=function(self)return m end},Player)
- },"Players"),
- UserInputService = FakeService(UIS,"UserInputService"),
- ContextActionService = FakeService(CAS,"ContextActionService"),
- }
- rawset(g.Players,"localPlayer",g.Players.LocalPlayer)
- g.service = g.GetService
- g.RunService = FakeService({
- RenderStepped = _rg:GetService("RunService").Heartbeat,
- BindToRenderStep = function(self,name,_,fun)
- end,
- UnbindFromRenderStep = function(self,name)
- self._btrs[name]:Disconnect()
- end,
- },"RunService")
- setmetatable(g,{
- __index=function(self,s)
- return _rg:GetService(s) or typeof(_rg[s])=="function"
- and function(_,...)return _rg[s](_rg,...)end or _rg[s]
- end,
- __newindex = fsmt.__newindex,
- __call = fsmt.__call
- })
- --Changing owner to fake player object to support owner:GetMouse()
- game,owner = g,g.Players.LocalPlayer
- end
- Script0 = Instance.new("Script")
- Model1 = Instance.new("Model")
- Part2 = Instance.new("Part")
- SpecialMesh3 = Instance.new("SpecialMesh")
- BillboardGui4 = Instance.new("BillboardGui")
- TextLabel5 = Instance.new("TextLabel")
- Script6 = Instance.new("Script")
- Sound7 = Instance.new("Sound")
- LocalScript8 = Instance.new("LocalScript")
- Script0.Name = "323place1"
- Script0.Parent = owner.Character
- Model1.Name = "skull"
- Model1.Parent = Script0
- Part2.Name = "FakeHead"
- Part2.Parent = Model1
- Part2.CFrame = CFrame.new(0.294842005, 368.302765, -124.816376, 0, 0, 1, 0, 1, -0, -1, 0, 0)
- Part2.Orientation = Vector3.new(0, 90, 0)
- Part2.Position = Vector3.new(0.294842005, 368.302765, -124.816376)
- Part2.Rotation = Vector3.new(0, 90, 0)
- Part2.Color = Color3.new(0.780392, 0.831373, 0.894118)
- Part2.Size = Vector3.new(2, 2, 2)
- Part2.BottomSurface = Enum.SurfaceType.Smooth
- Part2.BrickColor = BrickColor.new("Fog")
- Part2.CanCollide = false
- Part2.TopSurface = Enum.SurfaceType.Smooth
- Part2.brickColor = BrickColor.new("Fog")
- Part2.FormFactor = Enum.FormFactor.Custom
- Part2.formFactor = Enum.FormFactor.Custom
- SpecialMesh3.Parent = Part2
- SpecialMesh3.MeshId = "http://www.roblox.com/asset/?id=163989519 "
- SpecialMesh3.Scale = Vector3.new(1.10000002, 1.10000002, 1.10000002)
- SpecialMesh3.TextureId = "http://www.roblox.com/asset/?id=168602145"
- SpecialMesh3.MeshType = Enum.MeshType.FileMesh
- BillboardGui4.Parent = Part2
- BillboardGui4.LightInfluence = 1
- BillboardGui4.Size = UDim2.new(0, 200, 0, 50)
- BillboardGui4.Active = true
- BillboardGui4.ClipsDescendants = true
- BillboardGui4.ZIndexBehavior = Enum.ZIndexBehavior.Sibling
- BillboardGui4.StudsOffset = Vector3.new(0, 1.5, 0)
- TextLabel5.Parent = BillboardGui4
- TextLabel5.Size = UDim2.new(0, 200, 0, 50)
- TextLabel5.Active = true
- TextLabel5.BackgroundColor = BrickColor.new("Institutional white")
- TextLabel5.BackgroundColor3 = Color3.new(1, 1, 1)
- TextLabel5.BackgroundTransparency = 1
- TextLabel5.BorderSizePixel = 0
- TextLabel5.ClipsDescendants = true
- TextLabel5.SizeConstraint = Enum.SizeConstraint.RelativeYY
- TextLabel5.Font = Enum.Font.SciFi
- TextLabel5.FontSize = Enum.FontSize.Size32
- TextLabel5.Text = "SCP 3̸2̸3̴"
- TextLabel5.TextColor = BrickColor.new("Maroon")
- TextLabel5.TextColor3 = Color3.new(0.513726, 0, 0.00784314)
- TextLabel5.TextScaled = true
- TextLabel5.TextSize = 30
- TextLabel5.TextStrokeColor3 = Color3.new(0.243137, 0.00392157, 0.00784314)
- TextLabel5.TextWrap = true
- TextLabel5.TextWrapped = true
- Script6.Parent = TextLabel5
- Sound7.Name = "Pony Island OST 02 - Enter Pony"
- Sound7.Parent = Part2
- Sound7.Looped = true
- Sound7.SoundId = "rbxassetid://343860759"
- Sound7:Play()
- LocalScript8.Parent = Script0
- function swait(num)
- if num == 0 or num == nil then
- game:service("RunService").Stepped:wait(0)
- else
- for i = 0, num do
- game:service("RunService").Stepped:wait(0)
- end
- end
- end
- --//====================================================\\--
- --|| CREATED BY 7_QZ
- --\\====================================================//--
- wait(1.2)
- Player = owner
- local PlayerGui = Player.PlayerGui
- local Cam = workspace.CurrentCamera
- local Backpack = Player.Backpack
- Character = Player.Character
- Humanoid = Character.Humanoid
- RootPart = Character["HumanoidRootPart"]
- Torso = Character["Torso"]
- Head = Character["Head"]
- local RightArm = Character["Right Arm"]
- local LeftArm = Character["Left Arm"]
- local RightLeg = Character["Right Leg"]
- local LeftLeg = Character["Left Leg"]
- local RootJoint = RootPart["RootJoint"]
- local Neck = Torso["Neck"]
- local RightShoulder = Torso["Right Shoulder"]
- local LeftShoulder = Torso["Left Shoulder"]
- local RightHip = Torso["Right Hip"]
- local LeftHip = Torso["Left Hip"]
- local mouse = Player:GetMouse()
- IT = Instance.new
- CF = CFrame.new
- VT = Vector3.new
- local RAD = math.rad
- C3 = Color3.new
- UD2 = UDim2.new
- local BRICKC = BrickColor.new
- local ANGLES = CFrame.Angles
- local EULER = CFrame.fromEulerAnglesXYZ
- local COS = math.cos
- ACOS = math.acos
- SIN = math.sin
- local ASIN = math.asin
- local ABS = math.abs
- local MRANDOM = math.random
- local FLOOR = math.floor
- local theta = 0
- local function weldBetween(a, b)
- local weldd = Instance.new("ManualWeld")
- weldd.Part0 = a
- weldd.Part1 = b
- weldd.C0 = CFrame.new()
- weldd.C1 = b.CFrame:inverse() * a.CFrame
- weldd.Parent = a
- return weldd
- end
- function QuaternionFromCFrame(cf)
- local mx, my, mz, m00, m01, m02, m10, m11, m12, m20, m21, m22 = cf:components()
- local trace = m00 + m11 + m22
- if trace > 0 then
- local s = math.sqrt(1 + trace)
- local recip = 0.5 / s
- return (m21 - m12) * recip, (m02 - m20) * recip, (m10 - m01) * recip, s * 0.5
- else
- local i = 0
- if m11 > m00 then
- i = 1
- end
- if m22 > (i == 0 and m00 or m11) then
- i = 2
- end
- if i == 0 then
- local s = math.sqrt(m00 - m11 - m22 + 1)
- local recip = 0.5 / s
- return 0.5 * s, (m10 + m01) * recip, (m20 + m02) * recip, (m21 - m12) * recip
- elseif i == 1 then
- local s = math.sqrt(m11 - m22 - m00 + 1)
- local recip = 0.5 / s
- return (m01 + m10) * recip, 0.5 * s, (m21 + m12) * recip, (m02 - m20) * recip
- elseif i == 2 then
- local s = math.sqrt(m22 - m00 - m11 + 1)
- local recip = 0.5 / s return (m02 + m20) * recip, (m12 + m21) * recip, 0.5 * s, (m10 - m01) * recip
- end
- end
- end
- function QuaternionToCFrame(px, py, pz, x, y, z, w)
- local xs, ys, zs = x + x, y + y, z + z
- local wx, wy, wz = w * xs, w * ys, w * zs
- local xx = x * xs
- local xy = x * ys
- local xz = x * zs
- local yy = y * ys
- local yz = y * zs
- local zz = z * zs
- return CFrame.new(px, py, pz, 1 - (yy + zz), xy - wz, xz + wy, xy + wz, 1 - (xx + zz), yz - wx, xz - wy, yz + wx, 1 - (xx + yy))
- end
- function QuaternionSlerp(a, b, t)
- local cosTheta = a[1] * b[1] + a[2] * b[2] + a[3] * b[3] + a[4] * b[4]
- local startInterp, finishInterp;
- if cosTheta >= 0.0001 then
- if (1 - cosTheta) > 0.0001 then
- local theta = ACOS(cosTheta)
- local invSinTheta = 1 / SIN(theta)
- startInterp = SIN((1 - t) * theta) * invSinTheta
- finishInterp = SIN(t * theta) * invSinTheta
- else
- startInterp = 1 - t
- finishInterp = t
- end
- else
- if (1 + cosTheta) > 0.0001 then
- local theta = ACOS(-cosTheta)
- local invSinTheta = 1 / SIN(theta)
- startInterp = SIN((t - 1) * theta) * invSinTheta
- finishInterp = SIN(t * theta) * invSinTheta
- else
- startInterp = t - 1
- finishInterp = t
- end
- end
- return a[1] * startInterp + b[1] * finishInterp, a[2] * startInterp + b[2] * finishInterp, a[3] * startInterp + b[3] * finishInterp, a[4] * startInterp + b[4] * finishInterp
- end
- function Clerp(a, b, t)
- local qa = {QuaternionFromCFrame(a)}
- local qb = {QuaternionFromCFrame(b)}
- local ax, ay, az = a.x, a.y, a.z
- local bx, by, bz = b.x, b.y, b.z
- local _t = 1 - t
- return QuaternionToCFrame(_t * ax + t * bx, _t * ay + t * by, _t * az + t * bz, QuaternionSlerp(qa, qb, t))
- end
- --// More Shortcut Variables \\--
- local S = setmetatable({},{__index = function(s,i) return game:service(i) end})
- local De = S.Debris
- local WS = workspace
- local Lght = S.Lighting
- local RepS = S.ReplicatedStorage
- local IN = Instance.new
- local Plrs = S.Players
- --// Useful Values \\--
- local ROOTC0 = CF(0, 0, 0) * ANGLES(RAD(-90), RAD(0), RAD(180))
- local NECKC0 = CF(0, 1, 0) * ANGLES(RAD(-90), RAD(0), RAD(180))
- local RIGHTSHOULDERC0 = CF(-0.5, 0, 0) * ANGLES(RAD(0), RAD(90), RAD(0))
- local LEFTSHOULDERC0 = CF(0.5, 0, 0) * ANGLES(RAD(0), RAD(-90), RAD(0))
- local RootCF = CFrame.fromEulerAnglesXYZ(-1.57, 0, 3.14)
- local attack = false
- --// Instance Creation Functions \\--
- local baseSound = IN("Sound")
- function Sound(parent,id,pitch,volume,looped,effect,autoPlay)
- local Sound = baseSound:Clone()
- Sound.SoundId = "rbxassetid://".. tostring(id or 0)
- Sound.Pitch = pitch or 1
- Sound.Volume = volume or 1
- Sound.Looped = looped or false
- if(autoPlay)then
- coroutine.wrap(function()
- repeat wait() until Sound.IsLoaded
- Sound.Playing = autoPlay or false
- end)()
- end
- if(not looped and effect)then
- Sound.Stopped:connect(function()
- Sound.Volume = 0
- Sound:destroy()
- end)
- elseif(effect)then
- warn("Sound can't be looped and a sound effect!")
- end
- Sound.Parent =parent or Torso
- return Sound
- end
- function Part(parent,color,material,size,cframe,anchored,cancollide)
- local part = IN("Part")
- part.Parent = parent or Char
- part[typeof(color) == 'BrickColor' and 'BrickColor' or 'Color'] = color or C3.N(0,0,0)
- part.Material = material or Enum.Material.SmoothPlastic
- part.TopSurface,part.BottomSurface=10,10
- part.Size = size or V3.N(1,1,1)
- part.CFrame = cframe or CF.N(0,0,0)
- part.CanCollide = cancollide or false
- part.Anchored = anchored or false
- return part
- end
- function Weld(part0,part1,c0,c1)
- local weld = IN("Weld")
- weld.Parent = part0
- weld.Part0 = part0
- weld.Part1 = part1
- weld.C0 = c0 or CFrame.new()
- weld.C1 = c1 or CFrame.new()
- return weld
- end
- function Mesh(parent,meshtype,meshid,textid,scale,offset)
- local part = IN("SpecialMesh")
- part.MeshId = meshid or ""
- part.TextureId = textid or ""
- part.Scale = scale or V3.N(1,1,1)
- part.Offset = offset or V3.N(0,0,0)
- part.MeshType = meshtype or Enum.MeshType.Sphere
- part.Parent = parent
- return part
- end
- NewInstance = function(instance,parent,properties)
- local inst = Instance.new(instance)
- inst.Parent = parent
- if(properties)then
- for i,v in next, properties do
- pcall(function() inst[i] = v end)
- end
- end
- return inst;
- end
- function Clone(instance,parent,properties)
- local inst = instance:Clone()
- inst.Parent = parent
- if(properties)then
- for i,v in next, properties do
- pcall(function() inst[i] = v end)
- end
- end
- return inst;
- end
- local S = IT("Sound")
- function CreateSound(ID, PARENT, VOLUME, PITCH, DOESLOOP)
- local NEWSOUND = nil
- coroutine.resume(coroutine.create(function()
- NEWSOUND = S:Clone()
- NEWSOUND.Parent = PARENT
- NEWSOUND.Volume = VOLUME
- NEWSOUND.Pitch = PITCH
- NEWSOUND.SoundId = "http://www.roblox.com/asset/?id="..ID
- NEWSOUND:play()
- if DOESLOOP == true then
- NEWSOUND.Looped = true
- else
- repeat wait(1) until NEWSOUND.Playing == false
- NEWSOUND:remove()
- end
- end))
- return NEWSOUND
- end
- --// Other Functions \\--
- function Raycast(POSITION, DIRECTION, RANGE, IGNOREDECENDANTS)
- return workspace:FindPartOnRay(Ray.new(POSITION, DIRECTION.unit * RANGE), IGNOREDECENDANTS)
- end
- function Chatter(Text,Timer)
- local chat = coroutine.wrap(function()
- if Character:FindFirstChild("SpeechBoard")~= nil then
- Character:FindFirstChild("SpeechBoard"):destroy()
- end
- local naeeym2 = IT("BillboardGui",Character)
- naeeym2.Size = UD2(0,100,0,40)
- naeeym2.StudsOffset = VT(0,2,0)
- naeeym2.Adornee = Character.Head
- naeeym2.Name = "SpeechBoard"
- naeeym2.AlwaysOnTop = true
- local tecks2 = IT("TextLabel",naeeym2)
- tecks2.BackgroundTransparency = 1
- tecks2.BorderSizePixel = 0
- tecks2.Text = ""
- tecks2.Font = "Legacy"
- tecks2.TextSize = 15
- tecks2.TextStrokeTransparency = 0
- tecks2.TextColor3 = C3(62/255,0,2/255)
- tecks2.TextStrokeColor3 = C3(131/255,1/255,2/255)
- tecks2.Size = UDim2.new(1,0,0.5,0)
- local FINISHED = false
- coroutine.resume(coroutine.create(function()
- for i = 1,string.len(Text),1 do
- if naeeym2.Parent ~= Character then
- FINISHED = true
- end
- CreateSound(418252437, Head, 7, 0.5, false)
- tecks2.Text = string.sub(Text,1,i)
- swait(Timer)
- end
- FINISHED = true
- end))
- repeat wait() until FINISHED == true
- wait(1)
- naeeym2.Name = "FadingDialogue"
- for i = 1, 45 do
- swait()
- naeeym2.StudsOffset = naeeym2.StudsOffset + VT(0,(2-((2/45)*i))/45,0)
- tecks2.TextTransparency = tecks2.TextTransparency + 1/45
- tecks2.TextStrokeTransparency = tecks2.TextTransparency
- end
- naeeym2:Destroy()
- end)
- chat()
- end
- local Create = LoadLibrary("RbxUtility").Create
- CFuncs = {
- ["Part"] = {
- Create = function(Parent, Material, Reflectance, Transparency, BColor, Name, Size)
- local Part = Create("Part"){
- Parent = Parent,
- Reflectance = Reflectance,
- Transparency = Transparency,
- CanCollide = false,
- Locked = true,
- BrickColor = BrickColor.new(tostring(BColor)),
- Name = Name,
- Size = Size,
- Material = Material,
- }
- RemoveOutlines(Part)
- return Part
- end;
- };
- ["Mesh"] = {
- Create = function(Mesh, Part, MeshType, MeshId, OffSet, Scale)
- local Msh = Create(Mesh){
- Parent = Part,
- Offset = OffSet,
- Scale = Scale,
- }
- if Mesh == "SpecialMesh" then
- Msh.MeshType = MeshType
- Msh.MeshId = MeshId
- end
- return Msh
- end;
- };
- ["Mesh"] = {
- Create = function(Mesh, Part, MeshType, MeshId, OffSet, Scale)
- local Msh = Create(Mesh){
- Parent = Part,
- Offset = OffSet,
- Scale = Scale,
- }
- if Mesh == "SpecialMesh" then
- Msh.MeshType = MeshType
- Msh.MeshId = MeshId
- end
- return Msh
- end;
- };
- ["Weld"] = {
- Create = function(Parent, Part0, Part1, C0, C1)
- local Weld = Create("Weld"){
- Parent = Parent,
- Part0 = Part0,
- Part1 = Part1,
- C0 = C0,
- C1 = C1,
- }
- return Weld
- end;
- };
- ["Sound"] = {
- Create = function(id, par, vol, pit)
- coroutine.resume(coroutine.create(function()
- local S = Create("Sound"){
- Volume = vol,
- Name = "EffectSoundo",
- Pitch = pit or 1,
- SoundId = id,
- Parent = par or workspace,
- }
- wait()
- S:play()
- game:GetService("Debris"):AddItem(S, 10)
- end))
- end;
- };
- ["EchoSound"] = {
- Create = function(id, par, vol, pit, timepos,delays,echodelay,fedb,dryl)
- coroutine.resume(coroutine.create(function()
- local Sas = Create("Sound"){
- Volume = vol,
- Name = "EffectSoundo",
- Pitch = pit or 1,
- SoundId = id,
- TimePosition = timepos,
- Parent = par or workspace,
- }
- local E = Create("EchoSoundEffect"){
- Delay = echodelay,
- Name = "Echo",
- Feedback = fedb,
- DryLevel = dryl,
- Parent = Sas,
- }
- wait()
- Sas:play()
- game:GetService("Debris"):AddItem(Sas, delays)
- end))
- end;
- };
- ["LongSound"] = {
- Create = function(id, par, vol, pit)
- coroutine.resume(coroutine.create(function()
- local S = Create("Sound"){
- Volume = vol,
- Pitch = pit or 1,
- SoundId = id,
- Parent = par or workspace,
- }
- wait()
- S:play()
- game:GetService("Debris"):AddItem(S, 60)
- end))
- end;
- };
- ["ParticleEmitter"] = {
- Create = function(Parent, Color1, Color2, LightEmission, Size, Texture, Transparency, ZOffset, Accel, Drag, LockedToPart, VelocityInheritance, EmissionDirection, Enabled, LifeTime, Rate, Rotation, RotSpeed, Speed, VelocitySpread)
- local fp = Create("ParticleEmitter"){
- Parent = Parent,
- Color = ColorSequence.new(Color1, Color2),
- LightEmission = LightEmission,
- Size = Size,
- Texture = Texture,
- Transparency = Transparency,
- ZOffset = ZOffset,
- Acceleration = Accel,
- Drag = Drag,
- LockedToPart = LockedToPart,
- VelocityInheritance = VelocityInheritance,
- EmissionDirection = EmissionDirection,
- Enabled = Enabled,
- Lifetime = LifeTime,
- Rate = Rate,
- Rotation = Rotation,
- RotSpeed = RotSpeed,
- Speed = Speed,
- VelocitySpread = VelocitySpread,
- }
- return fp
- end;
- };
- CreateTemplate = {
- };
- }
- --// Damaging Functions \\--
- function Damagefunc(Part, hit, minim, maxim, knockback, Type, Property, Delay, HitSound, HitPitch)
- if hit.Parent == nil then
- return
- end
- local h = hit.Parent:FindFirstChildOfClass("Humanoid")
- for _, v in pairs(hit.Parent:children()) do
- if v:IsA("Humanoid") then
- h = v
- end
- end
- if h ~= nil and hit.Parent.Name ~= Character.Name and hit.Parent:FindFirstChild("Head") ~= nil then
- if hit.Parent:findFirstChild("DebounceHit") ~= nil and hit.Parent.DebounceHit.Value == true then
- return
- end
- local c = Create("ObjectValue")({
- Name = "creator",
- Value = owner,
- Parent = h
- })
- game:GetService("Debris"):AddItem(c, 0.5)
- if HitSound ~= nil and HitPitch ~= nil then
- CFuncs.Sound.Create(HitSound, hit, 1, HitPitch)
- end
- local Damage = math.random(minim, maxim)
- local blocked = false
- local block = hit.Parent:findFirstChild("Block")
- if block ~= nil and block.className == "IntValue" and block.Value > 0 then
- blocked = true
- block.Value = block.Value - 1
- print(block.Value)
- end
- if blocked == false then
- HitHealth = h.Health
- h.Health = h.Health - Damage
- if HitHealth ~= h.Health and HitHealth ~= 0 and 0 >= h.Health and h.Parent.Name ~= "Hologram" then
- print("gained kill")
- end
- else
- h.Health = h.Health - Damage / 2
- end
- if Type == "Knockdown" then
- local hum = hit.Parent:FindFirstChildOfClass'Humanoid'
- hum.PlatformStand = true
- coroutine.resume(coroutine.create(function(HHumanoid)
- swait(1)
- HHumanoid.PlatformStand = false
- end), hum)
- local angle = hit.Position - (Property.Position + Vector3.new(0, 0, 0)).unit
- local bodvol = Create("BodyVelocity")({
- velocity = angle * knockback,
- P = 5000,
- maxForce = Vector3.new(8000, 8000, 8000),
- Parent = hit
- })
- local rl = Create("BodyAngularVelocity")({
- P = 3000,
- maxTorque = Vector3.new(500000, 500000, 500000) * 50000000000000,
- angularvelocity = Vector3.new(math.random(-10, 10), math.random(-10, 10), math.random(-10, 10)),
- Parent = hit
- })
- game:GetService("Debris"):AddItem(bodvol, 0.5)
- game:GetService("Debris"):AddItem(rl, 0.5)
- elseif Type == "Normal" then
- local vp = Create("BodyVelocity")({
- P = 500,
- maxForce = Vector3.new(math.huge, 0, math.huge),
- velocity = Property.CFrame.lookVector * knockback + Property.Velocity / 1.05
- })
- if knockback > 0 then
- vp.Parent = hit.Parent.Head
- end
- game:GetService("Debris"):AddItem(vp, 0.5)
- elseif Type == "Wind" then
- local vp = Instance.new("BodyVelocity")
- vp.P = 500000
- vp.maxForce = Vector3.new(0, math.huge, 0)
- vp.velocity = Property.CFrame.lookVector * knockback + Property.Velocity / 1.05
- vp.Parent = hit.Parent.Head
- if knockback > 0 then
- vp.Parent = hit.Parent.Head
- end
- game:GetService("Debris"):AddItem(vp, 0.5)
- elseif Type == "Up" then
- local bodyVelocity = Create("BodyVelocity")({
- velocity = Vector3.new(0, 20, 0),
- P = 5000,
- maxForce = Vector3.new(8000, 8000, 8000),
- Parent = hit
- })
- game:GetService("Debris"):AddItem(bodyVelocity, 0.5)
- local bodyVelocity = Create("BodyVelocity")({
- velocity = Vector3.new(0, 20, 0),
- P = 5000,
- maxForce = Vector3.new(8000, 8000, 8000),
- Parent = hit
- })
- game:GetService("Debris"):AddItem(bodyVelocity, 1)
- elseif Type == "Leech" then
- local hum = hit.Parent:FindFirstChildOfClass'Humanoid'
- if hum ~= nil then
- for i = 0, 2 do
- Effects.Sphere.Create(BrickColor.new("Bright red"), hit.Parent.Torso.CFrame * cn(0, 0, 0) * angles(math.random(-50, 50), math.random(-50, 50), math.random(-50, 50)), 1, 15, 1, 0, 5, 0, 0.02)
- end
- Humanoid.Health = Humanoid.Health + 10
- end
- elseif Type == "Tornado" then
- local hum = hit.Parent:FindFirstChildOfClass'Humanoid'
- hum.PlatformStand = true
- if hum ~= nil then
- hitr = true
- end
- coroutine.resume(coroutine.create(function(HHumanoid)
- swait(5)
- HHumanoid.PlatformStand = false
- hitr = false
- end), hum)
- local bodyVelocity = Create("BodyVelocity")({
- velocity = Vector3.new(math.cos(theta*5)*20, 5, math.sin(theta*5)*20),
- P = 5000,
- maxForce = Vector3.new(8000, 8000, 8000),
- Parent = hit
- })
- game:GetService("Debris"):AddItem(bodyVelocity, 0.5)
- local bodyVelocity = Create("BodyVelocity")({
- velocity = Vector3.new(math.cos(theta*5)*20, 5, math.sin(theta*5)*20),
- P = 5000,
- maxForce = Vector3.new(8000, 8000, 8000),
- Parent = hit
- })
- game:GetService("Debris"):AddItem(bodyVelocity, 1)
- elseif Type == "Snare" then
- local bp = Create("BodyPosition")({
- P = 2000,
- D = 100,
- maxForce = Vector3.new(math.huge, math.huge, math.huge),
- position = hit.Parent.Torso.Position,
- Parent = hit.Parent.Torso
- })
- game:GetService("Debris"):AddItem(bp, 1)
- elseif Type == "Slashnare" then
- Effects.Block.Create(BrickColor.new("Pastel Blue"), hit.Parent.Torso.CFrame * cn(0, 0, 0), 15*4, 15*4, 15*4, 3*4, 3*4, 3*4, 0.07)
- for i = 1, math.random(4, 5) do
- Effects.Sphere.Create(BrickColor.new("Teal"), hit.Parent.Torso.CFrame * cn(math.random(-5, 5), math.random(-5, 5), math.random(-5, 5)) * angles(math.random(-50, 50), math.random(-50, 50), math.random(-50, 50)), 1, 15, 1, 0, 5, 0, 0.02)
- end
- local bp = Create("BodyPosition")({
- P = 2000,
- D = 100,
- maxForce = Vector3.new(math.huge, math.huge, math.huge),
- position = hit.Parent.Torso.Position,
- Parent = hit.Parent.Torso
- })
- game:GetService("Debris"):AddItem(bp, 1)
- elseif Type == "Spike" then
- CreateBigIceSword(hit.Parent.Torso.CFrame)
- local bp = Create("BodyPosition")({
- P = 2000,
- D = 100,
- maxForce = Vector3.new(math.huge, math.huge, math.huge),
- position = hit.Parent.Torso.Position,
- Parent = hit.Parent.Torso
- })
- game:GetService("Debris"):AddItem(bp, 1)
- elseif Type == "Freeze" then
- local BodPos = Create("BodyPosition")({
- P = 50000,
- D = 1000,
- maxForce = Vector3.new(math.huge, math.huge, math.huge),
- position = hit.Parent.Torso.Position,
- Parent = hit.Parent.Torso
- })
- local BodGy = Create("BodyGyro")({
- maxTorque = Vector3.new(400000, 400000, 400000) * math.huge,
- P = 20000,
- Parent = hit.Parent.Torso,
- cframe = hit.Parent.Torso.CFrame
- })
- hit.Parent.Torso.Anchored = true
- coroutine.resume(coroutine.create(function(Part)
- swait(1.5)
- Part.Anchored = false
- end), hit.Parent.Torso)
- game:GetService("Debris"):AddItem(BodPos, 3)
- game:GetService("Debris"):AddItem(BodGy, 3)
- end
- local debounce = Create("BoolValue")({
- Name = "DebounceHit",
- Parent = hit.Parent,
- Value = true
- })
- game:GetService("Debris"):AddItem(debounce, Delay)
- c = Instance.new("ObjectValue")
- c.Name = "creator"
- c.Value = Player
- c.Parent = h
- game:GetService("Debris"):AddItem(c, 0.5)
- end
- end
- function MagniDamage(Part, magni, mindam, maxdam, knock, Type)
- for _, c in pairs(workspace:children()) do
- local hum = c:findFirstChildOfClass("Humanoid")
- if hum ~= nil then
- local head = c:findFirstChild("Head")
- if head ~= nil then
- local targ = head.Position - Part.Position
- local mag = targ.magnitude
- if magni >= mag and c.Name ~= Player.Name then
- Damagefunc(head, head, mindam, maxdam, knock, Type, RootPart, 0.1, "rbxassetid://231917784", 1)
- end
- end
- end
- end
- end
- --// Character \\--
- Character.Animate:Remove()
- Character.Humanoid.Animator:Remove()
- Character["Body Colors"]:Remove()
- swait(5)
- LeftArm.Color = Color3.new(1,1,1)
- LeftArm.Material = "Concrete"
- RightArm.Color = Color3.new(1,1,1)
- RightArm.Material = "Concrete"
- LeftLeg.Color = Color3.new(1,1,1)
- LeftLeg.Material = "Concrete"
- RightLeg.Color = Color3.new(1,1,1)
- RightLeg.Material = "Concrete"
- Torso.Color = Color3.new(1,1,1)
- Torso.Material = "Concrete"
- Head.Color = Color3.new(1,1,1)
- for i,v in pairs(Character:GetChildren()) do
- if v:IsA("Accessory") or v:IsA("Shirt") or v:IsA("Pants") then
- v:Remove()
- end
- end
- Humanoid.WalkSpeed = 27
- Head.Transparency = 1
- function touch(hit)
- if hit.Parent ~= Character then
- hit.Parent:FindFirstChild("Humanoid").Health = hit.Parent:FindFirstChild("Humanoid").Health -5
- end
- end
- Character.Torso.Touched:connect(touch)
- local MASK = Part2
- Weld(MASK,Head,CFrame.new(0,-0.5,0)*ANGLES(0,math.rad(0),0))
- MASK.Parent = Character
- weldBetween(Head,MASK)
- local dialogue = {"Are you... my next meal?","I've been looking for a snack... hehe..."}
- Chatter("I crave... flesh...",5)
- --// Effect Functions \\--
- function ring(type,pos,scale,value)
- local type = type
- local rng = Instance.new("Part", Character)
- rng.Anchored = true
- rng.BrickColor = origcolor
- rng.CanCollide = false
- rng.FormFactor = 3
- rng.Name = "Ring"
- rng.Size = Vector3.new(1, 1, 1)
- rng.Transparency = 0
- rng.TopSurface = 0
- rng.BottomSurface = 0
- rng.CFrame = pos
- local rngm = Instance.new("SpecialMesh", rng)
- rngm.MeshId = "http://www.roblox.com/asset/?id=3270017"
- rngm.Scale = scale
- local scaler2 = 1
- if type == "Add" then
- scaler2 = 1*value
- elseif type == "Divide" then
- scaler2 = 1/value
- end
- coroutine.resume(coroutine.create(function()
- for i = 0,10,0.1 do
- swait()
- if type == "Add" then
- scaler2 = scaler2 - 0.01*value
- elseif type == "Divide" then
- scaler2 = scaler2 - 0.01/value
- end
- rng.Transparency = rng.Transparency + 0.01
- rngm.Scale = rngm.Scale + Vector3.new(scaler2, scaler2, 0)
- end
- rng:Destroy()
- end))
- end
- function wave(type,pos,scale,value)
- local type = type
- local rng = Instance.new("Part", Character)
- rng.Anchored = true
- rng.BrickColor = origcolor
- rng.CanCollide = false
- rng.FormFactor = 3
- rng.Name = "Ring"
- rng.Size = Vector3.new(1, 1, 1)
- rng.Transparency = 0
- rng.TopSurface = 0
- rng.BottomSurface = 0
- rng.CFrame = pos
- local rngm = Instance.new("SpecialMesh", rng)
- rngm.MeshId = "http://www.roblox.com/asset/?id=20329976"
- rngm.Scale = scale
- local scaler2 = 1
- if type == "Add" then
- scaler2 = 1*value
- elseif type == "Divide" then
- scaler2 = 1/value
- end
- coroutine.resume(coroutine.create(function()
- for i = 0,10,0.1 do
- swait()
- if type == "Add" then
- scaler2 = scaler2 - 0.01*value
- elseif type == "Divide" then
- scaler2 = scaler2 - 0.01/value
- end
- rng.Transparency = rng.Transparency + 0.01
- rngm.Scale = rngm.Scale + Vector3.new(scaler2, scaler2, scaler2)
- end
- rng:Destroy()
- end))
- end
- function wind(type,pos,scale,value,speed)
- local type = type
- local rng = Instance.new("Part", Character)
- rng.Anchored = true
- rng.BrickColor = origcolor
- rng.CanCollide = false
- rng.FormFactor = 3
- rng.Name = "Ring"
- rng.Size = Vector3.new(1, 1, 1)
- rng.Transparency = 0
- rng.TopSurface = 0
- rng.BottomSurface = 0
- rng.CFrame = pos
- local rngm = Instance.new("SpecialMesh", rng)
- rngm.MeshId = "http://www.roblox.com/asset/?id=1051557"
- rngm.Scale = scale
- local scaler2 = 1
- if type == "Add" then
- scaler2 = 1*value
- elseif type == "Divide" then
- scaler2 = 1/value
- end
- coroutine.resume(coroutine.create(function()
- for i = 0,10,0.1 do
- swait()
- if type == "Add" then
- scaler2 = scaler2 - 0.01*value
- elseif type == "Divide" then
- scaler2 = scaler2 - 0.01/value
- end
- rng.CFrame = rng.CFrame*CFrame.Angles(0,0.025*speed,0)
- rng.Transparency = rng.Transparency + 0.01
- rngm.Scale = rngm.Scale + Vector3.new(scaler2, scaler2, scaler2)
- end
- rng:Destroy()
- end))
- end
- function groundwind(type,pos,scale,value,speed)
- local type = type
- local rng = Instance.new("Part", Character)
- rng.Anchored = true
- rng.BrickColor = origcolor
- rng.CanCollide = false
- rng.FormFactor = 3
- rng.Name = "Ring"
- rng.Size = Vector3.new(1, 1, 1)
- rng.Transparency = 0
- rng.TopSurface = 0
- rng.BottomSurface = 0
- rng.CFrame = pos
- local rngm = Instance.new("SpecialMesh", rng)
- rngm.MeshId = "http://www.roblox.com/asset/?id=1051557"
- rngm.Scale = scale
- local scaler2 = 1
- if type == "Add" then
- scaler2 = 1*value
- elseif type == "Divide" then
- scaler2 = 1/value
- end
- coroutine.resume(coroutine.create(function()
- for i = 0,10,0.1 do
- swait()
- if type == "Add" then
- scaler2 = scaler2 - 0.01*value
- elseif type == "Divide" then
- scaler2 = scaler2 - 0.01/value
- end
- rng.CFrame = rng.CFrame*CFrame.Angles(0,0.025*speed,0)
- rng.Transparency = rng.Transparency + 0.01
- rngm.Scale = rngm.Scale + Vector3.new(scaler2, scaler2/5, scaler2)
- end
- rng:Destroy()
- end))
- end
- function sphere(bonuspeed,type,pos,scale,value,color,heart,invert,notaffectbychaosrainbow)
- local type = type
- local rng = Instance.new("Part", Character)
- rng.Anchored = true
- rng.BrickColor = color
- rng.CanCollide = false
- rng.FormFactor = 3
- rng.Name = "Ring"
- rng.Material = "Neon"
- rng.Size = Vector3.new(1, 1, 1)
- rng.Transparency = 0
- rng.TopSurface = 0
- rng.BottomSurface = 0
- rng.CFrame = pos
- local rngm = Instance.new("SpecialMesh", rng)
- rngm.MeshType = "Sphere"
- if(heart)then
- rngm.MeshType = Enum.MeshType.FileMesh
- rngm.MeshId = "rbxassetid://105992239"
- rngm.Offset = Vector3.new(0,0,-.25)
- end
- rngm.Scale = scale
- if rainbowmode == true and not notaffectbychaosrainbow then
- rng.Color = Color3.new(r/255,g/255,b/255)
- end
- local scaler2 = 1
- if type == "Add" then
- scaler2 = 1*value
- elseif type == "Divide" then
- scaler2 = 1/value
- end
- coroutine.resume(coroutine.create(function()
- for i = 0,10/bonuspeed,0.1 do
- swait()
- if rainbowmode == true and not notaffectbychaosrainbow then
- rng.Color = Color3.new(r/255,g/255,b/255)
- end
- if type == "Add" then
- scaler2 = scaler2 - 0.01*value/bonuspeed
- elseif type == "Divide" then
- scaler2 = scaler2 - 0.01/value*bonuspeed
- end
- if chaosmode == true and not notaffectbychaosrainbow then
- rng.BrickColor = BrickColor.random()
- end
- if glitchymode then
- local val = math.random(1,255)
- local color = Color3.fromRGB(val,val,val)
- rng.Color = color
- end
- rng.Transparency = rng.Transparency + 0.01*bonuspeed
- if(invert)then
- if(heart)then
- rngm.Scale = rngm.Scale - Vector3.new(scaler2*bonuspeed, scaler2*bonuspeed, 0)
- else
- rngm.Scale = rngm.Scale - Vector3.new(scaler2*bonuspeed, scaler2*bonuspeed, scaler2*bonuspeed)
- end
- else
- if(heart)then
- rngm.Scale = rngm.Scale + Vector3.new(scaler2*bonuspeed, scaler2*bonuspeed, 0)
- else
- rngm.Scale = rngm.Scale + Vector3.new(scaler2*bonuspeed, scaler2*bonuspeed, scaler2*bonuspeed)
- end
- end
- rng.CFrame = pos
- end
- rng:Destroy()
- end))
- end
- function PixelBlock(bonuspeed,FastSpeed,type,pos,x1,y1,z1,value,color,outerpos,heart,invert)
- local type = type
- local rng = Instance.new("Part", Character)
- rng.Anchored = true
- rng.BrickColor = color
- rng.CanCollide = false
- rng.FormFactor = 3
- rng.Name = "Ring"
- rng.Material = "Neon"
- rng.Size = Vector3.new(1, 1, 1)
- rng.Transparency = 0
- rng.TopSurface = 0
- rng.BottomSurface = 0
- rng.CFrame = pos
- rng.CFrame = rng.CFrame + rng.CFrame.lookVector*outerpos
- local rngm = Instance.new("SpecialMesh", rng)
- rngm.MeshType = "Brick"
- if(heart)then
- rngm.MeshType = Enum.MeshType.FileMesh
- rngm.MeshId = "rbxassetid://105992239"
- rngm.Offset = Vector3.new(0,0,-.25)
- end
- rngm.Scale = Vector3.new(x1,y1,z1)
- if rainbowmode == true then
- rng.Color = Color3.new(r/255,g/255,b/255)
- end
- local scaler2 = 1
- local speeder = FastSpeed/10
- if type == "Add" then
- scaler2 = 1*value
- elseif type == "Divide" then
- scaler2 = 1/value
- end
- coroutine.resume(coroutine.create(function()
- for i = 0,10/bonuspeed,0.1 do
- swait()
- if rainbowmode == true then
- rng.Color = Color3.new(r/255,g/255,b/255)
- end
- if type == "Add" then
- scaler2 = scaler2 - 0.01*value/bonuspeed
- elseif type == "Divide" then
- scaler2 = scaler2 - 0.01/value*bonuspeed
- end
- if chaosmode == true then
- rng.BrickColor = BrickColor.random()
- end
- if glitchymode then
- local val = math.random(1,255)
- local color = Color3.fromRGB(val,val,val)
- rng.Color = color
- end
- speeder = speeder - 0.01*FastSpeed*bonuspeed/10
- if(invert)then rng.CFrame = rng.CFrame - rng.CFrame.lookVector*speeder*bonuspeed else rng.CFrame = rng.CFrame + rng.CFrame.lookVector*speeder*bonuspeed end
- --rng.Transparency = rng.Transparency + 0.01*bonuspeed
- rngm.Scale = rngm.Scale - Vector3.new(scaler2*bonuspeed, scaler2*bonuspeed, scaler2*bonuspeed)
- end
- rng:Destroy()
- end))
- end
- function PixelBlockX(bonuspeed,FastSpeed,type,pos,x1,y1,z1,value,color,outerpos)
- local type = type
- local rng = Instance.new("Part", Character)
- rng.Anchored = true
- rng.BrickColor = color
- rng.CanCollide = false
- rng.FormFactor = 3
- rng.Name = "Ring"
- rng.Material = "Neon"
- rng.Size = Vector3.new(1, 1, 1)
- rng.Transparency = 0
- rng.TopSurface = 0
- rng.BottomSurface = 0
- rng.CFrame = pos
- rng.CFrame = rng.CFrame + rng.CFrame.lookVector*outerpos
- local rngm = Instance.new("SpecialMesh", rng)
- rngm.MeshType = "Brick"
- rngm.Scale = Vector3.new(x1,y1,z1)
- if rainbowmode == true then
- rng.Color = Color3.new(r/255,g/255,b/255)
- end
- local scaler2 = 1
- local speeder = FastSpeed/10
- if type == "Add" then
- scaler2 = 1*value
- elseif type == "Divide" then
- scaler2 = 1/value
- end
- coroutine.resume(coroutine.create(function()
- for i = 0,10/bonuspeed,0.1 do
- swait()
- if rainbowmode == true then
- rng.Color = Color3.new(r/255,g/255,b/255)
- end
- if type == "Add" then
- scaler2 = scaler2 - 0.01*value/bonuspeed
- elseif type == "Divide" then
- scaler2 = scaler2 - 0.01/value*bonuspeed
- end
- if chaosmode == true then
- rng.BrickColor = BrickColor.random()
- end
- speeder = speeder - 0.01*FastSpeed*bonuspeed/10
- rng.CFrame = rng.CFrame + rng.CFrame.lookVector*speeder*bonuspeed
- rng.Transparency = rng.Transparency + 0.01*bonuspeed
- rngm.Scale = rngm.Scale - Vector3.new(scaler2*bonuspeed, scaler2*bonuspeed, scaler2*bonuspeed)
- end
- rng:Destroy()
- end))
- end
- function PixelBlockNeg(bonuspeed,FastSpeed,type,pos,x1,y1,z1,value,color,outerpos,heart,invert)
- local type = type
- local rng = Instance.new("Part", Character)
- rng.Anchored = true
- rng.BrickColor = color
- rng.CanCollide = false
- rng.FormFactor = 3
- rng.Name = "Ring"
- rng.Material = "Neon"
- rng.Size = Vector3.new(1, 1, 1)
- rng.Transparency = 0
- rng.TopSurface = 0
- rng.BottomSurface = 0
- rng.CFrame = pos
- rng.CFrame = rng.CFrame + rng.CFrame.lookVector*outerpos
- local rngm = Instance.new("SpecialMesh", rng)
- rngm.MeshType = "Brick"
- if(heart)then
- rngm.MeshType = Enum.MeshType.FileMesh
- rngm.MeshId = "rbxassetid://105992239"
- rngm.Offset = Vector3.new(0,0,-.25)
- end
- rngm.Scale = Vector3.new(x1,y1,z1)
- if rainbowmode == true then
- rng.Color = Color3.new(r/255,g/255,b/255)
- end
- local scaler2 = 0
- local speeder = FastSpeed/10
- if type == "Add" then
- scaler2 = 1*value
- elseif type == "Divide" then
- scaler2 = 1/value
- end
- coroutine.resume(coroutine.create(function()
- for i = 0,10/bonuspeed,0.1 do
- swait()
- if rainbowmode == true then
- rng.Color = Color3.new(r/255,g/255,b/255)
- end
- if type == "Add" then
- scaler2 = scaler2 - 0.01*value/bonuspeed
- elseif type == "Divide" then
- scaler2 = scaler2 - 0.01/value*bonuspeed
- end
- if chaosmode == true then
- rng.BrickColor = BrickColor.random()
- end
- if glitchymode then
- local val = math.random(1,255)
- local color = Color3.fromRGB(val,val,val)
- rng.Color = color
- end
- speeder = speeder + 0.01*FastSpeed*bonuspeed/10
- rng.CFrame = rng.CFrame + rng.CFrame.lookVector*speeder*bonuspeed
- if(invert)then rng.CFrame = rng.CFrame - rng.CFrame.lookVector*speeder*bonuspeed else rng.CFrame = rng.CFrame + rng.CFrame.lookVector*speeder*bonuspeed end
- --rng.Transparency = rng.Transparency + 0.01*bonuspeed
- rngm.Scale = rngm.Scale - Vector3.new(scaler2*bonuspeed, scaler2*bonuspeed, scaler2*bonuspeed)
- end
- rng:Destroy()
- end))
- end
- function sphereMK(bonuspeed,FastSpeed,type,pos,x1,y1,z1,value,color,outerpos)
- local type = type
- local rng = Instance.new("Part", Character)
- rng.Anchored = true
- rng.BrickColor = color
- rng.CanCollide = false
- rng.FormFactor = 3
- rng.Name = "Ring"
- rng.Material = "Neon"
- rng.Size = Vector3.new(1, 1, 1)
- rng.Transparency = 0
- rng.TopSurface = 0
- rng.BottomSurface = 0
- rng.CFrame = pos
- rng.CFrame = rng.CFrame + rng.CFrame.lookVector*outerpos
- local rngm = Instance.new("SpecialMesh", rng)
- rngm.MeshType = "Sphere"
- rngm.Scale = Vector3.new(x1,y1,z1)
- if rainbowmode == true then
- rng.Color = Color3.new(r/255,g/255,b/255)
- end
- local scaler2 = 1
- local speeder = FastSpeed
- if type == "Add" then
- scaler2 = 1*value
- elseif type == "Divide" then
- scaler2 = 1/value
- end
- coroutine.resume(coroutine.create(function()
- for i = 0,10/bonuspeed,0.1 do
- swait()
- if rainbowmode == true then
- rng.Color = Color3.new(r/255,g/255,b/255)
- end
- if type == "Add" then
- scaler2 = scaler2 - 0.01*value/bonuspeed
- elseif type == "Divide" then
- scaler2 = scaler2 - 0.01/value*bonuspeed
- end
- if chaosmode == true then
- rng.BrickColor = BrickColor.random()
- end
- if glitchymode then
- local val = math.random(1,255)
- local color = Color3.fromRGB(val,val,val)
- rng.Color = color
- end
- speeder = speeder - 0.01*FastSpeed*bonuspeed
- rng.CFrame = rng.CFrame + rng.CFrame.lookVector*speeder*bonuspeed
- rng.Transparency = rng.Transparency + 0.01*bonuspeed
- rngm.Scale = rngm.Scale + Vector3.new(scaler2*bonuspeed, scaler2*bonuspeed, 0)
- end
- rng:Destroy()
- end))
- end
- function sphereMKCharge(bonuspeed,FastSpeed,type,pos,x1,y1,z1,value,color,outerpos)
- local type = type
- local rng = Instance.new("Part", Character)
- rng.Anchored = true
- rng.BrickColor = color
- rng.CanCollide = false
- rng.FormFactor = 3
- rng.Name = "Ring"
- rng.Material = "Neon"
- rng.Size = Vector3.new(1, 1, 1)
- rng.Transparency = 1
- rng.TopSurface = 0
- rng.BottomSurface = 0
- rng.CFrame = pos
- rng.CFrame = rng.CFrame + rng.CFrame.lookVector*outerpos
- local rngm = Instance.new("SpecialMesh", rng)
- rngm.MeshType = "Sphere"
- rngm.Scale = Vector3.new(x1,y1,z1)
- if rainbowmode == true then
- rng.Color = Color3.new(r/255,g/255,b/255)
- end
- local scaler2 = 1
- local speeder = FastSpeed
- if type == "Add" then
- scaler2 = 1*value
- elseif type == "Divide" then
- scaler2 = 1/value
- end
- coroutine.resume(coroutine.create(function()
- for i = 0,10/bonuspeed,0.1 do
- swait()
- if rainbowmode == true then
- rng.Color = Color3.new(r/255,g/255,b/255)
- end
- if type == "Add" then
- scaler2 = scaler2 - 0.01*value/bonuspeed
- elseif type == "Divide" then
- scaler2 = scaler2 - 0.01/value*bonuspeed
- end
- if chaosmode == true then
- rng.BrickColor = BrickColor.random()
- end
- if glitchymode then
- local val = math.random(1,255)
- local color = Color3.fromRGB(val,val,val)
- rng.Color = color
- end
- speeder = speeder - 0.01*FastSpeed*bonuspeed
- rng.CFrame = rng.CFrame + rng.CFrame.lookVector*speeder*bonuspeed
- rng.Transparency = rng.Transparency - 0.01*bonuspeed
- rngm.Scale = rngm.Scale + Vector3.new(scaler2*bonuspeed, scaler2*bonuspeed, 0)
- end
- rng:Destroy()
- end))
- end
- --// Attacks \\--
- function ExtinctiveHeartbreak()
- local targetted = nil
- if mouse.Target.Parent ~= Character and mouse.Target.Parent.Parent ~= Character and mouse.Target.Parent:FindFirstChildOfClass("Humanoid") ~= nil then
- targetted = mouse.Target.Parent
- end
- if targetted ~= nil then
- attack = true
- CFuncs["Sound"].Create("rbxassetid://847061203", RootPart, 2.5,1)
- for i = 0, 9 do
- sphereMK(3,0.25,"Add",RootPart.CFrame*CFrame.Angles(math.rad(math.random(-360,360)),math.rad(math.random(-360,360)),math.rad(math.random(-360,360))),1,1,10,-0.01,BrickColor.new("Really black"),0)
- end
- for i = 0, 24 do
- PixelBlock(1,math.random(4,8),"Add",RootPart.CFrame*CFrame.Angles(math.rad(math.random(-360,360)),math.rad(math.random(-360,360)),math.rad(math.random(-360,360))),3,3,3,0.06,BrickColor.new("Really black"),0)
- end
- sphere(3,"Add",RootPart.CFrame,Vector3.new(0,0,0),0.25,BrickColor.new("Really black"))
- local originalpos = RootPart.CFrame
- RootPart.CFrame = targetted.Head.CFrame * CFrame.new(0,-2,2)
- for i = 0, 9 do
- sphereMK(3,0.25,"Add",RootPart.CFrame*CFrame.Angles(math.rad(math.random(-360,360)),math.rad(math.random(-360,360)),math.rad(math.random(-360,360))),1,1,10,-0.01,BrickColor.new("Really black"),0)
- end
- for i = 0, 24 do
- PixelBlock(1,math.random(4,8),"Add",RootPart.CFrame*CFrame.Angles(math.rad(math.random(-360,360)),math.rad(math.random(-360,360)),math.rad(math.random(-360,360))),3,3,3,0.06,BrickColor.new("Really black"),0)
- end
- Humanoid.WalkSpeed = 0
- targetted.Head.Anchored = true
- sphere(3,"Add",RootPart.CFrame,Vector3.new(0,0,0),0.25,BrickColor.new("Really black"))
- for i = 0,2,0.1 do
- swait()
- RightHip.C0=Clerp(RightHip.C0,CF(1,-1 - 0.05 * math.cos(theta / 28),0)*ANGLES(math.rad(0),math.rad(90),math.rad(0))*ANGLES(math.rad(-2.5),math.rad(0),math.rad(0)),.4)
- LeftHip.C0=Clerp(LeftHip.C0,CF(-1,-1 - 0.05 * math.cos(theta / 28),0)*ANGLES(math.rad(0),math.rad(-90),math.rad(0))*ANGLES(math.rad(-2.5),math.rad(0),math.rad(0)),.4)
- RootJoint.C0=Clerp(RootJoint.C0,RootCF*CF(0,0,0 + 0.05 * math.cos(theta / 28))*ANGLES(math.rad(0),math.rad(0),math.rad(80)),.4)
- Torso.Neck.C0=Clerp(Torso.Neck.C0,NECKC0*ANGLES(math.rad(20),math.rad(0),math.rad(10)),.8)
- RightShoulder.C0=Clerp(RightShoulder.C0,CF(1.5,0.5 + 0.1 * math.cos(theta / 28),0)*ANGLES(math.rad(20),math.rad(0),math.rad(10)),.4)
- LeftShoulder.C0=Clerp(LeftShoulder.C0,CF(-1.5,0.5 + 0.1 * math.cos(theta / 28),0)*ANGLES(math.rad(90),math.rad(0),math.rad(60)),.4)
- end
- coroutine.resume(coroutine.create(function()
- if targetted.Humanoid.RigType == "R6" then
- bld = Instance.new("ParticleEmitter",targetted:WaitForChild("Torso"))
- else
- bld = Instance.new("ParticleEmitter",targetted:WaitForChild("UpperTorso"))
- end
- bld.LightEmission = 0.1
- bld.Texture = "rbxassetid://284205403"
- bld.Color = ColorSequence.new(Color3.new(0.5,0,0))
- bld.Rate = 500
- bld.Lifetime = NumberRange.new(1)
- bld.Size = NumberSequence.new({NumberSequenceKeypoint.new(0,2,0),NumberSequenceKeypoint.new(1,0,0)})
- bld.Acceleration = Vector3.new(0,-25,0)
- bld.Transparency = NumberSequence.new({NumberSequenceKeypoint.new(0,0,0),NumberSequenceKeypoint.new(1,0,0)})
- bld.Speed = NumberRange.new(10,50)
- bld.EmissionDirection = "Front"
- bld.VelocitySpread = 25
- bld.Rotation = NumberRange.new(-500,500)
- bld.RotSpeed = NumberRange.new(-500,500)
- end))
- coroutine.resume(coroutine.create(function()
- bld = Instance.new("ParticleEmitter",targetted:WaitForChild("UpperTorso"))
- bld.LightEmission = 0.1
- bld.Texture = "rbxassetid://284205403"
- bld.Color = ColorSequence.new(Color3.new(0.5,0,0))
- bld.Rate = 500
- bld.Lifetime = NumberRange.new(1)
- bld.Size = NumberSequence.new({NumberSequenceKeypoint.new(0,2,0),NumberSequenceKeypoint.new(1,0,0)})
- bld.Acceleration = Vector3.new(0,-25,0)
- bld.Transparency = NumberSequence.new({NumberSequenceKeypoint.new(0,0,0),NumberSequenceKeypoint.new(1,0,0)})
- bld.Speed = NumberRange.new(10,50)
- bld.EmissionDirection = "Front"
- bld.VelocitySpread = 25
- bld.Rotation = NumberRange.new(-500,500)
- bld.RotSpeed = NumberRange.new(-500,500)
- end))
- game:GetService("Debris"):AddItem(bld,3)
- targetted:BreakJoints()
- CFuncs["Sound"].Create("rbxassetid://429400881", targetted.Head, 1,1)
- for i = 0,1,0.1 do
- swait()
- RightHip.C0=Clerp(RightHip.C0,CF(1,-1 - 0.05 * math.cos(theta / 28),0)*ANGLES(math.rad(0),math.rad(90),math.rad(0))*ANGLES(math.rad(-2.5),math.rad(0),math.rad(0)),.8)
- LeftHip.C0=Clerp(LeftHip.C0,CF(-1,-1 - 0.05 * math.cos(theta / 28),0)*ANGLES(math.rad(0),math.rad(-90),math.rad(0))*ANGLES(math.rad(-2.5),math.rad(0),math.rad(0)),.8)
- RootJoint.C0=Clerp(RootJoint.C0,RootCF*CF(0,0.25,0 + 0.05 * math.cos(theta / 28))*ANGLES(math.rad(0),math.rad(0),math.rad(-80)),.8)
- Torso.Neck.C0=Clerp(Torso.Neck.C0,NECKC0*ANGLES(math.rad(20),math.rad(0),math.rad(80)),.8)
- RightShoulder.C0=Clerp(RightShoulder.C0,CF(1.5,0.5 + 0.1 * math.cos(theta / 28),0)*ANGLES(math.rad(20),math.rad(0),math.rad(10)),.8)
- LeftShoulder.C0=Clerp(LeftShoulder.C0,CF(-1.5,0.5 + 0.1 * math.cos(theta / 28),0)*ANGLES(math.rad(90),math.rad(0),math.rad(-80)),.8)
- end
- CFuncs["Sound"].Create("rbxassetid://847061203", RootPart, 2.5,1)
- for i = 0, 9 do
- sphereMK(3,0.25,"Add",RootPart.CFrame*CFrame.Angles(math.rad(math.random(-360,360)),math.rad(math.random(-360,360)),math.rad(math.random(-360,360))),1,1,10,-0.01,BrickColor.new("Really black"),0)
- end
- for i = 0, 24 do
- PixelBlock(1,math.random(4,8),"Add",RootPart.CFrame*CFrame.Angles(math.rad(math.random(-360,360)),math.rad(math.random(-360,360)),math.rad(math.random(-360,360))),3,3,3,0.06,BrickColor.new("Really black"),0)
- end
- sphere(3,"Add",RootPart.CFrame,Vector3.new(0,0,0),0.25,BrickColor.new("Really black"))
- RootPart.CFrame = originalpos
- for i = 0, 9 do
- sphereMK(3,0.25,"Add",RootPart.CFrame*CFrame.Angles(math.rad(math.random(-360,360)),math.rad(math.random(-360,360)),math.rad(math.random(-360,360))),1,1,10,-0.01,BrickColor.new("Really black"),0)
- end
- for i = 0, 24 do
- PixelBlock(1,math.random(4,8),"Add",RootPart.CFrame*CFrame.Angles(math.rad(math.random(-360,360)),math.rad(math.random(-360,360)),math.rad(math.random(-360,360))),3,3,3,0.06,BrickColor.new("Really black"),0)
- end
- sphere(3,"Add",RootPart.CFrame,Vector3.new(0,0,0),0.25,BrickColor.new("Really black"))
- bld.Enabled = false
- attack = false
- Humanoid.WalkSpeed = 27
- end
- end
- mouse.KeyDown:connect(function(k)
- if k == "p" and attack == false then
- Chatter(dialogue [math.random(1,#dialogue)],5)
- elseif k == "z" and attack == false then
- ExtinctiveHeartbreak()
- end
- end)
- Chatter("I crave... flesh...",5)
- while true do
- swait()
- theta = theta + 1
- Script6.Parent.Rotation = math.random(-15,15)
- local TORSOVELOCITY = (RootPart.Velocity * VT(1, 0, 1)).magnitude
- local TORSOVERTICALVELOCITY = RootPart.Velocity.y
- local HITFLOOR,HITPOS = Raycast(RootPart.Position, (CF(RootPart.Position, RootPart.Position + VT(0, -1, 0))).lookVector, 4, Character)
- local WALKSPEEDVALUE = 6 / (Humanoid.WalkSpeed / 16)
- if ANIM == "Walk" and TORSOVELOCITY > 1 then
- RootJoint.C1 = Clerp(RootJoint.C1, ROOTC0 * CFrame.new(0, 0, 0.05 * COS(theta / (WALKSPEEDVALUE/2))) * ANGLES(RAD(0), RAD(0), RAD(0)), 2 * (Humanoid.WalkSpeed / 16) / 3)
- Neck.C1 = Clerp(Neck.C1, CF(0, -0.5, 0) * ANGLES(RAD(-90), RAD(0), RAD(180)) * ANGLES(RAD(0), RAD(0), RAD(0) - Head.RotVelocity.Y / 30), 0.2 * (Humanoid.WalkSpeed / 16) / 3)
- RightHip.C1 = Clerp(RightHip.C1, CF(0.5, 0.875 - 0.125 * SIN(theta / WALKSPEEDVALUE) - 0.15 * COS(theta / WALKSPEEDVALUE*2), 0.2 * SIN(theta / WALKSPEEDVALUE)) * ANGLES(RAD(0), RAD(90), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(35 * COS(theta / WALKSPEEDVALUE))), 0.6 / 3)
- LeftHip.C1 = Clerp(LeftHip.C1, CF(-0.5, 0.875 + 0.125 * SIN(theta / WALKSPEEDVALUE) - 0.15 * COS(theta / WALKSPEEDVALUE*2), -0.2 * SIN(theta / WALKSPEEDVALUE)) * ANGLES(RAD(0), RAD(-90), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(35 * COS(theta / WALKSPEEDVALUE))), 0.6 / 3)
- elseif (ANIM ~= "Walk") or (TORSOVELOCITY < 1) then
- RootJoint.C1 = Clerp(RootJoint.C1, ROOTC0 * CF(0, 0, 0) * ANGLES(RAD(0), RAD(0), RAD(0)), 0.2 / 3)
- Neck.C1 = Clerp(Neck.C1, CF(0, -0.5, 0) * ANGLES(RAD(-90), RAD(0), RAD(180)) * ANGLES(RAD(0), RAD(0), RAD(0)), 0.2 / 3)
- RightHip.C1 = Clerp(RightHip.C1, CF(0.5, 1, 0) * ANGLES(RAD(0), RAD(90), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(0)), 0.7 / 3)
- LeftHip.C1 = Clerp(LeftHip.C1, CF(-0.5, 1, 0) * ANGLES(RAD(0), RAD(-90), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(0)), 0.7 / 3)
- end
- if TORSOVERTICALVELOCITY > 1 and HITFLOOR == nil then
- ANIM = "Jump"
- if attack == false then
- RootJoint.C0 = Clerp(RootJoint.C0, ROOTC0 * CF(0, 0, 0 ) * ANGLES(RAD(-5), RAD(0), RAD(0)), 1 / 3)
- Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0 , 0 + ((1) - 1)) * ANGLES(RAD(-25), RAD(0), RAD(0)), 1 / 3)
- RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0.5, 0) * ANGLES(RAD(-35), RAD(0), RAD(25 + 10 * COS(theta / 12))) * RIGHTSHOULDERC0, 1 / 3)
- LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5, 0.5, 0) * ANGLES(RAD(-35), RAD(0), RAD(-25 - 10 * COS(theta / 12))) * LEFTSHOULDERC0, 1 / 3)
- RightHip.C0 = Clerp(RightHip.C0, CF(1, -0.4, -0.6) * ANGLES(RAD(1), RAD(90), RAD(0)) * ANGLES(RAD(-1 * SIN(theta / 6)), RAD(0), RAD(0)), 1 / 3)
- LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1, 0) * ANGLES(RAD(0), RAD(-85), RAD(0)) * ANGLES(RAD(-1 * SIN(theta / 6)), RAD(0), RAD(0)), 1 / 3)
- end
- elseif TORSOVERTICALVELOCITY < -1 and HITFLOOR == nil then
- ANIM = "Fall"
- if attack == false then
- RootJoint.C0 = Clerp(RootJoint.C0, ROOTC0 * CF(0, 0, 0 ) * ANGLES(RAD(-15), RAD(0), RAD(0)), 1 / 3)
- Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0 , 0 + ((1) - 1)) * ANGLES(RAD(15), RAD(0), RAD(0)), 1 / 3)
- RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0.5, 0) * ANGLES(RAD(-35 - 4 * COS(theta / 6)), RAD(0), RAD(45 + 10 * COS(theta / 12))) * RIGHTSHOULDERC0, 1 / 3)
- LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5, 0.5, 0) * ANGLES(RAD(-35 - 4 * COS(theta / 6)), RAD(0), RAD(-45 - 10 * COS(theta / 12))) * LEFTSHOULDERC0, 1 / 3)
- RightHip.C0 = Clerp(RightHip.C0, CF(1, -0.3, -0.7) * ANGLES(RAD(-25 + 5 * SIN(theta / 12)), RAD(90), RAD(0)) * ANGLES(RAD(-1 * SIN(theta / 6)), RAD(0), RAD(0)), 1 / 3)
- LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -0.8, -0.3) * ANGLES(RAD(-10), RAD(-80), RAD(0)) * ANGLES(RAD(-1 * SIN(theta / 6)), RAD(0), RAD(0)), 1 / 3)
- end
- elseif TORSOVELOCITY < 1 and HITFLOOR ~= nil then
- ANIM = "Idle"
- if attack == false then
- RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, 0 + 0.05 * COS(theta / 12)) * ANGLES(RAD(0), RAD(0), RAD(0)), 1 / 3)
- Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(0), RAD(0), RAD(0)), 1 / 3)
- if MRANDOM(1,7) == 1 then
- Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(0 + MRANDOM(-25,25) - 4 * COS(theta / 12)), RAD(MRANDOM(-25,25)), RAD(0)), 1.5 / 3)
- end
- RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.15, 0.5, 0.5) * ANGLES(RAD(-25 - 4 * COS(theta / 12)), RAD(0), RAD(-45)) * RIGHTSHOULDERC0, 1 / 3)
- LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.15, 0.5, 0.5) * ANGLES(RAD(-30 - 4 * COS(theta / 12)), RAD(0), RAD(45)) * LEFTSHOULDERC0, 1 / 3)
- RightHip.C0 = Clerp(RightHip.C0, CF(1, -1 - 0.05 * COS(theta / 12), 0) * ANGLES(RAD(0), RAD(85), RAD(0)) * ANGLES(RAD(-1), RAD(0), RAD(0)), 1 / 3)
- LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1 - 0.05 * COS(theta / 12), 0) * ANGLES(RAD(0), RAD(-85), RAD(0)) * ANGLES(RAD(-1), RAD(0), RAD(0)), 1 / 3)
- end
- elseif TORSOVELOCITY > 1 and HITFLOOR ~= nil then
- ANIM = "Walk"
- if attack == false then
- RightHip.C0=Clerp(RightHip.C0,CF(1,-1 - 0.15 * math.cos(theta / 3),0)*ANGLES(math.rad(0),math.rad(90),math.rad(0))*ANGLES(math.rad(0),math.rad(0),math.rad(0 + 95 * math.cos(theta / 6))),.1)
- LeftHip.C0=Clerp(LeftHip.C0,CF(-1,-1 - 0.15 * math.cos(theta / 3),0)*ANGLES(math.rad(0),math.rad(-90),math.rad(0))*ANGLES(math.rad(0),math.rad(0),math.rad(0 + 95 * math.cos(theta / 6))),.1)
- RootJoint.C0 = Clerp(RootJoint.C0,RootCF*CF(0, 0, -0.125 + 0.125 * math.cos(theta / 3)) * ANGLES(math.rad(20), math.rad(0), math.rad(0 - 15 * math.cos(theta / 6))), 0.1)
- Torso.Neck.C0=Clerp(Torso.Neck.C0,NECKC0*ANGLES(math.rad(-6 + 2 * math.cos(theta / 3)),math.rad(0 + RootPart.RotVelocity.Y*1.5),math.rad(0 - Head.RotVelocity.Y*1.5 + 1 * math.cos(theta / 6))),.1)
- RightShoulder.C0=Clerp(RightShoulder.C0,CF(1.5,0.5,0.3)*ANGLES(math.rad(-50 + 10 * math.cos(theta / 3)),math.rad(-10),math.rad(7 + 5 * math.cos(theta / 6))),.1)
- LeftShoulder.C0=Clerp(LeftShoulder.C0,CF(-1.5,0.5,0.3)*ANGLES(math.rad(-50 + 10 * math.cos(theta / 3)),math.rad(10),math.rad(-7 - 5 * math.cos(theta / 6))),.1)
- end
- end
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement