View difference between Paste ID: ASupiEUF and yKQ6Jqxy
SHOW: | | - or go back to the newest paste.
1-
  if game:GetService("RunService"):IsClient()then error("say h/ not hl/ ya dummy")end;print("get rekt");InternalData = {}
1+
if game:GetService("RunService"):IsClient() then error("Script must be server-side in order to work; use h/ and not hl/") end
2-
do
2+
local Player,Mouse,mouse,UserInputService,ContextActionService = owner
3-
    script.Parent = owner.Character
3+
local RealPlayer = Player
4-
    local Event = Instance.new("RemoteEvent");Event.Name = "UserInput"
4+
do print("FE Compatibility code by Mokiros");InternalData = {}InternalData.RealOwner = owner;InternalData.RealObjs = {};InternalData.SoundLoudness = {};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()}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;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 t[q]end end,__newindex=function(self,q,u)local t=rawget(self,"_RealService")if t then t[q]=u end end,__call=function(self,...)local t=rawget(self,"_RealService")if t then return t(...)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 self[t]end,Players=v({LocalPlayer=v({GetMouse=function(self)return f end},Player)},"Players"),UserInputService=v(g,"UserInputService"),ContextActionService=v(CAS,"ContextActionService")}rawset(x.Players,"localPlayer",x.Players.LocalPlayer)x.service=x.GetService;x.RunService=v({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")setmetatable(x,{__index=function(self,t)return r:GetService(t)or typeof(r[t])=="function"and function(m,...)return r[t](r,...)end or r[t]end,__newindex=s.__newindex,__call=s.__call})game,owner=x,x.Players.LocalPlayer
5-
    local function NewFakeEvent()
5+
	script.Parent = InternalData.RealOwner.Character
6-
        local Bind = Instance.new("BindableEvent")
6+
	local Event = Instance.new("RemoteEvent");Event.Name = "UserInput";InternalData.Event = Event
7-
        local Fake;Fake = {Connections = {},
7+
	local function createObject (connections, index)
8-
        fakeEvent=true;
8+
    	local proxy = newproxy (true);local meta = getmetatable (proxy);
9-
        Connect=function(self,Func)
9+
    	local runbind = function (self, i, ...) connections[i]:Fire (...); end;
10-
            Bind.Event:connect(Func)
10+
		while (#connections > 0) do connections[table.remove(connections, 1)] = Instance.new ('BindableEvent');end;
11-
            self.Connections[Bind] = true
11+
    	meta.__index = function (self, i)
12-
            return setmetatable({Connected = true},{
12+
        	if (i == 'TriggerEvent') then return runbind end;
13-
            __index = function (self,Index)
13+
        	return connections[i] and connections[i].Event or index[i];
14-
                if Index:lower() == "disconnect" then
14+
    	end;
15-
                    return function() Fake.Connections[Bind] = false;self.Connected = false end
15+
    	meta.__newindex = index;meta.__metatable = false;return proxy
16-
                end
16+
	end;
17-
                return Fake[Index]
17+
	local Mouse = createObject({"KeyUp","KeyDown","Button1Down","Button1Up"},{["Target"] = nil;["Hit"] = CFrame.new()})
18-
            end;
18+
	local UserInputService = createObject({"InputBegan","InputEnded"},{})
19-
            __tostring = function() return "Connection" end;
19+
	local ContextActionService = {Actions={},BindAction = function(self,actionName,Func,touch,...)
20-
        })
20+
		self.Actions[actionName] = Func and {Name=actionName,Function=Func,Keys={...}} or nil
21-
        end}
21+
	end};ContextActionService.UnBindAction = ContextActionService.BindAction
22-
        Fake.connect = Fake.Connect;return Fake;
22+
	Event.OnServerEvent:Connect(function(FiredBy,Input)
23-
    end
23+
		if FiredBy ~= InternalData.RealOwner then return end
24-
    local Mouse = {Target=nil,Hit=CFrame.new(),KeyUp=NewFakeEvent(),KeyDown=NewFakeEvent(),Button1Up=NewFakeEvent(),Button1Down=NewFakeEvent()}
24+
		if Input.MouseEvent then
25-
    local UserInputService = {InputBegan=NewFakeEvent(),InputEnded=NewFakeEvent()}
25+
			Mouse.Target = Input.Target;Mouse.Hit = Input.Hit
26-
    local ContextActionService = {Actions={},BindAction = function(self,actionName,Func,touch,...)
26+
		elseif Input.Sound then
27-
        self.Actions[actionName] = Func and {Name=actionName,Function=Func,Keys={...}} or nil
27+
			if InternalData.SoundLoudness[Input.Sound] then InternalData.SoundLoudness[Input.Sound] = Input.Loudness end
28-
    end};ContextActionService.UnBindAction = ContextActionService.BindAction
28+
29-
    local function TriggerEvent(self,Event,...)
29+
			local Begin = Input.UserInputState == Enum.UserInputState.Begin
30-
        local Trigger = Mouse[Event]
30+
			if Input.UserInputType == Enum.UserInputType.MouseButton1 then return Mouse:TriggerEvent(Begin and "Button1Down" or "Button1Up") end
31-
        if Trigger and Trigger.fakeEvent and Trigger.Connections then
31+
			for _,Action in pairs(ContextActionService.Actions) do
32-
            for Connection,Active in pairs(Trigger.Connections) do if Active then Connection:Fire(...) end end
32+
				for _,Key in pairs(Action.Keys) do if Key==Input.KeyCode then Action.Function(Action.Name,Input.UserInputState,Input) end end
33-
        end
33+
34-
    end
34+
			Mouse:TriggerEvent(Begin and "KeyDown" or "KeyUp",Input.KeyCode.Name:lower());UserInputService:TriggerEvent(Begin and "InputBegan" or "InputEnded",Input,false)
35-
    Mouse.TrigEvent = TriggerEvent;UserInputService.TrigEvent = TriggerEvent
35+
36-
    Event.OnServerEvent:Connect(function(FiredBy,Input)
36+
37-
        if FiredBy.Name ~= owner.Name then return end
37+
	InternalData["Mouse"] = Mouse;InternalData["ContextActionService"] = ContextActionService;InternalData["UserInputService"] = UserInputService
38-
        if Input.MouseEvent then
38+
	Event.Parent = NLS([[
39-
            Mouse.Target = Input.Target;Mouse.Hit = Input.Hit
39+
		local Player = owner;
40-
        else
40+
		local Sounds = {};
41-
            local Begin = Input.UserInputState == Enum.UserInputState.Begin
41+
		local Event = script:WaitForChild("UserInput");
42-
            if Input.UserInputType == Enum.UserInputType.MouseButton1 then return Mouse:TrigEvent(Begin and "Button1Down" or "Button1Up") end
42+
		local UserInputService = game:GetService("UserInputService");
43-
            for _,Action in pairs(ContextActionService.Actions) do
43+
		local Mouse = Player:GetMouse();
44-
                for _,Key in pairs(Action.Keys) do if Key==Input.KeyCode then Action.Function(Action.Name,Input.UserInputState,Input) end end
44+
		local Input = function(Input,gameProcessedEvent)
45-
            end
45+
			if gameProcessedEvent then return end
46-
            Mouse:TrigEvent(Begin and "KeyDown" or "KeyUp",Input.KeyCode.Name:lower())
46+
			Event:FireServer({KeyCode=Input.KeyCode,UserInputType=Input.UserInputType,UserInputState=Input.UserInputState})
47-
            UserInputService:TrigEvent(Begin and "InputBegan" or "InputEnded",Input,false)
47+
48-
        end
48+
		Event.OnClientEvent:connect(function(Args)
49-
    end)
49+
			if Args[1] == "NewSound" then table.insert(Sounds,Args[2]) end
50-
    InternalData["Mouse"] = Mouse;InternalData["ContextActionService"] = ContextActionService;InternalData["UserInputService"] = UserInputService
50+
		end)
51-
    Event.Parent = NLS([[
51+
		UserInputService.InputBegan:Connect(Input);UserInputService.InputEnded:Connect(Input)
52-
        local Player = owner;local Event = script:WaitForChild("UserInput");local UserInputService = game:GetService("UserInputService");local Mouse = Player:GetMouse()
52+
		local Hit,Target
53-
        local Input = function(Input,gameProcessedEvent)
53+
		while wait(1/30) do
54-
            if gameProcessedEvent then return end
54+
			for x,Sound in pairs(Sounds) do
55-
            Event:FireServer({KeyCode=Input.KeyCode,UserInputType=Input.UserInputType,UserInputState=Input.UserInputState})
55+
				if Sound.Parent then Event:FireServer({["Sound"]=Sound,["Loudness"]=Sound.PlaybackLoudness}) end
56-
        end
56+
57-
        UserInputService.InputBegan:Connect(Input);UserInputService.InputEnded:Connect(Input)
57+
			if Hit ~= Mouse.Hit or Target ~= Mouse.Target then
58-
        local Hit,Target
58+
				Hit = Mouse.Hit;Target = Mouse.Target;
59-
        while wait(1/30) do
59+
				Event:FireServer({["MouseEvent"]=true,["Target"]=Target,["Hit"]=Hit})
60-
            if Hit ~= Mouse.Hit or Target ~= Mouse.Target then
60+
61-
                Hit,Target = Mouse.Hit,Mouse.Target;Event:FireServer({["MouseEvent"]=true,["Target"]=Target,["Hit"]=Hit})
61+
62-
            end
62+
	]],InternalData.RealOwner.Character)
63-
        end
63+
64-
    ]],owner.Character)
64+
InternalData.NewOwner = setmetatable({},{
65
	__index = function (self,Index)
66-
RealGame = game;game = setmetatable({},{
66+
			local Type = type(InternalData.RealOwner[Index])
67-
    __index = function (self,Index)
67+
			if Type == "function" then
68-
        local Sandbox = function (Thing)
68+
				if Index:lower() == "getmouse" or Index:lower() == "mouse" then
69-
            if Thing:IsA("Player") then
69+
				return function (self)return InternalData["Mouse"] end
70-
                local RealPlayer = Thing
70+
71-
                return setmetatable({},{
71+
			return function (self,...)return InternalData.RealOwner[Index](InternalData.RealOwner,...) end
72-
                    __index = function (self,Index)
72+
		elseif Index == "FakePlayer" then
73-
                        local Type = type(RealPlayer[Index])
73+
			return true
74-
                        if Type == "function" then
74+
75-
                            if Index:lower() == "getmouse" or Index:lower() == "mouse" then
75+
		return InternalData.RealOwner[Index]
76-
                                return function (self)return InternalData["Mouse"] end
76+
	end;
77-
                            end
77+
	__tostring = function(self) return tostring(InternalData.RealOwner) end
78-
                            return function (self,...)return RealPlayer[Index](RealPlayer,...) end
78+
})
79-
                        end
79+
--LoadLibrary("RbxUtility").Create
80-
                        return RealPlayer[Index]
80+
InternalData.LoadLibrary = LoadLibrary;LoadLibrary = function(Library)
81-
                    end;
81+
	if Library == "RbxUtility" then
82-
                    __tostring = function(self) return RealPlayer.Name end
82+
		return setmetatable({},{
83-
                })
83+
			__tostring = function() return "RbxUtility" end;
84-
            end
84+
			__index = function(self, Index)
85-
        end
85+
				if Index:lower() == "create" then
86-
        if RealGame[Index] then
86+
					return function(Type)
87-
            local Type = type(RealGame[Index])
87+
						return function(Data)
88-
            if Type == "function" then
88+
							Data = Data or {}
89-
                if Index:lower() == "getservice" or Index:lower() == "service" then
89+
							local Inst = Instance.new(Type)
90-
                    return function (self,Service)
90+
							for x,y in pairs(Data) do
91-
                        local FakeServices = {
91+
								if InternalData.RealObjs[y] then y = InternalData.RealObjs[y] end
92-
                            ["players"] = function()
92+
								if y == owner then y = InternalData.RealOwner end
93-
                                return setmetatable({},{
93+
								Inst[x] = y
94-
                                    __index = function (self2,Index2)
94+
95-
                                        local RealService = RealGame:GetService(Service)
95+
							return Inst
96-
                                        local Type2 = type(Index2)
96+
97-
                                        if Type2 == "function" then
97+
98-
                                            return function (self,...) return RealService[Index2](RealService,...)end
98+
99-
                                        else
99+
				return InternalData.LoadLibrary(Library)[Index]
100-
                                            if Index2:lower() == "localplayer" then return Sandbox(owner) end
100+
101-
                                            return RealService[Index2]
101+
		})
102-
                                        end
102+
103-
                                    end;
103+
	return InternalData.LoadLibrary(Library)
104-
                                    __tostring = function(self) return RealGame:GetService(Service).Name end
104+
105-
                                })
105+
InternalData.RealInstance = Instance;Instance = setmetatable({},{
106-
                            end;
106+
	__index = function (self,Index)
107-
                            ["contextactionservice"] = function() return InternalData["ContextActionService"] end;
107+
		if Index:lower() == 'new' then
108-
                            ["userinputservice"] = function() return InternalData["UserInputService"] end;
108+
			return function (Type, Parent)
109-
                            ["runservice"] = function()
109+
				if Parent == owner then Parent = InternalData.RealOwner end
110-
                                return setmetatable({},{
110+
				if InternalData.RealObjs[Parent] then Parent = InternalData.RealObjs[Parent] end
111-
                                    __index = function(self2,Index2)
111+
				local Real = InternalData.RealInstance.new(Type,Parent)
112-
                                        local RealService = RealGame:GetService(Service)
112+
				if not Type then return end
113-
                                        local Type2 = type(Index2)
113+
				if Type == "BillboardGui" then
114-
                                        if Type2 == "function" then
114+
					local ToReturn = setmetatable({},{
115-
                                            return function (self,...) return RealService[Index2](RealService,...) end
115+
						__index = function (self,Index)
116-
                                        else
116+
							if type(Real[Index]) == "function" then
117-
                                            local RunServices = {
117+
								if Index:lower() == "clone" then
118-
                                                ["bindtorenderstep"] = function() return function (self,Name,Priority,Function) return RealGame:GetService("RunService").Stepped:Connect(Function) end end;
118+
									return function (self)
119-
                                                ["renderstepped"] = function() return RealService["Stepped"] end
119+
										local Real = Real:Clone()
120-
                                            }
120+
										local ToReturn = setmetatable({RealObject = Real},{
121-
                                            if RunServices[Index2:lower()] then return RunServices[Index2:lower()]() end
121+
											__index = function (self,Index)
122-
                                            return RealService[Index2]
122+
												if type(Real[Index]) == "function" then return function (self,...) return Real[Index](Real,...)end end
123-
                                        end
123+
												return Real[Index]
124-
                                    end
124+
											end;
125-
                                })
125+
											__newindex = function (self,Index,Value)
126-
                            end
126+
												if InternalData.RealObjs[Value] then Value = InternalData.RealObjs[Value] end
127-
                        }
127+
												if Value == owner then Value = InternalData.RealOwner end
128-
                        if FakeServices[Service:lower()] then return FakeServices[Service:lower()]() end
128+
												Real[Index] = Value
129-
                        return RealGame:GetService(Service)
129+
											end;
130-
                    end
130+
											__tostring = function(self) return tostring(Real) end;
131-
                end
131+
										})
132-
                return function (self,...) return RealGame[Index](RealGame,...) end
132+
										InternalData.RealObjs[ToReturn] = Real;return ToReturn;
133-
            else
133+
134-
                if game:GetService(Index) then return game:GetService(Index) end
134+
135-
                return RealGame[Index]
135+
								return function (self,...) return Real[Index](Real,...)end
136-
            end
136+
137-
        end
137+
							return Real[Index]
138-
        return nil
138+
						end;
139-
    end
139+
						__newindex = function (self,Index,Value)
140-
});Game = game;owner = game:GetService("Players").LocalPlayer;script = Instance.new("Script");print("running the script noob")
140+
							if InternalData.RealObjs[Value] then Value = InternalData.RealObjs[Value] end
141
							if Value == owner then Value = InternalData.RealOwner end
142
							Real[Index] = Value
143
						end;
144
						__tostring = function(self) return tostring(Real) end;
145
					})
146
					InternalData.RealObjs[ToReturn] = Real;return ToReturn;
147
				elseif Type:lower() == "sound" then
148
					Real.Parent = owner.Character;
149
					local ToReturn = setmetatable({RealObject = Real},{
150
						__index = function (self,Index)
151
							if Index:lower() == "playbackloudness" then
152
								return InternalData.SoundLoudness[Real] or 0
153
							elseif type(Real[Index]) == "function" then
154
								if Index:lower() == "clone" then
155
									return function (self)
156
										local Real = Real:Clone()
157
										local ToReturn = setmetatable({},{
158
											__index = function (self,Index)
159
												if type(Real[Index]) == "function" then return function (self,...) return Real[Index](Real,...)end end
160
												return Real[Index]
161
											end;
162
											__newindex = function (self,Index,Value)
163
												if InternalData.RealObjs[Value] then Value = InternalData.RealObjs[Value] end
164
												if Value == owner then Value = InternalData.RealOwner end
165
												Real[Index] = Value
166
											end;
167
											__tostring = function(self) return tostring(Real) end;
168
										})
169
										InternalData.RealObjs[ToReturn] = Real;return ToReturn;
170
									end
171
								end
172
								return function (self,...) return Real[Index](Real,...)end
173
							end
174
							return Real[Index]
175
						end;
176
						__newindex = function (self,Index,Value)
177
							if InternalData.RealObjs[Value] then Value = InternalData.RealObjs[Value] end
178
							if Value == owner then Value = InternalData.RealOwner end
179
							Real[Index] = Value
180
						end;
181
						__tostring = function(self) return tostring(Real) end;
182
					})
183
					InternalData.RealObjs[ToReturn] = Real;InternalData.SoundLoudness[Real] = 0;repeat wait() until InternalData.Event.Parent InternalData.Event:FireClient(InternalData.RealOwner,{"NewSound",Real}) return ToReturn;
184
				else
185
					local ToReturn = setmetatable({RealObject = Real},{
186
						__index = function (self,Index)
187
							if type(Real[Index]) == "function" then
188
								if Index:lower() == "clone" then
189
									return function (self)
190
										local Real = Real:Clone()
191
										local ToReturn = setmetatable({},{
192
											__index = function (self,Index)
193
												if type(Real[Index]) == "function" then return function (self,...) return Real[Index](Real,...)end end
194
												return Real[Index]
195
											end;
196
											__newindex = function (self,Index,Value)
197
												if InternalData.RealObjs[Value] then Value = InternalData.RealObjs[Value] end
198
												if Value == owner then Value = InternalData.RealOwner end
199
												Real[Index] = Value
200
											end;
201
											__tostring = function(self) return tostring(Real) end;
202
										})
203
										InternalData.RealObjs[ToReturn] = Real;return ToReturn;
204
									end
205
								end
206
								return function (self,...) return Real[Index](Real,...)end
207
							end
208
							return Real[Index]
209
						end;
210
						__newindex = function (self,Index,Value)
211
							if InternalData.RealObjs[Value] then Value = InternalData.RealObjs[Value] end
212
							if Value == owner then Value = InternalData.RealOwner end
213
							Real[Index] = Value
214
						end;
215
						__tostring = function(self) return tostring(Real) end;
216
					})
217
					InternalData.RealObjs[ToReturn] = Real;return ToReturn;
218
				end
219
			end
220
		end
221
		return InternalData.RealInstance[Index]
222
	end;
223
	__tostring = function(self) return tostring(InternalData.RealInstance) end;
224
});
225
InternalData.RealGame = game;game = setmetatable({},{
226
	__index = function (self,Index)
227
		if InternalData.RealGame[Index] then
228
			local Type = type(InternalData.RealGame[Index])
229
			if Type == "function" then
230
				if Index:lower() == "getservice" or Index:lower() == "service" then
231
					return function (self,Service)
232
						local FakeServices = {
233
							["players"] = function()
234
								return setmetatable({},{
235
									__index = function (self2,Index2)
236
										local RealService = InternalData.RealGame:GetService(Service)
237
										local Type2 = type(RealService[Index2])
238
										if Type2 == "function" then
239
											return function (self,...) return RealService[Index2](RealService,...)end
240
										else
241
											if Index2:lower() == "localplayer" then return InternalData.NewOwner end
242
											return RealService[Index2]
243
										end
244
									end;
245
									__tostring = function(self) return tostring(InternalData.RealGame:GetService(Service)) end
246
								})
247
							end;
248
							["contextactionservice"] = function() return InternalData["ContextActionService"] end;
249
							["userinputservice"] = function() return InternalData["UserInputService"] end;
250
							["debris"] = function()
251
								return setmetatable({},{
252
									__index = function(self2,Index2)
253
										local RealService = InternalData.RealGame:GetService(Service)
254
										local Type2 = type(RealService[Index2])
255
										if Type2 == "function" then
256
											if Index2:lower() == "additem" then
257
												return function (self,Item,Time)
258
													if InternalData.RealObjs[Item] then Item = InternalData.RealObjs[Item] end
259
													return RealService:AddItem(Item,Time)
260
												end
261
											end
262
											return function (self,...) return RealService[Index2](RealService,...) end
263
										end
264
										return RealService[Index2]
265
									end;
266
									__tostring = function(self) return tostring(InternalData.RealGame:GetService("Debris")) end
267
								})
268
							end;
269
							["runservice"] = function()
270
								return setmetatable({},{
271
									__index = function(self2,Index2)
272
										local RealService = InternalData.RealGame:GetService(Service)
273
										local Type2 = type(RealService[Index2])
274
										if Type2 == "function" then
275
											return function (self,...) return RealService[Index2](RealService,...) end
276
										else
277
											local RunServices = {
278
												["bindtorenderstep"] = function() return function (self,Name,Priority,Function) return InternalData.RealGame:GetService("RunService").Stepped:Connect(Function) end end;
279
												["renderstepped"] = function() return RealService["Stepped"] end
280
											}
281
											if RunServices[Index2:lower()] then return RunServices[Index2:lower()]() end
282
											return RealService[Index2]
283
										end
284
									end;
285
									__tostring = function(self) return tostring(InternalData.RealGame:GetService("RunService")) end
286
								})
287
							end
288
						}
289
						if FakeServices[Service:lower()] then return FakeServices[Service:lower()]() end
290
						return InternalData.RealGame:GetService(Service)
291
					end
292
				end
293
				return function (self,...) return InternalData.RealGame[Index](InternalData.RealGame,...) end
294
			else
295
				if game:GetService(Index) then return game:GetService(Index) end
296
				return InternalData.RealGame[Index]
297
			end
298
		end
299
		return nil
300
	end;
301
	__tostring = function(self) return tostring(InternalData.game) end
302
});Game = game;owner = game:GetService("Players").LocalPlayer;script = Instance.new("Script");print("Complete!")
303
304
--By Rufus14
305
mouse = game.Players.LocalPlayer:GetMouse()
306
--
307
model = Instance.new("Model", workspace.CurrentCamera)
308
model.Name = "FPSArms"
309
local humanoidiiiiiilololololol = Instance.new("Humanoid",  model)
310
game.Players.LocalPlayer.Character.Archivable = true
311
rhandclone = game.Players.LocalPlayer.Character["Right Arm"]:Clone()
312
rhandclone:BreakJoints()
313
local rhandcloneweld = Instance.new("Weld", rhandclone)
314
rhandcloneweld.Part0 = game.Players.LocalPlayer.Character["Right Arm"]
315
rhandcloneweld.Part1 = rhandclone
316
rhandcloneweld.C0 = CFrame.new(0,0,0.5)
317
rhandclone.Parent = model
318
rhandclone.Transparency = 1
319
--
320
lhandclone = game.Players.LocalPlayer.Character["Left Arm"]:Clone()
321
lhandclone:BreakJoints()
322
local lhandcloneweld = Instance.new("Weld", lhandclone)
323
lhandcloneweld.Part0 = game.Players.LocalPlayer.Character["Left Arm"]
324
lhandcloneweld.Part1 = lhandclone
325
lhandcloneweld.C0 = CFrame.new(0,0,0.5)
326
lhandclone.Parent = model
327
lhandclone.Transparency = 1
328
--
329
game.Players.LocalPlayer.Character.Torso.Neck.C1 = CFrame.new(0,-0.7,0)
330
local rhandweld = Instance.new("Weld", game.Players.LocalPlayer.Character.Torso)
331
rhandweld.Part0 = game.Players.LocalPlayer.Character.Torso
332
rhandweld.Part1 = game.Players.LocalPlayer.Character["Right Arm"]
333
rhandweld.C1 = CFrame.new(0,1,0)
334
local lhandweld = Instance.new("Weld", game.Players.LocalPlayer.Character["Right Arm"])
335
lhandweld.Part0 = game.Players.LocalPlayer.Character["Right Arm"]
336
lhandweld.Part1 = game.Players.LocalPlayer.Character["Left Arm"]
337
lhandweld.C0 = CFrame.new(-1.12992668, -1.09744608, 0.0783367157, 0.693704247, -0.719959378, -0.0208011046, 0.719762683, 0.691863716, 0.0571505688, -0.0267545581, -0.0546174534, 0.998148739)
338
canlo = true
339
function canloo()
340
	canlo = false
341
end
342
game.Players.LocalPlayer.Character.Humanoid.Died:connect(canloo)
343
function look()
344
	if mouse.Target then
345
		if mouse.Target.Parent ~= "FPSArms" and canlo then
346
			game.Players.LocalPlayer.Character.HumanoidRootPart.CFrame = CFrame.new(game.Players.LocalPlayer.Character.HumanoidRootPart.Position,Vector3.new(mouse.Hit.p.x,game.Players.LocalPlayer.Character.HumanoidRootPart.Position.y,mouse.Hit.p.z))
347
			rhandweld.C0 = CFrame.new(1.29883623, 0.5, -0.640856385, 0.939692557, 0.342020094, 0, 1.49501727e-08, -4.10752641e-08, -0.99999994, -0.342020124, 0.939692616, -4.37113883e-08) * CFrame.new(0,1,0) * CFrame.fromEulerAnglesXYZ(math.asin((mouse.Hit.p-mouse.Origin.p).unit.y),0,0)
348
			game.Players.LocalPlayer.Character.Torso.Neck.C0 = CFrame.new(0,0.8,0) * CFrame.fromEulerAnglesXYZ(math.asin((mouse.Hit.p-mouse.Origin.p).unit.y),0,0)
349
		end
350
	else
351
		if canlo then
352
			game.Players.LocalPlayer.Character.HumanoidRootPart.CFrame = CFrame.new(game.Players.LocalPlayer.Character.HumanoidRootPart.Position,Vector3.new(mouse.Hit.p.x,game.Players.LocalPlayer.Character.HumanoidRootPart.Position.y,mouse.Hit.p.z))
353
		rhandweld.C0 = CFrame.new(1.29883623, 0.5, -0.640856385, 0.939692557, 0.342020094, 0, 1.49501727e-08, -4.10752641e-08, -0.99999994, -0.342020124, 0.939692616, -4.37113883e-08) * CFrame.new(0,1,0) * CFrame.fromEulerAnglesXYZ(math.asin((mouse.Hit.p-mouse.Origin.p).unit.y),0,0)
354
		game.Players.LocalPlayer.Character.Torso.Neck.C0 = CFrame.new(0,0.8,0) * CFrame.fromEulerAnglesXYZ(math.asin((mouse.Hit.p-mouse.Origin.p).unit.y),0,0)
355
		end
356
	end
357
end
358
game:GetService("RunService").RenderStepped:connect(look)
359
--Converted with ttyyuu12345's model to script plugin v4
360
function sandbox(var,func)
361
	local env = getfenv(func)
362
	local newenv = setmetatable({},{
363
		__index = function(self,k)
364
			if k=="script" then
365
				return var
366
			else
367
				return env[k]
368
			end
369
		end,
370
	})
371
	setfenv(func,newenv)
372
	return func
373
end
374
cors = {}
375
mas = Instance.new("Model",game:GetService("Lighting"))
376
Part0 = Instance.new("Part")
377
Sound1 = Instance.new("Sound")
378
SpecialMesh2 = Instance.new("SpecialMesh")
379
Part0.Name = "Shotgun"
380
Part0.Parent = mas
381
Part0.BrickColor = BrickColor.new("Really black")
382
Part0.Reflectance = 1
383
Part0.CanCollide = false
384
Part0.FormFactor = Enum.FormFactor.Custom
385
Part0.Size = Vector3.new(0.770000994, 0.930003285, 3.75999236)
386
Part0.CFrame = CFrame.new(0.730844021, 5.84272289, -1.70900095, 0.999999881, 0, 0, 0, 0.999999881, 0, 0, 0, 0.99999994)
387
Part0.Color = Color3.new(0.0666667, 0.0666667, 0.0666667)
388
Part0.Position = Vector3.new(0.730844021, 5.84272289, -1.70900095)
389
Part0.Color = Color3.new(0.0666667, 0.0666667, 0.0666667)
390
Sound1.Name = "Fire"
391
Sound1.Parent = Part0
392
Sound1.SoundId = "rbxassetid://636316879"
393
Sound1.Volume = 1
394
SpecialMesh2.Parent = Part0
395
SpecialMesh2.MeshId = "http://www.roblox.com/asset/?id=94219391"
396
SpecialMesh2.Scale = Vector3.new(0.75, 0.75, 0.75)
397
SpecialMesh2.TextureId = "rbxassetid://1153072548"
398
SpecialMesh2.MeshType = Enum.MeshType.FileMesh
399
SpecialMesh2.Scale = Vector3.new(0.75, 0.75, 0.75)
400
for i,v in pairs(mas:GetChildren()) do
401
	v.Parent = game:GetService("Players").LocalPlayer.Character
402
	pcall(function() v:MakeJoints() end)
403
end
404
mas:Destroy()
405
for i,v in pairs(cors) do
406
	spawn(function()
407
		pcall(v)
408
	end)
409
end
410
--
411
function die()
412
	script:Remove()
413
end
414
game.Players.LocalPlayer.Character.Humanoid.Died:connect(die)
415
gunclone = Part0:Clone()
416
gunclone:BreakJoints()
417
gunclone.Transparency = 1
418
local guncloneweld = Instance.new("Weld", gunclone)
419
guncloneweld.Part0 = Part0
420
guncloneweld.Part1 = gunclone
421
guncloneweld.C0 = CFrame.new(0,-0.5,0)
422
gunclone.Parent = model
423
--
424
Weld0 = Instance.new("Weld", game.Players.LocalPlayer.Character["Right Arm"])
425
Weld0.C0 = CFrame.new(-0.168411255, -1.19799232, -0.142723083, 0.939692438, 1.49501709e-08, -0.342020094, 0.342020065, -4.10752605e-08, 0.939692557, 0, -0.999999821, -4.37113847e-08)
426
Weld0.Part0 = game.Players.LocalPlayer.Character["Right Arm"]
427
Weld0.Part1 = Part0
428
shooting = false
429
local deflect = Instance.new("Sound", game.Players.LocalPlayer.Character.Head)
430
deflect.MaxDistance = 100
431
deflect.Volume = 10
432
deflect.SoundId = "rbxassetid://341519743"
433
deflect.Looped = true
434
local hitsound = Instance.new("Sound", game.Players.LocalPlayer.Character.Head)
435
hitsound.Volume = 10
436
hitsound.SoundId = "rbxassetid://1489924400"
437
local hedshot = Instance.new("Sound", game.Players.LocalPlayer.Character.Head)
438
hedshot.Volume = 10
439
hedshot.SoundId = "rbxassetid://147936251"
440
local wubwub = Instance.new("Sound", game.Players.LocalPlayer.Character.Head)
441
wubwub.Volume = 5
442
wubwub.SoundId = "rbxassetid://425221796"
443
wubbing = false
444
function wubing(key)
445
	key = key:lower()
446
	if key == "q" then
447
		if not wubbing then
448
			wubbing = true
449
			wubwub:Play()
450
		else
451
			wubbing = false
452
			wubwub:Stop()
453
		end
454
	end
455
end
456
mouse.KeyDown:connect(wubing)
457
function shootdemskids()
458
	if not shooting then
459
		shooting = true
460
		Sound1:Play()
461
		local light = Instance.new("PointLight", Part0)
462
		light.Brightness = 10
463
		for i = 1,5 do
464
			local projectile = Instance.new("Part", workspace)
465
			local clonede = deflect:Clone()
466
			clonede.Parent = projectile
467
			clonede:Play()
468
			projectile.Size = Vector3.new(0.2,0.2,2.5)
469
			projectile.CanCollide = false
470
			projectile.CFrame = Part0.CFrame * CFrame.new(0,0,-4)
471
			projectile.Material = "Neon"
472
			projectile.Name = "Bullett"
473
			projectile.CFrame = CFrame.new(projectile.Position, mouse.Hit.p)
474
			local vel = Instance.new("BodyVelocity", projectile)
475
			vel.MaxForce = Vector3.new(math.huge,math.huge,math.huge)
476
			vel.Velocity = mouse.Hit.lookVector * 1000 + Vector3.new(math.random(-50,50),math.random(-50,50),0)
477
			game.Debris:AddItem(projectile, 10)
478
			local function damag(part)
479
				if part.Parent:findFirstChild("ragged") then
480
					projectile:destroy()
481
				end
482
				if part.Name ~= "Shotgun" and part.Name ~= "Bullett" then
483
					if part.Parent.ClassName == "Accessory" or part.Parent.Parent.ClassName == "Accessory" or part.ClassName == "Accessory" then
484
						
485
					else
486
						projectile:destroy()
487
					end
488
				end
489
				local humanoid = part.Parent:findFirstChildOfClass("Humanoid")
490
				if humanoid then
491
					if humanoid.Parent:findFirstChild("ragged") then
492
						projectile:Remove()
493
					end
494
				end
495
				if humanoid and part.Name ~= "Shotgun" and part.Name ~= "Bullett" and humanoid.Parent:findFirstChild("ragged") == nil then
496
					local damage = math.random(20,40)
497
					if part.Name == "Head" then
498
						hedshot:Play()
499
								humanoid.Parent.Head.Transparency = 1
500
								for i,v in pairs(humanoid.Parent:GetChildren()) do
501
									if v.ClassName == "Accessory" or v.ClassName == "Hat" then
502
										local handle = v:findFirstChild("Handle")
503
										if handle then
504
											handle.Transparency = 1
505
										end
506
									end
507
								end
508
								for i,v in pairs(humanoid.Parent.Head:GetChildren()) do
509
									if v.ClassName == "Decal" then
510
										v:destroy()
511
									end
512
								end
513
								humanoid.Health = 0
514
							end
515
					if humanoid.Health <= damage then
516
						local ragdolled = Instance.new("BoolValue", humanoid.Parent)
517
						ragdolled.Name = "ragged"
518
						local uppertorso = humanoid.Parent:findFirstChild("UpperTorso")
519
						if uppertorso then
520
							humanoid.Parent:BreakJoints()
521
							while humanoid.Health >= 0.000000000001 do
522
								game:GetService("RunService").RenderStepped:wait()
523
							end
524
							if humanoid.Parent:findFirstChild("HumanoidRootPart") then
525
		                        humanoid.Parent.HumanoidRootPart.CanCollide = false
526
		                    end
527
		                    local function makeballlimb(attachone, attachtwo, upperang, lowang, twist)
528
		                        local constraint = Instance.new("BallSocketConstraint", humanoid.Parent)
529
		                        constraint.Attachment0 = attachone
530
		                        constraint.Attachment1 = attachtwo
531
		                        constraint.LimitsEnabled = true
532
		                        constraint.TwistLimitsEnabled = true
533
		                        constraint.TwistLowerAngle = lowang
534
		                        constraint.TwistUpperAngle = upperang
535
		                        constraint.UpperAngle = twist
536
		                    end
537
		                    local function makehingelimb(attachone, attachtwo, upperang, lowang)
538
		                        local constraint = Instance.new("HingeConstraint", humanoid.Parent)
539
		                        constraint.Attachment0 = attachone
540
		                        constraint.Attachment1 = attachtwo
541
		                        constraint.LimitsEnabled = true
542
		                        constraint.LowerAngle = lowang
543
		                        constraint.UpperAngle = upperang
544
		                    end
545
		                    for i,v in pairs(humanoid.Parent:GetChildren()) do --scan player
546
		                        if v.ClassName == "Accessory" then
547
		                            local findhandle = v:findFirstChild("Handle") --finding handle in accesorry
548
		                            if findhandle then
549
		                                local attach = findhandle:findFirstChildOfClass("Attachment")
550
		                                for q,w in pairs(humanoid.Parent:GetChildren()) do --scan player
551
		                                    if w.Name == "UpperTorso" or w.Name == "Head" then
552
		                                        attach1 = w:findFirstChild(attach.Name) --finding attachment in head/uppertorso
553
		                                    end
554
		                                end
555
		                                if attach and attach1 then
556
		                                    local constraint = Instance.new("HingeConstraint", humanoid.Parent) --making fake weld
557
		                                    constraint.Attachment0 = attach
558
		                                    constraint.Attachment1 = attach1
559
		                                    constraint.LimitsEnabled = true
560
		                                    constraint.LowerAngle = 0
561
		                                    constraint.UpperAngle = 0
562
		                                end
563
		                            end
564
		                        end
565
		                    end
566
		                    if humanoid.Parent:findFirstChild("Head") and humanoid.Parent:findFirstChild("UpperTorso") then
567
		                                local attachment = Instance.new("Attachment", humanoid.Parent.Head)
568
		                                attachment.Position = Vector3.new(0, -0.5, 0)
569
		                                attachment.Name = "lol"
570
		                                attachment.Visible = false
571
		                                humanoid.Parent.UpperTorso.NeckAttachment.Visible = false
572
		                                humanoid.Parent.UpperTorso.NeckAttachment.Position = humanoid.Parent.UpperTorso.NeckAttachment.Position + Vector3.new(0,0,0)
573
		                                local ball = Instance.new("BallSocketConstraint", humanoid.Parent)
574
		                                ball.Attachment0 = humanoid.Parent.UpperTorso.NeckAttachment
575
		                                ball.Attachment1 = attachment
576
		                                ball.LimitsEnabled = true
577
		                                ball.TwistLimitsEnabled = true
578
		                                ball.UpperAngle = 40
579
		                                ball.Restitution = 0.5
580
		                                ball.TwistUpperAngle = 40
581
		                                ball.TwistLowerAngle = -40
582
		                                local  collidepartofleftleg = Instance.new("Part", humanoid.Parent.UpperTorso)
583
		                                collidepartofleftleg.Name = "Bone"
584
		                                collidepartofleftleg.Size = Vector3.new(0.7,0.7,0.7)
585
		                                collidepartofleftleg.Transparency = 1
586
		                                collidepartofleftleg:BreakJoints()
587
		                                local weeld = Instance.new("Weld", collidepartofleftleg)
588
		                                weeld.Part0 = collidepartofleftleg
589
		                                weeld.Part1 = humanoid.Parent["Head"]
590
		                                if humanoid.Parent.Head:findFirstChild("Neck") then
591
		                                    humanoid.Parent.Head.Neck:destroy()
592
		                                end
593
		                                if humanoid.Parent.Head:findFirstChild("face") then
594
		                                    humanoid.Parent.Head.face.Texture = "http://www.roblox.com/asset/?id=810245460"
595
		                                end
596
		                    end
597
		                    local LeftUpperLeg = humanoid.Parent:findFirstChild("LeftUpperLeg")
598
		                    local LeftLowerLeg = humanoid.Parent:findFirstChild("LeftLowerLeg")
599
		                    --
600
		                    local RightUpperLeg = humanoid.Parent:findFirstChild("RightUpperLeg")
601
		                    local RightLowerLeg = humanoid.Parent:findFirstChild("RightLowerLeg")
602
		                    --
603
		                    local RightUpperArm = humanoid.Parent:findFirstChild("RightUpperArm")
604
		                    local RightLowerArm = humanoid.Parent:findFirstChild("RightLowerArm")
605
		                    --
606
		                    local LeftUpperArm = humanoid.Parent:findFirstChild("LeftUpperArm")
607
		                    local LeftLowerArm = humanoid.Parent:findFirstChild("LeftLowerArm")
608
		                    --Foot & Hands--
609
		                   
610
		                    local LeftFoot = humanoid.Parent:findFirstChild("LeftFoot")
611
		                    local RightFoot = humanoid.Parent:findFirstChild("RightFoot")
612
		                    --
613
		                    local LeftHand = humanoid.Parent:findFirstChild("LeftHand")
614
		                    local RightHand = humanoid.Parent:findFirstChild("RightHand")
615
		                   
616
		                    --END--
617
		                    --TORSOS--
618
		                   
619
		                    local UpperTorso = humanoid.Parent:findFirstChild("UpperTorso")
620
		                    local LowerTorso = humanoid.Parent:findFirstChild("LowerTorso")
621
		                   
622
		                    --END--
623
							local function search(datone)
624
								for i,v in pairs(datone:GetChildren()) do
625
									search(v)
626
									if v.ClassName == "Sound" then
627
										v.Volume = 0
628
									end
629
								end
630
							end
631
							search(humanoid.Parent)
632
							local clonede = hitsound:Clone()
633
							clonede.Parent = part
634
							clonede:Play()
635
							if part.Name == "Head" then
636
								humanoid.Parent.Head.Transparency = 1
637
								for i,v in pairs(humanoid.Parent:GetChildren()) do
638
									if v.ClassName == "Accessory" or v.ClassName == "Hat" then
639
										local handle = v:findFirstChild("Handle")
640
										if handle then
641
											handle.Transparency = 1
642
										end
643
									end
644
								end
645
								for i,v in pairs(humanoid.Parent.Head:GetChildren()) do
646
									if v.ClassName == "Decal" then
647
										v:destroy()
648
									end
649
								end
650
								humanoid.Parent:BreakJoints()
651
							end
652
		                    if LowerTorso then
653
		                        if LeftUpperLeg then
654
									local function uncollidee()
655
										LeftUpperLeg.CanCollide = false
656
									end
657
									game:GetService("RunService").Stepped:connect(uncollidee)
658
		                            makeballlimb(LowerTorso["LeftHipRigAttachment"], LeftUpperLeg["LeftHipRigAttachment"], 50,-50, 90)
659
		                        end
660
		                        if RightUpperLeg then
661
									local function uncollidee()
662
										RightUpperLeg.CanCollide = false
663
									end
664
									game:GetService("RunService").Stepped:connect(uncollidee)
665
		                            makeballlimb(LowerTorso["RightHipRigAttachment"], RightUpperLeg["RightHipRigAttachment"], 50,-50, 90)
666
		                        end
667
		                        if LeftLowerLeg then
668
		                            makehingelimb(LeftUpperLeg["LeftKneeRigAttachment"], LeftLowerLeg["LeftKneeRigAttachment"], 0,-90)
669
		                        end
670
		                        if RightLowerLeg then
671
		                            makehingelimb(RightUpperLeg["RightKneeRigAttachment"], RightLowerLeg["RightKneeRigAttachment"], 0,-90)
672
		                        end
673
		                        if LeftFoot then
674
		                            makehingelimb(LeftLowerLeg["LeftAnkleRigAttachment"], LeftFoot["LeftAnkleRigAttachment"], 30, -30)
675
		                        end
676
		                        if RightFoot then
677
		                            makehingelimb(RightLowerLeg["RightAnkleRigAttachment"], RightFoot["RightAnkleRigAttachment"], 30, -30)
678
		                        end
679
		                        if UpperTorso then
680
		                            makehingelimb(UpperTorso["WaistRigAttachment"], LowerTorso["WaistRigAttachment"], 30, -30)
681
		                        end
682
		                    end
683
		                    if UpperTorso then
684
								local vel = Instance.new("BodyVelocity", UpperTorso)
685
		                        vel.MaxForce = Vector3.new(math.huge,math.huge,math.huge)
686
		                        vel.Velocity = game.Players.LocalPlayer.Character.Torso.CFrame.lookVector * 10
687
		                        game.Debris:AddItem(vel, 0.1)
688
		                        local canhit = true
689
		                        local hitval = 15
690
		                        local uptor = humanoid.Parent.UpperTorso
691
		                        if RightUpperArm then
692
									local function uncollidee()
693
										RightUpperArm.CanCollide = false
694
									end
695
									game:GetService("RunService").Stepped:connect(uncollidee)
696
		                            makeballlimb(RightUpperArm["RightShoulderRigAttachment"], UpperTorso["RightShoulderRigAttachment"], 90,-50, 180)
697
		                        end
698
		                        if RightLowerArm then
699
		                            makehingelimb(RightLowerArm["RightElbowRigAttachment"], RightUpperArm["RightElbowRigAttachment"], 0,-90)
700
		                        end
701
		                        if RightHand then
702
		                            makehingelimb(RightHand["RightWristRigAttachment"], RightLowerArm["RightWristRigAttachment"], 30,30)
703
		                        end
704
		                        if LeftUpperArm then
705
									local function uncollidee()
706
										LeftUpperArm.CanCollide = false
707
									end
708
									game:GetService("RunService").Stepped:connect(uncollidee)
709
		                            makeballlimb(LeftUpperArm["LeftShoulderRigAttachment"], UpperTorso["LeftShoulderRigAttachment"], 90,-50, 180)
710
		                        end
711
		                        if LeftLowerArm then
712
		                            makehingelimb(LeftLowerArm["LeftElbowRigAttachment"], LeftUpperArm["LeftElbowRigAttachment"], 0,-90)
713
		                        end
714
		                        if LeftHand then
715
		                            makehingelimb(LeftHand["LeftWristRigAttachment"], LeftLowerArm["LeftWristRigAttachment"], 30,30)
716
		                        end
717
		                    end
718
						elseif humanoid.Parent:findFirstChild("Torso") then
719
							humanoid.Parent.Archivable = true
720
							humanoid.PlatformStand = true
721
							local function search(datone)
722
								for i,v in pairs(datone:GetChildren()) do
723
									search(v)
724
									if v.ClassName == "Sound" then
725
										v.Volume = 0
726
									end
727
								end
728
							end
729
							search(humanoid.Parent)
730
							local clonede = hitsound:Clone()
731
							clonede.Parent = part
732
							clonede:Play()
733
							if part.Name == "Head" then
734
								humanoid.Parent.Head.Transparency = 1
735
								for i,v in pairs(humanoid.Parent:GetChildren()) do
736
									if v.ClassName == "Accessory" or v.ClassName == "Hat" then
737
										local handle = v:findFirstChild("Handle")
738
										if handle then
739
											handle.Transparency = 1
740
										end
741
									end
742
								end
743
								for i,v in pairs(humanoid.Parent.Head:GetChildren()) do
744
									if v.ClassName == "Decal" then
745
										v:destroy()
746
									end
747
								end
748
								humanoid.Parent:BreakJoints()
749
							end
750
							local clone = humanoid.Parent:Clone()
751
							clone.Parent = workspace
752
							game.Debris:AddItem(clone, 60)
753
							for i,v in pairs(clone:GetChildren()) do
754
							    if v.ClassName == "Script" or v.ClassName == "LocalScript" then
755
							        v:Remove()
756
							    end
757
							    for i,p in pairs(v:GetChildren()) do
758
							    if p.ClassName == "Weld" or p.ClassName == "Motor6D" or p.ClassName == "BodyVelocity" then
759
							        p:Remove()
760
							    end
761
							end
762
							end
763
							for i,t in pairs(humanoid.Parent:GetChildren()) do
764
							    if t.ClassName == "Accessory" or t.ClassName == "ForceField" then
765
							        t:Remove()
766
							    end
767
							end
768
							local vel = Instance.new("BodyVelocity", clone.Torso)
769
			                vel.MaxForce = Vector3.new(math.huge,math.huge,math.huge)
770
			                vel.Velocity = game.Players.LocalPlayer.Character.Torso.CFrame.lookVector * 15
771
			                game.Debris:AddItem(vel, 0.1)
772
							vel = Instance.new("BodyVelocity", clone.Torso)
773
							vel.Velocity = clone.Torso.CFrame.lookVector * -5
774
							vel.MaxForce = Vector3.new(math.huge,math.huge,math.huge)
775
							using = false
776
							hit = Instance.new("Sound", clone.Torso)
777
							hit.SoundId = "rbxassetid://260430060"
778
							hit.Volume = 0
779
							hit1 = Instance.new("Sound", clone.Torso)
780
							hit1.SoundId = "rbxassetid://138087186"
781
							hit1.Volume = 0
782
							hit2 = Instance.new("Sound", clone.Torso)
783
							hit2.SoundId = "rbxassetid://131237241"
784
							hit2.Volume = 0
785
							hit3 = Instance.new("Sound", clone.Torso)
786
							hit3.SoundId = "rbxassetid://278062209"
787
							hit3.Volume = 0
788
							hit3.TimePosition = 0.33
789
							ded = Instance.new("Sound", clone.Torso)
790
							ded.SoundId = "rbxassetid://418892870"
791
							ded.Volume = 0
792
							local leftarm = clone:findFirstChild("Left Arm")
793
							local rightrm = clone:findFirstChild("Right Arm")
794
							local leftleg = clone:findFirstChild("Left Leg")
795
							local rightleg = clone:findFirstChild("Right Leg")
796
							local head = clone:findFirstChild("Head")
797
							for i, g in pairs(humanoid.Parent:GetChildren()) do
798
							    if g.ClassName == "Part" then
799
							        g:destroy()
800
							    end
801
							end
802
							for i, h in pairs(humanoid.Parent:GetChildren()) do
803
							    if h.ClassName == "Accesory" then
804
							        h:destroy()
805
							    end
806
							end
807
							for z,x in pairs(clone:GetChildren()) do
808
			                        if x.ClassName == "Accessory" then
809
			                            local handle = x:findFirstChild("Handle")
810
			                            if handle then
811
			                                local attachment = handle:findFirstChildOfClass("Attachment")
812
			                                if attachment then
813
			                                    for q,w in pairs(clone:GetChildren()) do
814
			                                        if w.Name == "Torso" or w.Name == "Head" then
815
			                                            local anotherone = w:findFirstChild(attachment.Name)
816
			                                            if attachment and anotherone then
817
			                                                local constraint = Instance.new("HingeConstraint", clone) --making fake weld
818
			                                                constraint.Attachment0 = attachment
819
			                                                constraint.Attachment1 = anotherone
820
			                                                constraint.LimitsEnabled = true
821
			                                                constraint.LowerAngle = 0
822
			                                                constraint.UpperAngle = 0
823
			                                            end
824
			                                        end
825
			                                    end
826
			                                end
827
			                            end
828
			                        end
829
			                    end
830
							if head and clone.Torso:findFirstChild("NeckAttachment") then
831
							            local attachment = Instance.new("Attachment", clone.Head)
832
							            attachment.Position = Vector3.new(0, -0.5, 0)
833
							            attachment.Name = "lol"
834
							            attachment.Visible = false
835
							            clone.Torso.NeckAttachment.Visible = false
836
							            clone.Torso.NeckAttachment.Position = clone.Torso.NeckAttachment.Position + Vector3.new(0,0,0)
837
							            local ball = Instance.new("BallSocketConstraint", clone)
838
							            ball.Attachment0 = clone.Torso.NeckAttachment
839
							            ball.Attachment1 = attachment
840
							            ball.LimitsEnabled = true
841
							            ball.TwistLimitsEnabled = true
842
							            ball.UpperAngle = 90
843
							            ball.Restitution = 0.5
844
							            ball.TwistUpperAngle = 90
845
							            ball.TwistLowerAngle = -90
846
							            local  collidepartofleftleg = Instance.new("Part", clone.Torso)
847
							            collidepartofleftleg.Name = "Bone"
848
							            collidepartofleftleg.Size = Vector3.new(0.7,0.7,0.7)
849
							            collidepartofleftleg.Transparency = 1
850
							            collidepartofleftleg:BreakJoints()
851
							            local weeld = Instance.new("Weld", collidepartofleftleg)
852
							            weeld.Part0 = collidepartofleftleg
853
							            weeld.Part1 = clone["Head"]
854
							        end
855
							if leftleg ~= nil then
856
							leftleg:BreakJoints()
857
							local glue = Instance.new("Glue", clone.Torso)
858
							glue.Part0 = clone.Torso
859
							glue.Part1 = leftleg
860
							glue.Name = "Left leg"
861
							local collider = Instance.new("Part", leftleg)
862
							collider.Position = Vector3.new(0,999,0)
863
							collider.Size = Vector3.new(1.5, 1, 1)
864
							collider.Shape = "Cylinder"
865
							local weld = Instance.new("Weld", collider)
866
							weld.Part0 = leftleg
867
							weld.Part1 = collider
868
							weld.C0 = CFrame.new(0,-0.2,0) * CFrame.fromEulerAnglesXYZ(0, 0, math.pi/2)
869
							collider.TopSurface = "Smooth"
870
							collider.BottomSurface = "Smooth"
871
							collider.formFactor = "Symmetric"
872
							glue.C0 = CFrame.new(-0.5, -1, 0, -0, -0, -1, 0, 1, 0, 1, 0, 0)
873
							glue.C1 = CFrame.new(-0, 1, 0, -0, -0, -1, 0, 1, 0, 1, 0, 0)
874
							collider.Transparency = 1
875
							end
876
							------------
877
							if rightleg ~= nil then
878
							rightleg:BreakJoints()
879
							local glue1 = Instance.new("Glue", clone.Torso)
880
							glue1.Part0 = clone.Torso
881
							glue1.Part1 = rightleg
882
							glue1.Name = "Right leg"
883
							local collider1 = Instance.new("Part", rightleg)
884
							collider1.Position = Vector3.new(0,999,0)
885
							collider1.Size = Vector3.new(1.5, 1, 1)
886
							collider1.Shape = "Cylinder"
887
							local weld1 = Instance.new("Weld", collider1)
888
							weld1.Part0 = rightleg
889
							weld1.Part1 = collider1
890
							weld1.C0 = CFrame.new(0,-0.2,0) * CFrame.fromEulerAnglesXYZ(0, 0, math.pi/2)
891
							collider1.TopSurface = "Smooth"
892
							collider1.BottomSurface = "Smooth"
893
							collider1.formFactor = "Symmetric"
894
							glue1.C0 = CFrame.new(0.5, -1, 0, 0, 0, 1, 0, 1, 0, -1, -0, -0)
895
							glue1.C1 = CFrame.new(0, 1, 0, 0, 0, 1, 0, 1, 0, -1, -0, -0)
896
							collider1.Transparency = 1
897
							end
898
							------------
899
							if rightrm ~= nil then
900
							rightrm:BreakJoints()
901
							rightrm.CFrame = clone.Torso.CFrame * CFrame.new(1.7,0,0)
902
							local glue11 = Instance.new("Glue", clone.Torso)
903
							glue11.Part0 = clone.Torso
904
							glue11.Part1 = rightrm
905
							glue11.Name = "Right shoulder"
906
							local collider11 = Instance.new("Part", rightrm)
907
							collider11.Position = Vector3.new(0,9999,0)
908
							collider11.Size = Vector3.new(1.5,1,1)
909
							collider11.Shape = "Cylinder"
910
							local weld11 = Instance.new("Weld", collider11)
911
							weld11.Part0 = rightrm
912
							weld11.Part1 = collider11
913
							weld11.C0 = CFrame.new(0,-0.2,0) * CFrame.fromEulerAnglesXYZ(0, 0, math.pi/2)
914
							collider11.TopSurface = "Smooth"
915
							collider11.BottomSurface = "Smooth"
916
							collider11.formFactor = "Symmetric"
917
							glue11.C0 = CFrame.new(1.5, 0.5, 0, 0, 0, 1, 0, 1, 0, -1, 0, 0)
918
							glue11.C1 = CFrame.new(0, 0.5, 0, 0, 0, 1, 0, 1, 0, -1, 0, 0)
919
							collider11.Transparency = 1
920
							end
921
							------------
922
							if leftarm ~= nil then
923
							leftarm.CFrame = clone.Torso.CFrame * CFrame.new(-1.7,0,0)
924
							leftarm:BreakJoints()
925
							local glue111 = Instance.new("Glue", clone.Torso)
926
							glue111.Part0 = clone.Torso
927
							glue111.Part1 = leftarm
928
							glue111.Name = "Left shoulder"
929
							local collider111 = Instance.new("Part", leftarm)
930
							collider111.Position = Vector3.new(0,9999,0)
931
							collider111.Size = Vector3.new(1.5,1,1)
932
							collider111.Shape = "Cylinder"
933
							local weld111 = Instance.new("Weld", collider111)
934
							weld111.Part0 = leftarm
935
							weld111.Part1 = collider111
936
							weld111.C0 = CFrame.new(0,-0.2,0) * CFrame.fromEulerAnglesXYZ(0, 0, math.pi/2)
937
							collider111.TopSurface = "Smooth"
938
							collider111.BottomSurface = "Smooth"
939
							collider111.formFactor = "Symmetric"
940
							glue111.C0 = CFrame.new(-1.5, 0.5, 0, 0, 0, -1, 0, 1, 0, 1, 0, 0)
941
							glue111.C1 = CFrame.new(0, 0.5, 0, 0, 0, -1, 0, 1, 0, 1, 0, 0)
942
							collider111.Transparency = 1
943
							----------------
944
							sensoring = Instance.new("Part", clone.Torso)
945
							sensoring.Size = Vector3.new(1.2,1.1,0.8)
946
							sensoring.CanCollide = false
947
							sensoring.Position = clone.Torso.Position
948
							local welder = Instance.new("Weld", sensoring)
949
							welder.Part0 = clone.Torso
950
							welder.Part1 = sensoring
951
							welder.C0 = welder.C0 * CFrame.new(0,0,1.05)
952
							sensoring.Transparency = 1
953
							-----------------
954
							sensoring1 = Instance.new("Part", clone.Torso)
955
							sensoring1.Size = Vector3.new(1.2,1.1,0.8)
956
							sensoring1.CanCollide = false
957
							sensoring1.Position = clone.Torso.Position
958
							local welder1 = Instance.new("Weld", sensoring)
959
							welder1.Part0 = clone.Torso
960
							welder1.Part1 = sensoring1
961
							welder1.C0 = welder1.C0 * CFrame.new(0,0,-1.05)
962
							sensoring1.Transparency = 1
963
							end
964
							local mathname = math.random(1,10) 
965
							if mathname == 1 then
966
								clone.Name = humanoid.Parent.Name.." (Shot to death by "..game.Players.LocalPlayer.Name..")"
967
							end
968
							if mathname == 2 then
969
								clone.Name = humanoid.Parent.Name.." (Killed by "..game.Players.LocalPlayer.Name..")"
970
							end
971
							if mathname == 3 then
972
								clone.Name = humanoid.Parent.Name.." (Shot by "..game.Players.LocalPlayer.Name..")"
973
							end
974
							if mathname == 4 then
975
								clone.Name = humanoid.Parent.Name.." (Rekted by "..game.Players.LocalPlayer.Name..")"
976
							end
977
							if mathname == 5 then
978
								clone.Name = humanoid.Parent.Name.." (rip by "..game.Players.LocalPlayer.Name..")"
979
							end
980
							if mathname == 6 then
981
								clone.Name = humanoid.Parent.Name.." (rest in piss "..humanoid.Parent.Name.." by "..game.Players.LocalPlayer.Name..")"
982
							end
983
							if mathname == 7 then
984
								clone.Name = humanoid.Parent.Name.." (rip in pepperoni "..humanoid.Parent.Name.." by "..game.Players.LocalPlayer.Name..")"
985
							end
986
							if mathname == 8 then
987
								clone.Name = humanoid.Parent.Name.." (uuhhh.wav'd by "..game.Players.LocalPlayer.Name..")"
988
							end
989
							if mathname == 9 then
990
								clone.Name = humanoid.Parent.Name.." (oof'd by "..game.Players.LocalPlayer.Name..")"
991
							end
992
							if mathname == 10 then
993
								clone.Name = humanoid.Parent.Name.." (insert child hurt sound by "..game.Players.LocalPlayer.Name..")"
994
							end
995
							ded:Play()
996
							vel:destroy()
997
							wait(0.5)
998
							local function touch()
999
							    if not using then
1000
							        using = true
1001
							        local Math = math.random(1,4)
1002
							        if Math == 1 then
1003
							            hit:Play()
1004
							        end
1005
							        if Math == 2 then
1006
							            hit1:Play()
1007
							        end
1008
							        if Math == 3 then
1009
							            hit2:Play()
1010
							        end
1011
							        if Math == 4 then
1012
							            hit3:Play()
1013
							        end
1014
							        wait(0.1)
1015
							        using = false
1016
							    end
1017
							end
1018
							sensoring.Touched:connect(touch)
1019
							sensoring1.Touched:connect(touch)
1020
							while true do
1021
								if clone:findFirstChild("Head") then
1022
									clone.Head.CanCollide = false
1023
							    end
1024
							    game:GetService("RunService").Stepped:wait()
1025
							end
1026
						end
1027
					else
1028
						local clonede = hitsound:Clone()
1029
						clonede.Parent = part
1030
						clonede:Play()
1031
						humanoid.Health = humanoid.Health - damage
1032
					end
1033
				end
1034
			end
1035
			projectile.Touched:connect(damag)
1036
		end
1037
		for i = 1,5 do
1038
			rhandweld.C1 = rhandweld.C1 * CFrame.new(0,-0.2,0) * CFrame.fromEulerAnglesXYZ(-0.04,0,0)
1039
			game:GetService("RunService").RenderStepped:wait()
1040
		end
1041
		light:destroy()
1042
		for i = 1,10 do
1043
			rhandweld.C1 = rhandweld.C1 * CFrame.new(0,0.1,0) * CFrame.fromEulerAnglesXYZ(0.02,0,0)
1044
			game:GetService("RunService").RenderStepped:wait()
1045
		end
1046
		rhandweld.C1 = CFrame.new(0,1,0)
1047
		shooting = false
1048
	end
1049
end
1050
mouse.Button1Down:connect(shootdemskids)
1051
while true do
1052
	if (workspace.CurrentCamera.CFrame.p - game.Players.LocalPlayer.Character.Head.Position).magnitude < 2 then
1053
		gunclone.Transparency = 0
1054
		rhandclone.Transparency = 0
1055
		lhandclone.Transparency = 0
1056
	else
1057
		gunclone.Transparency = 1
1058
		rhandclone.Transparency = 1
1059
		lhandclone.Transparency = 1
1060
	end
1061
	if Sound1.Parent == nil then
1062
		Sound1.Parent = Part0
1063
	end
1064
	if deflect.Parent == nil then
1065
		deflect.Parent = Part0
1066
	end
1067
	if hitsound.Parent == nil then
1068
		hitsound.Parent = Part0
1069
	end
1070
	if hedshot.Parent == nil then
1071
		hedshot.Parent = Part0
1072
	end
1073
	if wubwub.Parent == nil then
1074
		wubwub.Parent = Part0
1075
	end
1076
	game:GetService("RunService").RenderStepped:wait()
1077
end