View difference between Paste ID: mCXZY2CH and Sewv8bHd
SHOW: | | - or go back to the newest paste.
1
if game:GetService("RunService"):IsClient() then error("Script must be server-side in order to work; use h/ and not hl/") end
2
local Player = owner
3
local Mouse = owner
4
local mouse = owner
5
local UserInputService = owner
6
local ContextActionService = owner
7
local RealPlayer = Player
8
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
9
10
msh = Instance.new("SpecialMesh",nil)
11
msh.MeshId = "rbxassetid://116679805"
12-
msh.MeshId = "rbxassetid://1532314169"
12+
msh.TextureId = "rbxassetid://116679995"
13-
msh.TextureId = "rbxassetid://1532316153"
13+
14
15
plr = owner
16
char = plr.Character
17
ra = char["Right Arm"]
18
la = char["Left Arm"]
19
rl = char["Right Leg"]
20
ll = char["Left Leg"]
21
root = char.HumanoidRootPart
22
hed = char.Head
23
tors = char.Torso
24
hum = char.Humanoid
25
26
function ezweld(p, a, b, cf)
27
    local weld = Instance.new("Weld",p)
28
    weld.Part0 = a
29
    weld.Part1 = b
30
    weld.C0 = cf
31
    return weld
32
end
33
34
function Swait(number)
35
    if number == 0 or number == nil then
36
        game:GetService("RunService").Heartbeat:Wait()
37
    else
38
        for i = 1,number do
39
            game:GetService("RunService").Heartbeat:Wait()
40
        end
41
    end
42
end
43
44
clerp = function(toclerp, cf, number)
45
    local joint = toclerp
46
    joint.C0 = joint.C0:Lerp(cf, number)
47
end
48
49
clerp2 = function(toclerp, cf)
50
    local joint = toclerp
51
    joint.C0 = cf
52
end
53
54
clerp3 = function(toclerp, cf, number)
55
    local joint = toclerp
56
    joint.C1 = joint.C1:Lerp(cf, number)
57
end
58
59
anim = "Idle"
60
attack = false
61
local RS = char.Torso["Right Shoulder"]
62
local LS = char.Torso["Left Shoulder"]
63
local RH = char.Torso["Right Hip"]
64
local LH = char.Torso["Left Hip"]
65
local neck = char.Torso["Neck"]
66
local anim = "Idle"
67
local root = char.HumanoidRootPart
68
local rootj = root.RootJoint
69
local timepos = 0
70
local sine = 0
71
local RSnor = RS.C0
72
local LSnor = LS.C0
73
local RHnor = RH.C0
74
local LHnor = LH.C0
75
local RSnor2 = RS.C1
76
local LSnor2 = LS.C1
77
local RHnor2 = RH.C1
78
local LHnor2 = LH.C1
79
local rootjnor = rootj.C0
80
local necknor = neck.C0
81
local tors = char.Torso
82
local playstealanim = false
83
hold = false
84
mouse = plr:GetMouse()
85
hold = false
86
Debris = game:GetService("Debris")
87
88
IT = Instance.new
89
Rad = math.rad
90
Cos = math.cos
91
Sin = math.sin
92
BrickC = BrickColor.new
93
C3 = Color3.new
94
VT = Vector3.new
95
96
function addcontroller(part)
97
	local control1 = Instance.new("Part",char)
98
	control1.CanCollide = false
99
	control1.Anchored = false
100
	control1.Name = "controller"
101
	control1.Size = Vector3.new(0.1, 0.1, 0.1)
102
	local mesh1 = msh:Clone()
103
	mesh1.Parent = control1
104
	local weld1 = ezweld(char, part, control1, CFrame.new(0, -part.Size.y / 2.45, -0.15) * CFrame.Angles(Rad(-90), 0, 0))
105
	return control1
106
end
107
108
local control1 = addcontroller(ra)
109
local control2 = addcontroller(la)
110
111
--hed is Head
112
--tors is Torso
113
--la is Left Arm
114
--HEADLERP is already added for u
115
116
local HEADLERP = Instance.new("ManualWeld")
117
HEADLERP.Parent = hed
118
HEADLERP.Part0 = hed
119
HEADLERP.Part1 = hed
120
HEADLERP.C0 = CFrame.new(0, -1.5, -0) * CFrame.Angles(math.rad(0), math.rad(0), math.rad(0))
121
122
MseGuide = true
123
OrgnC0 = neck.C0
124
local movelimbs = coroutine.wrap(function()
125
while game:GetService("RunService").RenderStepped:wait() do
126
TrsoLV = tors.CFrame.lookVector
127
Dist = nil
128
Diff = nil
129
if not MseGuide then
130
print("Failed to recognize")
131
else
132
local _, Point = workspace:FindPartOnRay(Ray.new(hed.CFrame.p, mouse.Hit.lookVector), workspace, false, true)
133
Dist = (hed.CFrame.p-Point).magnitude
134
Diff = hed.CFrame.Y-Point.Y
135
local _, Point2 = workspace:FindPartOnRay(Ray.new(la.CFrame.p, mouse.Hit.lookVector), workspace, false, true)
136
Dist2 = (la.CFrame.p-Point).magnitude
137
Diff2 = la.CFrame.Y-Point.Y
138
HEADLERP.C0 = CFrame.new(0, -1.5, -0) * CFrame.Angles(math.rad(0), math.rad(0), math.rad(0))
139
neck.C0 = OrgnC0*CFrame.Angles((math.tan(Diff/Dist)*1.5), 0, (((hed.CFrame.p-Point).Unit):Cross(tors.CFrame.lookVector)).Y*1.5)
140
end
141
end
142
end)
143
144
movelimbs()
145
146
NLS([[
147
	
148
	function Swait(number)
149
    	if number == 0 or number == nil then
150
        	game:GetService("RunService").Heartbeat:Wait()
151
    	else
152
        	for i = 1,number do
153
            	game:GetService("RunService").Heartbeat:Wait()
154
        	end
155
    	end
156
	end
157
158
    while true do
159
	Swait()
160
	for i,v in pairs (owner.Character:GetChildren()) do
161
		if v:IsA("Part") and v.Name == "controller" then
162
			v.LocalTransparencyModifier = 0
163
		end
164
	end
165
    owner.Character["Right Arm"].LocalTransparencyModifier = 0
166
    owner.Character["Left Arm"].LocalTransparencyModifier = 0
167
    owner.Character["Right Leg"].LocalTransparencyModifier = 0
168
    owner.Character["Left Leg"].LocalTransparencyModifier = 0
169
    owner.Character["Torso"].LocalTransparencyModifier = 0
170
    end
171
172
]],char)
173
174
Grabbing = false
175
local CameraCFrame = CFrame.new(0, 0, 0)
176
local PushGrabbingPart = true
177
178
local CamCFrame = Instance.new("RemoteEvent",char)
179
CamCFrame.Name = "CamCFrame"
180
181
NLS([[
182
	
183
	plr = owner
184
	char = plr.Character
185
	RootPart = char.HumanoidRootPart
186
	cam = workspace.CurrentCamera
187
	mu = plr:GetMouse()
188
	
189
	while true do
190
		game:GetService("RunService").stepped:wait()
191
		char.CamCFrame:FireServer(cam.CFrame)
192
		RootPart.CFrame = CFrame.new(RootPart.Position,Vector3.new(mu.Hit.p.X,RootPart.Position.Y,mu.Hit.p.Z))
193
	end
194
	
195
	]],char)
196
197
CamCFrame.OnServerEvent:Connect(function(_,CAMCF)
198
	CameraCFrame = CAMCF
199
end)
200
201
function nograv(PART)
202
	local bodyForced = Instance.new('BodyForce', PART)
203
	bodyForced.Name = 'ANTGR'
204
	bodyForced.Force = Vector3.new(0, PART:GetMass() * game.Workspace.Gravity, 0)
205
	return bodyForced
206
end
207
208
Range = 5
209
210
function CreatePart(PARENT, MATERIAL, REFLECTANCE, TRANSPARENCY, BRICKCOLOR, NAME, SIZE, ANCHOR)
211
	local NEWPART = Instance.new("Part",PARENT)
212
	NEWPART.Reflectance = REFLECTANCE
213
	NEWPART.Transparency = TRANSPARENCY
214
	NEWPART.CanCollide = false
215
	NEWPART.Locked = true
216
	if ANCHOR == true then
217
		NEWPART.Anchored = true
218
	end
219
	NEWPART.BrickColor = BrickColor.new(BRICKCOLOR)
220
	NEWPART.Name = NAME
221
	NEWPART.Size = SIZE
222
	NEWPART.Position = tors.Position
223
	NEWPART.Material = MATERIAL
224
	return NEWPART
225
end
226
227
	local function weldBetween(a, b)
228
		local weldd = Instance.new("ManualWeld")
229
		weldd.Part0 = a
230
		weldd.Part1 = b
231
		weldd.C0 = CFrame.new()
232
		weldd.C1 = b.CFrame:inverse() * a.CFrame
233
		weldd.Parent = a
234
		return weldd
235
	end
236
	
237
	function spawnsword(cf)
238
		local sword = Instance.new("Part",workspace)
239
		sword.Size = Vector3.new(1, 0.8, 4)
240
		sword.CFrame = cf
241
		sword.Anchored = false
242
		sword.Touched:connect(function(hit)
243
			for i,v in pairs (hit.Parent:children()) do
244
				if v:IsA("Humanoid") and v.Parent ~= char then
245
					v.Health = v.Health - 5
246
				end
247
			end
248
		end)
249
		local mesh = Instance.new("SpecialMesh",sword)
250
		mesh.MeshId = "rbxasset://fonts/sword.mesh"
251
		mesh.TextureId = "rbxasset://textures/SwordTexture.png"
252
		return sword
253
	end
254
	
255
	function spawnsponge(cf)
256
		local sponge = Instance.new("Part",workspace)
257
		sponge.Size = Vector3.new(2.5, 1.125, 4.25)
258
		sponge.CFrame = cf
259
		sponge.Anchored = false
260
		sponge.Touched:connect(function(hit)
261
			for i,v in pairs (hit:children()) do
262
				if v:IsA("Decal") and not v:FindFirstChild("cantclean") then
263
					v.Transparency = v.Transparency + 0.05
264
					local cantclean = Instance.new("NumberValue",v)
265
					cantclean.Name = "cantclean"
266
					Debris:AddItem(cantclean, 0.25)
267
				end
268
			end
269
		end)
270
		local mesh = Instance.new("SpecialMesh",sponge)
271
		mesh.MeshId = "rbxassetid://551373055"
272
		mesh.TextureId = "rbxassetid://551373057"
273
		mesh.Scale = Vector3.new(0.1, 0.1, 0.1)
274
		return sponge
275
	end
276
	
277
	function toasted(cf)
278
		local a = 0.0025
279
		local bread = Instance.new("Part",workspace) bread.CanCollide = true bread.Anchored = false bread.CFrame = cf bread.Size = Vector3.new(1.045, 1.015, 0.101) bread.Orientation = Vector3.new(90, 180, 0)
280
 		local bmesh = Instance.new("SpecialMesh",bread) bmesh.MeshType = "FileMesh" bmesh.MeshId = "rbxassetid://1614924885" bmesh.TextureId = "rbxassetid://1614940093" bmesh.Scale = Vector3.new(a, a, a)
281
		return bread
282
	end
283
284
function grab(Tag)
285
	local GrabbingBall = CreatePart(char,"Neon",0,1,"White","GrabbingBall",VT(0.1,0.1,0.1),false)
286
	GrabbingBall.Shape = "Ball"
287
	local xs,ys,zs = CameraCFrame:ToEulerAnglesXYZ()
288
	local starterrot = CFrame.new(0,0,0) * CFrame.Angles(Rad(math.deg(xs)),Rad(math.deg(ys)),Rad(math.deg(zs)))
289
	local TagMass = Tag.Massless
290
	local OldVelocity = Tag.Velocity
291
	Tag.Velocity = VT(0,0,0)
292
	Tag.Massless = false
293
	local AntiGrav = nograv(Tag)
294
	GrabbingBall.CFrame = CFrame.new(mouse.Hit.p,hed.Position)
295
	weldBetween(GrabbingBall,Tag)
296
	nograv(GrabbingBall)
297
	repeat
298
		Swait()
299
		if Grabbing == true then
300
			GrabbingBall.Velocity = VT(0,0,0)
301
			Tag.Velocity = VT(0,0,0)
302
			GrabbingBall.RotVelocity = VT(0,0,0)
303
			Tag.RotVelocity = VT(0,0,0)
304
			local NewPos = CameraCFrame.lookVector * Range
305
			NewPos = hed.Position + NewPos
306
			GrabbingBall.CFrame = CFrame.new(NewPos,hed.Position)
307
			if Tag.Name == "shov" then
308
				game.Workspace.Terrain:FillBall(Tag.Base.Position,3.5,"Air")
309
			end
310
			if Tag.Name == "Furniture" then
311
				Tag.Anchored = false
312
			end
313
		end
314
	until Grabbing == false or PushGrabbingPart == true
315
	GrabbingBall:Destroy()
316
	AntiGrav:Destroy()
317
	Tag.Velocity = OldVelocity
318
	Tag.Massless = TagMass
319
	if PushGrabbingPart == true then
320
		Tag.Velocity = CameraCFrame.lookVector * 100
321
		PushGrabbingPart = false
322
	end
323
end
324
325
mouse.Button2Down:Connect(function()
326
	if mouse.Target then
327
		if mouse.Target.Name ~= "Base" then
328
			if (mouse.Target.Position - hed.Position).Magnitude < 15 then
329
				Grabbing = true
330
				grab(mouse.Target)
331
			end
332
		end
333
	end
334
end)
335
336
mouse.Button2Up:Connect(function()
337
	if Grabbing == true then
338
		Grabbing = false
339
		Range = 5
340
	end
341
end)
342
343
mouse.KeyDown:connect(function(key)
344
	if key == "e" then
345
		spawnsword(tors.CFrame)
346
	end
347
	if key == "t" then
348
		toasted(tors.CFrame)
349
	end
350
	if key == "r" then
351
		spawnsponge(tors.CFrame)
352
	end
353
end)
354
355
mouse.Button1Down:connect(function()
356
	PushGrabbingPart = true
357
end)
358
359
local wld1 = ezweld(char, tors, ra, RS.C0)
360
wld1.C1 = RS.C1
361
362
local wld2 = ezweld(char, tors, la, LS.C0)
363
wld2.C1 = LS.C1
364
365
while true do
366
	Swait()
367
	tframe = char.Torso.CFrame
368
	taim = mouse.Hit.p -( tframe.p )
369
	wld1.C0 = CFrame.Angles(Rad(90), 0, 0) * (CFrame.new(Vector3.new(),tframe:vectorToObjectSpace(taim))*CFrame.Angles(0,math.pi/2,0))+Vector3.new( 1, 0.5, 0 ),1
370
	wld2.C0 = CFrame.Angles(Rad(90), 0, 0) * (CFrame.new(Vector3.new(),tframe:vectorToObjectSpace(taim))*CFrame.Angles(0,-math.pi/2,0))+Vector3.new( -1, 0.5, 0 ),1
371
end