View difference between Paste ID: NAkBVPST and YLgNR4Pp
SHOW: | | - or go back to the newest paste.
1
--https://github.com/Mokiros/roblox-FE-compatibility
2
if game:GetService("RunService"):IsClient() then error("Script must be server-side in order to work; use h/ and not hl/") end
3
local Player,game,owner = owner,game
4
local RealPlayer = Player
5
do
6
	print("FE Compatibility code V2 by Mokiros")
7
	local RealPlayer = RealPlayer
8
	script.Parent = RealPlayer.Character
9
10
	--Fake event to make stuff like Mouse.KeyDown work
11
	local Disconnect_Function = function(this)
12
		this[1].Functions[this[2]] = nil
13
	end
14
	local Disconnect_Metatable = {__index={disconnect=Disconnect_Function,Disconnect=Disconnect_Function}}
15
	local FakeEvent_Metatable = {__index={
16
		Connect = function(this,f)
17
			local i = tostring(math.random(0,10000))
18
			while this.Functions[i] do
19
				i = tostring(math.random(0,10000))
20
			end
21
			this.Functions[i] = f
22
			return setmetatable({this,i},Disconnect_Metatable)
23
		end
24
	}}
25
	FakeEvent_Metatable.__index.connect = FakeEvent_Metatable.__index.Connect
26
	local function fakeEvent()
27
		return setmetatable({Functions={}},FakeEvent_Metatable)
28
	end
29
30
	--Creating fake input objects with fake variables
31
    local FakeMouse = {Hit=CFrame.new(),KeyUp=fakeEvent(),KeyDown=fakeEvent(),Button1Up=fakeEvent(),Button1Down=fakeEvent(),Button2Up=fakeEvent(),Button2Down=fakeEvent()}
32
    FakeMouse.keyUp = FakeMouse.KeyUp
33
    FakeMouse.keyDown = FakeMouse.KeyDown
34
	local UIS = {InputBegan=fakeEvent(),InputEnded=fakeEvent()}
35
	local CAS = {Actions={},BindAction=function(self,name,fun,touch,...)
36
		CAS.Actions[name] = fun and {Name=name,Function=fun,Keys={...}} or nil
37
	end}
38
	--Merged 2 functions into one by checking amount of arguments
39
	CAS.UnbindAction = CAS.BindAction
40
41
	--This function will trigger the events that have been :Connect()'ed
42
	local function TriggerEvent(self,ev,...)
43
		for _,f in pairs(self[ev].Functions) do
44
			f(...)
45
		end
46
	end
47
	FakeMouse.TriggerEvent = TriggerEvent
48
	UIS.TriggerEvent = TriggerEvent
49
50
	--Client communication
51
	local Event = Instance.new("RemoteEvent")
52
	Event.Name = "UserInput_Event"
53
	Event.OnServerEvent:Connect(function(plr,io)
54
	    if plr~=RealPlayer then return end
55
		FakeMouse.Target = io.Target
56
		FakeMouse.Hit = io.Hit
57
		if not io.isMouse then
58
			local b = io.UserInputState == Enum.UserInputState.Begin
59
			if io.UserInputType == Enum.UserInputType.MouseButton1 then
60
				return FakeMouse:TriggerEvent(b and "Button1Down" or "Button1Up")
61
			end
62
			if io.UserInputType == Enum.UserInputType.MouseButton2 then
63
				return FakeMouse:TriggerEvent(b and "Button2Down" or "Button2Up")
64
			end
65
			for _,t in pairs(CAS.Actions) do
66
				for _,k in pairs(t.Keys) do
67
					if k==io.KeyCode then
68
						t.Function(t.Name,io.UserInputState,io)
69
					end
70
				end
71
			end
72
			FakeMouse:TriggerEvent(b and "KeyDown" or "KeyUp",io.KeyCode.Name:lower())
73
			UIS:TriggerEvent(b and "InputBegan" or "InputEnded",io,false)
74
	    end
75
	end)
76
	Event.Parent = NLS([==[local Event = script:WaitForChild("UserInput_Event")
77
	local Mouse = owner:GetMouse()
78
	local UIS = game:GetService("UserInputService")
79
	local input = function(io,RobloxHandled)
80
		if RobloxHandled then return end
81
		--Since InputObject is a client-side instance, we create and pass table instead
82
		Event:FireServer({KeyCode=io.KeyCode,UserInputType=io.UserInputType,UserInputState=io.UserInputState,Hit=Mouse.Hit,Target=Mouse.Target})
83
	end
84
	UIS.InputBegan:Connect(input)
85
	UIS.InputEnded:Connect(input)
86
	local h,t
87
	--Give the server mouse data every second frame, but only if the values changed
88
	--If player is not moving their mouse, client won't fire events
89
	local HB = game:GetService("RunService").Heartbeat
90
	while true do
91
		if h~=Mouse.Hit or t~=Mouse.Target then
92
			h,t=Mouse.Hit,Mouse.Target
93
			Event:FireServer({isMouse=true,Target=t,Hit=h})
94
		end
95
		--Wait 2 frames
96
		for i=1,2 do
97
			HB:Wait()
98
		end
99
	end]==],script)
100
101
	----Sandboxed game object that allows the usage of client-side methods and services
102
	--Real game object
103
	local RealGame = game
104
105
	--Metatable for fake service
106
	local FakeService_Metatable = {
107
		__index = function(self,k)
108
			local s = rawget(self,"_RealService")
109
			if s then
110
				return typeof(s[k])=="function"
111
				and function(_,...)return s[k](s,...)end or s[k]
112
			end
113
		end,
114
		__newindex = function(self,k,v)
115
			local s = rawget(self,"_RealService")
116
			if s then s[k]=v end
117
		end
118
	}
119
	local function FakeService(t,RealService)
120
		t._RealService = typeof(RealService)=="string" and RealGame:GetService(RealService) or RealService
121
		return setmetatable(t,FakeService_Metatable)
122
	end
123
124
	--Fake game object
125
	local FakeGame = {
126
		GetService = function(self,s)
127
			return rawget(self,s) or RealGame:GetService(s)
128
		end,
129
		Players = FakeService({
130
			LocalPlayer = FakeService({GetMouse=function(self)return FakeMouse end},Player)
131
		},"Players"),
132
		UserInputService = FakeService(UIS,"UserInputService"),
133
		ContextActionService = FakeService(CAS,"ContextActionService"),
134
		RunService = FakeService({
135
			_btrs = {},
136
			RenderStepped = RealGame:GetService("RunService").Heartbeat,
137
			BindToRenderStep = function(self,name,_,fun)
138
				self._btrs[name] = self.Heartbeat:Connect(fun)
139
			end,
140
			UnbindFromRenderStep = function(self,name)
141
				self._btrs[name]:Disconnect()
142
			end,
143
		},"RunService")
144
	}
145
	rawset(FakeGame.Players,"localPlayer",FakeGame.Players.LocalPlayer)
146
	FakeGame.service = FakeGame.GetService
147
	FakeService(FakeGame,game)
148
	--Changing owner to fake player object to support owner:GetMouse()
149
	game,owner = FakeGame,FakeGame.Players.LocalPlayer
150
end
151
--==Made by LuisPambid==--
152
153
154
local player=game.Players.LocalPlayer
155
local char=player.Character
156
repeat wait() until player and char
157
local torso=char.Torso
158
local head=char.Head
159
local human=char.Humanoid
160
local arm={Left=char["Left Arm"], Right=char["Right Arm"]}
161
local leg={Left=char["Left Leg"], Right=char["Right Leg"]}
162
local c=function(f) coroutine.resume(coroutine.create(f)) end
163
local p=function(f) pcall(f) end
164
local add = {
165
	Part=function(par, a, c, col, t, s, cf, ms)
166
		local p=Instance.new("Part", par) pcall(function() p.TopSurface="Smooth" p.BottomSurface="Smooth" p.formFactor="Custom" p.Anchored=a p.CanCollide=c p.BrickColor=BrickColor.new(col) p.Transparency=t p.Size=s p.CFrame=cf or CFrame.new()  end)
167
		local m=Instance.new("BlockMesh", p) pcall(function() m.Scale=ms or Vector3.new(1, 1, 1) end)
168
		return p
169
	end,
170
	Wedge=function(par, a, c, col, t, s, cf, ms)
171
		local p=Instance.new("WedgePart", par) pcall(function() p.TopSurface="Smooth" p.BottomSurface="Smooth" p.formFactor="Custom" p.Anchored=a p.CanCollide=c p.BrickColor=BrickColor.new(col) p.Transparency=t p.Size=s p.CFrame=cf or CFrame.new()  end)
172
		local m=Instance.new("SpecialMesh", p) pcall(function() m.Scale=ms or Vector3.new(1, 1, 1) m.MeshType="Wedge" end)
173
		return p
174
	end,
175
	Gui=function(ins, par, bc, bg, tc, fs, text, t, s, pos)
176
		local g=Instance.new(ins, par) pcall(function() g.BorderColor=BridckColor.new(bc) g.BackgroundColor=BrickColor.new(bg) g.TextColor=BrickColor.new(tc) g.FontSize=fs g.Font="ArialBold" g.Text=text g.Transparency=t g.Size=s g.Position=pos  end)
177
		return g
178
	end,
179
	Weld=function(par, p1, cf)
180
		local w=Instance.new("Weld", par) pcall(function() w.Part0=w.Parent or par w.Part1=p1 w.C1=cf or CFrame.new() end)
181
		return w
182
	end,
183
	Mesh=function(ins, par, s, of, t)
184
		local m=Instance.new(ins, par) pcall(function() m.Scale=s or Vector3.new() m.Offset=of or Vector3.new() m.MeshType=t end)
185
		return m
186
	end,
187
	Sound=function(parent, id, volume, pitch)
188
		local s=Instance.new("Sound", parent) pcall(function() s.SoundId=id s.Volume=volume s.Pitch=pitch end)
189
		return s
190
	end,
191
}
192
local scriptname="Spy" --Name here
193
pcall(function() player.Backpack[scriptname]:remove() char[scriptname]:remove() char["Objects"]:remove() player.PlayerGui[scriptname]:remove()  end)
194
local model=Instance.new("Model", char) model.Name="Objects"
195
local modelB=Instance.new("Model", char) modelB.Name=scriptname
196
local gui=Instance.new("ScreenGui", player.PlayerGui) gui.Name=scriptname
197
local bin=Instance.new("HopperBin", player.Backpack) bin.Name=scriptname
198
local skincolor="Really black"
199
local body={}
200
local animate={}
201
local obj={}
202
function createParts()
203
	--==PARTS==--
204
	body.Torso=add.Part(model, false, false, skincolor, 1, Vector3.new(2, 2, 1), nil)
205
	body.ArmLeft, body.ArmRight=add.Part(model, false, false, skincolor, 1, Vector3.new(1, 1, 1), nil), add.Part(model, false, false, skincolor, 1, Vector3.new(1, 1, 1), nil)
206
	body.LegLeft, body.LegRight=add.Part(model, false, false, skincolor, 1, Vector3.new(1, 1, 1), nil), add.Part(model, false, false, skincolor, 1, Vector3.new(1, 1, 1), nil)
207
	--==WELDS==--
208
	body.TorsoW=add.Weld(body.Torso, torso, nil)
209
	body.ArmLeftW, body.ArmRightW=add.Weld(body.ArmLeft, body.Torso, CFrame.new(-1.5, .5, 0)), add.Weld(body.ArmRight, body.Torso, CFrame.new(1.5, .5, 0))
210
	body.LegLeftW, body.LegRightW=add.Weld(body.LegLeft, body.Torso, CFrame.new(-.5, -1.5, 0)), add.Weld(body.LegRight, body.Torso, CFrame.new(.5, -1.5, 0))
211
	--==MESHES==--
212
	add.Weld(arm.Left, body.ArmLeft, CFrame.new(0, -.5, 0))
213
	add.Weld(arm.Right, body.ArmRight, CFrame.new(0, -.5, 0))
214
	torso["Left Hip"].Part0=body.Torso
215
	torso["Right Hip"].Part0=body.Torso
216
	---------------------------------------------------------------------------------------
217
	animate={
218
		["Torso"]=function(cf) body.Torso.Transparency=0 torso.Transparency=1
219
			body.TorsoW.C1=cf
220
		end;
221
		["ArmLeft"]=function(cf)
222
			body.ArmLeftW.C1=CFrame.new(-1.5, .5, 0)*cf
223
		end;
224
		["ArmRight"]=function(cf)
225
			body.ArmRightW.C1=CFrame.new(1.5, .5, 0)*cf
226
		end;
227
		["LegLeft"]=function(cf)
228
			body.LegLeftW.C1=CFrame.new(-.5, -1.5, 0)*cf
229
		end;
230
		["LegRight"]=function(cf)
231
			body.LegRightW.C1=CFrame.new(.5, -1.5, 0)*cf
232
		end;
233
	}
234
	--==Objects==--
235
	obj.HandleBack=add.Part(modelB, false, false, "Really black", 0, Vector3.new(.2, 1, .2), nil)
236
	obj.HandleBackW=add.Weld(obj.HandleBack, body.ArmRight, CFrame.new(0, -1.5, 0)*CFrame.Angles(-math.rad(90), 0, 0))
237
	obj.EdgeBot=add.Part(modelB, false, false, "Really black", 0, Vector3.new(.2, .2, .2), nil)
238
	obj.EdgeBotM=add.Mesh("CylinderMesh", obj.EdgeBot, Vector3.new(1, 1, 1), nil, nil)
239
	obj.EdgeBotW=add.Weld(obj.EdgeBot, obj.HandleBack, CFrame.new(0, -.5, 0)*CFrame.Angles(math.rad(90), 0, math.rad(90)))
240
	obj.EdgeTopR=add.Part(modelB, false, false, "Really black", 0, Vector3.new(.2, .2, .2), nil)
241
	obj.EdgeTopRM=add.Mesh("CylinderMesh", obj.EdgeTopR, Vector3.new(1, 1, 1), nil, nil)
242
	obj.EdgeTopRW=add.Weld(obj.EdgeTopR, obj.HandleBack, CFrame.new(0, .5, 0)*CFrame.Angles(math.rad(90), 0, math.rad(90)))
243
244
	obj.Blade=add.Part(modelB, false, false, "Gold", 0, Vector3.new(.2, .8, .2), nil)
245
	obj.BladeM=add.Mesh("BlockMesh", obj.Blade, Vector3.new(.5, 1, 1), nil, nil)
246
	obj.BladeW=add.Weld(obj.Blade, obj.EdgeTopR, CFrame.new(-.1, 0, -.4)*CFrame.Angles(-math.rad(90), math.rad(90), 0))
247
	obj.Point=add.Part(modelB, false, false, "Gold", 0, Vector3.new(.2, .4, .2), nil)
248
	obj.PointM=add.Mesh("SpecialMesh", obj.Point, Vector3.new(.5, 1, .5), nil, "Wedge")
249
	obj.PointW=add.Weld(obj.Point, obj.Blade, CFrame.new(0, .6, .05)*CFrame.Angles(0, math.rad(180), 0))
250
	obj.Point2=add.Part(modelB, false, false, "Gold", 0, Vector3.new(.2, .4, .2), nil)
251
	obj.Point2M=add.Mesh("SpecialMesh", obj.Point2, Vector3.new(.5, 1, .5), nil, "Wedge")
252
	obj.Point2W=add.Weld(obj.Point2, obj.Blade, CFrame.new(0, .6, -.05))
253
254
	obj.Joints=add.Part(modelB, false, false, "Gold", 0, Vector3.new(.2, .25, .2), nil)
255
	obj.JointsM=add.Mesh("CylinderMesh", obj.Joints, Vector3.new(.5, 1, .5), nil, nil)
256
	obj.JointsW=add.Weld(obj.Joints, obj.EdgeBot, nil)
257
	obj.Joints=add.Part(modelB, false, false, "Gold", 0, Vector3.new(.2, .25, .2), nil)
258
	obj.JointsM=add.Mesh("CylinderMesh", obj.Joints, Vector3.new(.5, 1, .5), nil, nil)
259
	obj.JointsW=add.Weld(obj.Joints, obj.EdgeTopR, nil)
260
261
	obj.EdgeTopR2=add.Part(modelB, false, false, "Really black", 0, Vector3.new(.2, .2, .2), nil)
262
	obj.EdgeTopR2M=add.Mesh("CylinderMesh", obj.EdgeTopR2, Vector3.new(1, 1, 1), nil, nil)
263
	obj.EdgeTopR2W=add.Weld(obj.EdgeTopR2, obj.Blade, CFrame.new(0, -.4, -.1)*CFrame.Angles(math.rad(90), 0, math.rad(90)))
264
	obj.HandleFor=add.Part(modelB, false, false, "Really black", 0, Vector3.new(.2, 1, .2), nil)
265
	obj.HandleForW=add.Weld(obj.HandleFor, obj.EdgeTopR2, CFrame.new(0, 0, .5)*CFrame.Angles(-math.rad(90), -math.rad(90), 0))
266
	obj.EdgeBot=add.Part(modelB, false, false, "Really black", 0, Vector3.new(.2, .2, .2), nil)
267
	obj.EdgeBotM=add.Mesh("CylinderMesh", obj.EdgeBot, Vector3.new(1, 1, 1), nil, nil)
268
	obj.EdgeBotW=add.Weld(obj.EdgeBot, obj.HandleFor, CFrame.new(0, -.5, 0)*CFrame.Angles(math.rad(90), 0, math.rad(90)))
269
	obj.Joints=add.Part(modelB, false, false, "Gold", 0, Vector3.new(.2, .25, .2), nil)
270
	obj.JointsM=add.Mesh("CylinderMesh", obj.Joints, Vector3.new(.5, 1, .5), nil, nil)
271
	obj.JointsW=add.Weld(obj.Joints, obj.EdgeBot, nil)
272
	obj.Joints=add.Part(modelB, false, false, "Gold", 0, Vector3.new(.2, .25, .2), nil)
273
	obj.JointsM=add.Mesh("CylinderMesh", obj.Joints, Vector3.new(.5, 1, .5), nil, nil)
274
	obj.JointsW=add.Weld(obj.Joints, obj.EdgeTopR2, nil)
275
end
276
function removeParts()
277
	p(function()
278
		if torso then
279
			torso["Left Hip"].Part0=torso
280
			torso["Right Hip"].Part0=torso
281
		end
282
		for i, v in pairs(model:children()) do v:remove() end	for i, v in pairs(modelB:children()) do v:remove() end	for i, v in pairs(char:children()) do v.Transparency=0 end
283
	end)
284
end
285
--Variables--
286
local trailDeb=false
287
local using=false
288
local combo=1
289
local onStab=false
290
local keyDeb=false
291
local switch=false
292
local switch2=false
293
local keyDeb2=false
294
local hitDeb=false
295
local dmg=math.random(5, 10)
296
local speed=20
297
local pitch=.8
298
local Slash=add.Sound(torso, "rbxasset://sounds//swordslash.wav", 2, pitch)
299
local Hit=add.Sound(torso, "http://www.roblox.com/asset/?id=30715280", 2, 2)
300
local Abscond=add.Sound(torso, "http://www.roblox.com/asset/?id=2767090", 2, 2)
301
local Equip=add.Sound(torso, "http://www.roblox.com/asset/?id=13510737", 2, 2)
302
local attackLabel=add.Gui("TextLabel", gui, "Gold", "Gold", "Gold", "Size18", "Invisible(Q)", 0, UDim2.new(0, 150, 0, 50), UDim2.new(0, 0, 0, 150))
303
local attackLabel2=add.Gui("TextLabel", attackLabel, "Gold", "Gold", "Gold", "Size18", "Disguise(E)", 0, UDim2.new(1, 0, 1, 0), UDim2.new(0, 0, 1, 0))
304
305
function lightningGen(startPos, endPos)
306
	local magnitude=(startPos-endPos).magnitude
307
	local distance=(startPos+endPos)/2
308
	local pattern=add.Part(workspace, true, false, "Gold", 1, Vector3.new(.2, .2, magnitude), CFrame.new(distance, startPos))
309
	local startPosProx=startPos
310
	for i=1, 9 do
311
		local startPosProx2=startPosProx
312
		local random=Vector3.new(math.random(-1, 1), math.random(-1, 1), math.random(-1, 1))
313
		local findSize=pattern.Size.z/10
314
		local findOffSet=pattern.CFrame.lookVector*-1
315
		local compute=i*findSize*findOffSet
316
		local newStartPos=startPos
317
		local newEndPos=CFrame.new(random+compute+newStartPos).p
318
		local magnitude=(startPosProx2-newEndPos).magnitude
319
		local distance=(startPosProx2+newEndPos)/2
320
		local lightning=add.Part(workspace, true, false, "Bright yellow", 0, Vector3.new(.2, .2, magnitude), CFrame.new(distance, startPosProx2))
321
		c(function()
322
			for i=0, 1, .1 do wait()
323
				lightning.Transparency=i
324
			end
325
			lightning:remove()
326
		end)
327
		startPosProx=newEndPos
328
	end
329
	pattern:remove()
330
end
331
function computePos(pos, pos2)
332
	local pos3=Vector3.new(pos2.x, pos.y, pos2.z)
333
	torso.CFrame=CFrame.new(pos, pos3)
334
	return pos3
335
end
336
function nearTorso(pos, dis)
337
	local temp
338
	local distance=dis
339
	for i, v in pairs(workspace:children()) do
340
		if v:isA("Model") then
341
			temp=v:findFirstChild("Torso")
342
			local humanoid=v:findFirstChild("Humanoid")
343
			if temp and humanoid and v~=char and (temp.CFrame.p-pos).magnitude<distance then
344
				distance=(temp.CFrame.p-pos).magnitude
345
				return temp
346
			end
347
		end
348
	end
349
end
350
function trail(pos, cf, col)
351
	c(function()
352
		local old=(pos.CFrame*cf).p
353
		while trailDeb==true do
354
			wait()
355
			local new=(pos.CFrame*cf).p
356
			local mag=(old-new).magnitude
357
			local dis=(old+new)/2
358
			local trail=add.Part(workspace, true, false, col, 0, Vector3.new(.2, mag, .2), CFrame.new(dis, new)*CFrame.Angles(math.pi/2, 0, 0)) trail.Name="Trail"
359
			local tMesh=add.Mesh("CylinderMesh", trail, Vector3.new(.5, 1, .5), nil, nil)
360
			old=new
361
			c(function()
362
				for i=1, 0, -.1 do
363
					wait()
364
					tMesh.Scale=tMesh.Scale*Vector3.new(i, 1, i)
365
				end
366
				trail:remove()
367
			end)
368
			c(function()
369
				for i=0, 1, .1 do
370
					wait()
371
					trail.Transparency=i
372
				end
373
			end)
374
		end
375
	end)
376
end
377
378
function running()
379
	animate.ArmLeft(CFrame.Angles(-math.rad(45), 0, -math.rad(15)))
380
	animate.ArmRight(CFrame.Angles(math.rad(45), 0, math.rad(15)))
381
	obj.HandleBackW.C1=CFrame.new(0, -1.5, 0)*CFrame.Angles(-math.rad(90), 0, 0)
382
end
383
384
function hit(h)
385
	if using==true then
386
		if switch==false then
387
			if onStab==false and h.Parent:findFirstChild("Humanoid") and h.Parent~=char and hitDeb==false then hitDeb=true print("ErrorUnNamed") Hit:play()
388
				local hHuman=h.Parent:findFirstChild("Humanoid")
389
				hHuman.Health=hHuman.Health-dmg
390
				local fakeM=Instance.new("Model", workspace) fakeM.Name=-dmg
391
				local fakeH=Instance.new("Humanoid", fakeM) fakeH.MaxHealth=0 fakeH.Health=0
392
				local effect=add.Part(fakeM, false, false, "Gold", 0, Vector3.new(1, 1, 1), h.CFrame) effect.Name="Head"
393
				local fakeMesh=add.Mesh("CylinderMesh", effect, Vector3.new(1, .5, 1), nil, nil)
394
				local bp=Instance.new("BodyPosition", effect) bp.maxForce=Vector3.new(math.huge, math.huge, math.huge) bp.position=h.Position+Vector3.new(0, 4, 0)
395
				game.Debris:addItem(fakeM, 2)	
396
				wait(1)
397
				hitDeb=false
398
			end
399
			if onStab==true and h.Parent~=char and h.Parent:findFirstChild("Humanoid") and hitDeb==false then hitDeb=true print("Error") Hit:play()
400
				h.Parent:breakJoints()
401
				local fakeM=Instance.new("Model", workspace) fakeM.Name="Tr1st4bb3d"
402
				local fakeH=Instance.new("Humanoid", fakeM) fakeH.MaxHealth=0 fakeH.Health=0
403
				local effect=add.Part(fakeM, false, false, "Bright red", 0, Vector3.new(1, 1, 1), h.CFrame) effect.Name="Head"
404
				local fakeMesh=add.Mesh("CylinderMesh", effect, Vector3.new(1, .5, 1), nil, nil)
405
				local bp=Instance.new("BodyPosition", effect) bp.maxForce=Vector3.new(math.huge, math.huge, math.huge) bp.position=h.Position+Vector3.new(0, 4, 0)
406
				game.Debris:addItem(fakeM, 2)	
407
				wait(1)
408
				hitDeb=false
409
			end
410
		end
411
	end
412
end
413
414
function findStab()
415
	while using==false do wait()
416
		--pcall(function()
417
			local nTorso=nearTorso(torso.CFrame.p, 3)
418
			if nTorso then
419
				local offSet=nTorso.CFrame:toObjectSpace(torso.CFrame)
420
				if offSet.z>0 then
421
					onStab=true
422
					animate.ArmRight(CFrame.Angles(math.rad(135), 0, 0))
423
					obj.HandleBackW.C1=CFrame.new(0, -1.5, 0)*CFrame.Angles(math.rad(90), 0, 0)
424
				else
425
					onStab=false
426
					running()
427
				end
428
			else
429
				onStab=false
430
				running()
431
			end
432
		--end)
433
	end
434
end
435
436
function attack() combo=combo+1
437
	if using==false then using=true for i, v in pairs(modelB:children()) do v.Touched:connect(hit) end
438
		if combo==1 and onStab==false then Slash:play()
439
			--[[trailDeb=true
440
			trail(obj.Blade, CFrame.new(0, 1, 0), "Gold")]]
441
			for i=0, 1, .2 do wait()
442
				animate.Torso(CFrame.Angles(0, math.rad(45)*i, 0))
443
				animate.ArmRight(CFrame.Angles(math.rad(90)*i, 0, 0))
444
				obj.HandleBackW.C1=CFrame.new(0, -1.5, 0)*CFrame.Angles(-math.rad(90), 0, math.rad(45)*i)
445
			end
446
			for i=1, 0, -.2 do wait()
447
				animate.Torso(CFrame.Angles(0, math.rad(45)*i, 0))
448
				animate.ArmRight(CFrame.Angles(math.rad(90)*i, 0, 0))
449
				obj.HandleBackW.C1=CFrame.new(0, -1.5, 0)*CFrame.Angles(-math.rad(90), 0, math.rad(45)*i)
450
			end
451
			if combo>1 and onStab==false then combo=2 Slash:play()
452
				for i=0, 1, .2 do wait() 
453
					animate.Torso(CFrame.Angles(0, math.rad(45)*i, 0))
454
					animate.ArmRight(CFrame.Angles(math.rad(90)*i, 0, math.rad(45)*i))
455
					obj.HandleBackW.C1=CFrame.new(0, -1.5, 0)*CFrame.Angles(-math.rad(90+(90*i)), 0, 0)
456
				end
457
				for i=1, 0, -.2 do wait() 
458
					animate.Torso(CFrame.Angles(0, math.rad(45)*i, 0))
459
					animate.ArmRight(CFrame.Angles(math.rad(90)*i, 0, math.rad(45)*i))
460
					obj.HandleBackW.C1=CFrame.new(0, -1.5, 0)*CFrame.Angles(-math.rad(90+(90*i)), 0, 0)
461
				end
462
			end
463
		end
464
		if onStab==true then
465
			for i=0, 1, .2 do wait()
466
				animate.ArmRight(CFrame.Angles(math.rad(135-(45*i)), 0, 0))
467
				obj.HandleBackW.C1=CFrame.new(0, -1.5, 0)*CFrame.Angles(math.rad(90), 0, 0)
468
			end
469
			onStab=false
470
		end
471
		using=false
472
		--trailDeb=false
473
		combo=0
474
		body.Torso.Transparency=1 torso.Transparency=0
475
		running()
476
		findStab()
477
	end
478
end
479
480
bin.Selected:connect(function(mouse) createParts()
481
	human.WalkSpeed=speed
482
	running()
483
	using=true
484
	Equip:play()
485
	for i=1, 0, -.1 do wait()
486
		obj.HandleBackW.C1=CFrame.new(0, -1.5, 0)*CFrame.Angles(-math.rad(90), math.rad(180)*i, 0)
487
		obj.EdgeTopRW.C1=CFrame.new(0, .5, 0)*CFrame.Angles(math.rad(90)+math.rad(180)*i, 0, math.rad(90))
488
		obj.EdgeTopR2W.C1=CFrame.new(0, -.4, -.1)*CFrame.Angles(math.rad(90)+math.rad(180)*i, 0, math.rad(90))
489
	end
490
	using=false
491
	mouse.Button1Down:connect(attack)
492
	mouse.KeyDown:connect(function(key) 
493
		local key=key:lower()
494
		--INVISBLE--
495
		if key=="q" and keyDeb==false and switch==false and using==false then keyDeb=true switch=true using=true
496
			attackLabel.Text="Visible(Q)" print("1") Abscond:play()
497
			pcall(function() char.Sound.Disabled=true end)
498
			for i, v in pairs(char:children()) do
499
				c(function()
500
					for i=0, 1, .2 do wait()
501
						pcall(function()
502
							c(function() if v.Head~=nil then head.Transparency=1 end end)
503
							v.Transparency=i
504
						end)
505
						pcall(function() v.Handle.Transparency=i end)
506
						pcall(function() v.face.Transparency=i end)
507
						pcall(function() v.roblox.Transparency=i end)
508
						pcall(function() v.Head.Transparency=i end)
509
					end
510
				end)
511
			end
512
			for i, v in pairs(modelB:children()) do
513
				c(function()
514
					for i=0, 1, .2 do wait()
515
						pcall(function()
516
							v.Transparency=i
517
						end)
518
						pcall(function() v.Handle.Transparency=i end)
519
						pcall(function() v.face.Transparency=i end)
520
					end
521
				end)
522
			end
523
			wait(.5)
524
			local fakeModel=Instance.new("Model", workspace.CurrentCamera) fakeModel.Name="Spy"
525
			local fakeHumanoid=Instance.new("Humanoid", fakeModel) fakeHumanoid.Health=0 fakeHumanoid.MaxHealth=0
526
			local fakeHead=add.Part(fakeModel, false, false, "Really black", 0, Vector3.new(1, 1, 1), nil) fakeHead.Name="Head"
527
			local fakeHeadM=add.Mesh("SpecialMesh", fakeHead, Vector3.new(1, 1.5, 1), nil, "File")
528
			fakeHeadM.MeshId="http://www.roblox.com/Asset/?id=9756362"
529
			local fakeHeadW=add.Weld(fakeHead, torso, CFrame.new(0, 1.5, 0))
530
			modelB.Parent=workspace.CurrentCamera
531
			for i, v in pairs(modelB:children()) do
532
				c(function()
533
					for i=0, 1, .2 do wait()
534
						pcall(function()
535
							v.Transparency=.5
536
						end)
537
						pcall(function() v.Handle.Transparency=.5 end)
538
						pcall(function() v.face.Transparency=.5 end)
539
					end
540
				end)
541
			end
542
			keyDeb=false
543
		elseif key=="q" and keyDeb==false and switch==true and using==true then keyDeb=true switch=false using=false
544
			attackLabel.Text="Invisible(Q)" print("2") Abscond:play()
545
			pcall(function() char.Sound.Disabled=false end)
546
			modelB.Parent=char
547
			for i, v in pairs(char:children()) do
548
				c(function()
549
					for i=1, 0, -.2 do wait()
550
						pcall(function()
551
							c(function() if v.Head~=nil then head.Transparency=1 end end)
552
							v.Transparency=i
553
						end)
554
						pcall(function() v.Handle.Transparency=i end)
555
						pcall(function() v.face.Transparency=i end)
556
						pcall(function() v.roblox.Transparency=i end)
557
						pcall(function() v.Head.Transparency=i end)
558
					end
559
				end)
560
			end
561
			for i, v in pairs(modelB:children()) do
562
				c(function()
563
					for i=1, 0, -.2 do wait()
564
						pcall(function()
565
							v.Transparency=i
566
						end)
567
						pcall(function() v.Handle.Transparency=i end)
568
						pcall(function() v.face.Transparency=i end)
569
					end
570
				end)
571
			end
572
			for i, v in pairs(workspace.CurrentCamera:children()) do pcall(function() v:remove() end) end
573
			wait(.5)
574
			keyDeb=false
575
			findStab()
576
		end
577
		--DISGUISE MENU--
578
		local xSpace=0
579
		if key=="e" and keyDeb2==false and switch2==false then keyDeb2=true switch2=true
580
			attackLabel2.Text="Menu:"
581
			for i, v in pairs(game.Players:children()) do
582
				if v~=player then xSpace=xSpace+1
583
					local playersLabel=add.Gui("TextButton", attackLabel2, "Gold", "Gold", "Gold", "Size18", v.Name, 0, UDim2.new(1, 0, 1, 0), UDim2.new(xSpace, 0, 0, 0))
584
					playersLabel.MouseButton1Click:connect(function() Abscond:play()
585
						pcall(function()
586
							for i, v in pairs(char:children()) do
587
								pcall(function() v.face:remove() end)
588
								pcall(function() v.roblox:remove() end)
589
								pcall(function() v.Head:remove() end)
590
								if v:IsA("BodyColors") then v:remove() end
591
								if v:IsA("Hat") then v:remove() end
592
								if v:IsA("ShirtGraphic") then v:remove() end
593
								if v:IsA("Pants") then v:remove() end
594
								if v:IsA("Shirt") then v:remove() end
595
								if v:IsA("CharacterMesh") then v:remove() end
596
								if v:IsA("BodyColors") then v:remove() end
597
							end
598
							for i, v in pairs(game.Players[playersLabel.Text].Character:children()) do
599
								pcall(function() local cloned=v.face:clone() cloned.Parent=head if switch==true then pcall(function() cloned.Transparency=1 end) end end)
600
								pcall(function() v.roblox:clone().Parent=torso end)
601
								if v:IsA("BodyColors") then v:clone().Parent=char end
602
								if v:IsA("Hat") then local cloned=v:clone() cloned.Parent=char if switch==true then pcall(function() cloned.Handle.Transparency=1 end) end end
603
								if v:IsA("ShirtGraphic") then v:clone().Parent=char end
604
								if v:IsA("Pants") then v:clone().Parent=char end
605
								if v:IsA("Shirt") then v:clone().Parent=char end
606
								if v:IsA("CharacterMesh") then v:clone().Parent=char end
607
								if v:IsA("BodyColors") then v:clone().Parent=char end
608
							end
609
							head.Transparency=1
610
							local fakeModel=Instance.new("Model", char) fakeModel.Name=playersLabel.Text
611
							local fakeHumanoid=Instance.new("Humanoid", fakeModel) fakeHumanoid.Health=125 fakeHumanoid.MaxHealth=125
612
							local fakeHead=add.Part(fakeModel, false, false, game.Players[playersLabel.Text].Character.Head.Color, 0, Vector3.new(1, 1, 1), nil) fakeHead.Name="Head"
613
							if switch==true then fakeHead.Transparency=1 end
614
							local fakeHeadM=add.Mesh("SpecialMesh", fakeHead, Vector3.new(1.25, 1.25, 1.25), nil, "Head")
615
							local fakeHeadW=add.Weld(fakeHead, torso, CFrame.new(0, 1.5, 0))
616
						end)
617
					end)
618
				end
619
			end
620
			keyDeb2=false
621
		elseif key=="e" and keyDeb2==false and switch2==true then keyDeb2=true switch2=false
622
			attackLabel2.Text="Disguise(E)"
623
			for i, v in pairs(attackLabel2:children()) do
624
				pcall(function()v:remove()end)
625
			end
626
			keyDeb2=false
627
		end
628
	end)
629
	findStab()
630
end)
631
bin.Deselected:connect(function()
632
	Equip:play()
633
	for i=0, 1, .1 do wait()
634
		obj.HandleBackW.C1=CFrame.new(0, -1.5, 0)*CFrame.Angles(-math.rad(90), math.rad(180)*i, 0)
635
		obj.EdgeTopRW.C1=CFrame.new(0, .5, 0)*CFrame.Angles(math.rad(90)+math.rad(180)*i, 0, math.rad(90))
636
		obj.EdgeTopR2W.C1=CFrame.new(0, -.4, -.1)*CFrame.Angles(math.rad(90)+math.rad(180)*i, 0, math.rad(90))
637
	end
638
switch2=false using=false for i, v in pairs(attackLabel2:children()) do pcall(function()v:remove()end) end removeParts() end)--mediafire