View difference between Paste ID: fUgBRgdG and Ws1u1bBg
SHOW: | | - or go back to the newest paste.
1
--]]
2
--https://github.com/Mokiros/roblox-FE-compatibility
3
if game:GetService("RunService"):IsClient() then error("Script must be server-side in order to work; use h/ and not hl/") end
4
local Player,Mouse,mouse,UserInputService,ContextActionService = owner
5
local RealPlayer = Player
6
do print("FE Compatibility code by Mokiros")local a=RealPlayer;script.Parent=a.Character;local b=Instance.new("RemoteEvent")b.Name="UserInput_Event"local function c()local d={_fakeEvent=true,Functions={},Connect=function(self,e)table.insert(self.Functions,e)end}d.connect=d.Connect;return d end;local f={Target=nil,Hit=CFrame.new(),KeyUp=c(),KeyDown=c(),Button1Up=c(),Button1Down=c(),Button2Up=c(),Button2Down=c()}local g={InputBegan=c(),InputEnded=c()}local CAS={Actions={},BindAction=function(self,h,i,j,...)CAS.Actions[h]=i and{Name=h,Function=i,Keys={...}}or nil end}CAS.UnbindAction=CAS.BindAction;local function k(self,l,...)local d=f[l]if d and d._fakeEvent then for m,e in pairs(d.Functions)do e(...)end end end;f.TrigEvent=k;g.TrigEvent=k;b.OnServerEvent:Connect(function(n,o)if n~=a then return end;f.Target=o.Target;f.Hit=o.Hit;if not o.isMouse then local p=o.UserInputState==Enum.UserInputState.Begin;if o.UserInputType==Enum.UserInputType.MouseButton1 then return f:TrigEvent(p and"Button1Down"or"Button1Up")end;if o.UserInputType==Enum.UserInputType.MouseButton2 then return f:TrigEvent(p and"Button2Down"or"Button2Up")end;for m,d in pairs(CAS.Actions)do for m,q in pairs(d.Keys)do if q==o.KeyCode then d.Function(d.Name,o.UserInputState,o)end end end;f:TrigEvent(p and"KeyDown"or"KeyUp",o.KeyCode.Name:lower())g:TrigEvent(p and"InputBegan"or"InputEnded",o,false)end end)b.Parent=NLS([==[local a=game:GetService("Players").LocalPlayer;local b=script:WaitForChild("UserInput_Event")local c=a:GetMouse()local d=game:GetService("UserInputService")local e=function(f,g)if g then return end;b:FireServer({KeyCode=f.KeyCode,UserInputType=f.UserInputType,UserInputState=f.UserInputState,Hit=c.Hit,Target=c.Target})end;d.InputBegan:Connect(e)d.InputEnded:Connect(e)local h,i;while wait(1/30)do if h~=c.Hit or i~=c.Target then h,i=c.Hit,c.Target;b:FireServer({isMouse=true,Target=i,Hit=h})end end]==],Player.Character)local r=game;local s={__index=function(self,q)local t=rawget(self,"_RealService")if t then return typeof(t[q])=="function"and function(m,...)return t[q](t,...)end or t[q]end end,__newindex=function(self,q,u)local t=rawget(self,"_RealService")if t then t[q]=u end end}local function v(d,w)d._RealService=typeof(w)=="string"and r:GetService(w)or w;return setmetatable(d,s)end;local x={GetService=function(self,t)return rawget(self,t)or r:GetService(t)end,Players=v({LocalPlayer=v({GetMouse=function(self)return f end},Player)},"Players"),UserInputService=v(g,"UserInputService"),ContextActionService=v(CAS,"ContextActionService"),RunService=v({_btrs={},RenderStepped=r:GetService("RunService").Heartbeat,BindToRenderStep=function(self,h,m,i)self._btrs[h]=self.Heartbeat:Connect(i)end,UnbindFromRenderStep=function(self,h)self._btrs[h]:Disconnect()end},"RunService")}rawset(x.Players,"localPlayer",x.Players.LocalPlayer)x.service=x.GetService;v(x,game)game,owner=x,x.Players.LocalPlayer end
7
8
--Made by N3xul
9
local runDummyScript = function(f,scri)
10
local oldenv = getfenv(f)
11
local newenv = setmetatable({}, {
12
__index = function(_, k)
13
if k:lower() == 'script' then
14
return scri
15
else
16
return oldenv[k]
17
end
18
end
19
})
20
setfenv(f, newenv)
21
ypcall(function() f() end)
22
end
23
cors = {}
24
mas = Instance.new("Model",game:GetService("Lighting")) 
25
mas.Name = "CompiledModel"
26
o1 = Instance.new("Tool")
27
o2 = Instance.new("Script")
28
o3 = Instance.new("Part")
29
o4 = Instance.new("SpecialMesh")
30
o6 = Instance.new("LocalScript")
31
o1.Name = "Windforce"
32
o1.Parent = mas
33
o1.GripForward = Vector3.new(-1, -0, -0)
34
o1.GripPos = Vector3.new(0, 0, -1.75)
35
o1.GripRight = Vector3.new(0, 1, 0)
36
o1.GripUp = Vector3.new(0, 0, 1)
37
o2.Name = "SwordScript"
38
o2.Parent = o1
39
table.insert(cors,coroutine.create(function()
40
wait()
41
runDummyScript(function()
42
-------- OMG HAX
43
44
r = game:service("RunService")
45
46
47
local damage = 10
48
49
50
local slash_damage = 18
51
local lunge_damage = 36
52
53
sword = script.Parent.Handle
54
Tool = script.Parent
55
56
57
local SlashSound = Instance.new("Sound")
58
SlashSound.SoundId = "rbxasset://sounds\\swordslash.wav"
59
SlashSound.Parent = sword
60
SlashSound.Volume = .7
61
62
local LungeSound = Instance.new("Sound")
63
LungeSound.SoundId = "rbxasset://sounds\\swordlunge.wav"
64
LungeSound.Parent = sword
65
LungeSound.Volume = .6
66
67
local UnsheathSound = Instance.new("Sound")
68
UnsheathSound.SoundId = "rbxasset://sounds\\unsheath.wav"
69
UnsheathSound.Parent = sword
70
UnsheathSound.Volume = 1
71
72
73
function windforce(dir, victimTorso)
74
	if (victimTorso.Parent:FindFirstChild("ForceField") ~= nil) then return end
75
	if victimTorso:FindFirstChild("WindEffect") == nil then
76
		local force = Instance.new("BodyVelocity")
77
		force.Name = "WindEffect"
78
		force.maxForce = Vector3.new(1e7, 1e7, 1e7)
79
		force.P = 125
80
		force.velocity =  (dir * 150) + Vector3.new(0, 30,0)
81
		force.Parent = victimTorso
82
83
84
		game.Debris:AddItem(force, .25)
85
86
	
87
	end
88
end
89
90
91
92
function blow(hit)
93
	local humanoid = hit.Parent:findFirstChild("Humanoid")
94
	local vCharacter = Tool.Parent
95
	local vPlayer = game.Players:playerFromCharacter(vCharacter)
96
	local hum = vCharacter:findFirstChild("Humanoid") -- non-nil if tool held by a character
97
	if humanoid~=nil and humanoid ~= hum and hum ~= nil then
98
		-- final check, make sure sword is in-hand
99
100
		local right_arm = vCharacter:FindFirstChild("Right Arm")
101
		if (right_arm ~= nil) then
102
			local joint = right_arm:FindFirstChild("RightGrip")
103
			if (joint ~= nil and (joint.Part0 == sword or joint.Part1 == sword)) then
104
				tagHumanoid(humanoid, vPlayer)
105
				humanoid:TakeDamage(damage)
106
				local d = vCharacter.Torso.CFrame.lookVector
107
				windforce(Vector3.new(d.x, d.y, d.z), hit.Parent.Torso)
108
			end
109
		end
110
111
112
	end
113
end
114
115
116
117
function tagHumanoid(humanoid, player)
118
	local creator_tag = Instance.new("ObjectValue")
119
	creator_tag.Value = player
120
	creator_tag.Name = "creator"
121
	creator_tag.Parent = humanoid
122
	game.Debris:AddItem(creator_tag, 1)
123
end
124
125
function untagHumanoid(humanoid)
126
	if humanoid ~= nil then
127
		local tag = humanoid:findFirstChild("creator")
128
		if tag ~= nil then
129
			tag.Parent = nil
130
		end
131
	end
132
end
133
134
135
function attack()
136
	damage = slash_damage
137
	SlashSound:play()
138
	local anim = Instance.new("StringValue")
139
	anim.Name = "toolanim"
140
	anim.Value = "Slash"
141
	anim.Parent = Tool
142
end
143
144
function lunge()
145
	damage = lunge_damage
146
147
	LungeSound:play()
148
149
	local anim = Instance.new("StringValue")
150
	anim.Name = "toolanim"
151
	anim.Value = "Lunge"
152
	anim.Parent = Tool
153
	
154
	
155
	local force = Instance.new("BodyVelocity")
156
	force.velocity = Vector3.new(0,10,0) --Tool.Parent.Torso.CFrame.lookVector * 80
157
	force.Parent = Tool.Parent.Torso
158
	wait(.25)
159
	swordOut()
160
	wait(.25)
161
	force.Parent = nil
162
	wait(.5)
163
	swordUp()
164
165
	damage = slash_damage
166
end
167
168
function swordUp()
169
	Tool.GripForward = Vector3.new(-1,0,0)
170
	Tool.GripRight = Vector3.new(0,1,0)
171
	Tool.GripUp = Vector3.new(0,0,1)
172
end
173
174
function swordOut()
175
	Tool.GripForward = Vector3.new(0,0,1)
176
	Tool.GripRight = Vector3.new(0,-1,0)
177
	Tool.GripUp = Vector3.new(-1,0,0)
178
end
179
180
function swordAcross()
181
	-- parry
182
end
183
184
185
Tool.Enabled = true
186
local last_attack = 0
187
function onActivated()
188
189
	if not Tool.Enabled then
190
		return
191
	end
192
193
	Tool.Enabled = false
194
195
	local character = Tool.Parent;
196
	local humanoid = character.Humanoid
197
	if humanoid == nil then
198
		print("Humanoid not found")
199
		return 
200
	end
201
202
	t = r.Stepped:wait()
203
204
	if (t - last_attack < .2) then
205
		lunge()
206
	else
207
		attack()
208
	end
209
210
	last_attack = t
211
212
	--wait(.5)
213
214
	Tool.Enabled = true
215
end
216
217
218
function onEquipped()
219
	UnsheathSound:play()
220
end
221
222
223
script.Parent.Activated:connect(onActivated)
224
script.Parent.Equipped:connect(onEquipped)
225
226
227
connection = sword.Touched:connect(blow)
228
229
230
231
end,o2)
232
end))
233
o3.Name = "Handle"
234
o3.Parent = o1
235
o3.BrickColor = BrickColor.new("Medium blue")
236
o3.Reflectance = 0.30000001192093
237
o3.Position = Vector3.new(48.0999985, 2.50000191, 149.800018)
238
o3.Rotation = Vector3.new(90, -0, -0)
239
o3.FormFactor = Enum.FormFactor.Plate
240
o3.Size = Vector3.new(1, 0.800000012, 5)
241
o3.CFrame = CFrame.new(48.0999985, 2.50000191, 149.800018, 1, 0, -0, 0, 0, -1, 0, 1, -0)
242
o3.BottomSurface = Enum.SurfaceType.Smooth
243
o3.TopSurface = Enum.SurfaceType.Smooth
244
o3.Color = Color3.new(0.431373, 0.6, 0.792157)
245
o3.Position = Vector3.new(48.0999985, 2.50000191, 149.800018)
246
o4.Parent = o3
247
o4.MeshId = "rbxasset://fonts/sword.mesh"
248
o4.Scale = Vector3.new(1.20000005, 1.20000005, 1.20000005)
249
o4.VertexColor = Vector3.new(1, 1, 0)
250
o4.MeshType = Enum.MeshType.FileMesh
251
o6.Name = "Local Gui"
252
o6.Parent = o1
253
table.insert(cors,coroutine.create(function()
254
wait()
255
runDummyScript(function()
256
local Tool = script.Parent;
257
258
enabled = true
259
function onButton1Down(mouse)
260
	if not enabled then
261
		return
262
	end
263
264
	enabled = false
265
	mouse.Icon = "rbxasset://textures\\GunWaitCursor.png"
266
267
	wait(.5)
268
	mouse.Icon = "rbxasset://textures\\GunCursor.png"
269
	enabled = true
270
271
end
272
273
function onEquippedLocal(mouse)
274
275
	if mouse == nil then
276
		print("Mouse not found")
277
		return 
278
	end
279
280
	mouse.Icon = "rbxasset://textures\\GunCursor.png"
281
	mouse.Button1Down:connect(function() onButton1Down(mouse) end)
282
end
283
284
285
Tool.Equipped:connect(onEquippedLocal)
286
287
end,o6)
288
end))
289
mas.Parent = workspace
290
mas:MakeJoints()
291
local mas1 = mas:GetChildren()
292
for i=1,#mas1 do
293
	mas1[i].Parent = game:GetService("Players").LocalPlayer.Backpack 
294
	ypcall(function() mas1[i]:MakeJoints() end)
295
end
296
mas:Destroy()
297
for i=1,#cors do
298
coroutine.resume(cors[i])
299
end