View difference between Paste ID: UAkGDifZ and DSqRbfx7
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
--[[This is a local script so run as local(obviously)]]--
152
--------------------------------------------------------------------------------------------------
153
--------------------------------------------------------------------------------------------------
154
Me = game:service("Players").LocalPlayer
155
Char = Me.Character
156
Mouse = Me:GetMouse()
157
Mode={"BloodLust","Normal"}
158
DTable={}
159
Combo = 0
160
Name="MoonLight Katana"
161
PrimaryColor = "Really black"
162
SecondaryColor="White"
163
pcall(function() Char:FindFirstChild("WepModel"):Destroy() Me.Backpack:FindFirstChild(Name):Destroy() end)
164
Activated = false
165
Dashing = false
166
Selected = false
167
ADB=false
168
DiffColor = false
169
Camera=game:service("Workspace").CurrentCamera
170
LeftArm = Char["Left Arm"]
171
RightArm = Char["Right Arm"]
172
HRP = Char.HumanoidRootPart["RootJoint"]
173
SavedRoot = HRP.C0
174
necko=CFrame.new(0, 1, 0, -1, -0, -0, 0, 0, 1, 0, 1, 0)
175
if script.Parent.className ~= "HopperBin" then
176
h = Instance.new("HopperBin", Me.Backpack)
177
h.Name = Name
178
script.Name = "''"
179
script.Parent = h
180
end
181
bin = script.Parent
182
local WepModel = Instance.new("Model", Char)
183
WepModel.Name = "WepModel"
184
local Debz = game:service("Debris")
185
            ------[[ Create Function  ]]------
186
Create = {}
187
function Create:Part(parent, x,y,z, color, transparency, cancollide, anchored, shape)
188
c = Instance.new("Part",parent)
189
c.Material = "SmoothPlastic"
190
Sheathed = true
191
if shape ~= nil then
192
c.Shape = shape
193
end
194
c.TopSurface,c.BottomSurface = 0,0
195
c.Locked = true
196
c.formFactor = "Custom"
197
c.Size = Vector3.new(x,y,z)
198
if color ~= "random" then
199
c.BrickColor = color
200
else c.BrickColor = BrickColor:Random() end
201
c.Transparency = transparency
202
c.CanCollide = cancollide
203
if anchored ~= nil then c.Anchored = anchored end
204
if parent ~= nil then c.Parent = parent end
205
return c
206
end;
207
function Create:BG(parent)
208
local c = Instance.new("BodyGyro",parent)
209
c.P = 20e+003
210
c.cframe = parent.CFrame
211
c.maxTorque = Vector3.new(c.P,c.P,c.P)
212
return c
213
end;
214
function Create:BP(parent, pos)
215
local bp = Instance.new("BodyPosition",parent)
216
bp.maxForce = Vector3.new(math.huge,math.huge,math.huge)
217
bp.position = pos
218
return bp
219
end;
220
function Create:F(parent, size, heat, color, secondarycolor, enabled)
221
f = Instance.new("Fire",parent)
222
f.Size = size
223
f.Heat = heat
224
if enabled ~= nil then f.Enabled = enabled end
225
if color ~= nil then f.Color = BrickColor.new(color).Color end
226
if secondarycolor ~= nil then f.SecondaryColor = BrickColor.new(secondarycolor).Color end
227
return f
228
end;
229
function Create:FM(parent, meshid, x,y,z, meshtexture)
230
if meshid == "cylinder" then
231
mesh = Instance.new("CylinderMesh",parent)
232
mesh.Scale = Vector3.new(x,y,z)
233
return mesh
234
else
235
mesh = Instance.new("SpecialMesh",parent)
236
if meshid ~= "sphere" then
237
if type(meshid) == "number" then mesh.MeshId = "rbxassetid://"..meshid else
238
mesh.MeshId = "rbxassetid://"..meshids[meshid]
239
end
240
else mesh.MeshType = 3 end
241
mesh.Scale = Vector3.new(x,y,z)
242
if meshtexture ~= nil then
243
if type(meshtexture) == "number" then mesh.TextureId = "rbxassetid://"..meshtexture else
244
mesh.TextureId = "rbxassetid://"..textureids[meshtexture] end
245
end
246
return mesh
247
end
248
end
249
function Create:Weld(parent,P0,P1,nam,c0,c1)
250
Weld = Instance.new("Weld",parent)
251
if P0 then  Weld.Part0 = P0 else error("Invalid Part0",2) end
252
if P1 then Weld.Part1 = P1 else print("Invalid Part1") end
253
if name then Weld.Name = nam else Weld.Name = "Weld" end
254
if c0 then Weld.C0 = c0 else print("Invalid C0") end
255
if c1 then Weld.C1 = c1 else Weld.C1 = CFrame.new(0,0.5,0) end
256
return Weld
257
end
258
M = {["Cos"] = function(a) return math.cos(a) end;
259
["Sin"] = function(a) return math.sin(a) end;
260
["Rad"] = function(a) return math.rad(a) end}
261
L0L=Create:Part(WepModel,1,1,1,BrickColor.new(PrimaryColor),1,false,false)
262
L0LWeld=Create:Weld(L0L,Char.Torso,L0L,"L0LWeld",CFrame.new(0,0,0)*CFrame.fromEulerAnglesXYZ(0,math.rad(-90),math.rad(90)),CFrame.new(0,-0.951,0))
263
coroutine.wrap(function()
264
for i = 0,1,1/50 do wait()
265
angle = math.rad(360*i)
266
end
267
end)()
268
local Delete = function(parent,time)
269
if time then
270
Debz:AddItem(parent,time)
271
else
272
parent:Destroy()
273
end end
274
Lite = Instance.new("PointLight")
275
Lite.Color = Color3.new(255,255,255)
276
Lite.Range = 10
277
Lite.Brightness = 10
278
Lite.Parent = Char.Torso
279
Handle = Create:Part(WepModel,1,1,1,BrickColor.new(PrimaryColor),0,false,false)
280
Instance.new("BlockMesh",Handle).Scale = Vector3.new(0.2,1.15,0.275)
281
HandleWeld=Create:Weld(Handle,Char.Torso,Handle,"HandleWeld",CFrame.new(1.5,1.8,0.65)*CFrame.fromEulerAnglesXYZ(0,0,math.pi/-4.75))
282
Hitbox = Create:Part(WepModel,1,6,0.5,BrickColor.new(PrimaryColor),1,false,false)
283
Hitbox.Name = "Hitbox"
284
Instance.new("BlockMesh", Hitbox)
285
BoxWeld=Create:Weld(Hitbox,Handle,Hitbox,"Boxweld",CFrame.new(0,-2.5,0),CFrame.new(0,-0.25,0))
286
Sheath = Create:Part(WepModel,1,1,1,BrickColor.new(PrimaryColor),0,false,false)
287
Instance.new("BlockMesh",Sheath).Scale = Vector3.new(0.3,3,0.3)
288
SheathWeld=Create:Weld(Char.Torso,Char.Torso,Sheath,"SheathWeld",CFrame.new(0.25,-0.1,0.65)*CFrame.fromEulerAnglesXYZ(0,0,math.pi/-4.75),CFrame.new(0.2,0.5,0))
289
for i = 1,6 do
290
Boxes = Create:Part(WepModel,1,1,1,BrickColor.new(SecondaryColor),0,false,false)
291
Instance.new("BlockMesh",Boxes).Scale = Vector3.new(0.225,0.2,0.31)
292
BoxesWeld=Create:Weld(Boxes,Char.Torso,Boxes,"BoxesWeld",CFrame.new(1.95,0,0.65)*CFrame.fromEulerAnglesXYZ(0,0,math.pi/-4.75),CFrame.new(1.55,i*0.5,0))
293
end
294
SheathTip = Create:Part(WepModel,1,1,1,BrickColor.new(PrimaryColor),0,false,false)
295
SheathMesh = Instance.new("SpecialMesh", SheathTip)
296
SheathMesh.MeshType = "Wedge"
297
SheathMesh.Scale = Vector3.new(0.3,0.75,0.3)
298
SheathTipWeld=Create:Weld(Char.Torso,Sheath,SheathTip,"SheathTipWeld",CFrame.new(0.25,-2,0.65)*CFrame.fromEulerAnglesXYZ(0,math.pi/2,3.15),CFrame.new(0.65,0.14,0.25))
299
print(SheathTip.Position,SheathTip.Transparency)
300
HandleBase = Create:Part(WepModel,1,1,1,BrickColor.new(PrimaryColor),0,false,false)
301
Instance.new("BlockMesh",HandleBase).Scale = Vector3.new(0.45,0.25,0.45)
302
HandleBaseWeld=Create:Weld(HandleBase,Handle,HandleBase,"HandleBaseWeld",CFrame.new(0,-0.175,0))
303
Blade = Create:Part(WepModel,1,1,1,BrickColor.new(SecondaryColor),0,false,false)
304
Instance.new("BlockMesh",Blade).Scale = Vector3.new(0.2,3,0.155)
305
BladeWeld=Create:Weld(Blade,Handle,Blade,"BladeWeld",CFrame.new(0,-1.75,0))
306
Blade2 = Create:Part(WepModel,1,1,1,BrickColor.new(PrimaryColor),0,false,false)
307
Instance.new("BlockMesh",Blade2).Scale = Vector3.new(0.1,3,0.156)
308
Blade2Weld=Create:Weld(Blade2,Handle,Blade2,"Blade2Weld",CFrame.new(0,-1.75,0))
309
Tip = Create:Part(WepModel,1,1,1,BrickColor.new(SecondaryColor),0,false,false)
310
TipMesh = Instance.new("SpecialMesh", Tip)
311
TipMesh.MeshType = "Wedge"
312
TipMesh.Scale = Vector3.new(0.155,0.5,0.2)
313
TipWeld=Create:Weld(Tip,Handle,Tip,"TipWeld",CFrame.new(0,-4.5,0)*CFrame.fromEulerAnglesXYZ(0,math.pi/2,3.15),CFrame.new(0.01,0.5,0))
314
Tip2 = Create:Part(WepModel,1,1,1,BrickColor.new(PrimaryColor),0,false,false)
315
Tip2Mesh = Instance.new("SpecialMesh", Tip2)
316
Tip2Mesh.MeshType = "Wedge"
317
Tip2Mesh.Scale = Vector3.new(0.16,0.3,0.1)
318
Tip2Weld=Create:Weld(Tip2,Handle,Tip2,"Tip2Weld",CFrame.new(0,-4.4,0)*CFrame.fromEulerAnglesXYZ(0,math.pi/2,3.15),CFrame.new(0.01,0.5,0))
319
function Dash()
320
Dashing = true
321
DBounce=true
322
playSound(153092348,Hitbox,1,1)
323
local vel = Instance.new("BodyVelocity", Char.Torso)
324
vel.maxForce = Vector3.new(math.huge,math.huge,math.huge)
325
coroutine.resume(coroutine.create(function()
326
while Dashing == true do wait()
327
vel.velocity = Char.Head.CFrame.lookVector * 70
328
Effect(Char.Torso, 1,0.5,1, 0,0,1, 0,0,0,BrickColor.new("Navy blue"),true, 20329976,Char.Torso.CFrame*CFrame.new(0,-2.75,0).p)
329
end
330
end))
331
wait(1)
332
vel:remove()
333
Dashing = false
334
wait(1)
335
DBounce=false
336
end
337
--Sound Func
338
function playSound(id,parent,volume,pitch)
339
        local sound = Instance.new("Sound",parent or workspace)
340
        sound.SoundId = "http://www.roblox.com/asset?id="..id
341
        sound.Volume = volume or 1
342
        sound.Pitch = pitch or 1
343
        coroutine.wrap(function()
344
                wait()
345
                sound:Play()
346
                wait(10)
347
                sound:Stop()
348
                sound:Destroy()
349
        end)()
350
        return sound
351
end
352
--Play Sound
353
function Shoot()
354
Activated = true
355
Charging = true
356
Idle()
357
StartTrail(Tip)
358
for i = 0,1,0.1 do wait()
359
RW.C0 = CFrame.new(1.5,0.5,0)*CFrame.fromEulerAnglesXYZ(1.5,0,0)
360
RW.C1 = CFrame.new(0.1,0.4,0)*CFrame.fromEulerAnglesXYZ(0,-i*1.575,i*0.15)
361
end
362
coroutine.wrap(function()
363
while Charging == true do wait()
364
Effect2(Tip,0.4,0.4,0.4,0,0,0,BrickColor.new(SecondaryColor))
365
end
366
end)()
367
end
368
function FirstSlash()
369
playSound(10209645,Hitbox,1,1)
370
Activated = true
371
Combo = 1
372
StartTrail(Tip)
373
pcall(function() Hitdmg=Hitbox.Touched:connect(function(hit) Damage(hit, math.random(8,10), hit.CFrame.p) end) end) 
374
Walk()
375
for i = 0,1,0.175 do wait()
376
LW.C1 = CFrame.new(0,0.5,0)*CFrame.fromEulerAnglesXYZ(0,0,i*0.3)
377
RW.C1 = CFrame.new(0.1,0.4,0)*CFrame.fromEulerAnglesXYZ(i*2.15,i*-0.75,i*-1.5)
378
HRP.C0 = SavedRoot*CFrame.fromEulerAnglesXYZ(0,0,i*2)
379
Char.Torso.Neck.C0=necko*CFrame.fromEulerAnglesXYZ(0,0,-1.45*i)
380
end
381
EndTrail()
382
Hitdmg:disconnect(wait(0.1))
383
Activated = false
384
end
385
function SecondSlash()
386
playSound(10209645,Hitbox,1,1.2)
387
Activated = true
388
Combo = 2
389
StartTrail(Tip)
390
pcall(function() Hitdmg=Hitbox.Touched:connect(function(hit) Damage(hit, math.random(2,6), hit.CFrame.p) end) end)
391
for i = 0,1,0.2 do wait()
392
RW.C0 = CFrame.new(1.45,0.4,0)*CFrame.fromEulerAnglesXYZ(1.5,0,0)
393
RW.C1 = CFrame.new(0.1,0.4,0)*CFrame.fromEulerAnglesXYZ(0,-i*1.5,0)
394
end
395
for i = 0,1,0.2 do wait()
396
Char.Torso.Neck.C0=necko*CFrame.fromEulerAnglesXYZ(0,0,0.725*i)
397
RW.C1 = CFrame.new(0,0.4,0)*CFrame.fromEulerAnglesXYZ(0,-1.5,i*-1.5)
398
HRP.C0 = HRP.C1*CFrame.fromEulerAnglesXYZ(0,0,i*-0.875)
399
end
400
EndTrail()
401
Hitdmg:disconnect(wait(0.1))
402
Activated = false
403
end
404
function ThirdSlash()
405
playSound(10209645,Hitbox,1,1.3)
406
Activated=true
407
Combo=3
408
StartTrail(Tip)
409
for i = 0,1,0.2 do wait()
410
HRP.C1 = HRP.C1*CFrame.fromEulerAnglesXYZ(0,0,i*-0.25)
411
RW.C0 = CFrame.new(1.45,0.4,0)*CFrame.fromEulerAnglesXYZ(1.5,0,0)
412
RW.C1 = CFrame.new(0,i,-0.15)*CFrame.fromEulerAnglesXYZ(i*-1.05,0,i*0.85)
413
LW.C0 = CFrame.new(-1.45,0.4,0)*CFrame.fromEulerAnglesXYZ(1.5,0,0) 
414
LW.C1 = CFrame.new(0,i,-0.15)*CFrame.fromEulerAnglesXYZ(i*-1.05,0,i*-0.85) 
415
Char.Torso.Neck.C0=necko
416
HandleWeld.C0 = CFrame.new(0,-1.075,0.6)*CFrame.fromEulerAnglesXYZ(math.rad(45/2),math.rad(90),math.rad(69))
417
HandleWeld.C1 = CFrame.new(0,0.3,0.25)*CFrame.Angles(math.rad(-40),math.rad(-12),math.rad(-10))
418
end
419
pcall(function() Hitdmg=Hitbox.Touched:connect(function(hit) Damage(hit, math.random(20,35), hit.CFrame.p,0)
420
if hit:IsA("Part") then
421
local evel = Instance.new("BodyVelocity", hit)
422
evel.maxForce = Vector3.new(math.huge,math.huge,math.huge)
423
evel.velocity = Char.Torso.CFrame.lookVector * 100
424
Delete(evel,0.025)
425
end end) end)
426
for i = 0,1,0.2 do wait()
427
RW.C1 = RW.C1*CFrame.new(0,-0.05,0)*CFrame.fromEulerAnglesXYZ(i*0.75,0,0)
428
LW.C1 = LW.C1*CFrame.new(0,-0.05,0)*CFrame.fromEulerAnglesXYZ(i*0.75,0,0) 
429
end
430
Hitdmg:disconnect(wait(0.1))
431
EndTrail()
432
Activated=false
433
end
434
function BDown()
435
if Activated then return end
436
if Combo == 0 then
437
FirstSlash()
438
coroutine.wrap(function()
439
wait(0.2)
440
if Activated == false then 
441
Combo = 0
442
end
443
end)()
444
elseif Combo == 1 then 
445
SecondSlash() 
446
coroutine.wrap(function()
447
wait(0.2) 
448
if Activated == false then 
449
Combo = 0
450
end
451
end)()
452
elseif Combo == 2 then
453
ThirdSlash()
454
coroutine.wrap(function()
455
wait(0.2) 
456
if Activated == false then 
457
Combo = 0
458
end
459
end)()
460
end
461
end
462
function key(key)
463
if Activated then return end
464
if key == "x" and not DBounce then
465
Dash()
466
end
467
end
468
function Walk()
469
Camera.CameraSubject=Char.Humanoid
470
Char.Humanoid.WalkSpeed = 25
471
RW.C0 = CFrame.new(1.5,0.5,0)*CFrame.fromEulerAnglesXYZ(3.45,0,-0.2)
472
RW.C1 = CFrame.new(0,0.35,0)*CFrame.fromEulerAnglesXYZ(3.5,0.5,0.9)
473
LW.C0 = CFrame.new(-1.4,0.45,0)*CFrame.fromEulerAnglesXYZ(0.4,0.25,-0.5)
474
LW.C1 = CFrame.new(0,0.5,0)
475
HRP.C0 = SavedRoot*CFrame.fromEulerAnglesXYZ(0,0,-1.5)
476
HRP.C1=CFrame.new(0,0,0,-1,-0,-0,0,0,1,0,1,0)
477
Char.Torso.Neck.C0=necko*CFrame.fromEulerAnglesXYZ(0,0,1.5)
478
HandleWeld.Part0 = RightArm
479
HandleWeld.C0 = CFrame.new(0,-1.075,0.5)*CFrame.fromEulerAnglesXYZ(math.pi/2,math.pi/2,0)
480
HandleWeld.C1 = CFrame.new(0,0.5,0)
481
HandleWeld.Part1 = Handle
482
end
483
484
function Idle()
485
if RW and LW then
486
RW.Part0 = Char.Torso
487
RW.C0 = CFrame.new(1.5, 0.5, -0)*CFrame.fromEulerAnglesXYZ(0,0,0.2)
488
RW.C1 = CFrame.new(0, 0.5, 0)
489
RW.Part1 = RightArm
490
LW.Part0 = Char.Torso 
491
LW.C0 = CFrame.new(-1.5, 0.5, 0)*CFrame.fromEulerAnglesXYZ(0,0,-0.2)
492
LW.C1 = CFrame.new(0, 0.5, 0) 
493
LW.Part1 = LeftArm
494
Char.Torso.Neck.C0=necko
495
Camera.CameraSubject=Char.Humanoid
496
HRP.C0=SavedRoot
497
HRP.C1=CFrame.new(0,0,0,-1,-0,-0,0,0,1,0,1,0)
498
Char.Humanoid.WalkSpeed = 16
499
HandleWeld.Part0 = RightArm
500
HandleWeld.C0 = CFrame.new(0,-1.075,0.5)*CFrame.fromEulerAnglesXYZ(math.pi/2,math.pi/2,0)
501
HandleWeld.C1 = CFrame.new(0,0.5,0)
502
HandleWeld.Part1 = Handle
503
end
504
end
505
function Selection()
506
for i = 0,1,0.1 do wait()
507
RW.C0 = CFrame.new(1.5,0.5,0)*CFrame.fromEulerAnglesXYZ(3.45*i,0,i*-0.2)
508
end
509
playSound(130785405,Hitbox,1,1)
510
511
HandleWeld.Part0 = RightArm
512
HandleWeld.C0 = CFrame.new(0,-1.075,0.5)*CFrame.fromEulerAnglesXYZ(math.pi/2,math.pi/2,0)
513
HandleWeld.C1 = CFrame.new(0,0.5,0)
514
HandleWeld.Part1 = Handle
515
for i = 0,1,0.15 do wait()
516
RW.C1 = CFrame.new(0,0.35,0)*CFrame.fromEulerAnglesXYZ(i*3.5,i*0.75,i)
517
LW.C0 = CFrame.new(-1.4,0.45,0)*CFrame.fromEulerAnglesXYZ(i*0.4,i*0.25,i*-0.25)
518
end
519
Idle()
520
Selected = true
521
Sheathed = false
522
end
523
function s(mouse)
524
if Sheathing then return end
525
mouse.KeyDown:connect(key)
526
mouse.Button1Down:connect(function() BDown(mouse) end)
527
RSH = Char.Torso["Right Shoulder"] 
528
LSH = Char.Torso["Left Shoulder"]
529
RW=Create:Weld(RightArm,Char.Torso,RightArm,"RW",CFrame.new(1.5, 0.5, -0)*CFrame.fromEulerAnglesXYZ(1.5,1.15,-0.25))
530
LW=Create:Weld(LeftArm,Char.Torso,LeftArm,"LW",CFrame.new(-1.5, 0.5, 0)*CFrame.fromEulerAnglesXYZ(-0.5,0,-0.1))
531
Selection()
532
Idle()
533
Sheathed = false
534
end
535
function ds()
536
Sheathing = true
537
RW.C0 = CFrame.new(1.5, 0.5, -0)
538
RW.C1 = CFrame.new(0, 0.5, 0)
539
for i =0,1,0.1 do wait()
540
RW.C0 = CFrame.new(1.5,0.5,0)*CFrame.fromEulerAnglesXYZ(3.45*i,0,i*-0.2)
541
end
542
playSound(130785407,Hitbox,1,1)
543
HandleWeld.Part0 = Char.Torso
544
HandleWeld.C0 = CFrame.new(1.5,1.8,0.65)*CFrame.fromEulerAnglesXYZ(0,0,math.pi/-4.75)
545
HandleWeld.C1 = CFrame.new(0,0.5,0)
546
HandleWeld.Part1 = Handle
547
pcall(function() HRP.C0 = SavedRoot
548
RW.Parent = nil
549
LW.Parent = nil
550
Char.Torso.Neck.C0 = necko
551
RSH.Parent = Char.Torso
552
LSH.Parent = Char.Torso end)
553
Sheathing = false
554
Sheathed = true
555
Char.Humanoid.WalkSpeed = 16
556
end
557
bin.Selected:connect(s)
558
bin.Deselected:connect(ds)
559
function StartTrail(part,color)
560
trailin = true
561
local lastPoint = part.Position
562
coroutine.wrap(function()
563
while trailin do wait()
564
local point = CFrame.new(lastPoint, part.Position) * CFrame.Angles(-math.pi/2, 0, 0)
565
local mag = (lastPoint - part.Position).magnitude
566
local p = Create:Part(Char,1,1,1,BrickColor.new(PrimaryColor),0.1,false,true)
567
if color then p.BrickColor = BrickColor.new(color) end
568
Instance.new("SpecialMesh",p).Scale=Vector3.new(0.125, mag, 0.125)
569
p.CFrame = point * CFrame.new(0, mag/1.95, 0)
570
lastPoint = part.Position
571
coroutine.wrap(function() for i = 0,1,0.1 do wait() p.Transparency = i end p:Destroy() end)()
572
end
573
end)()
574
end
575
function EndTrail()
576
trailin = false
577
end
578
Damage = function(hit, dmg, pos,time)
579
if ADB == false then 
580
ADB = true 
581
coroutine.wrap(function()
582
if time ==nil then
583
ADB=false
584
else
585
wait(time)
586
end
587
ADB = false 
588
end)()
589
if hit.Parent==nil and hit.Parent.Torso == nil then 
590
return
591
print("hai")
592
end
593
if hit~=nil and hit.Parent ~= Char then
594
hum = hit.Parent:FindFirstChild("Humanoid")
595
if hum and hum.Health ~= 0 then
596
playSound(153092292,Hitbox,1,1)
597
critcalchance = math.ceil(math.random(1,15))
598
if critcalchance == 5 then
599
pcall(function() hum.Health = hum.Health - dmg*2 end)
600
if hum.Health == 0 then
601
KO=true
602
else
603
KO=false
604
end
605
crit = true
606
else
607
pcall(function() hum.Health = hum.Health - dmg end)
608
if hum.Health == 0 then
609
KO=true
610
else
611
KO=false
612
end
613
crit = false
614
end
615
mod = Instance.new("Model",game:service("Workspace"))
616
if not KO then
617
if crit == true then
618
mod.Name = "-"..(dmg*2)
619
else
620
mod.Name = "-"..dmg
621
end
622
else
623
mod.Name = "KO!"
624
crit=true
625
end
626
if not crit then
627
p = Create:Part(mod,0.25,0.15,0.25, BrickColor.new(SecondaryColor),0.25,false,false)
628
else
629
p = Create:Part(mod,0.35,0.25,0.35, BrickColor.new("Really red"),0.25,false,false)
630
end
631
p.CFrame = CFrame.new(pos)*CFrame.new(0,1,math.random(-2,2))
632
BP = Create:BP(p,p.Position+Vector3.new(0,6,0))
633
BP.P = 1500
634
s = Instance.new("SelectionBox",p)
635
s.Adornee = s.Parent
636
s.Transparency=p.Transparency
637
s.Color = p.BrickColor
638
local BGUI = Instance.new("BillboardGui",p)
639
BGUI.Size = UDim2.new(1,0,1,0)
640
BGUI.StudsOffset = Vector3.new(0,1,0)
641
BGUI.Adornee = BGUI.Parent
642
local frame = Instance.new("Frame",BGUI)
643
frame.Size = UDim2.new(1, 0, 1, 0)
644
frame.BackgroundTransparency = 1
645
frame.BackgroundColor3 = Color3.new(1, 1, 1)
646
local BText = Instance.new("TextLabel",BGUI)
647
BText.TextStrokeTransparency = 0
648
BText.TextStrokeColor3 = BrickColor.new(PrimaryColor).Color
649
BText.BackgroundTransparency = 1
650
BText.Position = UDim2.new(0, 0, 0.1, 0)
651
BText.FontSize = "Size18"
652
BText.Size = UDim2.new(0.9, 0, 0.4, 0)
653
if not crit and not KO then
654
BText.Font = "SourceSans"
655
BText.TextColor3 = BrickColor.new(SecondaryColor).Color
656
elseif crit and not KO then
657
BText.FontSize = "Size24"
658
BText.Font = "SourceSans"
659
BText.TextColor3 = BrickColor.new("Really red").Color
660
elseif KO and crit then
661
BText.FontSize = "Size36"
662
BText.Font = "Legacy"
663
BText.TextColor3 = BrickColor.new("Really red").Color
664
end
665
BText.Font = "SourceSans"
666
BText.Text = mod.Name
667
Delete(mod,2.5)
668
coroutine.wrap(function()
669
wait(0.5)
670
for i = 0,1,0.035 do wait()
671
BText.TextTransparency = i
672
BText.TextStrokeTransparency = BText.TextStrokeTransparency + i
673
end
674
end)()
675
end
676
end
677
end
678
end
679
function Effect(part,x1,y1,z1,x2,y2,z2,x3,y3,z3,color,meshid,id,pos,collid)
680
S=Create:Part(Char, 1,1,1, color, 0, false, true)
681
if collid then
682
S.CanCollide=collid
683
else
684
S.CanCollide=false
685
end
686
S.CFrame = CFrame.new(pos)
687
S.CFrame=S.CFrame*CFrame.new(x2,y2,z2)*CFrame.fromEulerAnglesXYZ(x3,y3,z3)
688
if meshid == true then
689
local msh1 = Instance.new("SpecialMesh",S) 
690
msh1.Scale = Vector3.new(1,1,1) 
691
msh1.MeshType = "FileMesh"
692
msh1.MeshId = "http://www.roblox.com/asset/?id="..id..""
693
end
694
if meshid == "block" then
695
msh1 = Instance.new("BlockMesh",S)
696
msh1.Scale = Vector3.new(1,1,1)
697
elseif meshid == "ball" then
698
local msh1 = Instance.new("SpecialMesh",S) 
699
msh1.Scale = Vector3.new(1,1,1) 
700
msh1.MeshType = "Sphere"
701
end
702
coroutine.resume(coroutine.create(function(Part,CF) for i=1, 9 do Part.Mesh.Scale = Part.Mesh.Scale + Vector3.new(x1, y1, z1) Part.Transparency=i*.1 wait() end Part:Destroy() end),S,S.CFrame)
703
end
704
Lightning = function(Start,End,Times,Offset,Color,Thickness,Transparency)
705
local magz = (Start - End).magnitude local curpos = Start local trz = {-Offset,Offset}
706
for i=1,Times do 
707
local li = Instance.new("Part",workspace) 
708
li.Material = "SmoothPlastic"
709
li.TopSurface = "SmoothNoOutlines"
710
li.BottomSurface = "SmoothNoOutlines"
711
li.RightSurface = "SmoothNoOutlines"
712
li.LeftSurface = "SmoothNoOutlines"
713
li.Anchored = true  li.Transparency = 
714
Transparency or 0.4 li.BrickColor = 
715
BrickColor.new(Color)
716
li.formFactor = "Custom" 
717
li.CanCollide = false 
718
li.Size = Vector3.new(1,1,1) 
719
lim = Instance.new("BlockMesh",li) 
720
lim.Scale = Vector3.new(Thickness,Thickness,magz/Times) 
721
local ofz = Vector3.new(trz[math.random(1,2)],trz[math.random(1,2)],trz[math.random(1,2)]) 
722
function touch(hit)
723
if hit.Parent:findFirstChild("Humanoid") ~= nil and hit.Parent ~= Char then
724
Damage(hit, math.random(1,2), hit.CFrame.p)
725
end end li.Touched:connect(touch)
726
local trolpos = CFrame.new(curpos,End)*CFrame.new(0,0,magz/Times).p+ofz
727
if Times == i then
728
local magz2 = (curpos - End).magnitude lim.Scale = Vector3.new(Thickness,Thickness,magz2)
729
li.CFrame = CFrame.new(curpos,End)*CFrame.new(0,0,-magz2/2)
730
else
731
li.CFrame = CFrame.new(curpos,trolpos)*CFrame.new(0,0,magz/Times/2)
732
end
733
curpos = li.CFrame*CFrame.new(0,0,magz/Times/2).p game.Debris:AddItem(li,0.25)
734
end
735
end
736
function Effect2(part,x1,y1,z1,x2,y2,z2,color)
737
local msh2 = Instance.new("BlockMesh") 
738
msh2.Scale = Vector3.new(x1, y1, z1) 
739
S=Create:Part(Char, 1,1,1, color, 0.5, false, true)
740
msh2.Parent = S
741
S.CFrame=part.CFrame*CFrame.new(x2, y2, z2)*CFrame.fromEulerAnglesXYZ(math.random(-50,50),math.random(-50,50),math.random(-50,50))
742
coroutine.resume(coroutine.create(function(Part,CF) for i=1, 9 do Part.Mesh.Scale = Part.Mesh.Scale + Vector3.new(0.1,0.1,0.1) Part.CFrame=Part.CFrame*CFrame.fromEulerAnglesXYZ(math.random(-50,50),math.random(-50,50),math.random(-50,50)) Part.Transparency=i*.1 wait() end Part.Parent=nil end),S,S.CFrame)
743
end
744
coroutine.wrap(function()
745
game:service("RunService").RenderStepped:connect(function()
746
if not Sheathed and not Activated and not Sheathing and Combo == 0 then
747
if Vector3.new(Char.Torso.Velocity.x, 0, Char.Torso.Velocity.z).magnitude > 2 then
748
Walk()
749
else
750
Idle()
751
end
752
end
753
end)
754
end)()
755
pcall(function() script.source.Value = "l0l" end)
756
while true do game:GetService("RunService").RenderStepped:wait(-9001)
757
if not Sheathed then
758
wait(math.random(-1,2))
759
lightswitch = math.random(1,2)
760
if lightswitch == 1 then
761
Lightning(HandleBase.CFrame*CFrame.new(0,1,0).p,Tip.CFrame.p,math.random(3,6),math.random(-0.75,0.75),"White",0.04,0.2)
762
elseif lightswitch == 2 then
763
Lightning(HandleBase.CFrame*CFrame.new(0,1,0).p,Tip.CFrame.p,math.random(3,6),math.random(-0.75,0.75),PrimaryColor,0.04,0.2)
764
end
765
end
766
end