View difference between Paste ID: X3J6JnKM and y6D6299P
SHOW: | | - or go back to the newest paste.
1
if game:GetService("RunService"):IsClient() then error("Script must be server-side in order to work; use h/ and not hl/") end
2
local Player,Mouse,mouse,UserInputService,ContextActionService = owner
3
do
4
    print("FE Compatibility code by Mokiros")
5
    script.Parent = Player.Character
6
 
7
    --RemoteEvent for communicating
8
    local Event = Instance.new("RemoteEvent")
9
    Event.Name = "UserInput_Event"
10
 
11
    --Fake event to make stuff like Mouse.KeyDown work
12
    local function fakeEvent()
13
        local t = {_fakeEvent=true,Connect=function(self,f)self.Function=f end}
14
        t.connect = t.Connect
15
        return t
16
    end
17
 
18
    --Creating fake input objects with fake variables
19
    local m = {Target=nil,Hit=CFrame.new(),KeyUp=fakeEvent(),KeyDown=fakeEvent(),Button1Up=fakeEvent(),Button1Down=fakeEvent()}
20
    local UIS = {InputBegan=fakeEvent(),InputEnded=fakeEvent()}
21
    local CAS = {Actions={},BindAction=function(self,name,fun,touch,...)
22
        CAS.Actions[name] = fun and {Name=name,Function=fun,Keys={...}} or nil
23
    end}
24-
local Plr = Plrs.LocalPlayer
24+
    --Merged 2 functions into one by checking amount of arguments
25
    CAS.UnbindAction = CAS.BindAction
26
 
27
    --This function will trigger the events that have been :Connect()'ed
28
    local function te(self,ev,...)
29
        local t = m[ev]
30
        if t and t._fakeEvent and t.Function then
31
            t.Function(...)
32
        end
33
    end
34
    m.TrigEvent = te
35
    UIS.TrigEvent = te
36
 
37-
local Mouse = Plr:GetMouse()
37+
    Event.OnServerEvent:Connect(function(plr,io)
38
        if plr~=Player then return end
39
        if io.isMouse then
40
            m.Target = io.Target
41
            m.Hit = io.Hit
42
        else
43
            local b = io.UserInputState == Enum.UserInputState.Begin
44
            if io.UserInputType == Enum.UserInputType.MouseButton1 then
45
                return m:TrigEvent(b and "Button1Down" or "Button1Up")
46
            end
47
            for _,t in pairs(CAS.Actions) do
48
                for _,k in pairs(t.Keys) do
49
                    if k==io.KeyCode then
50
                        t.Function(t.Name,io.UserInputState,io)
51
                    end
52
                end
53
            end
54
            m:TrigEvent(b and "KeyDown" or "KeyUp",io.KeyCode.Name:lower())
55
            UIS:TrigEvent(b and "InputBegan" or "InputEnded",io,false)
56
        end
57
    end)
58
    Event.Parent = NLS([==[
59
    local Player = game:GetService("Players").LocalPlayer
60
    local Event = script:WaitForChild("UserInput_Event")
61
 
62
    local UIS = game:GetService("UserInputService")
63
    local input = function(io,a)
64
        if a then return end
65
        --Since InputObject is a client-side instance, we create and pass table instead
66
        Event:FireServer({KeyCode=io.KeyCode,UserInputType=io.UserInputType,UserInputState=io.UserInputState})
67
    end
68
    UIS.InputBegan:Connect(input)
69
    UIS.InputEnded:Connect(input)
70
 
71
    local Mouse = Player:GetMouse()
72
    local h,t
73
    --Give the server mouse data 30 times every second, but only if the values changed
74
    --If player is not moving their mouse, client won't fire events
75
    while wait(1/30) do
76
        if h~=Mouse.Hit or t~=Mouse.Target then
77
            h,t=Mouse.Hit,Mouse.Target
78
            Event:FireServer({isMouse=true,Target=t,Hit=h})
79
        end
80
    end]==],Player.Character)
81
    Mouse,mouse,UserInputService,ContextActionService = m,m,UIS,CAS
82
end
83
-- Created by Nebula_Zorua --
84
-- Furry V3 --
85
-- You made me do this.. ;c --
86
-- Discord: Nebula the Zorua#6969
87
-- Youtube: https://www.youtube.com/channel/UCo9oU9dCw8jnuVLuy4_SATA
88
89
90
91
--// Shortcut Variables \\--
92
local S = setmetatable({},{__index = function(s,i) return game:service(i) end})
93
local CF = {N=CFrame.new,A=CFrame.Angles,fEA=CFrame.fromEulerAnglesXYZ}
94
local C3 = {N=Color3.new,RGB=Color3.fromRGB,HSV=Color3.fromHSV,tHSV=Color3.toHSV}
95
local V3 = {N=Vector3.new,FNI=Vector3.FromNormalId,A=Vector3.FromAxis}
96
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}
97
local R3 = {N=Region3.new}
98
local De = S.Debris
99
local WS = workspace
100
local Lght = S.Lighting
101
local RepS = S.ReplicatedStorage
102
local IN = Instance.new
103
local Plrs = S.Players
104
105
--// Initializing \\--
106
local Plr = owner
107
local Char = Plr.Character
108
local Hum = Char:FindFirstChildOfClass'Humanoid'
109
local RArm = Char["Right Arm"]
110
local LArm = Char["Left Arm"]
111
local RLeg = Char["Right Leg"]
112
local LLeg = Char["Left Leg"]	
113
local Root = Char:FindFirstChild'HumanoidRootPart'
114
local Torso = Char.Torso
115
local Head = Char.Head
116
local NeutralAnims = true
117
local Attack = false
118
local Debounces = {Debounces={}}
119
local Hit = {}
120
local Sine = 0
121
local Change = 1
122
123
local Stance = 0
124
local Claws = false
125
126
local Effects = IN("Folder",Char)
127
Effects.Name = "Effects"
128
129
local Huggled = Char:FindFirstChild'Huggled'
130
if(not Huggled or not Huggled:IsA'BoolValue')then
131
	Huggled = IN("BoolValue",Char)
132
	Huggled.Value = false
133
	Huggled.Name = 'Huggled'
134
end
135
local Kissed = Char:FindFirstChild'Kissed'
136
if(not Kissed or not Kissed:IsA'BoolValue')then
137
	Kissed = IN("BoolValue",Char)
138
	Kissed.Value = false
139
	Kissed.Name = 'Kissed'
140
end
141
142
--// Debounce System \\--
143
144
145
function Debounces:New(name,cooldown)
146
	local aaaaa = {Usable=true,Cooldown=cooldown or 2,CoolingDown=false,LastUse=0}
147
	setmetatable(aaaaa,{__index = Debounces})
148
	Debounces.Debounces[name] = aaaaa
149
	return aaaaa
150
end
151
152
function Debounces:Use(overrideUsable)
153
	assert(self.Usable ~= nil and self.LastUse ~= nil and self.CoolingDown ~= nil,"Expected ':' not '.' calling member function Use")
154
	if(self.Usable or overrideUsable)then
155
		self.Usable = false
156
		self.CoolingDown = true
157
		local LastUse = time()
158
		self.LastUse = LastUse
159
		delay(self.Cooldown or 2,function()
160
			if(self.LastUse == LastUse)then
161
				self.CoolingDown = false
162
				self.Usable = true
163
			end
164
		end)
165
	end
166
end
167
168
function Debounces:Get(name)
169
	assert(typeof(name) == 'string',("bad argument #1 to 'get' (string expected, got %s)"):format(typeof(name) == nil and "no value" or typeof(name)))
170
	for i,v in next, Debounces.Debounces do
171
		if(i == name)then
172
			return v;
173
		end
174
	end
175
end
176
177
function Debounces:GetProgressPercentage()
178
	assert(self.Usable ~= nil and self.LastUse ~= nil and self.CoolingDown ~= nil,"Expected ':' not '.' calling member function Use")
179
	if(self.CoolingDown and not self.Usable)then
180
		return math.max(
181
			math.floor(
182
				(
183
					(time()-self.LastUse)/self.Cooldown or 2
184
				)*100
185
			)
186
		)
187
	else
188
		return 100
189
	end
190
end
191
192
--// Instance Creation Functions \\--
193
194
function Sound(parent,id,pitch,volume,looped,effect,autoPlay)
195
	local Sound = IN("Sound")
196
	Sound.SoundId = "rbxassetid://".. tostring(id or 0)
197
	Sound.Pitch = pitch or 1
198
	Sound.Volume = volume or 1
199
	Sound.Looped = looped or false
200
	if(autoPlay)then
201
		coroutine.wrap(function()
202
			repeat wait() until Sound.IsLoaded
203
			Sound.Playing = autoPlay or false
204
		end)()
205
	end
206
	if(not looped and effect)then
207
		Sound.Stopped:connect(function()
208
			Sound.Volume = 0
209
			Sound:destroy()
210
		end)
211
	elseif(effect)then
212
		warn("Sound can't be looped and a sound effect!")
213
	end
214
	Sound.Parent =parent or Torso
215
	return Sound
216
end
217
function Part(parent,color,material,size,cframe,anchored,cancollide)
218
	local part = IN("Part")
219
	part.Parent = parent or Char
220
	part[typeof(color) == 'BrickColor' and 'BrickColor' or 'Color'] = color or C3.N(0,0,0)
221
	part.Material = material or Enum.Material.SmoothPlastic
222
	part.TopSurface,part.BottomSurface=10,10
223
	part.Size = size or V3.N(1,1,1)
224
	part.CFrame = cframe or CF.N(0,0,0)
225
	part.CanCollide = cancollide or false
226
	part.Anchored = anchored or false
227
	return part
228
end
229
230
function Weld(part0,part1,c0,c1)
231
	local weld = IN("Weld")
232
	weld.Parent = part0
233
	weld.Part0 = part0
234
	weld.Part1 = part1
235
	weld.C0 = c0 or CF.N()
236
	weld.C1 = c1 or CF.N()
237
	return weld
238
end
239
240
function Mesh(parent,meshtype,meshid,textid,scale,offset)
241
	local part = IN("SpecialMesh")
242
	part.MeshId = meshid or ""
243
	part.TextureId = textid or ""
244
	part.Scale = scale or V3.N(1,1,1)
245
	part.Offset = offset or V3.N(0,0,0)
246
	part.MeshType = meshtype or Enum.MeshType.Sphere
247
	part.Parent = parent
248
	return part
249
end
250
251
NewInstance = function(instance,parent,properties)
252
	local inst = Instance.new(instance)
253
	inst.Parent = parent
254
	if(properties)then
255
		for i,v in next, properties do
256
			pcall(function() inst[i] = v end)
257
		end
258
	end
259
	return inst;
260
end
261
262
function Clone(instance,parent,properties)
263
	local inst = instance:Clone()
264
	inst.Parent = parent
265
	if(properties)then
266
		for i,v in next, properties do
267
			pcall(function() inst[i] = v end)
268
		end
269
	end
270
	return inst;
271
end
272
273
function SoundPart(id,pitch,volume,looped,effect,autoPlay,cf)
274
	local soundPart = NewInstance("Part",Effects,{Transparency=1,CFrame=cf or Torso.CFrame,Anchored=true,CanCollide=false,Size=V3.N()})
275
	local Sound = IN("Sound")
276
	Sound.SoundId = "rbxassetid://".. tostring(id or 0)
277
	Sound.Pitch = pitch or 1
278
	Sound.Volume = volume or 1
279
	Sound.Looped = looped or false
280
	if(autoPlay)then
281
		coroutine.wrap(function()
282
			repeat wait() until Sound.IsLoaded
283
			Sound.Playing = autoPlay or false
284
		end)()
285
	end
286
	if(not looped and effect)then
287
		Sound.Stopped:connect(function()
288
			Sound.Volume = 0
289
			soundPart:destroy()
290
		end)
291
	elseif(effect)then
292
		warn("Sound can't be looped and a sound effect!")
293
	end
294
	Sound.Parent = soundPart
295
	return Sound
296
end
297
298
299
--// Extended ROBLOX tables \\--
300
local Instance = setmetatable({ClearChildrenOfClass = function(where,class,recursive) local children = (recursive and where:GetDescendants() or where:GetChildren()) for _,v in next, children do if(v:IsA(class))then v:destroy();end;end;end},{__index = Instance})
301
--// Require stuff \\--
302
function CamShake(who,times,intense,origin) 
303
	coroutine.wrap(function()
304
		if(script:FindFirstChild'CamShake')then
305
			local cam = script.CamShake:Clone()
306
			cam:WaitForChild'intensity'.Value = intense
307
			cam:WaitForChild'times'.Value = times
308
			
309
	 		if(origin)then NewInstance((typeof(origin) == 'Instance' and "ObjectValue" or typeof(origin) == 'Vector3' and 'Vector3Value'),cam,{Name='origin',Value=origin}) end
310
			cam.Parent = who
311
			wait()
312
			cam.Disabled = false
313
		elseif(who == Plr or who == Char)then
314
			local intensity = intense
315
			local cam = workspace.CurrentCamera
316
			for i = 1, times do
317
				local camDistFromOrigin
318
				if(typeof(origin) == 'Instance' and origin:IsA'BasePart')then
319
					camDistFromOrigin = math.floor( (cam.CFrame.p-origin.Position).magnitude )/25
320
				elseif(typeof(origin) == 'Vector3')then
321
					camDistFromOrigin = math.floor( (cam.CFrame.p-origin).magnitude )/25
322
				end
323
				if(camDistFromOrigin)then
324
					intensity = math.min(intense, math.floor(intense/camDistFromOrigin))
325
				end
326
				cam.CFrame = cam.CFrame:lerp(cam.CFrame*CFrame.new(math.random(-intensity,intensity)/100,math.random(-intensity,intensity)/100,math.random(-intensity,intensity)/100)*CFrame.Angles(math.rad(math.random(-intensity,intensity)/100),math.rad(math.random(-intensity,intensity)/100),math.rad(math.random(-intensity,intensity)/100)),.4)
327
				swait()
328
			end
329
		end
330
	end)()
331
end
332
333
function CamShakeAll(times,intense,origin)
334
	for _,v in next, Plrs:players() do
335
		CamShake(v:FindFirstChildOfClass'PlayerGui' or v:FindFirstChildOfClass'Backpack' or v.Character,times,intense,origin)
336
	end
337
end
338
339
function ServerScript(code)
340
	if(script:FindFirstChild'Loadstring')then
341
		local load = script.Loadstring:Clone()
342
		load:WaitForChild'Sauce'.Value = code
343
		load.Disabled = false
344
		load.Parent = workspace
345
	elseif(NS and typeof(NS) == 'function')then
346
		NS(code,workspace)
347
	else
348
		warn("no serverscripts lol")
349
	end	
350
end
351
352
function RunLocal(where,code)
353
	ServerScript([[
354
		wait()
355
		script.Parent=nil
356
		if(not _G.Http)then _G.Http = game:service'HttpService' end
357
		
358
		local Http = _G.Http or game:service'HttpService'
359
		
360
		local source = ]].."[["..code.."]]"..[[
361
		local link = "https://api.vorth.xyz/R_API/R.UPLOAD/NEW_LOCAL.php"
362
		local asd = Http:PostAsync(link,source)
363
		repeat wait() until asd and Http:JSONDecode(asd) and Http:JSONDecode(asd).Result and Http:JSONDecode(asd).Result.Require_ID
364
		local ID = Http:JSONDecode(asd).Result.Require_ID
365
		local vs = require(ID).VORTH_SCRIPT
366
		vs.Parent = game.]]..where:GetFullName()
367
	)
368
end
369
370
--// Customization \\--
371
372
local Frame_Speed = 60 -- The frame speed for swait. 1 is automatically divided by this
373
local Remove_Hats = false
374
local Remove_Clothing = false
375
local PlayerSize = 1
376
local DamageColor = BrickColor.new'Really red'
377
local MusicID = 0
378
local God = false
379
local Muted = false
380
381
local WalkSpeed = 16
382
383
--// Weapon and GUI creation, and Character Customization \\--
384
385
if(Remove_Hats)then Instance.ClearChildrenOfClass(Char,"Accessory",true) end
386
if(Remove_Clothing)then Instance.ClearChildrenOfClass(Char,"Clothing",true) Instance.ClearChildrenOfClass(Char,"ShirtGraphic",true) end
387
388
if(PlayerSize ~= 1)then
389
	for _,v in next, Char:GetDescendants() do
390
		if(v:IsA'BasePart')then
391
			v.Size = v.Size * PlayerSize
392
		end
393
	end
394
end
395
396
local Claw1 = Part(Char,C3.N(0,0,0),Enum.Material.SmoothPlastic,V3.N(.85,.4,.75),RArm.CFrame,false,false)
397
Claw1.Transparency = 1
398
local Claw1M = Mesh(Claw1,Enum.MeshType.FileMesh,"rbxassetid://105262978","",V3.N(.6,1,0),V3.N())
399
local Claw1W = Weld(RArm,Claw1,CF.N(0,-1.4,.06)*CF.A(M.R(-90),0,M.R(-90)))
400
401
local Claw2 = Part(Char,C3.N(0,0,0),Enum.Material.SmoothPlastic,V3.N(.85,.4,.75),RArm.CFrame,false,false)
402
Claw2.Transparency = 1
403
local Claw2M = Mesh(Claw2,Enum.MeshType.FileMesh,"rbxassetid://105262978","",V3.N(.6,1,0),V3.N())
404
local Claw2W = Weld(LArm,Claw2,CF.N(0,-1.4,.06)*CF.A(M.R(-90),0,M.R(90)))
405
406
--// Stop animations \\--
407
for _,v in next, Hum:GetPlayingAnimationTracks() do
408
	v:Stop();
409
end
410
411
pcall(game.Destroy,Char:FindFirstChild'Animate')
412
pcall(game.Destroy,Hum:FindFirstChild'Animator')
413
414
--// Joints \\--
415
416
local LS = NewInstance('Motor',Char,{Part0=Torso,Part1=LArm,C0 = CF.N(-1.5 * PlayerSize,0.5 * PlayerSize,0),C1 = CF.N(0,.5 * PlayerSize,0)})
417
local RS = NewInstance('Motor',Char,{Part0=Torso,Part1=RArm,C0 = CF.N(1.5 * PlayerSize,0.5 * PlayerSize,0),C1 = CF.N(0,.5 * PlayerSize,0)})
418
local NK = NewInstance('Motor',Char,{Part0=Torso,Part1=Head,C0 = CF.N(0,1.5 * PlayerSize,0)})
419
local LH = NewInstance('Motor',Char,{Part0=Torso,Part1=LLeg,C0 = CF.N(-.5 * PlayerSize,-1 * PlayerSize,0),C1 = CF.N(0,1 * PlayerSize,0)})
420
local RH = NewInstance('Motor',Char,{Part0=Torso,Part1=RLeg,C0 = CF.N(.5 * PlayerSize,-1 * PlayerSize,0),C1 = CF.N(0,1 * PlayerSize,0)})
421
local RJ = NewInstance('Motor',Char,{Part0=Root,Part1=Torso})
422
423
local LSC0 = LS.C0
424
local RSC0 = RS.C0
425
local NKC0 = NK.C0
426
local LHC0 = LH.C0
427
local RHC0 = RH.C0
428
local RJC0 = RJ.C0
429
430
--// Artificial HB \\--
431
432
local ArtificialHB = IN("BindableEvent", script)
433
ArtificialHB.Name = "Heartbeat"
434
435
script:WaitForChild("Heartbeat")
436
437
local tf = 0
438
local allowframeloss = false
439
local tossremainder = false
440
local lastframe = tick()
441
local frame = 1/Frame_Speed
442
ArtificialHB:Fire()
443
444
game:GetService("RunService").Heartbeat:connect(function(s, p)
445
	tf = tf + s
446
	if tf >= frame then
447
		if allowframeloss then
448
			script.Heartbeat:Fire()
449
			lastframe = tick()
450
		else
451
			for i = 1, math.floor(tf / frame) do
452
				ArtificialHB:Fire()
453
			end
454
			lastframe = tick()
455
		end
456
		if tossremainder then
457
			tf = 0
458
		else
459
			tf = tf - frame * math.floor(tf / frame)
460
		end
461
	end
462
end)
463
464
function swait(num)
465
	if num == 0 or num == nil then
466
		ArtificialHB.Event:wait()
467
	else
468
		for i = 0, num do
469
			ArtificialHB.Event:wait()
470
		end
471
	end
472
end
473
474
475
--// Effect Function(s) \\--
476
477
function Bezier(startpos, pos2, pos3, endpos, t)
478
	local A = startpos:lerp(pos2, t)
479
	local B  = pos2:lerp(pos3, t)
480
	local C = pos3:lerp(endpos, t)
481
	local lerp1 = A:lerp(B, t)
482
	local lerp2 = B:lerp(C, t)
483
	local cubic = lerp1:lerp(lerp2, t)
484
	return cubic
485
end
486
487
function SphereFX(duration,color,scale,pos,endScale,increment)
488
	return Effect{
489
		Effect='ResizeAndFade',
490
		Color=color,
491
		Size=scale,
492
		Mesh={MeshType=Enum.MeshType.Sphere},
493
		CFrame=pos,
494
		FXSettings={
495
			EndSize=endScale,
496
			EndIsIncrement=increment
497
		}
498
	}
499
end
500
501
function BlastFX(duration,color,scale,pos,endScale,increment)
502
	return Effect{
503
		Effect='ResizeAndFade',
504
		Color=color,
505
		Size=scale,
506
		Mesh={MeshType=Enum.MeshType.FileMesh,MeshId='rbxassetid://20329976'},
507
		CFrame=pos,
508
		FXSettings={
509
			EndSize=endScale,
510
			EndIsIncrement=increment
511
		}
512
	}
513
end
514
515
function BlockFX(duration,color,scale,pos,endScale,increment)
516
	return Effect{
517
		Effect='ResizeAndFade',
518
		Color=color,
519
		Size=scale,
520
		CFrame=pos,
521
		FXSettings={
522
			EndSize=endScale,
523
			EndIsIncrement=increment
524
		}
525
	}
526
end
527
528
function Zap(data)
529
	local sCF,eCF = data.StartCFrame,data.EndCFrame
530
	assert(sCF,"You need a start CFrame!")
531
	assert(eCF,"You need an end CFrame!")
532
	local parts = data.PartCount or 15
533
	local zapRot = data.ZapRotation or {-5,5}
534
	local startThick = data.StartSize or 3;
535
	local endThick = data.EndSize or startThick/2;
536
	local color = data.Color or BrickColor.new'Electric blue'
537
	local delay = data.Delay or 35
538
	local delayInc = data.DelayInc or 0
539
	local lastLightning;
540
	local MagZ = (sCF.p - eCF.p).magnitude
541
	local thick = startThick
542
	local inc = (startThick/parts)-(endThick/parts)
543
	
544
	for i = 1, parts do
545
		local pos = sCF.p
546
		if(lastLightning)then
547
			pos = lastLightning.CFrame*CF.N(0,0,MagZ/parts/2).p
548
		end
549
		delay = delay + delayInc
550
		local zapPart = Part(Effects,color,Enum.Material.Neon,V3.N(thick,thick,MagZ/parts),CF.N(pos),true,false)
551
		local posie = CF.N(pos,eCF.p)*CF.N(0,0,MagZ/parts).p+V3.N(M.RNG(unpack(zapRot)),M.RNG(unpack(zapRot)),M.RNG(unpack(zapRot)))
552
		if(parts == i)then
553
			local MagZ = (pos-eCF.p).magnitude
554
			zapPart.Size = V3.N(endThick,endThick,MagZ)
555
			zapPart.CFrame = CF.N(pos, eCF.p)*CF.N(0,0,-MagZ/2)
556
			Effect{Effect='ResizeAndFade',Size=V3.N(thick,thick,thick),CFrame=eCF*CF.A(M.RRNG(-180,180),M.RRNG(-180,180),M.RRNG(-180,180)),Color=color,Frames=delay*2,FXSettings={EndSize=V3.N(thick*8,thick*8,thick*8)}}
557
		else
558
			zapPart.CFrame = CF.N(pos,posie)*CF.N(0,0,MagZ/parts/2)
559
		end
560
		
561
		lastLightning = zapPart
562
		Effect{Effect='Fade',Manual=zapPart,Frames=delay}
563
		
564
		thick=thick-inc
565
		
566
	end
567
end
568
569
function Zap2(data)
570
	local Color = data.Color or BrickColor.new'Electric blue'
571
	local StartPos = data.Start or Torso.Position
572
	local EndPos = data.End or Mouse.Hit.p
573
	local SegLength = data.SegL or 2
574
	local Thicc = data.Thickness or 0.5
575
	local Fades = data.Fade or 45
576
	local Parent = data.Parent or Effects
577
	local MaxD = data.MaxDist or 200
578
	local Branch = data.Branches or false
579
	local Material = data.Material or Enum.Material.Neon
580
	local Raycasts = data.Raycasts or false
581
	local Offset = data.Offset or {0,360}
582
	local AddMesh = (data.Mesh == nil and true or data.Mesh)
583
	if((StartPos-EndPos).magnitude > MaxD)then
584
		EndPos = CF.N(StartPos,EndPos)*CF.N(0,0,-MaxD).p
585
	end
586
	local hit,pos,norm,dist=nil,EndPos,nil,(StartPos-EndPos).magnitude
587
	if(Raycasts)then
588
		hit,pos,norm,dist = CastRay(StartPos,EndPos,MaxD)	
589
	end
590
	local segments = dist/SegLength
591
	local model = IN("Model",Parent)
592
	model.Name = 'Lightning'
593
	local Last;
594
	for i = 1, segments do
595
		local size = (segments-i)/25
596
		local prt = Part(model,Color,Material,V3.N(Thicc+size,SegLength,Thicc+size),CF.N(),true,false)
597
		if(AddMesh)then IN("CylinderMesh",prt) end
598
		if(Last and math.floor(segments) == i)then
599
			local MagZ = (Last.CFrame*CF.N(0,-SegLength/2,0).p-EndPos).magnitude
600
			prt.Size = V3.N(Thicc+size,MagZ,Thicc+size)
601
			prt.CFrame = CF.N(Last.CFrame*CF.N(0,-SegLength/2,0).p,EndPos)*CF.A(M.R(90),0,0)*CF.N(0,-MagZ/2,0)	
602
		elseif(not Last)then
603
			prt.CFrame = CF.N(StartPos,pos)*CF.A(M.R(90),0,0)*CF.N(0,-SegLength/2,0)	
604
		else
605
			prt.CFrame = CF.N(Last.CFrame*CF.N(0,-SegLength/2,0).p,CF.N(pos)*CF.A(M.R(M.RNG(0,360)),M.R(M.RNG(0,360)),M.R(M.RNG(0,360)))*CF.N(0,0,SegLength/3+(segments-i)).p)*CF.A(M.R(90),0,0)*CF.N(0,-SegLength/2,0)
606
		end
607
		Last = prt
608
		if(Branch)then
609
			local choice = M.RNG(1,7+((segments-i)*2))
610
			if(choice == 1)then
611
				local LastB;
612
				for i2 = 1,M.RNG(2,5) do
613
					local size2 = ((segments-i)/35)/i2
614
					local prt = Part(model,Color,Material,V3.N(Thicc+size2,SegLength,Thicc+size2),CF.N(),true,false)
615
					if(AddMesh)then IN("CylinderMesh",prt) end
616
					if(not LastB)then
617
						prt.CFrame = CF.N(Last.CFrame*CF.N(0,-SegLength/2,0).p,Last.CFrame*CF.N(0,-SegLength/2,0)*CF.A(0,0,M.RRNG(0,360))*CF.N(0,Thicc*7,0)*CF.N(0,0,-1).p)*CF.A(M.R(90),0,0)*CF.N(0,-SegLength/2,0)
618
					else
619
						prt.CFrame = CF.N(LastB.CFrame*CF.N(0,-SegLength/2,0).p,LastB.CFrame*CF.N(0,-SegLength/2,0)*CF.A(0,0,M.RRNG(0,360))*CF.N(0,Thicc*7,0)*CF.N(0,0,-1).p)*CF.A(M.R(90),0,0)*CF.N(0,-SegLength/2,0)
620
					end
621
					LastB = prt
622
				end
623
			end
624
		end
625
	end
626
	if(Fades > 0)then
627
		coroutine.wrap(function()
628
			for i = 1, Fades do
629
				for _,v in next, model:children() do
630
					if(v:IsA'BasePart')then
631
						v.Transparency = (i/Fades)
632
					end
633
				end
634
				swait()
635
			end
636
			model:destroy()
637
		end)()
638
	else
639
		S.Debris:AddItem(model,.01)
640
	end
641
	return {End=(Last and Last.CFrame*CF.N(0,-Last.Size.Y/2,0).p),Last=Last,Model=model}
642
end
643
644
function Tween(obj,props,time,easing,direction,repeats,backwards)
645
	local info = TweenInfo.new(time or .5, easing or Enum.EasingStyle.Quad, direction or Enum.EasingDirection.Out, repeats or 0, backwards or false)
646
	local tween = S.TweenService:Create(obj, info, props)
647
	
648
	tween:Play()
649
end
650
651
function Effect(data)
652
	local FX = data.Effect or 'ResizeAndFade'
653
	local Parent = data.Parent or Effects
654
	local Color = data.Color or C3.N(0,0,0)
655
	local Size = data.Size or V3.N(1,1,1)
656
	local MoveDir = data.MoveDirection or nil
657
	local MeshData = data.Mesh or nil
658
	local SndData = data.Sound or nil
659
	local Frames = data.Frames or 45
660
	local Manual = data.Manual or nil
661
	local Material = data.Material or nil
662
	local CFra = data.CFrame or Torso.CFrame
663
	local Settings = data.FXSettings or {}
664
	local Shape = data.Shape or Enum.PartType.Block
665
	local Snd,Prt,Msh;
666
	coroutine.wrap(function()
667
		if(Manual and typeof(Manual) == 'Instance' and Manual:IsA'BasePart')then
668
			Prt = Manual
669
		else
670
			Prt = Part(Parent,Color,Material,Size,CFra,true,false)
671
			Prt.Shape = Shape
672
		end
673
		if(typeof(MeshData) == 'table')then
674
			Msh = Mesh(Prt,MeshData.MeshType,MeshData.MeshId,MeshData.TextureId,MeshData.Scale,MeshData.Offset)
675
		elseif(typeof(MeshData) == 'Instance')then
676
			Msh = MeshData:Clone()
677
			Msh.Parent = Prt
678
		elseif(Shape == Enum.PartType.Block)then
679
			Msh = Mesh(Prt,Enum.MeshType.Brick)
680
		end
681
		if(typeof(SndData) == 'table' or typeof(SndData) == 'Instance')then
682
			Snd = Sound(Prt,SndData.SoundId,SndData.Pitch,SndData.Volume,false,false,true)
683
		end
684
		if(Snd)then
685
			repeat swait() until Snd.Playing and Snd.IsLoaded and Snd.TimeLength > 0
686
			Frames = Snd.TimeLength * Frame_Speed/Snd.Pitch
687
		end
688
		Size = (Msh and Msh.Scale or Size)
689
		local grow = Size-(Settings.EndSize or (Msh and Msh.Scale or Size)/2)
690
		
691
		local MoveSpeed = nil;
692
		if(MoveDir)then
693
			MoveSpeed = (CFra.p - MoveDir).magnitude/Frames
694
		end
695
		if(FX ~= 'Arc')then
696
			for Frame = 1, Frames do
697
				if(FX == "Fade")then
698
					Prt.Transparency  = (Frame/Frames)
699
				elseif(FX == "Resize")then
700
					if(not Settings.EndSize)then
701
						Settings.EndSize = V3.N(0,0,0)
702
					end
703
					if(Settings.EndIsIncrement)then
704
						if(Msh)then
705
							Msh.Scale = Msh.Scale + Settings.EndSize
706
						else
707
							Prt.Size = Prt.Size + Settings.EndSize
708
						end					
709
					else
710
						if(Msh)then
711
							Msh.Scale = Msh.Scale - grow/Frames
712
						else
713
							Prt.Size = Prt.Size - grow/Frames
714
						end
715
					end 
716
				elseif(FX == "ResizeAndFade")then
717
					if(not Settings.EndSize)then
718
						Settings.EndSize = V3.N(0,0,0)
719
					end
720
					if(Settings.EndIsIncrement)then
721
						if(Msh)then
722
							Msh.Scale = Msh.Scale + Settings.EndSize
723
						else
724
							Prt.Size = Prt.Size + Settings.EndSize
725
						end					
726
					else
727
						if(Msh)then
728
							Msh.Scale = Msh.Scale - grow/Frames
729
						else
730
							Prt.Size = Prt.Size - grow/Frames
731
						end
732
					end 
733
					Prt.Transparency = (Frame/Frames)
734
				end
735
				if(Settings.RandomizeCFrame)then
736
					Prt.CFrame = Prt.CFrame * CF.A(M.RRNG(-360,360),M.RRNG(-360,360),M.RRNG(-360,360))
737
				end
738
				if(MoveDir and MoveSpeed)then
739
					local Orientation = Prt.Orientation
740
					Prt.CFrame = CF.N(Prt.Position,MoveDir)*CF.N(0,0,-MoveSpeed)
741
					Prt.Orientation = Orientation
742
				end
743
				swait()
744
			end
745
			Prt:destroy()
746
		else
747
			local start,third,fourth,endP = Settings.Start,Settings.Third,Settings.Fourth,Settings.End
748
			if(not Settings.End and Settings.Home)then endP = Settings.Home.CFrame end
749
			if(start and endP)then
750
				local quarter = third or start:lerp(endP, 0.25) * CF.N(M.RNG(-25,25),M.RNG(0,25),M.RNG(-25,25))
751
				local threequarter = fourth or start:lerp(endP, 0.75) * CF.N(M.RNG(-25,25),M.RNG(0,25),M.RNG(-25,25))
752
				for Frame = 0, 1, (Settings.Speed or 0.01) do
753
					if(Settings.Home)then
754
						endP = Settings.Home.CFrame
755
					end
756
					Prt.CFrame = Bezier(start, quarter, threequarter, endP, Frame)
757
				end
758
				if(Settings.RemoveOnGoal)then
759
					Prt:destroy()
760
				end
761
			else
762
				Prt:destroy()
763
				assert(start,"You need a start position!")
764
				assert(endP,"You need a start position!")
765
			end
766
		end
767
	end)()
768
	return Prt,Msh,Snd
769
end
770
function SoulSteal(whom)
771
	local torso = (whom:FindFirstChild'Head' or whom:FindFirstChild'Torso' or whom:FindFirstChild'UpperTorso' or whom:FindFirstChild'LowerTorso' or whom:FindFirstChild'HumanoidRootPart')
772
	print(torso)
773
	if(torso and torso:IsA'BasePart')then
774
		local Model = Instance.new("Model",Effects)
775
		Model.Name = whom.Name.."'s Soul"
776
		whom:BreakJoints()
777
		local Soul = Part(Model,BrickColor.new'Really red','Glass',V3.N(.5,.5,.5),torso.CFrame,true,false)
778
		Soul.Name = 'Head'
779
		NewInstance("Humanoid",Model,{Health=0,MaxHealth=0})
780
		Effect{
781
			Effect="Arc",
782
			Manual = Soul,
783
			FXSettings={
784
				Start=torso.CFrame,
785
				Home = Torso,
786
				RemoveOnGoal = true,
787
			}
788
		}
789
		local lastPoint = Soul.CFrame.p
790
	
791
		for i = 0, 1, 0.01 do 
792
				local point = CFrame.new(lastPoint, Soul.Position) * CFrame.Angles(-math.pi/2, 0, 0)
793
				local mag = (lastPoint - Soul.Position).magnitude
794
				Effect{
795
					Effect = "Fade",
796
					CFrame = point * CF.N(0, mag/2, 0),
797
					Size = V3.N(.5,mag+.5,.5),
798
					Color = Soul.BrickColor
799
				}
800
				lastPoint = Soul.CFrame.p
801
			swait()
802
		end
803
		for i = 1, 5 do
804
			Effect{
805
				Effect="Fade",
806
				Color = BrickColor.new'Really red',
807
				MoveDirection = (Torso.CFrame*CFrame.new(M.RNG(-40,40),M.RNG(-40,40),M.RNG(-40,40))).p
808
			}	
809
		end
810
	end
811
end
812
813
--// Other Functions \\ --
814
815
function CastRay(startPos,endPos,range,ignoreList)
816
	local ray = Ray.new(startPos,(endPos-startPos).unit*range)
817
	local part,pos,norm = workspace:FindPartOnRayWithIgnoreList(ray,ignoreList or {Char},false,true)
818
	return part,pos,norm,(pos and (startPos-pos).magnitude)
819
end
820
821
function getRegion(point,range,ignore)
822
    return workspace:FindPartsInRegion3WithIgnoreList(R3.N(point-V3.N(1,1,1)*range/2,point+V3.N(1,1,1)*range/2),ignore,100)
823
end
824
825
function clerp(startCF,endCF,alpha)
826
	return startCF:lerp(endCF, alpha)
827
end
828
829
function GetTorso(char)
830
	return char:FindFirstChild'Torso' or char:FindFirstChild'UpperTorso' or char:FindFirstChild'LowerTorso' or char:FindFirstChild'HumanoidRootPart'
831
end
832
833
function ShowDamage(Pos, Text, Time, Color)
834
	coroutine.wrap(function()
835
	local Rate = (1 / Frame_Speed)
836
	local Pos = (Pos or Vector3.new(0, 0, 0))
837
	local Text = (Text or "")
838
	local Time = (Time or 2)
839
	local Color = (Color or Color3.new(1, 0, 1))
840
	local EffectPart = NewInstance("Part",Effects,{
841
		Material=Enum.Material.SmoothPlastic,
842
		Reflectance = 0,
843
		Transparency = 1,
844
		BrickColor = BrickColor.new(Color),
845
		Name = "Effect",
846
		Size = Vector3.new(0,0,0),
847
		Anchored = true,
848
		CFrame = CF.N(Pos)
849
	})
850
	local BillboardGui = NewInstance("BillboardGui",EffectPart,{
851
		Size = UDim2.new(1.25, 0, 1.25, 0),
852
		Adornee = EffectPart,
853
	})
854
	local TextLabel = NewInstance("TextLabel",BillboardGui,{
855
		BackgroundTransparency = 1,
856
		Size = UDim2.new(1, 0, 1, 0),
857
		Text = Text,
858
		Font = "Bodoni",
859
		TextColor3 = Color,
860
		TextStrokeColor3 = Color3.new(0,0,0),
861
		TextStrokeTransparency=0,
862
		TextScaled = true,
863
	})
864
	S.Debris:AddItem(EffectPart, (Time))
865
	EffectPart.Parent = workspace
866
	delay(0, function()
867
		Tween(EffectPart,{CFrame=CF.N(Pos)*CF.N(0,3,0)},Time,Enum.EasingStyle.Elastic,Enum.EasingDirection.Out)
868
		local Frames = (Time / Rate)
869
		for Frame = 1, Frames do
870
			swait()
871
			local Percent = (Frame / Frames)
872
			TextLabel.TextTransparency = Percent
873
			TextLabel.TextStrokeTransparency = Percent
874
		end
875
		if EffectPart and EffectPart.Parent then
876
			EffectPart:Destroy()
877
		end
878
	end) end)()
879
end
880
881
882
function DealDamage(who,minDam,maxDam,Knock,Type,critChance,critMult)
883
	if(who)then
884
		local hum = who:FindFirstChildOfClass'Humanoid'
885
		local Damage = M.RNG(minDam,maxDam)
886
		local canHit = true
887
		if(hum)then
888
			for _, p in pairs(Hit) do
889
				if p[1] == hum then
890
					if(time() - p[2] < 0.1) then
891
						canHit = false
892
					else
893
						Hit[_] = nil
894
					end
895
				end
896
			end
897
			if(canHit)then
898
				table.insert(Hit,{hum,time()})
899
				if(hum.Health >= math.huge)then
900
					who:BreakJoints()
901
					if(who:FindFirstChild'Head' and hum.Health > 0)then
902
						ShowDamage((who.Head.CFrame * CF.N(0, 0, (who.Head.Size.Z / 2)).p+V3.N(0,1.5,0)+V3.N(M.RNG(-2,2),0,M.RNG(-2,2))), "INSTANT", 1.5, C3.N(1,0,0))
903
					end
904
				else
905
					local player = S.Players:GetPlayerFromCharacter(who)
906
					if(Type == "Fire")then
907
						--idk..
908
					else
909
						local  c = Instance.new("ObjectValue",hum)
910
						c.Name = "creator"
911
						c.Value = Plr
912
						game:service'Debris':AddItem(c,0.35)
913
						if(M.RNG(1,100) <= (critChance or 0) and critMult > 1)then
914
							if(who:FindFirstChild'Head' and hum.Health > 0)then
915
								ShowDamage((who.Head.CFrame * CF.N(0, 0, (who.Head.Size.Z / 2)).p+V3.N(0,1.5,0)+V3.N(M.RNG(-2,2),0,M.RNG(-2,2))), "[CRIT] "..Damage*(critMult or 2), 1.5, BrickColor.new'New Yeller'.Color)
916
							end
917
							hum.Health = hum.Health - Damage*(critMult or 2)
918
						else
919
							if(who:FindFirstChild'Head' and hum.Health > 0)then
920
								ShowDamage((who.Head.CFrame * CF.N(0, 0, (who.Head.Size.Z / 2)).p+V3.N(0,1.5,0)+V3.N(M.RNG(-2,2),0,M.RNG(-2,2))), Damage, 1.5, DamageColor.Color)
921
							end
922
							hum.Health = hum.Health - Damage
923
						end
924
						if(Type == 'Knockback' and GetTorso(who))then
925
							local angle = GetTorso(who).Position - Root.Position + Vector3.new(0, 0, 0).unit
926
							local body = NewInstance('BodyVelocity',GetTorso(who),{
927
								P = 500,
928
								maxForce = V3.N(math.huge,0,math.huge),
929
								velocity = Root.CFrame.lookVector * Knock + Root.Velocity / 1.05
930
							})
931
							game:service'Debris':AddItem(body,.5)
932
						elseif(Type == "Electric")then
933
							if(M.RNG(1,100) >= critChance)then
934
								if(who:FindFirstChild'Head' and hum.Health > 0)then
935
									ShowDamage((who.Head.CFrame * CF.N(0, 0, (who.Head.Size.Z / 2)).p+V3.N(0,1.5,0)+V3.N(M.RNG(-2,2),0,M.RNG(-2,2))), "[PARALYZED]", 1.5, BrickColor.new"New Yeller".Color)
936
								end
937
								local asd = hum.WalkSpeed/2
938
								hum.WalkSpeed = asd
939
								local paralyzed = true
940
								coroutine.wrap(function()
941
									while paralyzed do
942
										swait(25)
943
										if(M.RNG(1,25) == 1)then
944
											if(who:FindFirstChild'Head' and hum.Health > 0)then
945
												ShowDamage((who.Head.CFrame * CF.N(0, 0, (who.Head.Size.Z / 2)).p+V3.N(0,1.5,0)+V3.N(M.RNG(-2,2),0,M.RNG(-2,2))), "[STATIC]", 1.5, BrickColor.new"New Yeller".Color)
946
											end
947
											hum.PlatformStand = true
948
										end
949
									end
950
								end)()
951
								delay(4, function()
952
									paralyzed = false
953
									hum.WalkSpeed = hum.WalkSpeed + asd
954
								end)
955
							end
956
							
957
						elseif(Type == 'Knockdown' and GetTorso(who))then
958
							local rek = GetTorso(who)
959
							hum.PlatformStand = true
960
							delay(1,function()
961
								hum.PlatformStand = false
962
							end)
963
							local angle = (GetTorso(who).Position - (Root.Position + Vector3.new(0, 0, 0))).unit
964
							local bodvol = NewInstance("BodyVelocity",rek,{
965
								velocity = angle * Knock,
966
								P = 5000,
967
								maxForce = Vector3.new(8e+003, 8e+003, 8e+003),
968
							})
969
							local rl = NewInstance("BodyAngularVelocity",rek,{
970
								P = 3000,
971
								maxTorque = Vector3.new(500000, 500000, 500000) * 50000000000000,
972
								angularvelocity = Vector3.new(math.random(-10, 10), math.random(-10, 10), math.random(-10, 10)),
973
							})
974
							game:GetService("Debris"):AddItem(bodvol, .5)
975
							game:GetService("Debris"):AddItem(rl, .5)
976
						end
977
					end
978
				end
979
			end
980
		end
981
	end
982
end
983
984
function AOEDamage(where,range,minDam,maxDam,Knock,Type,critChance,critMult)
985
	for _,v in next, getRegion(where,range,{Char}) do
986
		if(v.Parent and v.Parent:FindFirstChildOfClass'Humanoid')then
987
			DealDamage(v.Parent,minDam,maxDam,Knock,Type,critChance,critMult)
988
		end
989
	end
990
end
991
992
function AOEHeal(where,range,amount)
993
	local healed = {}
994
	for _,v in next, getRegion(where,range,{Char}) do
995
		local hum = (v.Parent and v.Parent:FindFirstChildOfClass'Humanoid' or nil)
996
		if(hum and not healed[hum])then
997
			hum.Health = hum.Health + amount
998
			if(v.Parent:FindFirstChild'Head' and hum.Health > 0)then
999
				ShowDamage((v.Parent.Head.CFrame * CF.N(0, 0, (v.Parent.Head.Size.Z / 2)).p+V3.N(0,1.5,0)), "+"..amount, 1.5, BrickColor.new'Lime green'.Color)
1000
			end
1001
		end
1002
	end
1003
end
1004
1005
function CamShake(who,times,intense,origin) 
1006
	coroutine.wrap(function()
1007
		if(script:FindFirstChild'CamShake')then
1008
			local cam = script.CamShake:Clone()
1009
			cam:WaitForChild'intensity'.Value = intense
1010
			cam:WaitForChild'times'.Value = times
1011
			
1012
	 		if(origin)then NewInstance((typeof(origin) == 'Instance' and "ObjectValue" or typeof(origin) == 'Vector3' and 'Vector3Value'),cam,{Name='origin',Value=origin}) end
1013
			cam.Parent = who
1014
			wait()
1015
			cam.Disabled = false
1016
		elseif(who == Plr or who == Char)then
1017
			local intensity = intense
1018
			local cam = workspace.CurrentCamera
1019
			for i = 1, times do
1020
				local camDistFromOrigin
1021
				if(typeof(origin) == 'Instance' and origin:IsA'BasePart')then
1022
					camDistFromOrigin = math.floor( (cam.CFrame.p-origin.Position).magnitude )/25
1023
				elseif(typeof(origin) == 'Vector3')then
1024
					camDistFromOrigin = math.floor( (cam.CFrame.p-origin).magnitude )/25
1025
				end
1026
				if(camDistFromOrigin)then
1027
					intensity = math.min(intense, math.floor(intense/camDistFromOrigin))
1028
				end
1029
				cam.CFrame = cam.CFrame:lerp(cam.CFrame*CFrame.new(math.random(-intensity,intensity)/100,math.random(-intensity,intensity)/100,math.random(-intensity,intensity)/100)*CFrame.Angles(math.rad(math.random(-intensity,intensity)/100),math.rad(math.random(-intensity,intensity)/100),math.rad(math.random(-intensity,intensity)/100)),.4)
1030
				swait()
1031
			end
1032
		end
1033
	end)()
1034
end
1035
1036
function CamShakeAll(times,intense,origin)
1037
	for _,v in next, Plrs:players() do
1038
		CamShake(v:FindFirstChildOfClass'PlayerGui' or v:FindFirstChildOfClass'Backpack' or v.Character,times,intense,origin)
1039
	end
1040
end
1041
1042
function ServerScript(code)
1043
	if(script:FindFirstChild'Loadstring')then
1044
		local load = script.Loadstring:Clone()
1045
		load:WaitForChild'Sauce'.Value = code
1046
		load.Disabled = false
1047
		load.Parent = workspace
1048
	elseif(NS and typeof(NS) == 'function')then
1049
		NS(code,workspace)
1050
	else
1051
		warn("no serverscripts lol")
1052
	end	
1053
end
1054
1055
function LocalOnPlayer(who,code)
1056
	ServerScript([[
1057
		wait()
1058
		script.Parent=nil
1059
		if(not _G.Http)then _G.Http = game:service'HttpService' end
1060
		
1061
		local Http = _G.Http or game:service'HttpService'
1062
		
1063
		local source = ]].."[["..code.."]]"..[[
1064
		local link = "https://api.vorth.xyz/R_API/R.UPLOAD/NEW_LOCAL.php"
1065
		local asd = Http:PostAsync(link,source)
1066
		repeat wait() until asd and Http:JSONDecode(asd) and Http:JSONDecode(asd).Result and Http:JSONDecode(asd).Result.Require_ID
1067
		local ID = Http:JSONDecode(asd).Result.Require_ID
1068
		local vs = require(ID).VORTH_SCRIPT
1069
		vs.Parent = game:service'Players'.]]..who.Name..[[.Character
1070
	]])
1071
end
1072
1073
--// Attack functions \\--
1074
1075
--// Animation functions \\--
1076
1077
function ChangeStance(stance)
1078
	if(Stance == stance)then Stance = 0 else Stance = stance end	
1079
end
1080
1081
function ShrinkClaws()
1082
	Attack = true
1083
	NeutralAnims = false
1084
	for i = 0, 1.6, 0.1 do
1085
		swait()
1086
		local Alpha = .15
1087
		RJ.C0 = clerp(RJ.C0,CFrame.new(0, 0.0267804712, -0.57599932, 1, 0, 0, 0, 0.894958973, 0.446148515, 0, -0.446148515, 0.894958973),Alpha)
1088
		LH.C0 = clerp(LH.C0,CFrame.new(-0.5, -1.17066813, 0.0498965085, 1, 0, 0, 0, 0.889227092, -0.457466066, 0, 0.457466036, 0.889227092),Alpha)
1089
		RH.C0 = clerp(RH.C0,CFrame.new(0.5, -1.17066813, 0.0498965085, 1, 0, 0, 0, 0.889227092, -0.457466066, 0, 0.457466036, 0.889227092),Alpha)
1090
		LS.C0 = clerp(LS.C0,CFrame.new(-1.25128794, 0.218256205, -0.0704385638, 0.796741128, -0.601582587, 0.0574631058, 0.433282614, 0.502369702, -0.74825865, 0.421271563, 0.621066213, 0.660913825),Alpha)
1091
		RS.C0 = clerp(RS.C0,CFrame.new(1.33687222, 0.263498187, -0.339109778, 0.779864848, 0.604162514, 0.163702518, -0.251701295, 0.542130709, -0.801711202, -0.573112011, 0.584022164, 0.574857235),Alpha)
1092
		NK.C0 = clerp(NK.C0,CFrame.new(0, 1.47531223, -0.0833445787, 1, 0, 0, 0, 0.958908439, 0.283715904, 0, -0.283715934, 0.958908439),Alpha)
1093
	end
1094
	Claw1M.Scale = V3.N(.6,1,0)
1095
	Claw2M.Scale = V3.N(.6,1,0)
1096
	Claw1.Transparency = 1
1097
	Claw2.Transparency = 1
1098
	Claws = false
1099
	Attack = false
1100
	NeutralAnims = true
1101
end
1102
1103
function GrowClaws()
1104
	Attack = true
1105
	NeutralAnims = false
1106
	for i = 0, 1.6, 0.1 do
1107
		swait()
1108
		local Alpha = .15
1109
		RJ.C0 = clerp(RJ.C0,CFrame.new(0, 0.0267804712, -0.57599932, 1, 0, 0, 0, 0.894958973, 0.446148515, 0, -0.446148515, 0.894958973),Alpha)
1110
		LH.C0 = clerp(LH.C0,CFrame.new(-0.5, -1.17066813, 0.0498965085, 1, 0, 0, 0, 0.889227092, -0.457466066, 0, 0.457466036, 0.889227092),Alpha)
1111
		RH.C0 = clerp(RH.C0,CFrame.new(0.5, -1.17066813, 0.0498965085, 1, 0, 0, 0, 0.889227092, -0.457466066, 0, 0.457466036, 0.889227092),Alpha)
1112
		LS.C0 = clerp(LS.C0,CFrame.new(-1.25128794, 0.218256205, -0.0704385638, 0.796741128, -0.601582587, 0.0574631058, 0.433282614, 0.502369702, -0.74825865, 0.421271563, 0.621066213, 0.660913825),Alpha)
1113
		RS.C0 = clerp(RS.C0,CFrame.new(1.33687222, 0.263498187, -0.339109778, 0.779864848, 0.604162514, 0.163702518, -0.251701295, 0.542130709, -0.801711202, -0.573112011, 0.584022164, 0.574857235),Alpha)
1114
		NK.C0 = clerp(NK.C0,CFrame.new(0, 1.47531223, -0.0833445787, 1, 0, 0, 0, 0.958908439, 0.283715904, 0, -0.283715934, 0.958908439),Alpha)
1115
	end
1116
	Claw1M.Scale = V3.N(.6,1,1.25)
1117
	Claw2M.Scale = V3.N(.6,1,1.25)
1118
	Claw1.Transparency = 0
1119
	Claw2.Transparency = 0
1120
	for i = 0, 1.6, 0.1 do
1121
		swait()
1122
		local Alpha = .15
1123
		RJ.C0 = clerp(RJ.C0,CFrame.new(0, 0.0557683706, 0.210271984, 1, 0, 0, 0, 0.96131283, -0.275459349, 0, 0.275459349, 0.96131283),Alpha)
1124
		LH.C0 = clerp(LH.C0,CFrame.new(-0.5, -1.07405317, 0.079603225, 1, 0, 0, 0, 0.964729905, 0.263241976, 0, -0.263241976, 0.964729905),Alpha)
1125
		RH.C0 = clerp(RH.C0,CFrame.new(0.5, -1.07405317, 0.079603225, 1, 0, 0, 0, 0.964729905, 0.263241976, 0, -0.263241976, 0.964729905),Alpha)
1126
		LS.C0 = clerp(LS.C0,CFrame.new(-0.973503292, 0.846649706, 0.436822414, 0.328243881, 0.94284308, 0.0574718751, -0.611039519, 0.258339763, -0.748258948, -0.720337927, 0.210493833, 0.660912871),Alpha)
1127
		RS.C0 = clerp(RS.C0,CFrame.new(1.04560089, 0.820306599, 0.520357251, 0.596080899, -0.786060631, 0.163695931, 0.544697285, 0.246096462, -0.801711559, 0.589908898, 0.567049742, 0.574858427),Alpha)
1128
		NK.C0 = clerp(NK.C0,CFrame.new(0, 1.43713045, 0.120943204, 1, 0, 0, 0, 0.982991874, -0.183649719, 0, 0.183649749, 0.982991874),Alpha)
1129
	end
1130
	Claws = true
1131
	Attack = false
1132
	NeutralAnims = true
1133
end
1134
1135
function AttemptHuggleOwO()
1136
	Attack = true
1137
	NeutralAnims = false
1138
	for i = 0, 2, 0.1 do
1139
		swait()
1140
		local Alpha = .2
1141
		RJ.C0 = clerp(RJ.C0,CFrame.new(0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1),Alpha)
1142
		LH.C0 = clerp(LH.C0,CFrame.new(-0.5, -0.999996901, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1),Alpha)
1143
		RH.C0 = clerp(RH.C0,CFrame.new(0.500000477, -0.999996901, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1),Alpha)
1144
		LS.C0 = clerp(LS.C0,CFrame.new(-1.33729529, 0.456638038, 0.16140607, -0.266469032, 0.963840604, -0.00235169032, 0.0237830039, 0.004135984, -0.999708652, -0.963550091, -0.266447306, -0.0240251366),Alpha)
1145
		RS.C0 = clerp(RS.C0,CFrame.new(1.35338628, 0.468459934, 0.177928478, -0.265267879, -0.964171946, -0.00234607165, -0.0224859882, 0.00861900486, -0.999710023, 0.963912547, -0.265138209, -0.0239667017),Alpha)
1146
		NK.C0 = clerp(NK.C0,CFrame.new(0, 1.49999189, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1),Alpha)
1147
	end
1148
	local hit;
1149
	for i = 0, 2, 0.1 do
1150
		swait()
1151
		hit = CastRay(Root.Position,Root.Position+Root.CFrame.lookVector,2)
1152
		local Alpha = .2
1153
		RJ.C0 = clerp(RJ.C0,CFrame.new(0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1),Alpha)
1154
		LH.C0 = clerp(LH.C0,CFrame.new(-0.5, -0.999996901, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1),Alpha)
1155
		RH.C0 = clerp(RH.C0,CFrame.new(0.500000477, -0.999996901, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1),Alpha)
1156
		LS.C0 = clerp(LS.C0,CFrame.new(-0.93656075, 0.329677731, -1.02008939, 0.529792905, -0.746883333, 0.401851743, -0.273926944, -0.599103034, -0.752356112, 0.802672803, 0.288514823, -0.521992028),Alpha)
1157
		RS.C0 = clerp(RS.C0,CFrame.new(0.992939234, 0.25239262, -1.06771588, 0.369606882, 0.837249935, -0.402992934, 0.0150309941, -0.439034939, -0.898344278, -0.929066658, 0.325976849, -0.174855039),Alpha)
1158
		NK.C0 = clerp(NK.C0,CFrame.new(0, 1.49999189, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1),Alpha)
1159
		if(hit and hit.Parent and hit.Parent:FindFirstChildOfClass'Humanoid'and GetTorso(hit.Parent))then break end
1160
	end
1161
	if(hit and hit.Parent and hit.Parent:FindFirstChildOfClass'Humanoid' and GetTorso(hit.Parent))then
1162
		WalkSpeed = 0
1163
		Hum.AutoRotate = false
1164
		local owo = hit.Parent
1165
		local torso = GetTorso(owo)
1166
		local hum = owo:FindFirstChildOfClass'Humanoid'
1167
		local root = owo:FindFirstChild'HumanoidRootPart'
1168
		local rootWeld
1169
		if(root)then 
1170
			rootWeld = (function()
1171
				for _,v in next, owo:GetDescendants() do
1172
					if(v:IsA'JointInstance' and (v.Part0 == root or v.Part1 == root))then
1173
						return {v,v.Part0,v.Part1,v.Parent}
1174
					end
1175
				end
1176
			end)()
1177
			root.Parent = nil
1178
		end
1179
		local GrabWeld = NewInstance("Weld",torso,{Part0=torso,Part1=Torso,C0=CF.N(0,0,-.75)*CF.A(0,M.R(180),0)})
1180
		local Sine = 0
1181
		if(owo:FindFirstChild'Huggled' and owo.Huggled:IsA'BoolValue')then
1182
			owo.Huggled.Value = true
1183
		end
1184
		for i = 0, 6, 0.1 do
1185
			swait()
1186
			Sine = Sine + 1
1187
			local Alpha = .2
1188
			RJ.C0 = clerp(RJ.C0,CFrame.new(0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1),Alpha)
1189
			LH.C0 = clerp(LH.C0,CFrame.new(-0.5, -0.999996901, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1),Alpha)
1190
			RH.C0 = clerp(RH.C0,CFrame.new(0.500000477, -0.999996901, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1),Alpha)
1191
			LS.C0 = clerp(LS.C0,CFrame.new(-0.93656075, 0.329677731, -1.02008939, 0.529792905, -0.746883333, 0.401851743, -0.273926944, -0.599103034, -0.752356112, 0.802672803, 0.288514823, -0.521992028),Alpha)
1192
			RS.C0 = clerp(RS.C0,CFrame.new(0.992939234, 0.25239262, -1.06771588, 0.369606882, 0.837249935, -0.402992934, 0.0150309941, -0.439034939, -0.898344278, -0.929066658, 0.325976849, -0.174855039),Alpha)
1193
			NK.C0 = clerp(NK.C0,CFrame.new(0.438690722, 1.48037314, -0.368569374, 0.941390097, 0.334570527, 0.042981308, -0.33732003, 0.933716714, 0.119951896, 0, -0.127419978, 0.991848886)*CF.A(0,M.R(-15+15*M.C(Sine/8)),0),Alpha)
1194
		end
1195
		local Heart = Part(Char,BrickColor.new'Pink',Enum.Material.Neon,V3.N(2.15,2.13,.59),Torso.CFrame*CF.N(0,-1,0),true,false)
1196
		local HeartMesh = Mesh(Heart,Enum.MeshType.FileMesh,"rbxassetid://431221914","",V3.N(.5,.5,.2),V3.N())
1197
		coroutine.wrap(function()
1198
			local speed = .35
1199
			for i = 0, 6, .1 do
1200
				speed = speed - (.5/60)
1201
				Heart.CFrame = Heart.CFrame * CF.N(0,speed,0)
1202
				Heart.Transparency = math.max(1-i/3,0)
1203
				swait()
1204
			end
1205
			delay(1, function()
1206
				for i = 0, 3, .1 do
1207
					Heart.Transparency = i/3
1208
					swait()
1209
				end
1210
				Heart:destroy()
1211
			end)
1212
			
1213
		end)()
1214
		Sound(Torso,270763316,1,5,false,true,true)
1215
		for i = 0, 6, 0.1 do
1216
			swait()
1217
			Sine = Sine + 1
1218
			local Alpha = .2
1219
			RJ.C0 = clerp(RJ.C0,CFrame.new(0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1),Alpha)
1220
			LH.C0 = clerp(LH.C0,CFrame.new(-0.5, -0.999996901, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1),Alpha)
1221
			RH.C0 = clerp(RH.C0,CFrame.new(0.500000477, -0.999996901, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1),Alpha)
1222
			LS.C0 = clerp(LS.C0,CFrame.new(-0.93656075, 0.329677731, -1.02008939, 0.529792905, -0.746883333, 0.401851743, -0.273926944, -0.599103034, -0.752356112, 0.802672803, 0.288514823, -0.521992028),Alpha)
1223
			RS.C0 = clerp(RS.C0,CFrame.new(0.992939234, 0.25239262, -1.06771588, 0.369606882, 0.837249935, -0.402992934, 0.0150309941, -0.439034939, -0.898344278, -0.929066658, 0.325976849, -0.174855039),Alpha)
1224
			NK.C0 = clerp(NK.C0,CFrame.new(0.438690722, 1.48037314, -0.368569374, 0.941390097, 0.334570527, 0.042981308, -0.33732003, 0.933716714, 0.119951896, 0, -0.127419978, 0.991848886)*CF.A(0,M.R(-15+15*M.C(Sine/8)),0),Alpha)
1225
		end
1226
		if(owo:FindFirstChild'Huggled' and owo.Huggled:IsA'BoolValue')then
1227
			owo.Huggled.Value = false
1228
		end
1229
		WalkSpeed = 16
1230
		Hum.AutoRotate = true
1231
		local pp = torso.CFrame
1232
		if(root)then root.Parent = owo if(rootWeld)then rootWeld[1].Parent = rootWeld[4] rootWeld[1].Part0 = rootWeld[2] rootWeld[1].Part1 = rootWeld[3] end end
1233
		GrabWeld:destroy()
1234
	end
1235
	
1236
	Attack = false
1237
	NeutralAnims = true
1238
end
1239
1240
function AttemptKissUwU()
1241
	Attack = true
1242
	NeutralAnims = false
1243
	for i = 0, 2, 0.1 do
1244
		swait()
1245
		local Alpha = .2
1246
		RJ.C0 = clerp(RJ.C0,CFrame.new(0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1),Alpha)
1247
		LH.C0 = clerp(LH.C0,CFrame.new(-0.5, -0.999996901, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1),Alpha)
1248
		RH.C0 = clerp(RH.C0,CFrame.new(0.500000477, -0.999996901, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1),Alpha)
1249
		LS.C0 = clerp(LS.C0,CFrame.new(-1.33729529, 0.456638038, 0.16140607, -0.266469032, 0.963840604, -0.00235169032, 0.0237830039, 0.004135984, -0.999708652, -0.963550091, -0.266447306, -0.0240251366),Alpha)
1250
		RS.C0 = clerp(RS.C0,CFrame.new(1.35338628, 0.468459934, 0.177928478, -0.265267879, -0.964171946, -0.00234607165, -0.0224859882, 0.00861900486, -0.999710023, 0.963912547, -0.265138209, -0.0239667017),Alpha)
1251
		NK.C0 = clerp(NK.C0,CFrame.new(0, 1.49999189, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1),Alpha)
1252
	end
1253
	local hit;
1254
	for i = 0, 2, 0.1 do
1255
		swait()
1256
		hit = CastRay(Root.Position,Root.Position+Root.CFrame.lookVector,2)
1257
		local Alpha = .2
1258
		RJ.C0 = clerp(RJ.C0,CFrame.new(0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1),Alpha)
1259
		LH.C0 = clerp(LH.C0,CFrame.new(-0.5, -0.999996901, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1),Alpha)
1260
		RH.C0 = clerp(RH.C0,CFrame.new(0.500000477, -0.999996901, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1),Alpha)
1261
		LS.C0 = clerp(LS.C0,CFrame.new(-0.93656075, 0.329677731, -1.02008939, 0.529792905, -0.746883333, 0.401851743, -0.273926944, -0.599103034, -0.752356112, 0.802672803, 0.288514823, -0.521992028),Alpha)
1262
		RS.C0 = clerp(RS.C0,CFrame.new(0.992939234, 0.25239262, -1.06771588, 0.369606882, 0.837249935, -0.402992934, 0.0150309941, -0.439034939, -0.898344278, -0.929066658, 0.325976849, -0.174855039),Alpha)
1263
		NK.C0 = clerp(NK.C0,CFrame.new(0, 1.49999189, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1),Alpha)
1264
		if(hit and hit.Parent and hit.Parent:FindFirstChildOfClass'Humanoid'and GetTorso(hit.Parent))then break end
1265
	end
1266
	if(hit and hit.Parent and hit.Parent:FindFirstChildOfClass'Humanoid' and GetTorso(hit.Parent))then
1267
		WalkSpeed = 0
1268
		Hum.AutoRotate = false
1269
		local owo = hit.Parent
1270
		local torso = GetTorso(owo)
1271
		local hum = owo:FindFirstChildOfClass'Humanoid'
1272
		local root = owo:FindFirstChild'HumanoidRootPart'
1273
		local rootWeld
1274
		if(root)then 
1275
			rootWeld = (function()
1276
				for _,v in next, owo:GetDescendants() do
1277
					if(v:IsA'JointInstance' and (v.Part0 == root or v.Part1 == root))then
1278
						return {v,v.Part0,v.Part1,v.Parent}
1279
					end
1280
				end
1281
			end)()
1282
			root.Parent = nil
1283
		end
1284
		local GrabWeld = NewInstance("Weld",torso,{Part0=torso,Part1=Torso,C0=CF.N(0,0,-.75)*CF.A(0,M.R(180),0)})
1285
		local Sine = 0
1286
		if(owo:FindFirstChild'Kissed' and owo.Kissed:IsA'BoolValue')then
1287
			owo.Kissed.Value = true
1288
		end
1289
		for i = 0, 6, 0.1 do
1290
			swait()		
1291
			local Alpha = .2
1292
			Sine = Sine + 1
1293
			RJ.C0 = clerp(RJ.C0,CFrame.new(0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1),Alpha)
1294
			LH.C0 = clerp(LH.C0,CFrame.new(-0.5, -0.999996901, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1),Alpha)
1295
			RH.C0 = clerp(RH.C0,CFrame.new(0.500000477, -0.999996901, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1),Alpha)
1296
			LS.C0 = clerp(LS.C0,CFrame.new(-0.93656075, 0.329677731, -1.02008939, 0.529792905, -0.746883333, 0.401851743, -0.273926944, -0.599103034, -0.752356112, 0.802672803, 0.288514823, -0.521992028)*CF.A(M.R(0+5*M.C(Sine/12)),0,0),Alpha)
1297
			RS.C0 = clerp(RS.C0,CFrame.new(0.992939234, 0.25239262, -1.06771588, 0.369606882, 0.837249935, -0.402992934, 0.0150309941, -0.439034939, -0.898344278, -0.929066658, 0.325976849, -0.174855039)*CF.A(M.R(0-5*M.C(Sine/12)),0,0),Alpha)
1298
			NK.C0 = clerp(NK.C0,CFrame.new(0, 1.49999189, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1),Alpha)
1299
		
1300
		end
1301
		local Heart = Part(Char,BrickColor.new'Pink',Enum.Material.Neon,V3.N(2.15,2.13,.59),Torso.CFrame*CF.N(0,-1,0),true,false)
1302
		local HeartMesh = Mesh(Heart,Enum.MeshType.FileMesh,"rbxassetid://431221914","",V3.N(.5,.5,.2),V3.N())
1303
		coroutine.wrap(function()
1304
			local speed = .35
1305
			for i = 0, 6, .1 do
1306
				speed = speed - (.5/60)
1307
				Heart.CFrame = Heart.CFrame * CF.N(0,speed,0)
1308
				Heart.Transparency = math.max(1-i/3,0)
1309
				swait()
1310
			end
1311
			delay(1, function()
1312
				for i = 0, 3, .1 do
1313
					Heart.Transparency = i/3
1314
					swait()
1315
				end
1316
				Heart:destroy()
1317
			end)
1318
		end)()
1319
		Sound(Torso,270763316,1,5,false,true,true)
1320
		for i = 0, 6, 0.1 do
1321
			swait()		
1322
			local Alpha = .2
1323
			Sine = Sine + 1
1324
			RJ.C0 = clerp(RJ.C0,CFrame.new(0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1),Alpha)
1325
			LH.C0 = clerp(LH.C0,CFrame.new(-0.5, -0.999996901, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1),Alpha)
1326
			RH.C0 = clerp(RH.C0,CFrame.new(0.500000477, -0.999996901, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1),Alpha)
1327
			LS.C0 = clerp(LS.C0,CFrame.new(-0.93656075, 0.329677731, -1.02008939, 0.529792905, -0.746883333, 0.401851743, -0.273926944, -0.599103034, -0.752356112, 0.802672803, 0.288514823, -0.521992028)*CF.A(M.R(0+5*M.C(Sine/12)),0,0),Alpha)
1328
			RS.C0 = clerp(RS.C0,CFrame.new(0.992939234, 0.25239262, -1.06771588, 0.369606882, 0.837249935, -0.402992934, 0.0150309941, -0.439034939, -0.898344278, -0.929066658, 0.325976849, -0.174855039)*CF.A(M.R(0-5*M.C(Sine/12)),0,0),Alpha)
1329
			NK.C0 = clerp(NK.C0,CFrame.new(0, 1.49999189, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1),Alpha)
1330
		end
1331
		if(owo:FindFirstChild'Kissed' and owo.Kissed:IsA'BoolValue')then
1332
			owo.Kissed.Value = false
1333
		end
1334
		WalkSpeed = 16
1335
		Hum.AutoRotate = true
1336
		local pp = torso.CFrame
1337
		if(root)then root.Parent = owo if(rootWeld)then rootWeld[1].Parent = rootWeld[4] rootWeld[1].Part0 = rootWeld[2] rootWeld[1].Part1 = rootWeld[3] end end
1338
		GrabWeld:destroy()
1339
	end
1340
	
1341
	Attack = false
1342
	NeutralAnims = true
1343
end
1344
1345
--// Wrap it all up \\--
1346
1347
Mouse.KeyDown:connect(function(k)
1348
	if(Attack or Huggled.Value or Kissed.Value)then return end
1349
	if(Claws)then
1350
		if(k == 'z')then ChangeStance('PatientDoggo') end
1351
		if(k == 'x')then ChangeStance('SleepyDoggo') end
1352
		if(k == 'f')then ShrinkClaws() end
1353
	else
1354
		if(k == 'z')then ChangeStance('PatientDoggo') end
1355
		if(k == 'x')then ChangeStance('SleepyDoggo') end
1356
		if(k == 'h')then AttemptHuggleOwO() end	
1357
		if(k == 'k')then AttemptKissUwU() end	
1358
		if(k == 'f')then GrowClaws() end
1359
	end
1360
end)
1361
1362
while true do
1363
	swait()
1364
	Sine = Sine + Change
1365
	
1366
	
1367
	if(God)then
1368
		Hum.MaxHealth = 1e100
1369
		Hum.Health = 1e100
1370
		if(not Char:FindFirstChildOfClass'ForceField')then IN("ForceField",Char).Visible = false end
1371
		Hum.Name = M.RNG()*100
1372
	end
1373
	
1374
	local hitfloor,posfloor = workspace:FindPartOnRay(Ray.new(Root.CFrame.p,((CFrame.new(Root.Position,Root.Position - Vector3.new(0,1,0))).lookVector).unit * (4*PlayerSize)), Char)
1375
	
1376
	local Walking = (math.abs(Root.Velocity.x) > 1 or math.abs(Root.Velocity.z) > 1)
1377
	local State = (Hum.PlatformStand and 'Paralyzed' or Hum.Sit and 'Sit' or not hitfloor and Root.Velocity.y < -1 and "Fall" or not hitfloor and Root.Velocity.y > 1 and "Jump" or hitfloor and Walking and (Hum.WalkSpeed < 16 and "Walk" or "Run") or hitfloor and "Idle")
1378
	if(not Effects or not Effects.Parent)then
1379
		Effects = IN("Model",Char)
1380
		Effects.Name = "Effects"
1381
	end	
1382
	if(not Huggled.Value and not Kissed.Value)then																																																																																																			
1383
		if(State == 'Run')then
1384
			local wsVal = 20 / (Hum.WalkSpeed/16)
1385
			local Alpha = math.min(.2 * (Hum.WalkSpeed/16),1)
1386
			Change = 3
1387
			RH.C1 = RH.C1:lerp(CF.N(0,1,0)*CF.N(0,0-.2*M.C(Sine/wsVal),0+.4*M.C(Sine/wsVal))*CF.A(M.R(15+25*M.C(Sine/wsVal))+-M.S(Sine/wsVal),0,0),Alpha)
1388
			LH.C1 = LH.C1:lerp(CF.N(0,1,0)*CF.N(0,0+.2*M.C(Sine/wsVal),0-.4*M.C(Sine/wsVal))*CF.A(M.R(15-25*M.C(Sine/wsVal))+M.S(Sine/wsVal),0,0),Alpha)	
1389
		elseif(State == 'Walk')then
1390
			local wsVal = 7 / (Hum.WalkSpeed/8)
1391
			local Alpha = math.min(.3 * (Hum.WalkSpeed/8),1)
1392
			Change = .9
1393
			RH.C1 = RH.C1:lerp(CF.N(0,1,0)*CF.N(0,0-.5*M.C(Sine/wsVal)/2,0+.6*M.C(Sine/wsVal)/2)*CF.A(M.R(15-2*M.C(Sine/wsVal))+-M.S(Sine/wsVal)/2.5,0,0),Alpha)
1394
			LH.C1 = LH.C1:lerp(CF.N(0,1,0)*CF.N(0,0+.5*M.C(Sine/wsVal)/2,0-.6*M.C(Sine/wsVal)/2)*CF.A(M.R(15+2*M.C(Sine/wsVal))+M.S(Sine/wsVal)/2.5,0,0),Alpha)	
1395
		else
1396
			RH.C1 = RH.C1:lerp(CF.N(0,1,0),.2)
1397
			LH.C1 = LH.C1:lerp(CF.N(0,1,0),.2)
1398
		end	
1399
	else
1400
		RH.C1 = RH.C1:lerp(CF.N(0,1,0),.2)
1401
		LH.C1 = LH.C1:lerp(CF.N(0,1,0),.2)
1402
	end
1403
	if(State ~= 'Idle')then
1404
		Stance = 0
1405
	end
1406
	Hum.WalkSpeed = WalkSpeed
1407
	
1408
	if(Huggled.Value)then
1409
		WalkSpeed = 0
1410
		Change = 1
1411
		local Alpha = .2
1412
		RJ.C0 = clerp(RJ.C0,CFrame.new(0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1),Alpha)
1413
		LH.C0 = clerp(LH.C0,CFrame.new(-0.5, -0.999996901, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1),Alpha)
1414
		RH.C0 = clerp(RH.C0,CFrame.new(0.500000477, -0.999996901, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1),Alpha)
1415
		LS.C0 = clerp(LS.C0,CFrame.new(-0.93656075, 0.329677731, -1.02008939, 0.529792905, -0.746883333, 0.401851743, -0.273926944, -0.599103034, -0.752356112, 0.802672803, 0.288514823, -0.521992028),Alpha)
1416
		RS.C0 = clerp(RS.C0,CFrame.new(0.992939234, 0.25239262, -1.06771588, 0.369606882, 0.837249935, -0.402992934, 0.0150309941, -0.439034939, -0.898344278, -0.929066658, 0.325976849, -0.174855039),Alpha)
1417
		NK.C0 = clerp(NK.C0,CFrame.new(0.438690722, 1.48037314, -0.368569374, 0.941390097, 0.334570527, 0.042981308, -0.33732003, 0.933716714, 0.119951896, 0, -0.127419978, 0.991848886)*CF.A(0,M.R(-15+15*M.C(Sine/8)),0),Alpha)
1418
	elseif(Kissed.Value)then
1419
		WalkSpeed = 0
1420
		Change = 1
1421
		local Alpha = .2
1422
		RJ.C0 = clerp(RJ.C0,CFrame.new(0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1),Alpha)
1423
		LH.C0 = clerp(LH.C0,CFrame.new(-0.5, -0.999996901, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1),Alpha)
1424
		RH.C0 = clerp(RH.C0,CFrame.new(0.500000477, -0.999996901, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1),Alpha)
1425
		LS.C0 = clerp(LS.C0,CFrame.new(-0.93656075, 0.329677731, -1.02008939, 0.529792905, -0.746883333, 0.401851743, -0.273926944, -0.599103034, -0.752356112, 0.802672803, 0.288514823, -0.521992028)*CF.A(M.R(0+5*M.C(Sine/12)),0,0),Alpha)
1426
		RS.C0 = clerp(RS.C0,CFrame.new(0.992939234, 0.25239262, -1.06771588, 0.369606882, 0.837249935, -0.402992934, 0.0150309941, -0.439034939, -0.898344278, -0.929066658, 0.325976849, -0.174855039)*CF.A(M.R(0-5*M.C(Sine/12)),0,0),Alpha)
1427
		NK.C0 = clerp(NK.C0,CFrame.new(0, 1.49999189, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1),Alpha)
1428
						
1429
	elseif(NeutralAnims)then
1430
		WalkSpeed = 16
1431
		if(State == 'Idle')then
1432
			if(Stance == 'PatientDoggo')then
1433
				local Alpha = .1
1434
				Change = .65
1435
				RJ.C0 = clerp(RJ.C0,CFrame.new(0, -2.10780478, 0.970854104, 1, 0, 0, 0, 0.530292034, -0.847815096, 0, 0.847815096, 0.530292034),Alpha)
1436
				LH.C0 = clerp(LH.C0,CFrame.new(-0.52337563, -1.22678924, -0.0346571803, 0.966510594, 0.256626785, -1.12175131e-08, -0.217572063, 0.819422245, -0.530292094, -0.136087134, 0.512532949, 0.847815096)*CF.A(0,0,M.R(0+5*M.C(Sine/24))),Alpha)
1437
				RH.C0 = clerp(RH.C0,CFrame.new(0.483448207, -1.22678924, -0.03465271, 0.966530263, -0.256553054, 0, 0.217509553, 0.819438934, -0.530292034, 0.136048034, 0.512543321, 0.847815096)*CF.A(0,0,M.R(0-5*M.C(Sine/24))),Alpha)
1438
				LS.C0 = clerp(LS.C0,CFrame.new(-1.46229315, 0.513410747, -0.0264457762, 0.884941101, 0.463346928, -0.0467846096, -0.0823113322, 0.254497528, 0.963564157, 0.458371073, -0.848846674, 0.263354063)*CF.A(0,0,M.R(0+5*M.C(Sine/24))),Alpha)
1439
				RS.C0 = clerp(RS.C0,CFrame.new(1.54346466, 0.54600054, -0.0126776993, 0.897622228, -0.43827334, -0.0468073376, 0.156223357, 0.217049524, 0.963578641, -0.412151307, -0.872242033, 0.263296962)*CF.A(0,0,M.R(0-5*M.C(Sine/24))),Alpha)
1440
				NK.C0 = clerp(NK.C0,CFrame.new(0, 1.52029264, -0.216603011, 1, 0, 0, 0, 0.938926339, 0.344118178, 0, -0.344118178, 0.938926339)*CF.A(M.R(0+5*M.C(Sine/24)),0,0),Alpha)
1441
			elseif(Stance == 'SleepyDoggo')then
1442
				local Alpha = .1
1443
				Change = .65
1444
				RJ.C0 = clerp(RJ.C0,CFrame.new(0.00765379518, -2.37531877, 0.490188628, 0.999769688, 0.0154944565, -0.0148536079, -0.0155909583, 0.0486059822, -0.998696327, -0.0147522828, 0.998697996, 0.0488363579),Alpha)
1445
				LH.C0 = clerp(LH.C0,CFrame.new(-0.556329548, -1.01782084, 0.0523337759, 0.936391771, -0.350610018, 0.0155910021, 0.350947887, 0.935132623, -0.0486090034, 0.00246314798, 0.0509886928, 0.998696208),Alpha)
1446
				RH.C0 = clerp(RH.C0,CFrame.new(0.582500875, -1.16751981, 0.133858949, 0.663288414, 0.726090193, -0.181222796, -0.708711624, 0.53166908, -0.463741302, -0.240367457, 0.436028928, 0.867238283),Alpha)
1447
				LS.C0 = clerp(LS.C0,CFrame.new(-1.20878398, 0.944466412, 0.12843433, 0.668268919, -0.739066303, 0.0848394409, -0.743897796, -0.663009524, 0.083873339, -0.00573859736, -0.119161807, -0.992858231),Alpha)
1448
				RS.C0 = clerp(RS.C0,CFrame.new(1.20252943, 0.88095963, 0.00249876827, 0.668030798, 0.735071719, -0.115777783, 0.743981063, -0.662912428, 0.0839017108, -0.0150767555, -0.142185375, -0.989725292),Alpha)
1449
				NK.C0 = clerp(NK.C0,CFrame.new(6.67600625e-06, 1.34367204, -0.326096922, 1, 0, 9.31322575e-10, -2.91038305e-11, 0.895097136, 0.445871502, 0, -0.445871502, 0.895096958)*CF.A(M.R(0+5*M.C(Sine/24)),0,0),Alpha)
1450
			else
1451
				Change = 1
1452
				local Alpha = .1
1453
				RJ.C0 = RJ.C0:lerp(CF.N(0,0+.05*M.C(Sine/16),0),Alpha)
1454
				NK.C0 = NK.C0:lerp(NKC0,Alpha)
1455
				LH.C0 = LH.C0:lerp(LHC0*CF.N(0,0-.05*M.C(Sine/16),0)*CF.A(0,0,-M.R(1+1*M.S(Sine/16))),Alpha)
1456
				RH.C0 = RH.C0:lerp(RHC0*CF.N(0,0-.05*M.C(Sine/16),0)*CF.A(0,0,M.R(1+1*M.S(Sine/16))),Alpha)
1457
				LS.C0 = LS.C0:lerp(LSC0*CF.N(0,0+.15*M.C(Sine/16),0)*CF.A(0,0,-M.R(5+5*M.S(Sine/16))),Alpha)
1458
				RS.C0 = RS.C0:lerp(RSC0*CF.N(0,0+.15*M.C(Sine/16),0)*CF.A(0,0,M.R(5+5*M.S(Sine/16))),Alpha)
1459
			end
1460
		elseif(State == 'Run')then
1461
			local wsVal = 20 / (Hum.WalkSpeed/16)
1462
			local Alpha = math.min(.2 * (Hum.WalkSpeed/16),1)
1463
			RJ.C0 = RJ.C0:lerp(CF.N(0,0-.1*M.C(Sine/(wsVal/2)),0)*CF.A(M.R(-7+2.5*M.C(Sine/(wsVal/2))),M.R(8*M.C(Sine/wsVal)),0),Alpha)
1464
			NK.C0 = NK.C0:lerp(NKC0,Alpha)
1465
			LS.C0 = LS.C0:lerp(LSC0*CF.N(0,0,0-.3*M.S(Sine/wsVal))*CF.A(M.R(0+45*M.S(Sine/wsVal)),0,M.R(-5)),Alpha)
1466
			RS.C0 = RS.C0:lerp(RSC0*CF.N(0,0,0+.3*M.S(Sine/wsVal))*CF.A(M.R(0-45*M.S(Sine/wsVal)),0,M.R(5)),Alpha)
1467
			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)
1468
			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)
1469
		elseif(State == 'Walk')then
1470
			local wsVal = 7 / (Hum.WalkSpeed/8)
1471
			local Alpha = math.min(.3 * (Hum.WalkSpeed/8),1)
1472
			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)
1473
			NK.C0 = NK.C0:lerp(NKC0,Alpha)
1474
			LS.C0 = LS.C0:lerp(LSC0*CF.N(0,0,-.1*M.C(Sine/wsVal))*CF.A(M.R(37*M.C(Sine/wsVal)),0,M.R(-5)),Alpha)
1475
			RS.C0 = RS.C0:lerp(RSC0*CF.N(0,0,.1*M.C(Sine/wsVal))*CF.A(M.R(-37*M.C(Sine/wsVal)),0,M.R(5)),Alpha)
1476
			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)
1477
			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)
1478
		elseif(State == 'Jump')then
1479
			local Alpha = .1
1480
			Change = .5
1481
			local idk = math.min(math.max(Root.Velocity.Y/50,-M.R(90)),M.R(90))
1482
			LS.C0 = LS.C0:lerp(LSC0*CF.A(M.R(165+.25*M.C(Sine/6)),0,0),Alpha)
1483
			RS.C0 = RS.C0:lerp(RSC0*CF.A(M.R(165+.25*M.C(Sine/6)),0,0),Alpha)
1484
			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)
1485
			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)
1486
			LH.C0 = LH.C0:lerp(LHC0*CF.A(0,0,M.R(-5)),Alpha)
1487
			RH.C0 = RH.C0:lerp(RHC0*CF.N(0,1,-.5)*CF.A(M.R(-5),0,M.R(5)),Alpha)
1488
		elseif(State == 'Fall')then
1489
			local Alpha = .1
1490
			local idk = math.min(math.max(Root.Velocity.Y/50,-M.R(90)),M.R(90))
1491
			LS.C0 = LS.C0:lerp(LSC0*CF.A(M.R(165+.25*M.C(Sine/6))+idk,0,0),Alpha)
1492
			RS.C0 = RS.C0:lerp(RSC0*CF.A(M.R(165+.25*M.C(Sine/6))+idk,0,0),Alpha)
1493
			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)
1494
			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)
1495
			LH.C0 = LH.C0:lerp(LHC0*CF.A(0,0,M.R(-5)),Alpha)
1496
			RH.C0 = RH.C0:lerp(RHC0*CF.N(0,1,-.5)*CF.A(M.R(-5),0,M.R(5)),Alpha)
1497
		elseif(State == 'Paralyzed')then
1498
			-- paralyzed
1499
		elseif(State == 'Sit')then
1500
			-- sit
1501
		end
1502
	end
1503
	
1504
end