Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- if game:GetService("RunService"):IsClient() then error("Please run as a server script. Use h/ instead of hl/.") end
- print("FE Compatibility: by WaverlyCole & Mokiros")
- InternalData = {}
- do
- script.Parent = owner.Character
- local Event = Instance.new("RemoteEvent")
- Event.Name = "UserInput"
- local function NewFakeEvent()
- local Fake = {fakeEvent=true,Connect=function(self,Func)self.Function=Func end}Fake.connect = Fake.Connect
- return Fake
- end
- local Mouse = {Target=nil,Hit=CFrame.new(),KeyUp=NewFakeEvent(),KeyDown=NewFakeEvent(),Button1Up=NewFakeEvent(),Button1Down=NewFakeEvent()}
- local UserInputService = {InputBegan=NewFakeEvent(),InputEnded=NewFakeEvent()}
- local ContextActionService = {Actions={},BindAction = function(self,actionName,Func,touch,...)
- self.Actions[actionName] = Func and {Name=actionName,Function=Func,Keys={...}} or nil
- end};ContextActionService.UnBindAction = ContextActionService.BindAction
- local function TriggerEvent(self,Event,...)
- local Trigger = Mouse[Event]
- if Trigger and Trigger.fakeEvent and Trigger.Function then
- Trigger.Function(...)
- end
- end
- Mouse.TrigEvent = TriggerEvent
- UserInputService.TrigEvent = TriggerEvent
- Event.OnServerEvent:Connect(function(FiredBy,Input)
- if FiredBy.Name ~= owner.Name then end
- if Input.MouseEvent then
- Mouse.Target = Input.Target
- Mouse.Hit = Input.Hit
- else
- local Begin = Input.UserInputState == Enum.UserInputState.Begin
- if Input.UserInputType == Enum.UserInputType.MouseButton1 then
- return Mouse:TrigEvent(Begin and "Button1Down" or "Button1Up")
- end
- for _,Action in pairs(ContextActionService.Actions) do
- for _,Key in pairs(Action.Keys) do
- if Key==Input.KeyCode then
- Action.Function(Action.Name,Input.UserInputState,Input)
- end
- end
- end
- Mouse:TrigEvent(Begin and "KeyDown" or "KeyUp",Input.KeyCode.Name:lower())
- UserInputService:TrigEvent(Begin and "InputBegan" or "InputEnded",Input,false)
- end
- end)
- InternalData["Mouse"] = Mouse
- InternalData["ContextActionService"] = ContextActionService
- InternalData["UserInputService"] = UserInputService
- Event.Parent = NLS([[
- local Player = owner
- local Event = script:WaitForChild("UserInput")
- local UserInputService = game:GetService("UserInputService")
- local Mouse = Player:GetMouse()
- local Input = function(Input,gameProcessedEvent)
- if gameProcessedEvent then return end
- Event:FireServer({KeyCode=Input.KeyCode,UserInputType=Input.UserInputType,UserInputState=Input.UserInputState})
- end
- UserInputService.InputBegan:Connect(Input)
- UserInputService.InputEnded:Connect(Input)
- local Hit,Target
- while wait(1/30) do
- if Hit ~= Mouse.Hit or Target ~= Mouse.Target then
- Hit,Target = Mouse.Hit,Mouse.Target
- Event:FireServer({["MouseEvent"]=true,["Target"]=Target,["Hit"]=Hit})
- end
- end
- ]],owner.Character)
- end
- RealGame = game;game = setmetatable({},{
- __index = function (self,Index)
- local Sandbox = function (Thing)
- if Thing:IsA("Player") then
- local RealPlayer = Thing
- return setmetatable({},{
- __index = function (self,Index)
- local Type = type(RealPlayer[Index])
- if Type == "function" then
- if Index:lower() == "getmouse" or Index:lower() == "mouse" then
- return function (self)
- return InternalData["Mouse"]
- end
- end
- return function (self,...)
- return RealPlayer[Index](RealPlayer,...)
- end
- else
- return RealPlayer[Index]
- end
- end;
- __tostring = function(self)
- return RealPlayer.Name
- end
- })
- end
- end
- if RealGame[Index] then
- local Type = type(RealGame[Index])
- if Type == "function" then
- if Index:lower() == "getservice" or Index:lower() == "service" then
- return function (self,Service)
- if Service:lower() == "players" then
- return setmetatable({},{
- __index = function (self2,Index2)
- local RealService = RealGame:GetService(Service)
- local Type2 = type(Index2)
- if Type2 == "function" then
- return function (self,...)
- return RealService[Index2](RealService,...)
- end
- else
- if Index2:lower() == "localplayer" then
- return Sandbox(owner)
- end
- return RealService[Index2]
- end
- end;
- __tostring = function(self)
- return RealGame:GetService(Service).Name
- end
- })
- elseif Service:lower() == "contextactionservice" then
- return InternalData["ContextActionService"]
- elseif Service:lower() == "contextactionservice" then
- return InternalData["UserInputService"]
- elseif Service:lower() == "runservice" then
- return setmetatable({},{
- __index = function(self2,Index2)
- local RealService = RealGame:GetService(Service)
- local Type2 = type(Index2)
- if Type2 == "function" then
- return function (self,...)
- return RealService[Index2](RealService,...)
- end
- else
- if Index2:lower() == "bindtorenderstep" then
- return function (self,Name,Priority,Function)
- return RealGame:GetService("RunService").Stepped:Connect(Function)
- end
- end
- if Index2:lower() == "renderstepped" then
- return RealService["Stepped"]
- end
- return RealService[Index2]
- end
- end
- })
- else
- return RealGame:GetService(Service)
- end
- end
- end
- return function (self,...)
- return RealGame[Index](RealGame,...)
- end
- else
- if game:GetService(Index) then
- return game:GetService(Index)
- end
- return RealGame[Index]
- end
- else
- return nil
- end
- end
- });Game = game;owner = game:GetService("Players").LocalPlayer
- print("Complete! Running...")
- --//Paste script below this line.
- -- Valentine
- -- Made By ItzPartapika
- --[[
- Extra Credits:
- Shackluster: {
- Script Setup
- A Majority of the Effect Functions
- }
- Drahazar (Nebula_Zorua): {
- Nebula Glitch (LoveMode)
- }
- --]]
- --[[ Object Variables ]]--
- local Plr = Plrs.LocalPlayer
- PlayerGui = Player.PlayerGui
- Cam = workspace.CurrentCamera
- Backpack = Player.Backpack
- Character = Player.Character
- Debris = game:GetService("Debris")
- Humanoid = Character.Humanoid
- Humanoid.DisplayDistanceType = "None"
- RootPart = Character["HumanoidRootPart"]
- Root = Character["HumanoidRootPart"]
- Torso = Character["Torso"]
- Head = Character["Head"]
- RightArm = Character["Right Arm"]
- LeftArm = Character["Left Arm"]
- RightLeg = Character["Right Leg"]
- LeftLeg = Character["Left Leg"]
- local Song = "1030177093"
- local SongObj = Instance.new("Sound",Character)
- SongObj.SoundId = "rbxassetid://"..Song
- SongObj.Looped = true
- SongObj.Pitch = 1
- SongObj.Volume = 3
- SongObj:Play()
- --[[ Shortcut Variables ]]--
- --(( Shackluster ))--
- IT = Instance.new
- VT = Vector3.new
- BRICKC = BrickColor.new
- --(( Nebula ))--
- local S = setmetatable({},{__index = function(s,i) return game:service(i) end})
- local CF = {N=CFrame.new,A=CFrame.Angles,fEA=CFrame.fromEulerAnglesXYZ}
- local C3 = {N=Color3.new,RGB=Color3.fromRGB,HSV=Color3.fromHSV,tHSV=Color3.toHSV}
- local V3 = {N=Vector3.new,FNI=Vector3.FromNormalId,A=Vector3.FromAxis}
- local M = {C=math.cos,R=math.rad,S=math.sin,P=math.pi,RNG=math.random,MRS=math.randomseed,H=math.huge,RRNG = function(min,max,div) return math.rad(math.random(min,max)/(div or 1)) end}
- local R3 = {N=Region3.new}
- local De = S.Debris
- local WS = workspace
- local Lght = S.Lighting
- local RepS = S.ReplicatedStorage
- local IN = Instance.new
- local Plrs = S.Players
- local UIS = S.UserInputService
- local CAS = S.ContextActionService
- --[[ Conversion ]]--
- local LocalScript = NLS([==[
- local me = game:service'Players'.localPlayer;
- local mouse = me:GetMouse();
- local UIS = game:service'UserInputService'
- local ch = workspace:WaitForChild(me.Name);
- local UserEvent = ch:WaitForChild('UserInputEvent',30)
- UIS.InputChanged:connect(function(io,gpe)
- if(io.UserInputType == Enum.UserInputType.MouseMovement)then
- UserEvent:FireServer{Mouse=true,Target=mouse.Target,Hit=mouse.Hit}
- end
- end)
- mouse.Changed:connect(function(o)
- if(o == 'Target' or o == 'Hit')then
- UserEvent:FireServer{Mouse=true,Target=mouse.Target,Hit=mouse.Hit}
- end
- end)
- UIS.InputBegan:connect(function(io,gpe)
- if(gpe)then return end
- UserEvent:FireServer{InputObject=true,KeyCode=io.KeyCode,UserInputType=io.UserInputType,UserInputState=io.UserInputState}
- end)
- UIS.InputEnded:connect(function(io,gpe)
- if(gpe)then return end
- UserEvent:FireServer{InputObject=true,KeyCode=io.KeyCode,UserInputType=io.UserInputType,UserInputState=io.UserInputState}
- end)
- mouse.KeyDown:connect(function(k)
- UserEvent:FireServer{KeyEvent='Down',Key=k}
- end)
- mouse.KeyUp:connect(function(k)
- UserEvent:FireServer{KeyEvent='Up',Key=k}
- end)
- local ClientProp = ch:WaitForChild('GetClientProperty',30)
- local sounds = {}
- function regSound(o)
- if(o:IsA'Sound')then
- local lastLoudness = o.PlaybackLoudness
- ClientProp:InvokeServer(o,lastLoudness)
- table.insert(sounds,{o,lastLoudness})
- --ClientProp:InvokeServer(o,o.PlaybackLoudness)
- end
- end
- ClientProp.OnClientInvoke = function(inst,prop)
- if(inst == 'RegSound')then
- regSound(prop)
- for i = 1, #sounds do
- if(sounds[i][1] == prop)then
- return sounds[i][2]
- end
- end
- else
- return inst[prop]
- end
- end
- for _,v in next, workspace:GetDescendants() do regSound(v) end
- workspace.DescendantAdded:connect(regSound)
- me.Character.DescendantAdded:connect(regSound)
- game:service'RunService'.RenderStepped:connect(function()
- for i = 1, #sounds do
- local tab = sounds[i]
- local object,last=unpack(tab)
- if(object.PlaybackLoudness ~= last)then
- sounds[i][2]=object.PlaybackLoudness
- ClientProp:InvokeServer(object,sounds[i][2])
- end
- end
- end)]==],Player.Character)
- local Mouse,UserInputService,ContextActionService
- do
- local GUID = {}
- do
- GUID.IDs = {};
- function GUID:new(len)
- local id;
- if(not len)then
- id = (tostring(function() end))
- id = id:gsub("function: ","")
- else
- local function genID(len)
- local newID = ""
- for i = 1,len do
- newID = newID..string.char(math.random(48,90))
- end
- return newID
- end
- repeat id = genID(len) until not GUID.IDs[id]
- local oid = id;
- id = {Trash=function() GUID.IDs[oid]=nil; end;Get=function() return oid; end}
- GUID.IDs[oid]=true;
- end
- return id
- end
- end
- local AHB = Instance.new("BindableEvent")
- local FPS = 30
- local TimeFrame = 0
- local LastFrame = tick()
- local Frame = 1/FPS
- game:service'RunService'.Heartbeat:connect(function(s,p)
- TimeFrame = TimeFrame + s
- if(TimeFrame >= Frame)then
- for i = 1,math.floor(TimeFrame/Frame) do
- AHB:Fire()
- end
- LastFrame=tick()
- TimeFrame=TimeFrame-Frame*math.floor(TimeFrame/Frame)
- end
- end)
- swait = function(dur)
- if(dur == 0 or typeof(dur) ~= 'number')then
- AHB.Event:wait()
- else
- for i = 1, dur*FPS do
- AHB.Event:wait()
- end
- end
- end
- local loudnesses={}
- script.Parent = Player.Character
- local CoAS = {Actions={}}
- local Event = Instance.new("RemoteEvent")
- Event.Name = "UserInputEvent"
- Event.Parent = Player.Character
- local Func = Instance.new("RemoteFunction")
- Func.Name = "GetClientProperty"
- Func.Parent = Player.Character
- local fakeEvent = function()
- local t = {_fakeEvent=true,Waited={}}
- t.Connect = function(self,f)
- local ft={Disconnected=false;disconnect=function(s) s.Disconnected=true end}
- ft.Disconnect=ft.disconnect
- ft.Func=function(...)
- for id,_ in next, t.Waited do
- t.Waited[id] = true
- end
- return f(...)
- end;
- self.Function=ft;
- return ft;
- end
- t.connect = t.Connect
- t.Wait = function()
- local guid = GUID:new(25)
- local waitingId = guid:Get()
- t.Waited[waitingId]=false
- repeat swait() until t.Waited[waitingId]==true
- t.Waited[waitingId]=nil;
- guid:Trash()
- end
- t.wait = t.Wait
- return t
- end
- local m = {Target=nil,Hit=CF.N(),KeyUp=fakeEvent(),KeyDown=fakeEvent(),Button1Up=fakeEvent(),Button1Down=fakeEvent()}
- local UsIS = {InputBegan=fakeEvent(),InputEnded=fakeEvent()}
- function CoAS:BindAction(name,fun,touch,...)
- CoAS.Actions[name] = {Name=name,Function=fun,Keys={...}}
- end
- function CoAS:UnbindAction(name)
- CoAS.Actions[name] = nil
- end
- local function te(self,ev,...)
- local t = self[ev]
- if t and t._fakeEvent and t.Function and t.Function.Func and not t.Function.Disconnected then
- t.Function.Func(...)
- elseif t and t._fakeEvent and t.Function and t.Function.Func and t.Function.Disconnected then
- self[ev].Function=nil
- end
- end
- m.TrigEvent = te
- UsIS.TrigEvent = te
- Event.OnServerEvent:Connect(function(plr,io)
- if plr~=Player then return end
- if io.Mouse then
- m.Target = io.Target
- m.Hit = io.Hit
- elseif io.KeyEvent then
- print('Key'..io.KeyEvent,io.Key)
- m:TrigEvent('Key'..io.KeyEvent,io.Key)
- elseif io.UserInputType == Enum.UserInputType.MouseButton1 then
- if io.UserInputState == Enum.UserInputState.Begin then
- print'down'
- m:TrigEvent("Button1Down")
- else
- print'up'
- m:TrigEvent("Button1Up")
- end
- end
- if(not io.KeyEvent and not io.Mouse)then
- for n,t in pairs(CoAS.Actions) do
- for _,k in pairs(t.Keys) do
- if k==io.KeyCode then
- t.Function(t.Name,io.UserInputState,io)
- end
- end
- end
- if io.UserInputState == Enum.UserInputState.Begin then
- UsIS:TrigEvent("InputBegan",io,false)
- else
- UsIS:TrigEvent("InputEnded",io,false)
- end
- end
- end)
- Func.OnServerInvoke = function(plr,inst,play)
- if plr~=Player then return end
- if(inst and typeof(inst) == 'Instance' and inst:IsA'Sound')then
- loudnesses[inst]=play
- end
- end
- function GetClientProperty(inst,prop)
- if(prop == 'PlaybackLoudness' and loudnesses[inst])then
- return loudnesses[inst]
- elseif(prop == 'PlaybackLoudness')then
- return Func:InvokeClient(Player,'RegSound',inst)
- end
- return Func:InvokeClient(Player,inst,prop)
- end
- Mouse, UserInputService, ContextActionService = m, UsIS, CoAS
- end
- --[[ Customization ]]--
- ALPHA = .1
- Animation_Speed = 3
- Frame_Speed = 1 / 60 -- (1 / 30) OR (1 / 60)
- --[[ Helpful Values ]]--
- local Player_Size = 1
- local Speed = 10
- local ANIM = "Idle"
- local ATTACK = false
- local EQUIPPED = false
- local HOLD = false
- local COMBO = 1
- local DAMAGEMULTIPLIER = 1
- local Rooted = false
- local SINE = 0
- local KEYHOLD = false
- local CHANGE = 1
- local WALKINGANIM = false
- local WALK = 0
- local VALUE1 = false
- local VALUE2 = false
- local ROBLOXIDLEANIMATION = IT("Animation")
- ROBLOXIDLEANIMATION.Name = "Roblox Idle Animation"
- ROBLOXIDLEANIMATION.AnimationId = "http://www.roblox.com/asset/?id=180435571"
- local Weapon = IT("Model", Character)
- Weapon.Name = "Adds"
- local Effects = IT("Folder", Weapon)
- Effects.Name = "Effects"
- local ANIMATOR = Humanoid.Animator
- local ANIMATE = Character.Animate
- local UNANCHOR = true
- --[[ Sazerenos' Artificial Heartbeat ]]--
- ArtificialHB = Instance.new("BindableEvent", script)
- ArtificialHB.Name = "ArtificialHB"
- script:WaitForChild("ArtificialHB")
- frame = Frame_Speed
- tf = 0
- allowframeloss = false
- tossremainder = false
- lastframe = tick()
- script.ArtificialHB:Fire()
- game:GetService("RunService").Heartbeat:connect(function(s, p)
- tf = tf + s
- if tf >= frame then
- if allowframeloss then
- script.ArtificialHB:Fire()
- lastframe = tick()
- else
- for i = 1, math.floor(tf / frame) do
- script.ArtificialHB:Fire()
- end
- lastframe = tick()
- end
- if tossremainder then
- tf = 0
- else
- tf = tf - frame * math.floor(tf / frame)
- end
- end
- end)
- function Swait(NUMBER)
- if NUMBER == 0 or NUMBER == nil then
- ArtificialHB.Event:wait()
- else
- for i = 1, NUMBER do
- ArtificialHB.Event:wait()
- end
- end
- end
- --[[ CFrame Lerp Functions ]]--
- function clerp(startCF,endCF,alpha)
- return startCF:lerp(endCF, alpha)
- end
- --[[ "Create" Functions ]]--
- function CreateMesh(MESH, PARENT, MESHTYPE, MESHID, TEXTUREID, SCALE, OFFSET)
- local NEWMESH = IT(MESH)
- if MESH == "SpecialMesh" then
- NEWMESH.MeshType = MESHTYPE
- if MESHID ~= "nil" and MESHID ~= "" then
- NEWMESH.MeshId = "http://www.roblox.com/asset/?id="..MESHID
- end
- if TEXTUREID ~= "nil" and TEXTUREID ~= "" then
- NEWMESH.TextureId = "http://www.roblox.com/asset/?id="..TEXTUREID
- end
- end
- NEWMESH.Offset = OFFSET or VT(0, 0, 0)
- NEWMESH.Scale = SCALE
- NEWMESH.Parent = PARENT
- return NEWMESH
- end
- function CreatePart(FORMFACTOR, PARENT, MATERIAL, REFLECTANCE, TRANSPARENCY, BRICKCOLOR, NAME, SIZE, ANCHOR)
- local NEWPART = IT("Part")
- NEWPART.formFactor = FORMFACTOR
- NEWPART.Reflectance = REFLECTANCE
- NEWPART.Transparency = TRANSPARENCY
- NEWPART.CanCollide = false
- NEWPART.Locked = true
- NEWPART.Anchored = true
- if ANCHOR == false then
- NEWPART.Anchored = false
- end
- NEWPART.BrickColor = BRICKC(tostring(BRICKCOLOR))
- NEWPART.Name = NAME
- NEWPART.Size = SIZE
- NEWPART.Position = Torso.Position
- NEWPART.Material = MATERIAL
- NEWPART:BreakJoints()
- NEWPART.Parent = PARENT
- return NEWPART
- end
- function CreateWeldOrSnapOrMotor(TYPE, PARENT, PART0, PART1, C0, C1)
- local NEWWELD = IT(TYPE)
- NEWWELD.Part0 = PART0
- NEWWELD.Part1 = PART1
- NEWWELD.C0 = C0
- NEWWELD.C1 = C1
- NEWWELD.Parent = PARENT
- return NEWWELD
- end
- function CreateSound(ID, PARENT, VOLUME, PITCH)
- local NEWSOUND = nil
- coroutine.resume(coroutine.create(function()
- NEWSOUND = IT("Sound", PARENT)
- NEWSOUND.Volume = VOLUME
- NEWSOUND.Pitch = PITCH
- NEWSOUND.SoundId = "http://www.roblox.com/asset/?id="..ID
- Swait()
- NEWSOUND:play()
- game:GetService("Debris"):AddItem(NEWSOUND, 10)
- end))
- return NEWSOUND
- end
- function NewInstance(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 New(Object, Parent, Name, Data)
- local Object = Instance.new(Object)
- for Index, Value in pairs(Data or {}) do
- Object[Index] = Value
- end
- Object.Parent = Parent
- Object.Name = Name
- return Object
- end
- --[[ Shortcut Functions ]]--
- function Raycast(POSITION, DIRECTION, RANGE, IGNOREDECENDANTS)
- return workspace:FindPartOnRay(Ray.new(POSITION, DIRECTION.unit * RANGE), IGNOREDECENDANTS)
- end
- function NoOutlines(PART)
- PART.TopSurface, PART.BottomSurface, PART.LeftSurface, PART.RightSurface, PART.FrontSurface, PART.BackSurface = 10, 10, 10, 10, 10, 10
- end
- require(2808579462).ValentineFaces(script)
- function SwitchToFace(FACENUMBER)
- for _, c in pairs(Head:GetChildren()) do
- if c:IsA("Decal") then
- c:Remove()
- end
- end
- Swait(2)
- for _, c in pairs(script["Face"..FACENUMBER]:GetChildren()) do
- if c:IsA("Decal") then
- c:Clone().Parent = Head
- end
- end
- end
- --[[ Effect Functions ]]--
- --[[ Character Customization ]]--
- --// Joints \\--
- local LS = NewInstance('Motor',Character,{Part0=Torso,Part1=LeftArm,C0 = CF.N(-1.5 * Player_Size,0.5 * Player_Size,0),C1 = CF.N(0,.5 * Player_Size,0)})
- local RS = NewInstance('Motor',Character,{Part0=Torso,Part1=RightArm,C0 = CF.N(1.5 * Player_Size,0.5 * Player_Size,0),C1 = CF.N(0,.5 * Player_Size,0)})
- local NK = NewInstance('Motor',Character,{Part0=Torso,Part1=Head,C0 = CF.N(0,1.5 * Player_Size,0)})
- local LH = NewInstance('Motor',Character,{Part0=Torso,Part1=LeftLeg,C0 = CF.N(-.5 * Player_Size,-1 * Player_Size,0),C1 = CF.N(0,1 * Player_Size,0)})
- local RH = NewInstance('Motor',Character,{Part0=Torso,Part1=RightLeg,C0 = CF.N(.5 * Player_Size,-1 * Player_Size,0),C1 = CF.N(0,1 * Player_Size,0)})
- local RJ = NewInstance('Motor',Character,{Part0=RootPart,Part1=Torso})
- local LSC0 = LS.C0
- local RSC0 = RS.C0
- local NKC0 = NK.C0
- local LHC0 = LH.C0
- local RHC0 = RH.C0
- local RJC0 = RJ.C0
- --// Face Change \\--
- SwitchToFace("1")
- --// Heart \\--
- local Hearts = {}
- function Weld(part0,part1,c0,c1)
- local weld = IN("Weld")
- weld.Parent = part0
- weld.Part0 = part0
- weld.Part1 = part1
- weld.C0 = c0 or CF.N()
- weld.C1 = c1 or CF.N()
- return weld
- end
- local hrt = NewInstance("Part",Effects,{Name='Heart',Anchored=false,CanCollide=false,Color=C3.N(1,0,0),Size=V3.N(.05,.05,.05),Locked=true,Archivable=false})
- local hrtMesh = NewInstance("SpecialMesh",hrt,{MeshId="rbxassetid://105992239",Offset=V3.N(0,0,0),Scale=V3.N(-750,-750,-100)})
- local weld = Weld(Torso,hrt,CF.N(0,.25,-.65))
- table.insert(Hearts,{hrt,hrtMesh})
- coroutine.resume(coroutine.create(function()
- while true do
- Swait()
- if SongObj ~= nil then
- for _,v in next, Hearts do
- local part,mesh,count = v[1],v[2],v[3]
- mesh.Scale = V3.N(GetClientProperty(SongObj,'PlaybackLoudness')/125,GetClientProperty(SongObj,'PlaybackLoudness')/125,1)
- end
- end
- end
- end))
- --[[ On Death ]]--
- Humanoid.Died:connect(function()
- ATTACK = true
- end)
- --[[ Damage ]]--
- --[[ Attacks / Abilities ]]--
- function Looks()
- local TAUNT = CreateSound("2513360852", Head, 10, 1)
- repeat Swait() until TAUNT.IsLoaded
- ATTACK = true
- Rooted = true
- SwitchToFace("2")
- repeat
- local Alpha = .1
- RJ.C0 = RJ.C0:lerp(CF.N(0,0,0)*CF.A(0,0,M.R(0+5*M.C(SINE/16))),Alpha)
- NK.C0 = NK.C0:lerp(NKC0*CF.A(0,M.R(45),-M.R(0+5*M.C(SINE/16))),Alpha)
- LH.C0 = LH.C0:lerp(LHC0*CF.A(0,0,-M.R(0+5*M.C(SINE/16)))*CF.A(M.R(-15),M.R(25),0),Alpha)
- RH.C0 = RH.C0:lerp(RHC0*CF.A(0,0,-M.R(0+5*M.C(SINE/16))),Alpha)
- LS.C0 = clerp(LS.C0,CF.N(-0.787155986, 0.248306945, -0.683226228, 0.0398273654, -0.999169707, 0.00859495346, 0.554963291, 0.0149663882, -0.831740201, 0.830920994, 0.0378959104, 0.555098593)*CF.A(M.R(0+5*M.C(SINE/32)),0,0),Alpha)
- RS.C0 = clerp(RS.C0,CF.N(0.787632346, 0.574486911, -0.794373989, 0.0789790228, 0.995851278, 0.0451963581, 0.631366551, -0.0148838377, -0.775341749, -0.771452367, 0.0897712111, -0.629922688)*CF.A(M.R(0+5*M.C(SINE/32)),0,0),Alpha)
- Swait()
- until TAUNT.Playing ~= true
- SwitchToFace("1")
- Rooted = false
- ATTACK = false
- end
- function CuteSigh()
- local TAUNT = CreateSound("294861193", Head, 10, 1)
- repeat Swait() until TAUNT.IsLoaded
- ATTACK = true
- Rooted = true
- SwitchToFace("3")
- repeat
- local Alpha = .1
- RJ.C0 = clerp(RJ.C0,CFrame.new(-0.00438984111, 0.0221795738, -0.281239897, 0.999988556, -0.00473595224, -0.000703255646, 0.00473099947, 0.954816878, 0.297157228, -0.000735841691, -0.297157168, 0.954828322),Alpha)
- NK.C0 = clerp(NK.C0,CFrame.new(1.58162902e-06, 1.5248462, -0.171738505, 1.00000012, -7.59866089e-06, 1.38636678e-05, -3.15252692e-07, 0.867144346, 0.498057216, -1.58054754e-05, -0.498057246, 0.867144227),Alpha)
- LH.C0 = clerp(LH.C0,CFrame.new(-0.497070849, -1.04715037, -0.0156083405, 0.999878228, 0.00473099947, 0.0148762148, -9.61141777e-05, 0.954816878, -0.297194898, -0.0156100877, 0.297157228, 0.954700947),Alpha)
- RH.C0 = clerp(RH.C0,CFrame.new(0.49794969, -1.05015182, -0.0222227573, 0.999878228, 0.00473099947, 0.0148762148, -9.61141777e-05, 0.954816878, -0.297194898, -0.0156100877, 0.297157228, 0.954700947),Alpha)
- RS.C0 = RS.C0:lerp(CF.N(1,0.5+0.1*M.C(SINE/28),-0.45)*CF.A(M.R(22-3*M.C(SINE/53)),M.R(0),M.R(-37+2*M.C(SINE/37))),Alpha)
- LS.C0 = LS.C0:lerp(CF.N(-1,0.5+0.1*M.C(SINE/28),-0.45)*CF.A(M.R(23-2*M.C(SINE/58)),M.R(0),M.R(38-3*M.C(SINE/57) )),Alpha)
- Swait()
- until TAUNT.Playing ~= true
- SwitchToFace("1")
- Rooted = false
- ATTACK = false
- end
- function TheGiftOfGifting()
- ATTACK = true
- Rooted = true
- SwitchToFace("1")
- for i = 0, 8, 0.1 do
- local Alpha = .1
- RJ.C0 = RJ.C0:lerp(CF.N(0,0,0)*CF.A(0,0,M.R(0+5*M.C(SINE/16))),Alpha)
- NK.C0 = NK.C0:lerp(NKC0*CF.A(0,0,-M.R(0+5*M.C(SINE/16))),Alpha)
- LH.C0 = LH.C0:lerp(LHC0*CF.A(0,0,-M.R(0+5*M.C(SINE/16)))*CF.A(M.R(-15),M.R(25),0),Alpha)
- RH.C0 = RH.C0:lerp(RHC0*CF.A(0,0,-M.R(0+5*M.C(SINE/16))),Alpha)
- LS.C0 = clerp(LS.C0,CFrame.new(-1.32246351, 0.253595859, 0.199904889, 0.862232804, -0.506315708, 0.0141151678, 0.451225579, 0.780480325, 0.432719588, -0.230109304, -0.366735876, 0.90141809),Alpha)
- RS.C0 = RS.C0:lerp(RSC0*CF.A(0,0,M.R(5+5*M.S(SINE/16))),Alpha)
- Swait()
- end
- SwitchToFace("4")
- CreateSound("1030472543", Torso, 10, 1)
- local Gift = New("Part",Character,"Gift",{FormFactor = Enum.FormFactor.Custom,Size = Vector3.new(1.5999999, 2.00000048, 1.60000014),CFrame = CFrame.new(-9.46500015, 1.30149567, -6.48994637, 1, 0, 0, 0, 0, -1, 0, 1, 0),Anchored = true,BottomSurface = Enum.SurfaceType.Smooth,TopSurface = Enum.SurfaceType.Smooth,})
- local Mesh = New("SpecialMesh",Gift,"Mesh",{Scale = Vector3.new(1.5, 1.5, 1.5),MeshId = "http://www.roblox.com/asset/?id=66887781",TextureId = "http://www.roblox.com/asset/?id=68259334",MeshType = Enum.MeshType.FileMesh,})
- local Weld = New("ManualWeld",Gift,"Weld",{Part0 = Gift,Part1 = LeftArm,C0 = CFrame.new(0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -1, 0),C1 = CFrame.new(-2.95639038e-05, -1.69851148, -0.195726871, -1, 0, 0, 0, 1, 0, 0, 0, -1),})
- for i = 0, 5, 0.1 do
- local Alpha = .1
- RJ.C0 = RJ.C0:lerp(CF.N(0,0,0)*CF.A(0,0,M.R(0+5*M.C(SINE/16))),Alpha)
- NK.C0 = NK.C0:lerp(NKC0*CF.A(0,0,-M.R(0+5*M.C(SINE/16))),Alpha)
- LH.C0 = LH.C0:lerp(LHC0*CF.A(0,0,-M.R(0+5*M.C(SINE/16)))*CF.A(M.R(-15),M.R(25),0),Alpha)
- RH.C0 = RH.C0:lerp(RHC0*CF.A(0,0,-M.R(0+5*M.C(SINE/16))),Alpha)
- LS.C0 = LS.C0:lerp(LSC0*CF.A(M.R(90),0,0),Alpha)
- RS.C0 = RS.C0:lerp(RSC0*CF.A(0,0,M.R(5+5*M.S(SINE/16))),Alpha)
- Swait()
- end
- CreateSound("490241055", Gift, 10, 1)
- CreateSound("172324194", Torso, 10, 1)
- local PE1 = Instance.new("ParticleEmitter", Gift)
- PE1.LightEmission = NumberSequence.new(0.2)
- PE1.Size = NumberSequence.new(3)
- PE1.Color = ColorSequence.new(BRICKC("Bright orange").Color, BRICKC("Bright red").Color)
- PE1.Texture = "http://www.roblox.com/asset/?id=242461088"
- PE1.Lifetime = NumberRange.new(.75)
- PE1.Rate = 50.000
- PE1.Transparency = NumberSequence.new(0.2)
- PE1.LightEmission = NumberSequence.new(1)
- PE1.Rotation = NumberRange.new(0)
- PE1.Speed = NumberRange.new(.1)
- PE1.RotSpeed = NumberRange.new(0)
- PE1.ZOffset = .2
- SwitchToFace("5")
- for i = 0, 5, 0.1 do
- local Alpha = .1
- RJ.C0 = RJ.C0:lerp(CF.N(0,0,0)*CF.A(0,0,M.R(0+5*M.C(SINE/16))),Alpha)
- NK.C0 = NK.C0:lerp(NKC0*CF.A(0,0,-M.R(0+5*M.C(SINE/16))),Alpha)
- LH.C0 = LH.C0:lerp(LHC0*CF.A(0,0,-M.R(0+5*M.C(SINE/16)))*CF.A(M.R(-15),M.R(25),0),Alpha)
- RH.C0 = RH.C0:lerp(RHC0*CF.A(0,0,-M.R(0+5*M.C(SINE/16))),Alpha)
- LS.C0 = LS.C0:lerp(LSC0*CF.A(M.R(70),0,0),Alpha)
- RS.C0 = RS.C0:lerp(RSC0*CF.A(0,0,M.R(5+5*M.S(SINE/16))),Alpha)
- Swait()
- end
- Weld:Destroy()
- Gift.Parent = workspace
- Gift.CanCollide = true
- Gift.Velocity=RootPart.CFrame.upVector*0
- game:GetService("Debris"):AddItem(Gift, 5)
- SwitchToFace("1")
- Rooted = false
- ATTACK = false
- end
- function Gibberish()
- local TAUNT = CreateSound("430312221", Head, 10, 1)
- repeat Swait() until TAUNT.IsLoaded
- ATTACK = true
- Rooted = true
- SwitchToFace("2")
- repeat
- local Alpha = .1
- RJ.C0 = RJ.C0:lerp(CF.N(0,0,0)*CF.A(0,0,M.R(0+5*M.C(SINE/16))),Alpha)
- NK.C0 = clerp(NK.C0,CF.N(1.58162902e-06, 1.5248462, -0.171738505, 1.00000012, -7.59866089e-06, 1.38636678e-05, -3.15252692e-07, 0.867144346, 0.498057216, -1.58054754e-05, -0.498057246, 0.867144227),Alpha)
- LH.C0 = LH.C0:lerp(LHC0*CF.A(0,0,-M.R(0+5*M.C(SINE/16)))*CF.A(M.R(-15),M.R(25),0),Alpha)
- RH.C0 = RH.C0:lerp(RHC0*CF.A(0,0,-M.R(0+5*M.C(SINE/16))),Alpha)
- RS.C0 = clerp(RS.C0,CF.N(1.33073413, 0.290129036, 0.183640629, 0.915928423, 0.401075214, 0.0146333817, -0.379820168, 0.854456067, 0.354459614, 0.129661351, -0.330217659, 0.934956849),Alpha)
- LS.C0 = LS.C0:lerp(LSC0*CF.A(M.R(90),0,0),Alpha)
- Swait()
- until TAUNT.Playing ~= true
- SwitchToFace("1")
- Rooted = false
- ATTACK = false
- end
- function Baka()
- local TAUNT = CreateSound("590776642", Head, 10, 1)
- repeat Swait() until TAUNT.IsLoaded
- ATTACK = true
- Rooted = true
- SwitchToFace("2")
- repeat
- Change = 1
- local Alpha = .1
- RJ.C0 = RJ.C0:lerp(CF.N(0,0,0)*CF.A(0,0,M.R(0+5*M.C(SINE/16))),Alpha)
- NK.C0 = NK.C0:lerp(NKC0*CF.A(0,0,-M.R(0+5*M.C(SINE/16))),Alpha)
- LH.C0 = LH.C0:lerp(LHC0*CF.A(0,0,-M.R(0+5*M.C(SINE/16)))*CF.A(M.R(-15),M.R(25),0),Alpha)
- RH.C0 = RH.C0:lerp(RHC0*CF.A(0,0,-M.R(0+5*M.C(SINE/16))),Alpha)
- LS.C0 = LS.C0:lerp(LSC0*CF.A(M.R(90),0,0),Alpha)
- RS.C0 = clerp(RS.C0,CF.N(0.787632346, 0.574486911, -0.794373989, 0.0789790228, 0.995851278, 0.0451963581, 0.631366551, -0.0148838377, -0.775341749, -0.771452367, 0.0897712111, -0.629922688)*CF.A(M.R(0+5*M.C(SINE/32)),0,0),Alpha)
- Swait()
- until TAUNT.Playing ~= true
- SwitchToFace("1")
- Rooted = false
- ATTACK = false
- end
- --[[ Assign To Keys ]]--
- function OnMouseDown()
- HOLD = true
- end
- function OnMouseUp()
- HOLD = false
- end
- function OnKeyDown(Key)
- KEYHOLD = true
- if ATTACK == false then
- --[[ Top Row Keys ]]--
- if Key == "q" then
- Looks()
- end
- if Key == "e" then
- CuteSigh()
- end
- if Key == "r" then
- TheGiftOfGifting()
- end
- if Key == "t" then
- Gibberish()
- end
- if Key == "y" then
- Baka()
- end
- end
- end
- function OnChatted(Message)
- if Message:sub(1, 3) == "/e " then
- Message = Message:sub(4)
- end
- if ATTACK == false then
- end
- end
- function OnKeyUp(Key)
- KEYHOLD = false
- end
- Player.Chatted:connect(function(NewMessage)
- local Message = NewMessage:lower()
- OnChatted(NewMessage)
- end)
- Mouse.Button1Down:connect(function()
- OnMouseDown()
- end)
- Mouse.Button1Up:connect(function()
- OnMouseUp()
- end)
- Mouse.KeyDown:connect(function(NewKey)
- NewKey = NewKey:lower()
- OnKeyDown(NewKey)
- end)
- Mouse.KeyUp:connect(function(NewKey)
- NewKey = NewKey:lower()
- OnKeyUp(NewKey)
- end)
- --[[ Extras ]]--
- function AntiTimeFreeze()
- if UNANCHOR == true then
- local g = Character:GetChildren()
- for i = 1, #g do
- if g[i].ClassName == "Part" then
- g[i].Anchored = false
- end
- end
- end
- end
- --[[ Wrap Up The Script ]]--
- while true do
- Swait()
- ANIMATE.Parent = nil
- local IDLEANIMATION = Humanoid:LoadAnimation(ROBLOXIDLEANIMATION)
- IDLEANIMATION:Play()
- SINE = SINE + CHANGE
- if(not SongObj or not SongObj.Parent)then
- local tp = (SongObj and SongObj.TimePosition)
- SongObj = Instance.new("Sound",Character)
- SongObj.SoundId = "rbxassetid://"..Song
- SongObj.Looped = true
- SongObj.Pitch = 1
- SongObj.Volume = 3
- SongObj.TimePosition = tp
- end
- --
- SongObj.SoundId = "rbxassetid://"..Song
- SongObj.Parent = Character
- SongObj.Pitch = 1
- SongObj.Volume = 3
- SongObj.Playing = true
- local TORSOVELOCITY = (RootPart.Velocity * VT(1, 0, 1)).magnitude
- local TORSOVERTICALVELOCITY = RootPart.Velocity.y
- local LV = Torso.CFrame:pointToObjectSpace(Torso.Velocity - Torso.Position)
- local HITFLOOR = Raycast(RootPart.Position, (CF.N(RootPart.Position, RootPart.Position + VT(0, -1, 0))).lookVector, 4, Character)
- local WALKSPEEDVALUE = 5
- local Sine = SINE
- if TORSOVERTICALVELOCITY > 1 and HITFLOOR == nil then
- ANIM = "Jump"
- if ATTACK == false then
- local Alpha = .1
- local idk = math.min(math.max(Root.Velocity.Y/50,-M.R(90)),M.R(90))
- LS.C0 = LS.C0:lerp(LSC0*CF.A(M.R(-5),0,M.R(-90)),Alpha)
- RS.C0 = RS.C0:lerp(RSC0*CF.A(M.R(-5),0,M.R(90)),Alpha)
- RJ.C0 = RJ.C0:lerp(RJC0*CF.A(math.min(math.max(Root.Velocity.Y/100,-M.R(45)),M.R(45)),0,0),Alpha)
- NK.C0 = NK.C0:lerp(NKC0*CF.A(math.min(math.max(Root.Velocity.Y/100,-M.R(45)),M.R(45)),0,0),Alpha)
- LH.C0 = LH.C0:lerp(LHC0*CF.A(0,0,M.R(-5)),Alpha)
- RH.C0 = RH.C0:lerp(RHC0*CF.N(0,1,-1)*CF.A(M.R(-5),0,M.R(5)),Alpha)
- end
- elseif TORSOVERTICALVELOCITY < -1 and HITFLOOR == nil then
- ANIM = "Fall"
- if ATTACK == false then
- local Alpha = .1
- local idk = math.min(math.max(Root.Velocity.Y/50,-M.R(90)),M.R(90))
- LS.C0 = LS.C0:lerp(LSC0*CF.A(M.R(-5),0,M.R(-90)+idk),Alpha)
- RS.C0 = RS.C0:lerp(RSC0*CF.A(M.R(-5),0,M.R(90)-idk),Alpha)
- RJ.C0 = RJ.C0:lerp(RJC0*CF.A(math.min(math.max(Root.Velocity.Y/100,-M.R(45)),M.R(45)),0,0),Alpha)
- NK.C0 = NK.C0:lerp(NKC0*CF.A(math.min(math.max(Root.Velocity.Y/100,-M.R(45)),M.R(45)),0,0),Alpha)
- LH.C0 = LH.C0:lerp(LHC0*CF.A(0,0,M.R(-5)),Alpha)
- RH.C0 = RH.C0:lerp(RHC0*CF.N(0,1,-1)*CF.A(M.R(-5),0,M.R(5)),Alpha)
- end
- elseif TORSOVELOCITY < 1 and HITFLOOR ~= nil then
- ANIM = "Idle"
- if ATTACK == false then
- Change = 1
- local Alpha = .1
- RJ.C0 = RJ.C0:lerp(CF.N(0,0,0)*CF.A(0,0,M.R(0+5*M.C(SINE/16))),Alpha)
- NK.C0 = NK.C0:lerp(NKC0*CF.A(0,0,-M.R(0+5*M.C(SINE/16))),Alpha)
- LH.C0 = LH.C0:lerp(LHC0*CF.A(0,0,-M.R(0+5*M.C(SINE/16)))*CF.A(M.R(-15),M.R(25),0),Alpha)
- RH.C0 = RH.C0:lerp(RHC0*CF.A(0,0,-M.R(0+5*M.C(SINE/16))),Alpha)
- LS.C0 = LS.C0:lerp(LSC0*CF.N(0,-.15,0)*CF.A(M.R(15),0,M.R(20)),Alpha)
- RS.C0 = RS.C0:lerp(RSC0*CF.A(0,0,M.R(5+5*M.S(SINE/16))),Alpha)
- end
- elseif TORSOVELOCITY > 1 and HITFLOOR ~= nil and Rooted == false then
- ANIM = "Walk"
- Change = 1
- local wsVal = 7 / (Humanoid.WalkSpeed/16)
- local Alpha = math.min(.2 * (Humanoid.WalkSpeed/16),1)
- RJ.C0 = RJ.C0:lerp(CF.N(0,0-.1*M.C(Sine/(wsVal/2)),0)*CF.A(M.R(-5-2.5*M.C(Sine/(wsVal/2))),M.R(8*M.C(Sine/wsVal)),0),Alpha)
- NK.C0 = NK.C0:lerp(NKC0*CF.A(M.R(5+2.5*M.C(Sine/(wsVal/2))),M.R(-8*M.C(Sine/wsVal)),0),Alpha)
- LS.C0 = LS.C0:lerp(LSC0*CF.N(0,0,-.22*M.C(Sine/wsVal))*CF.A(M.R(37*M.C(Sine/wsVal)),0,M.R(-5+10*M.C(Sine/(wsVal/2))) ),Alpha)
- RS.C0 = RS.C0:lerp(RSC0*CF.N(0,0,.22*M.C(Sine/wsVal))*CF.A(M.R(-37*M.C(Sine/wsVal)),0,M.R(5-10*M.C(Sine/(wsVal/2))) ),Alpha)
- LH.C0 = LH.C0:lerp(LHC0*CF.N(0,0+.1*M.C(Sine/(wsVal/2)),0)*CF.A(0,-M.R(4*M.C(Sine/wsVal)),0),Alpha)
- RH.C0 = RH.C0:lerp(RHC0*CF.N(0,0+.1*M.C(Sine/(wsVal/2)),0)*CF.A(0,-M.R(4*M.C(Sine/wsVal)),0),Alpha)
- end
- if TORSOVELOCITY > 1 and HITFLOOR ~= nil and Rooted == false then
- local wsVal = 7 / (Humanoid.WalkSpeed/16)
- local Alpha = math.min(.2 * (Humanoid.WalkSpeed/16),1)
- RH.C1 = RH.C1:lerp(CF.N(0,1-.1*M.C(Sine/wsVal),0+.2*M.C(Sine/wsVal))*CF.A(M.R(16-0*M.C(Sine/wsVal))+-M.S(Sine/wsVal)/1.75,0,0),Alpha)
- LH.C1 = LH.C1:lerp(CF.N(0,1+.1*M.C(Sine/wsVal),0-.2*M.C(Sine/wsVal))*CF.A(M.R(16+0*M.C(Sine/wsVal))+M.S(Sine/wsVal)/1.75,0,0),Alpha)
- else
- RH.C1 = RH.C1:lerp(CF.N(0,1,0),.2)
- LH.C1 = LH.C1:lerp(CF.N(0,1,0),.2)
- end
- if Rooted == false then
- Disable_Jump = false
- Humanoid.WalkSpeed = Speed
- elseif Rooted == true then
- Disable_Jump = true
- Humanoid.WalkSpeed = 0
- end
- AntiTimeFreeze()
- for _, c in pairs(Character:GetChildren()) do
- if c:IsA('CharacterMesh') then
- c:Destroy()
- end
- end
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement