View difference between Paste ID: K1HqM54W and YjEtnnJ9
SHOW: | | - or go back to the newest paste.
1
--//=========================================================================\\--
2
--||			        STRONG BOI CREATED BY SHACKLUSTER
3
--\\=========================================================================//--
4
--https://github.com/Mokiros/roblox-FE-compatibility
5
if game:GetService("RunService"):IsClient() then error("Script must be server-side in order to work; use h/ and not hl/") end
6
local Player,game,owner = owner,game
7
local RealPlayer = Player
8
do
9
	print("FE Compatibility code V2 by Mokiros")
10
	local RealPlayer = RealPlayer
11
	script.Parent = RealPlayer.Character
12
13
	--Fake event to make stuff like Mouse.KeyDown work
14
	local Disconnect_Function = function(this)
15
		this[1].Functions[this[2]] = nil
16
	end
17
	local Disconnect_Metatable = {__index={disconnect=Disconnect_Function,Disconnect=Disconnect_Function}}
18
	local FakeEvent_Metatable = {__index={
19
		Connect = function(this,f)
20
			local i = tostring(math.random(0,10000))
21
			while this.Functions[i] do
22
				i = tostring(math.random(0,10000))
23
			end
24
			this.Functions[i] = f
25
			return setmetatable({this,i},Disconnect_Metatable)
26
		end
27
	}}
28
	FakeEvent_Metatable.__index.connect = FakeEvent_Metatable.__index.Connect
29
	local function fakeEvent()
30
		return setmetatable({Functions={}},FakeEvent_Metatable)
31
	end
32
33
	--Creating fake input objects with fake variables
34
    local FakeMouse = {Hit=CFrame.new(),KeyUp=fakeEvent(),KeyDown=fakeEvent(),Button1Up=fakeEvent(),Button1Down=fakeEvent(),Button2Up=fakeEvent(),Button2Down=fakeEvent()}
35
    FakeMouse.keyUp = FakeMouse.KeyUp
36
    FakeMouse.keyDown = FakeMouse.KeyDown
37
	local UIS = {InputBegan=fakeEvent(),InputEnded=fakeEvent()}
38
	local CAS = {Actions={},BindAction=function(self,name,fun,touch,...)
39
		CAS.Actions[name] = fun and {Name=name,Function=fun,Keys={...}} or nil
40
	end}
41
	--Merged 2 functions into one by checking amount of arguments
42
	CAS.UnbindAction = CAS.BindAction
43
44
	--This function will trigger the events that have been :Connect()'ed
45
	local function TriggerEvent(self,ev,...)
46
		for _,f in pairs(self[ev].Functions) do
47
			f(...)
48
		end
49
	end
50
	FakeMouse.TriggerEvent = TriggerEvent
51
	UIS.TriggerEvent = TriggerEvent
52
53
	--Client communication
54
	local Event = Instance.new("RemoteEvent")
55
	Event.Name = "UserInput_Event"
56
	Event.OnServerEvent:Connect(function(plr,io)
57
	    if plr~=RealPlayer then return end
58
		FakeMouse.Target = io.Target
59
		FakeMouse.Hit = io.Hit
60
		if not io.isMouse then
61
			local b = io.UserInputState == Enum.UserInputState.Begin
62
			if io.UserInputType == Enum.UserInputType.MouseButton1 then
63
				return FakeMouse:TriggerEvent(b and "Button1Down" or "Button1Up")
64
			end
65
			if io.UserInputType == Enum.UserInputType.MouseButton2 then
66
				return FakeMouse:TriggerEvent(b and "Button2Down" or "Button2Up")
67
			end
68
			for _,t in pairs(CAS.Actions) do
69
				for _,k in pairs(t.Keys) do
70
					if k==io.KeyCode then
71
						t.Function(t.Name,io.UserInputState,io)
72
					end
73
				end
74
			end
75
			FakeMouse:TriggerEvent(b and "KeyDown" or "KeyUp",io.KeyCode.Name:lower())
76
			UIS:TriggerEvent(b and "InputBegan" or "InputEnded",io,false)
77
	    end
78
	end)
79
	Event.Parent = NLS([==[local Event = script:WaitForChild("UserInput_Event")
80
	local Mouse = owner:GetMouse()
81
	local UIS = game:GetService("UserInputService")
82
	local input = function(io,RobloxHandled)
83
		if RobloxHandled then return end
84
		--Since InputObject is a client-side instance, we create and pass table instead
85
		Event:FireServer({KeyCode=io.KeyCode,UserInputType=io.UserInputType,UserInputState=io.UserInputState,Hit=Mouse.Hit,Target=Mouse.Target})
86
	end
87
	UIS.InputBegan:Connect(input)
88
	UIS.InputEnded:Connect(input)
89
90
	local h,t
91
	--Give the server mouse data every second frame, but only if the values changed
92
	--If player is not moving their mouse, client won't fire events
93
	local HB = game:GetService("RunService").Heartbeat
94
	while true do
95
		if h~=Mouse.Hit or t~=Mouse.Target then
96
			h,t=Mouse.Hit,Mouse.Target
97
			Event:FireServer({isMouse=true,Target=t,Hit=h})
98
		end
99
		--Wait 2 frames
100
		for i=1,2 do
101
			HB:Wait()
102
		end
103
	end]==],script)
104
105
	----Sandboxed game object that allows the usage of client-side methods and services
106
	--Real game object
107
	local RealGame = game
108
109
	--Metatable for fake service
110
	local FakeService_Metatable = {
111
		__index = function(self,k)
112
			local s = rawget(self,"_RealService")
113
			if s then
114
				return typeof(s[k])=="function"
115
				and function(_,...)return s[k](s,...)end or s[k]
116
			end
117
		end,
118
		__newindex = function(self,k,v)
119
			local s = rawget(self,"_RealService")
120
			if s then s[k]=v end
121
		end
122
	}
123
	local function FakeService(t,RealService)
124
		t._RealService = typeof(RealService)=="string" and RealGame:GetService(RealService) or RealService
125
		return setmetatable(t,FakeService_Metatable)
126
	end
127
128
	--Fake game object
129
	local FakeGame = {
130
		GetService = function(self,s)
131
			return rawget(self,s) or RealGame:GetService(s)
132
		end,
133
		Players = FakeService({
134
			LocalPlayer = FakeService({GetMouse=function(self)return FakeMouse end},Player)
135
		},"Players"),
136
		UserInputService = FakeService(UIS,"UserInputService"),
137
		ContextActionService = FakeService(CAS,"ContextActionService"),
138
		RunService = FakeService({
139
			_btrs = {},
140
			RenderStepped = RealGame:GetService("RunService").Heartbeat,
141
			BindToRenderStep = function(self,name,_,fun)
142
				self._btrs[name] = self.Heartbeat:Connect(fun)
143
			end,
144
			UnbindFromRenderStep = function(self,name)
145
				self._btrs[name]:Disconnect()
146
			end,
147
		},"RunService")
148
	}
149
	rawset(FakeGame.Players,"localPlayer",FakeGame.Players.LocalPlayer)
150
	FakeGame.service = FakeGame.GetService
151
	FakeService(FakeGame,game)
152
	--Changing owner to fake player object to support owner:GetMouse()
153
	game,owner = FakeGame,FakeGame.Players.LocalPlayer
154
end
155
print("Strong Boi Loaded")
156
157
Player = game:GetService("Players").LocalPlayer
158
PlayerGui = Player.PlayerGui
159
Cam = workspace.CurrentCamera
160
Backpack = Player.Backpack
161
Character = Player.Character
162
Humanoid = Character:FindFirstChildOfClass("Humanoid")
163
Mouse = Player:GetMouse()
164
RootPart = Character["HumanoidRootPart"]
165
Torso = Character["Torso"]
166
Head = Character["Head"]
167
RightArm = Character["Right Arm"]
168
LeftArm = Character["Left Arm"]
169
RightLeg = Character["Right Leg"]
170
LeftLeg = Character["Left Leg"]
171
RootJoint = RootPart["RootJoint"]
172
Neck = Torso["Neck"]
173
RightShoulder = Torso["Right Shoulder"]
174
LeftShoulder = Torso["Left Shoulder"]
175
RightHip = Torso["Right Hip"]
176
LeftHip = Torso["Left Hip"]
177
local sick = Instance.new("Sound",Character)
178
179
IT = Instance.new
180
CF = CFrame.new
181
VT = Vector3.new
182
RAD = math.rad
183
C3 = Color3.new
184
UD2 = UDim2.new
185
BRICKC = BrickColor.new
186
ANGLES = CFrame.Angles
187
EULER = CFrame.fromEulerAnglesXYZ
188
COS = math.cos
189
ACOS = math.acos
190
SIN = math.sin
191
ASIN = math.asin
192
ABS = math.abs
193
MRANDOM = math.random
194
FLOOR = math.floor
195
196
--//=================================\\
197
--|| 	      USEFUL VALUES
198
--\\=================================//
199
200
Animation_Speed = 3
201
Frame_Speed = 1 / 60 -- (1 / 30) OR (1 / 60)
202
local Speed = 45
203
local SIZE = 1.02
204
local ROOTC0 = CF(0, 0, 0) * ANGLES(RAD(-90), RAD(0), RAD(180))
205
local NECKC0 = CF(0, 1.1, 0) * ANGLES(RAD(-90), RAD(0), RAD(180))
206
local RIGHTSHOULDERC0 = CF(-0.5, 0, 0) * ANGLES(RAD(0), RAD(90), RAD(0))
207
local LEFTSHOULDERC0 = CF(0.5, 0, 0) * ANGLES(RAD(0), RAD(-90), RAD(0))
208
local ANIM = "Idle"
209
local ATTACK = false
210
local COMBO = 1
211
local Rooted = false
212
local SINE = 0
213
local CHANGE = 2 / Animation_Speed
214
local ROBLOXIDLEANIMATION = IT("Animation")
215
local WEAPONGUI = IT("ScreenGui", PlayerGui)
216
WEAPONGUI.Name = "Big Boie Squad"
217
local ANIMATOR = Humanoid.Animator
218
local ANIMATE = Character.Animate
219
local UNANCHOR = true
220
local KILLCOUNT = 0
221
222
--//=================================\\
223
--\\=================================//
224
225
226
--//=================================\\
227
--|| SAZERENOS' ARTIFICIAL HEARTBEAT
228
--\\=================================//
229
230
ArtificialHB = Instance.new("BindableEvent", script)
231
ArtificialHB.Name = "ArtificialHB"
232
233
script:WaitForChild("ArtificialHB")
234
235
frame = Frame_Speed
236
tf = 0
237
allowframeloss = false
238
tossremainder = false
239
lastframe = tick()
240
script.ArtificialHB:Fire()
241
242
game:GetService("RunService").Heartbeat:connect(function(s, p)
243
	tf = tf + s
244
	if tf >= frame then
245
		if allowframeloss then
246
			script.ArtificialHB:Fire()
247
			lastframe = tick()
248
		else
249
			for i = 1, math.floor(tf / frame) do
250
				script.ArtificialHB:Fire()
251
			end
252
		lastframe = tick()
253
		end
254
		if tossremainder then
255
			tf = 0
256
		else
257
			tf = tf - frame * math.floor(tf / frame)
258
		end
259
	end
260
end)
261
262
--//=================================\\
263
--\\=================================//
264
265
--//=================================\\
266
--|| 	      SOME FUNCTIONS
267
--\\=================================//
268
269
function Raycast(POSITION, DIRECTION, RANGE, IGNOREDECENDANTS)
270
	return workspace:FindPartOnRay(Ray.new(POSITION, DIRECTION.unit * RANGE), IGNOREDECENDANTS)
271
end
272
273
function PositiveAngle(NUMBER)
274
	if NUMBER >= 0 then
275
		NUMBER = 0
276
	end
277
	return NUMBER
278
end
279
280
function NegativeAngle(NUMBER)
281
	if NUMBER <= 0 then
282
		NUMBER = 0
283
	end
284
	return NUMBER
285
end
286
287
function Swait(NUMBER)
288
	if NUMBER == 0 or NUMBER == nil then
289
		ArtificialHB.Event:wait()
290
	else
291
		for i = 1, NUMBER do
292
			ArtificialHB.Event:wait()
293
		end
294
	end
295
end
296
297
function CreateMesh(MESH, PARENT, MESHTYPE, MESHID, TEXTUREID, SCALE, OFFSET)
298
	local NEWMESH = IT(MESH)
299
	if MESH == "SpecialMesh" then
300
		NEWMESH.MeshType = MESHTYPE
301
		if MESHID ~= "nil" and MESHID ~= "" then
302
			NEWMESH.MeshId = "http://www.roblox.com/asset/?id="..MESHID
303
		end
304
		if TEXTUREID ~= "nil" and TEXTUREID ~= "" then
305
			NEWMESH.TextureId = "http://www.roblox.com/asset/?id="..TEXTUREID
306
		end
307
	end
308
	NEWMESH.Offset = OFFSET or VT(0, 0, 0)
309
	NEWMESH.Scale = SCALE
310
	NEWMESH.Parent = PARENT
311
	return NEWMESH
312
end
313
314
function CreatePart(FORMFACTOR, PARENT, MATERIAL, REFLECTANCE, TRANSPARENCY, BRICKCOLOR, NAME, SIZE, ANCHOR)
315
	local NEWPART = IT("Part")
316
	NEWPART.formFactor = FORMFACTOR
317
	NEWPART.Reflectance = REFLECTANCE
318
	NEWPART.Transparency = TRANSPARENCY
319
	NEWPART.CanCollide = false
320
	NEWPART.Locked = true
321
	NEWPART.Anchored = true
322
	if ANCHOR == false then
323
		NEWPART.Anchored = false
324
	end
325
	NEWPART.BrickColor = BRICKC(tostring(BRICKCOLOR))
326
	NEWPART.Name = NAME
327
	NEWPART.Size = SIZE
328
	NEWPART.Position = Torso.Position
329
	NEWPART.Material = MATERIAL
330
	NEWPART:BreakJoints()
331
	NEWPART.Parent = PARENT
332
	return NEWPART
333
end
334
335
	local function weldBetween(a, b)
336
	    local weldd = Instance.new("ManualWeld")
337
	    weldd.Part0 = a
338
	    weldd.Part1 = b
339
	    weldd.C0 = CFrame.new()
340
	    weldd.C1 = b.CFrame:inverse() * a.CFrame
341
	    weldd.Parent = a
342
	    return weldd
343
	end
344
345
346
function QuaternionFromCFrame(cf)
347
	local mx, my, mz, m00, m01, m02, m10, m11, m12, m20, m21, m22 = cf:components()
348
	local trace = m00 + m11 + m22
349
	if trace > 0 then 
350
		local s = math.sqrt(1 + trace)
351
		local recip = 0.5 / s
352
		return (m21 - m12) * recip, (m02 - m20) * recip, (m10 - m01) * recip, s * 0.5
353
	else
354
		local i = 0
355
		if m11 > m00 then
356
			i = 1
357
		end
358
		if m22 > (i == 0 and m00 or m11) then
359
			i = 2
360
		end
361
		if i == 0 then
362
			local s = math.sqrt(m00 - m11 - m22 + 1)
363
			local recip = 0.5 / s
364
			return 0.5 * s, (m10 + m01) * recip, (m20 + m02) * recip, (m21 - m12) * recip
365
		elseif i == 1 then
366
			local s = math.sqrt(m11 - m22 - m00 + 1)
367
			local recip = 0.5 / s
368
			return (m01 + m10) * recip, 0.5 * s, (m21 + m12) * recip, (m02 - m20) * recip
369
		elseif i == 2 then
370
			local s = math.sqrt(m22 - m00 - m11 + 1)
371
			local recip = 0.5 / s return (m02 + m20) * recip, (m12 + m21) * recip, 0.5 * s, (m10 - m01) * recip
372
		end
373
	end
374
end
375
 
376
function QuaternionToCFrame(px, py, pz, x, y, z, w)
377
	local xs, ys, zs = x + x, y + y, z + z
378
	local wx, wy, wz = w * xs, w * ys, w * zs
379
	local xx = x * xs
380
	local xy = x * ys
381
	local xz = x * zs
382
	local yy = y * ys
383
	local yz = y * zs
384
	local zz = z * zs
385
	return CFrame.new(px, py, pz, 1 - (yy + zz), xy - wz, xz + wy, xy + wz, 1 - (xx + zz), yz - wx, xz - wy, yz + wx, 1 - (xx + yy))
386
end
387
 
388
function QuaternionSlerp(a, b, t)
389
	local cosTheta = a[1] * b[1] + a[2] * b[2] + a[3] * b[3] + a[4] * b[4]
390
	local startInterp, finishInterp;
391
	if cosTheta >= 0.0001 then
392
		if (1 - cosTheta) > 0.0001 then
393
			local theta = ACOS(cosTheta)
394
			local invSinTheta = 1 / SIN(theta)
395
			startInterp = SIN((1 - t) * theta) * invSinTheta
396
			finishInterp = SIN(t * theta) * invSinTheta
397
		else
398
			startInterp = 1 - t
399
			finishInterp = t
400
		end
401
	else
402
		if (1 + cosTheta) > 0.0001 then
403
			local theta = ACOS(-cosTheta)
404
			local invSinTheta = 1 / SIN(theta)
405
			startInterp = SIN((t - 1) * theta) * invSinTheta
406
			finishInterp = SIN(t * theta) * invSinTheta
407
		else
408
			startInterp = t - 1
409
			finishInterp = t
410
		end
411
	end
412
	return a[1] * startInterp + b[1] * finishInterp, a[2] * startInterp + b[2] * finishInterp, a[3] * startInterp + b[3] * finishInterp, a[4] * startInterp + b[4] * finishInterp
413
end
414
415
function Clerp(a, b, t)
416
	local qa = {QuaternionFromCFrame(a)}
417
	local qb = {QuaternionFromCFrame(b)}
418
	local ax, ay, az = a.x, a.y, a.z
419
	local bx, by, bz = b.x, b.y, b.z
420
	local _t = 1 - t
421
	return QuaternionToCFrame(_t * ax + t * bx, _t * ay + t * by, _t * az + t * bz, QuaternionSlerp(qa, qb, t))
422
end
423
424
function CreateFrame(PARENT, TRANSPARENCY, BORDERSIZEPIXEL, POSITION, SIZE, COLOR, BORDERCOLOR, NAME)
425
	local frame = IT("Frame")
426
	frame.BackgroundTransparency = TRANSPARENCY
427
	frame.BorderSizePixel = BORDERSIZEPIXEL
428
	frame.Position = POSITION
429
	frame.Size = SIZE
430
	frame.BackgroundColor3 = COLOR
431
	frame.BorderColor3 = BORDERCOLOR
432
	frame.Name = NAME
433
	frame.Parent = PARENT
434
	return frame
435
end
436
437
function CreateLabel(PARENT, TEXT, TEXTCOLOR, TEXTFONTSIZE, TEXTFONT, TRANSPARENCY, BORDERSIZEPIXEL, STROKETRANSPARENCY, NAME)
438
	local label = IT("TextLabel")
439
	label.BackgroundTransparency = 1
440
	label.Size = UD2(1, 0, 1, 0)
441
	label.Position = UD2(0, 0, 0, 0)
442
	label.TextColor3 = TEXTCOLOR
443
	label.TextStrokeTransparency = STROKETRANSPARENCY
444
	label.TextTransparency = TRANSPARENCY
445
	label.FontSize = TEXTFONTSIZE
446
	label.Font = TEXTFONT
447
	label.BorderSizePixel = BORDERSIZEPIXEL
448
	label.TextScaled = false
449
	label.Text = TEXT
450
	label.Name = NAME
451
	label.Parent = PARENT
452
	return label
453
end
454
455
function NoOutlines(PART)
456
	PART.TopSurface, PART.BottomSurface, PART.LeftSurface, PART.RightSurface, PART.FrontSurface, PART.BackSurface = 10, 10, 10, 10, 10, 10
457
end
458
459
function CreateWeldOrSnapOrMotor(TYPE, PARENT, PART0, PART1, C0, C1)
460
	local NEWWELD = IT(TYPE)
461
	NEWWELD.Part0 = PART0
462
	NEWWELD.Part1 = PART1
463
	NEWWELD.C0 = C0
464
	NEWWELD.C1 = C1
465
	NEWWELD.Parent = PARENT
466
	return NEWWELD
467
end
468
469
local S = IT("Sound")
470
function CreateSound(ID, PARENT, VOLUME, PITCH, DOESLOOP)
471
	local NEWSOUND = nil
472
	coroutine.resume(coroutine.create(function()
473
		NEWSOUND = S:Clone()
474
		NEWSOUND.Parent = PARENT
475
		NEWSOUND.Volume = VOLUME
476
		NEWSOUND.Pitch = PITCH
477
		NEWSOUND.SoundId = "http://www.roblox.com/asset/?id="..ID
478
		NEWSOUND:play()
479
		if DOESLOOP == true then
480
			NEWSOUND.Looped = true
481
		else
482
			repeat wait(1) until NEWSOUND.Playing == false
483
			NEWSOUND:remove()
484
		end
485
	end))
486
	return NEWSOUND
487
end
488
489
function CFrameFromTopBack(at, top, back)
490
	local right = top:Cross(back)
491
	return CF(at.x, at.y, at.z, right.x, top.x, back.x, right.y, top.y, back.y, right.z, top.z, back.z)
492
end
493
494
function MakeForm(PART,TYPE)
495
	if TYPE == "Cyl" then
496
		local MSH = IT("CylinderMesh",PART)
497
	elseif TYPE == "Ball" then
498
		local MSH = IT("SpecialMesh",PART)
499
		MSH.MeshType = "Sphere"
500
	elseif TYPE == "Wedge" then
501
		local MSH = IT("SpecialMesh",PART)
502
		MSH.MeshType = "Wedge"
503
	end
504
end
505
506
Debris = game:GetService("Debris")
507
508
function CastProperRay(StartPos, EndPos, Distance, Ignore)
509
	local DIRECTION = CF(StartPos,EndPos).lookVector
510
	return Raycast(StartPos, DIRECTION, Distance, Ignore)
511
end
512
513
--//=================================\\
514
--||	     WEAPON CREATION
515
--\\=================================//
516
517
RootPart.Size = RootPart.Size*SIZE
518
Torso.Size = Torso.Size*SIZE
519
RightArm.Size = RightArm.Size*SIZE
520
RightLeg.Size = RightLeg.Size*SIZE
521
LeftArm.Size = LeftArm.Size*SIZE
522
LeftLeg.Size = LeftLeg.Size*SIZE
523
RootJoint.C0 = ROOTC0 * CF(0 * SIZE, 0 * SIZE, 0 * SIZE) * ANGLES(RAD(0), RAD(0), RAD(0))
524
RootJoint.C1 = ROOTC0 * CF(0 * SIZE, 0 * SIZE, 0 * SIZE) * ANGLES(RAD(0), RAD(0), RAD(0))
525
Neck.C0 = NECKC0 * CF(0 * SIZE, 0 * SIZE, 0 + ((1 * SIZE) - 1)) * ANGLES(RAD(0), RAD(0), RAD(0))
526
Neck.C1 = CF(0 * SIZE, -0.5 * SIZE, 0 * SIZE) * ANGLES(RAD(-90), RAD(0), RAD(180))
527
RightShoulder.C1 = CF(0 * SIZE, 0.5 * SIZE, -0.35 * SIZE)
528
LeftShoulder.C1 = CF(0 * SIZE, 0.5 * SIZE, -0.35 * SIZE)
529
RightHip.C0 = CF(1 * SIZE, -1 * SIZE, 0 * SIZE) * ANGLES(RAD(0), RAD(90), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(0))
530
LeftHip.C0 = CF(-1 * SIZE, -1 * SIZE, 0 * SIZE) * ANGLES(RAD(0), RAD(-90), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(0))
531
RightHip.C1 = CF(0.5 * SIZE, 1 * SIZE, 0 * SIZE) * ANGLES(RAD(0), RAD(90), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(0))
532
LeftHip.C1 = CF(-0.5 * SIZE, 1 * SIZE, 0 * SIZE) * ANGLES(RAD(0), RAD(-90), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(0))
533
--Head.Size = Head.Size*SIZE
534
RootJoint.Parent = RootPart
535
Neck.Parent = Torso
536
RightShoulder.Parent = Torso
537
LeftShoulder.Parent = Torso
538
RightHip.Parent = Torso
539
LeftHip.Parent = Torso
540
541
Humanoid.Died:connect(function()
542
	ATTACK = true
543
end)
544
545
local TRACKFRAME = CreateFrame(WEAPONGUI, 1, 2, UD2(0.365, 0, 0.9, 0), UD2(0.26, 0, 0.07, 0), C3(0,0,0), C3(0, 0, 0), "Yeet")
546
547
local TEXT = CreateLabel(TRACKFRAME, KILLCOUNT, C3(1,0,0), 8, "SourceSans", 0, 2, 1, "Text")
548
549
--//=================================\\
550
--||			DAMAGING
551
--\\=================================//
552
553
local EXPLOSION = IT("Explosion",nil)
554
EXPLOSION.BlastPressure = 0
555
function PUNCH(Fist)
556
	TOUCH = Fist.Touched:Connect(function(hit)
557
		if hit.Parent:FindFirstChildOfClass("Humanoid") then
558
			local HUM = hit.Parent:FindFirstChildOfClass("Humanoid")
559
			local TORSO = hit.Parent:FindFirstChild("Torso") or hit.Parent:FindFirstChild("UpperTorso")
560
			if TORSO and HUM.Health > 0 then
561
				CreateSound(0,Fist,6,1,false)
562
				CreateSound(0,TORSO,7,MRANDOM(8,14)/10,false)
563
				TORSO.Parent:BreakJoints()
564
				for _, c in pairs(TORSO.Parent:GetChildren()) do
565
					if c:IsA("BasePart") then
566
						local bv = Instance.new("BodyVelocity",c) 
567
						bv.maxForce = Vector3.new(1e9, 1e9, 1e9)
568
						bv.velocity = CF(TORSO.Position,c.Position+VT(0,0.1,0)).lookVector*MRANDOM(70,100)
569
						Debris:AddItem(bv,0.05)
570
					end
571
				end
572
				local BOOM = EXPLOSION:Clone()
573
				BOOM.Position = Fist.CFrame*CF(0,-1*SIZE,0).p
574
				BOOM.Parent = Character
575
				TOUCH:Disconnect()
576
				KILLCOUNT = KILLCOUNT + 1
577
			end
578
		elseif hit.Material == Enum.Material.Glass or hit.Transparency > 0.2 then
579
			hit:remove()
580
			CreateSound(0,Fist,6,1,false)
581
			local BOOM = EXPLOSION:Clone()
582
			BOOM.BlastPressure = 15
583
			BOOM.Position = Fist.CFrame*CF(0,-1*SIZE,0).p
584
			BOOM.Parent = Character
585
		elseif hit.Anchored == false then
586
			CreateSound(0,Fist,6,1,false)
587
			local BOOM = EXPLOSION:Clone()
588
			BOOM.BlastPressure = 70
589
			BOOM.Position = Fist.CFrame*CF(0,-1*SIZE,0).p
590
			BOOM.Parent = Character
591
			TOUCH:Disconnect()
592
		end
593
	end)
594
	return TOUCH
595
end
596
597
--//=================================\\
598
--||	ATTACK FUNCTIONS AND STUFF
599
--\\=================================//
600
601
function Yeet()
602
	ATTACK = true
603
	Rooted = false
604
	if COMBO == 1 then
605
		COMBO = 2
606
		for i=0, 0.1, 0.1 / Animation_Speed do
607
			Swait()
608
			RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0*SIZE, 0*SIZE, 0*SIZE) * ANGLES(RAD(15), RAD(0), RAD(15)), 1 / Animation_Speed)
609
			Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1*SIZE) - 1)) * ANGLES(RAD(-15), RAD(0), RAD(-15)), 1 / Animation_Speed)
610
			RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5*SIZE, 0.25*SIZE, 0.2*SIZE) * ANGLES(RAD(90), RAD(0), RAD(0)) * RIGHTSHOULDERC0, 1 / Animation_Speed)
611
			LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5*SIZE, 0.5*SIZE, 0.5*SIZE) * ANGLES(RAD(90), RAD(0), RAD(0)) * LEFTSHOULDERC0, 1 / Animation_Speed)
612
			RightHip.C0 = Clerp(RightHip.C0, CF(1*SIZE, -1*SIZE, 0*SIZE) * ANGLES(RAD(0), RAD(90), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(0)), 1 / Animation_Speed)
613
			LeftHip.C0 = Clerp(LeftHip.C0, CF(-1*SIZE, -1*SIZE, 0*SIZE) * ANGLES(RAD(0), RAD(-90), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(0)), 1 / Animation_Speed)
614
		end
615
		local FIST = PUNCH(LeftArm)
616
		for i=0, 0.15, 0.1 / Animation_Speed do
617
			Swait()
618
			RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0*SIZE, 0*SIZE, 0*SIZE) * ANGLES(RAD(35), RAD(0), RAD(-45)), 1 / Animation_Speed)
619
			Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1*SIZE) - 1)) * ANGLES(RAD(-15), RAD(0), RAD(45)), 1 / Animation_Speed)
620
			RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5*SIZE, 0.25*SIZE, 0.2*SIZE) * ANGLES(RAD(90), RAD(0), RAD(0)) * RIGHTSHOULDERC0, 1 / Animation_Speed)
621
			LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.1*SIZE, 0.45*SIZE, -1*SIZE) * ANGLES(RAD(110), RAD(0), RAD(25)) * LEFTSHOULDERC0, 2 / Animation_Speed)
622
			RightHip.C0 = Clerp(RightHip.C0, CF(1*SIZE, -1*SIZE, 0*SIZE) * ANGLES(RAD(0), RAD(90), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(0)), 1 / Animation_Speed)
623
			LeftHip.C0 = Clerp(LeftHip.C0, CF(-1*SIZE, -1*SIZE, 0*SIZE) * ANGLES(RAD(0), RAD(-90), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(0)), 1 / Animation_Speed)
624
		end
625
		FIST:Disconnect()
626
	else
627
		COMBO = 1
628
		for i=0, 0.1, 0.1 / Animation_Speed do
629
			Swait()
630
			RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0*SIZE, 0*SIZE, 0*SIZE) * ANGLES(RAD(15), RAD(0), RAD(-15)), 1 / Animation_Speed)
631
			Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1*SIZE) - 1)) * ANGLES(RAD(-15), RAD(0), RAD(15)), 0.15 / Animation_Speed)
632
			RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5*SIZE, 0.5*SIZE, 0.5*SIZE) * ANGLES(RAD(90), RAD(0), RAD(0)) * RIGHTSHOULDERC0, 1 / Animation_Speed)
633
			LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5*SIZE, 0.25*SIZE, 0.2*SIZE) * ANGLES(RAD(90), RAD(0), RAD(0)) * LEFTSHOULDERC0, 1 / Animation_Speed)
634
			RightHip.C0 = Clerp(RightHip.C0, CF(1*SIZE, -1*SIZE, 0*SIZE) * ANGLES(RAD(0), RAD(90), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(0)), 1 / Animation_Speed)
635
			LeftHip.C0 = Clerp(LeftHip.C0, CF(-1*SIZE, -1*SIZE, 0*SIZE) * ANGLES(RAD(0), RAD(-90), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(0)), 1 / Animation_Speed)
636
		end
637
		local FIST = PUNCH(RightArm)
638
		for i=0, 0.15, 0.1 / Animation_Speed do
639
			Swait()
640
			RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0*SIZE, 0*SIZE, 0*SIZE) * ANGLES(RAD(35), RAD(0), RAD(45)), 1 / Animation_Speed)
641
			Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1*SIZE) - 1)) * ANGLES(RAD(-15), RAD(0), RAD(-45)), 0.15 / Animation_Speed)
642
			RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.1*SIZE, 0.45*SIZE, -1*SIZE) * ANGLES(RAD(110), RAD(0), RAD(-25)) * RIGHTSHOULDERC0, 2 / Animation_Speed)
643
			LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5*SIZE, 0.25*SIZE, 0.2*SIZE) * ANGLES(RAD(90), RAD(0), RAD(0)) * LEFTSHOULDERC0, 1 / Animation_Speed)
644
			RightHip.C0 = Clerp(RightHip.C0, CF(1*SIZE, -1*SIZE, 0*SIZE) * ANGLES(RAD(0), RAD(90), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(0)), 1 / Animation_Speed)
645
			LeftHip.C0 = Clerp(LeftHip.C0, CF(-1*SIZE, -1*SIZE, 0*SIZE) * ANGLES(RAD(0), RAD(-90), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(0)), 1 / Animation_Speed)
646
		end
647
		FIST:Disconnect()
648
	end
649
	ATTACK = false
650
	Rooted = false
651
end
652
653
function YesPlease()
654
	ATTACK = true
655
	Rooted = true
656
	CreateSound(0,Head,6,1,false)
657
	for i=0, 2, 0.1 / Animation_Speed do
658
		Swait()
659
		RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0*SIZE, 0*SIZE, -0.3*SIZE) * ANGLES(RAD(25), RAD(0), RAD(0)), 1 / Animation_Speed)
660
		Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1*SIZE) - 1)) * ANGLES(RAD(-25), RAD(0), RAD(0)), 0.15 / Animation_Speed)
661
		RightShoulder.C0 = Clerp(RightShoulder.C0, CF(2+(MRANDOM(-5,5)/100)*SIZE, (0.45+(MRANDOM(-5,5)/100))*SIZE, -0.5*SIZE) * ANGLES(RAD(75), RAD(0), RAD(-65)) * RIGHTSHOULDERC0, 2 / Animation_Speed)
662
		LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-2+(MRANDOM(-5,5)/100)*SIZE, (0.65+(MRANDOM(-5,5)/100))*SIZE, -0.5*SIZE) * ANGLES(RAD(65), RAD(0), RAD(65)) * LEFTSHOULDERC0, 2 / Animation_Speed)
663
		RightHip.C0 = Clerp(RightHip.C0, CF(1*SIZE, -0.85*SIZE, -0.6*SIZE) * ANGLES(RAD(25), RAD(80), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(0)), 1 / Animation_Speed)
664
		LeftHip.C0 = Clerp(LeftHip.C0, CF(-1*SIZE, -0.85*SIZE, -0.6*SIZE) * ANGLES(RAD(25), RAD(-80), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(0)), 1 / Animation_Speed)
665
	end
666
	ATTACK = false
667
	Rooted = false
668
end
669
670
--//=================================\\
671
--||	  ASSIGN THINGS TO KEYS
672
--\\=================================//
673
674
Mouse.Button1Down:connect(function(NEWKEY)
675
	if ATTACK == false then
676
		Yeet()
677
	end
678
end)
679
Mouse.KeyDown:connect(function(NEWKEY)
680
	if NEWKEY == "t" and ATTACK == false then
681
		YesPlease()
682
	end
683
end)
684
685
--//=================================\\
686
--\\=================================//
687
688
function unanchor()
689
	if UNANCHOR == true then
690
		g = Character:GetChildren()
691
		for i = 1, #g do
692
			if g[i].ClassName == "Part" then
693
				g[i].Anchored = false
694
			end
695
		end
696
	end
697
end
698
699
--//=================================\\
700
--||	WRAP THE WHOLE SCRIPT UP
701
--\\=================================//
702
703
Humanoid.Changed:connect(function(Jump)
704
	if Jump == "Jump" and (Disable_Jump == true) then
705
		Humanoid.Jump = false
706
	end
707
end)
708
709
local FF = IT("ForceField",Character)
710
FF.Visible = false
711
712
while true do
713
	Swait()
714
	script.Parent = WEAPONGUI
715
	ANIMATE.Parent = nil
716
	for _,v in next, Humanoid:GetPlayingAnimationTracks() do
717
	    v:Stop();
718
	end
719
	SINE = SINE + CHANGE
720
	local TORSOVELOCITY = (RootPart.Velocity * VT(1, 0, 1)).magnitude
721
	local TORSOVERTICALVELOCITY = RootPart.Velocity.y
722
	local HITFLOOR = Raycast(RootPart.Position, (CF(RootPart.Position, RootPart.Position + VT(0, -1, 0))).lookVector, 4*SIZE, Character)
723
	local WALKSPEEDVALUE = 6 / (Humanoid.WalkSpeed / 16)
724
	if ANIM == "Walk" and TORSOVELOCITY > 1 then
725
		RootJoint.C1 = Clerp(RootJoint.C1, ROOTC0 * CF(0, 0, -0.15 * COS(SINE / (WALKSPEEDVALUE / 2))) * ANGLES(RAD(0), RAD(0) - RootPart.RotVelocity.Y / 75, RAD(0)), 2 / Animation_Speed)
726
		Neck.C1 = Clerp(Neck.C1, CF(0, -0.5, 0) * ANGLES(RAD(-90), RAD(0), RAD(180)) * ANGLES(RAD(2.5 * SIN(SINE / (WALKSPEEDVALUE / 2))), RAD(0), RAD(0) - Head.RotVelocity.Y / 30), 0.2 * (Humanoid.WalkSpeed / 16) / Animation_Speed)
727
		RightHip.C1 = Clerp(RightHip.C1, CF(0.5*SIZE, 0.875*SIZE - 0.125 * SIN(SINE / WALKSPEEDVALUE)*SIZE - 0.15 * COS(SINE / WALKSPEEDVALUE*2), -0.125 * COS(SINE / WALKSPEEDVALUE) +0.5- 0.5 * COS(SINE / WALKSPEEDVALUE)) * ANGLES(RAD(0), RAD(90), RAD(0)) * ANGLES(RAD(0) - RightLeg.RotVelocity.Y / 75, RAD(0), RAD(76 * COS(SINE / WALKSPEEDVALUE))), 0.2 * (Humanoid.WalkSpeed / 16) / Animation_Speed)
728
		LeftHip.C1 = Clerp(LeftHip.C1, CF(-0.5*SIZE, 0.875*SIZE + 0.125 * SIN(SINE / WALKSPEEDVALUE)*SIZE - 0.15 * COS(SINE / WALKSPEEDVALUE*2), 0.125 * COS(SINE / WALKSPEEDVALUE) +0.5+ 0.5 * COS(SINE / WALKSPEEDVALUE)) * ANGLES(RAD(0), RAD(-90), RAD(0)) * ANGLES(RAD(0) + LeftLeg.RotVelocity.Y / 75, RAD(0), RAD(76 * COS(SINE / WALKSPEEDVALUE))), 0.2 * (Humanoid.WalkSpeed / 16) / Animation_Speed)
729
	elseif (ANIM ~= "Walk") or (TORSOVELOCITY < 1) then
730
		RootJoint.C1 = Clerp(RootJoint.C1, ROOTC0 * CF(0, 0, 0) * ANGLES(RAD(0), RAD(0), RAD(0)), 0.2 / Animation_Speed)
731
		Neck.C1 = Clerp(Neck.C1, CF(0, -0.5, 0) * ANGLES(RAD(-90), RAD(0), RAD(180)) * ANGLES(RAD(0), RAD(0), RAD(0)), 1 / Animation_Speed)
732
		RightHip.C1 = Clerp(RightHip.C1, CF(0.5*SIZE, 1*SIZE, 0) * ANGLES(RAD(0), RAD(90), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(0)), 1 / Animation_Speed)
733
		LeftHip.C1 = Clerp(LeftHip.C1, CF(-0.5*SIZE, 1*SIZE, 0) * ANGLES(RAD(0), RAD(-90), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(0)), 1 / Animation_Speed)
734
	end
735
	if HITFLOOR == nil then
736
		ANIM = "Midair"
737
		if ATTACK == false then
738
			RootJoint.C0 = Clerp(RootJoint.C0, ROOTC0 * CF(0*SIZE, 0*SIZE, 0*SIZE) * ANGLES(RAD(15), RAD(0), RAD(0)), 1 / Animation_Speed)
739
			Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0*SIZE, 0*SIZE, 0 + ((1*SIZE) - 1)) * ANGLES(RAD(0), RAD(0), RAD(0)), 1 / Animation_Speed)
740
			RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.45*SIZE, 0.15*SIZE, -0.5*SIZE) * ANGLES(RAD(145), RAD(0), RAD(0)) * RIGHTSHOULDERC0, 1 / Animation_Speed)
741
			LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5*SIZE, 0.45*SIZE, 0.3*SIZE) * ANGLES(RAD(35), RAD(0), RAD(0)) * LEFTSHOULDERC0, 1 / Animation_Speed)
742
			RightHip.C0 = Clerp(RightHip.C0, CF(1*SIZE, -0.2*SIZE, -0.7*SIZE) * ANGLES(RAD(0), RAD(80), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(20)), 1 / Animation_Speed)
743
			LeftHip.C0 = Clerp(LeftHip.C0, CF(-1*SIZE, -1*SIZE, 0*SIZE) * ANGLES(RAD(0), RAD(-80), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(10)), 1 / Animation_Speed)
744
		end
745
	elseif TORSOVELOCITY < 1 and HITFLOOR ~= nil then
746
		ANIM = "Idle"
747
		if ATTACK == false then
748
			RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0*SIZE, 0*SIZE, 0*SIZE) * ANGLES(RAD(0), RAD(0), RAD(0)), 1 / Animation_Speed)
749
			Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1*SIZE) - 1)) * ANGLES(RAD(0), RAD(0), RAD(0)), 1 / Animation_Speed)
750
			RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.55*SIZE, 0.5*SIZE, 0.1*SIZE) * ANGLES(RAD(15), RAD(0), RAD(-12)) * RIGHTSHOULDERC0, 1 / Animation_Speed)
751
			LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.55*SIZE, 0.5*SIZE, 0.1*SIZE) * ANGLES(RAD(15), RAD(0), RAD(12)) * LEFTSHOULDERC0, 1 / Animation_Speed)
752
			RightHip.C0 = Clerp(RightHip.C0, CF(1*SIZE, -1*SIZE - 0.05*SIZE, -0.01*SIZE) * ANGLES(RAD(0), RAD(70), RAD(0)) * ANGLES(RAD(-2), RAD(0), RAD(0)), 1 / Animation_Speed)
753
			LeftHip.C0 = Clerp(LeftHip.C0, CF(-1*SIZE, -1*SIZE - 0.05*SIZE, -0.01*SIZE) * ANGLES(RAD(0), RAD(-70), RAD(0)) * ANGLES(RAD(-2), RAD(0), RAD(0)), 1 / Animation_Speed)
754
		end
755
	elseif TORSOVELOCITY > 1 and HITFLOOR ~= nil then
756
		ANIM = "Walk"
757
		if ATTACK == false then
758
			RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0*SIZE, 0*SIZE, -0.1*SIZE) * ANGLES(RAD(20), RAD(0), RAD(0)), 1 / Animation_Speed)
759
			Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1*SIZE) - 1)) * ANGLES(RAD(-10), RAD(0), RAD(0)), 1/ Animation_Speed)
760
			RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5*SIZE, (0.35+0.15 * COS(SINE / WALKSPEEDVALUE))*SIZE, 0*SIZE) * ANGLES(RAD(25+70 * COS(SINE / WALKSPEEDVALUE)), RAD(0), RAD(5)) * RIGHTSHOULDERC0, 1 / Animation_Speed)
761
			LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5*SIZE, (0.35-0.15 * COS(SINE / WALKSPEEDVALUE))*SIZE, 0*SIZE) * ANGLES(RAD(25-70 * COS(SINE / WALKSPEEDVALUE)), RAD(0), RAD(-5)) * LEFTSHOULDERC0, 1 / Animation_Speed)
762
			RightHip.C0 = Clerp(RightHip.C0, CF(1*SIZE , -1*SIZE, 0*SIZE) * ANGLES(RAD(0), RAD(90), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(-15)), 2 / Animation_Speed)
763
			LeftHip.C0 = Clerp(LeftHip.C0, CF(-1*SIZE, -1*SIZE, 0*SIZE) * ANGLES(RAD(0), RAD(-90), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(15)), 2 / Animation_Speed)
764
		end
765
	end
766
	unanchor()
767
	Humanoid.MaxHealth = 5e7
768
	Humanoid.Health = 5e7
769
	Humanoid.Name = "BigBoie"
770
	if Rooted == false then
771
		Disable_Jump = false
772
		Humanoid.WalkSpeed = Speed
773
	elseif Rooted == true then
774
		Disable_Jump = true
775
		Humanoid.WalkSpeed = 0
776
	end
777
	sick.SoundId = ""
778
	sick.Looped = true
779
	sick.Pitch = 1
780
	sick.Volume = 3
781
	sick:Resume()
782
	sick.Parent = Torso
783
	Humanoid.JumpPower = 150
784
	TEXT.Text = KILLCOUNT
785
end
786
787
--//=================================\\
788
--\\=================================//
789
790
791
792
793
794
--//====================================================\\--
795
--||			  		 END OF SCRIPT
796
--\\====================================================//--