View difference between Paste ID: e415N14z and uCSJY8we
SHOW: | | - or go back to the newest paste.
1
PLAYER  = game.Players.LocalPlayer
2
MOUSE   = PLAYER:GetMouse()
3
CC      = game.Workspace.CurrentCamera
4
5
ENABLED      = false
6
ESP_ENABLED  = false
7
8
_G.FREE_FOR_ALL = true
9
10
_G.BIND        = 50
11
_G.ESP_BIND    = 52
12
_G.CHANGE_AIM  = 'q'
13
14
_G.AIM_AT = 'Head'
15
16
wait(1)
17
18
function GetNearestPlayerToMouse()
19
	local PLAYERS      = {}
20
	local PLAYER_HOLD  = {}
21
	local DISTANCES    = {}
22
	for i, v in pairs(game.Players:GetPlayers()) do
23
		if v ~= PLAYER then
24
			table.insert(PLAYERS, v)
25
		end
26
	end
27
	for i, v in pairs(PLAYERS) do
28
		if _G.FREE_FOR_ALL == false then
29
			if v and (v.Character) ~= nil and v.TeamColor ~= PLAYER.TeamColor then
30
				local AIM = v.Character:FindFirstChild(_G.AIM_AT)
31
				if AIM ~= nil then
32
					local DISTANCE                 = (AIM.Position - game.Workspace.CurrentCamera.CoordinateFrame.p).magnitude
33
					local RAY                      = Ray.new(game.Workspace.CurrentCamera.CoordinateFrame.p, (MOUSE.Hit.p - CC.CoordinateFrame.p).unit * DISTANCE)
34
					local HIT,POS                  = game.Workspace:FindPartOnRay(RAY, game.Workspace)
35
					local DIFF                     = math.floor((POS - AIM.Position).magnitude)
36
					PLAYER_HOLD[v.Name .. i]       = {}
37
					PLAYER_HOLD[v.Name .. i].dist  = DISTANCE
38
					PLAYER_HOLD[v.Name .. i].plr   = v
39
					PLAYER_HOLD[v.Name .. i].diff  = DIFF
40
					table.insert(DISTANCES, DIFF)
41
				end
42
			end
43
		elseif _G.FREE_FOR_ALL == true then
44
			local AIM = v.Character:FindFirstChild(_G.AIM_AT)
45
			if AIM ~= nil then
46
				local DISTANCE                 = (AIM.Position - game.Workspace.CurrentCamera.CoordinateFrame.p).magnitude
47
				local RAY                      = Ray.new(game.Workspace.CurrentCamera.CoordinateFrame.p, (MOUSE.Hit.p - CC.CoordinateFrame.p).unit * DISTANCE)
48
				local HIT,POS                  = game.Workspace:FindPartOnRay(RAY, game.Workspace)
49
				local DIFF                     = math.floor((POS - AIM.Position).magnitude)
50
				PLAYER_HOLD[v.Name .. i]       = {}
51
				PLAYER_HOLD[v.Name .. i].dist  = DISTANCE
52
				PLAYER_HOLD[v.Name .. i].plr   = v
53
				PLAYER_HOLD[v.Name .. i].diff  = DIFF
54
				table.insert(DISTANCES, DIFF)
55
			end
56
		end
57
	end
58
	
59
	if unpack(DISTANCES) == nil then
60
		return false
61
	end
62
	
63
	local L_DISTANCE = math.floor(math.min(unpack(DISTANCES)))
64
	if L_DISTANCE > 20 then
65
		return false
66
	end
67
	
68
	for i, v in pairs(PLAYER_HOLD) do
69
		if v.diff == L_DISTANCE then
70
			return v.plr
71
		end
72
	end
73
	return false
74
end
75
76
GUI_MAIN                           = Instance.new('ScreenGui', game.CoreGui)
77
GUI_TARGET                         = Instance.new('TextLabel', GUI_MAIN)
78
GUI_AIM_AT                         = Instance.new('TextLabel', GUI_MAIN)
79
80
GUI_MAIN.Name                      = 'AIMBOT'
81
82
GUI_TARGET.Size                    = UDim2.new(0,200,0,30)
83
GUI_TARGET.BackgroundTransparency  = 0.5
84
GUI_TARGET.BackgroundColor         = BrickColor.new('Fossil')
85
GUI_TARGET.BorderSizePixel         = 0
86
GUI_TARGET.Position                = UDim2.new(0.5,-100,0,0)
87
GUI_TARGET.Text                    = 'AIMBOT : OFF'
88
GUI_TARGET.TextColor3              = Color3.new(1,1,1)
89
GUI_TARGET.TextStrokeTransparency  = 1
90
GUI_TARGET.TextWrapped             = true
91
GUI_TARGET.FontSize                = 'Size24'
92
GUI_TARGET.Font                    = 'SourceSansBold'
93
94
GUI_AIM_AT.Size                    = UDim2.new(0,200,0,20)
95
GUI_AIM_AT.BackgroundTransparency  = 0.5
96
GUI_AIM_AT.BackgroundColor         = BrickColor.new('Fossil')
97
GUI_AIM_AT.BorderSizePixel         = 0
98
GUI_AIM_AT.Position                = UDim2.new(0.5,-100,0,30)
99
GUI_AIM_AT.Text                    = 'AIMING : HEAD'
100
GUI_AIM_AT.TextColor3              = Color3.new(1,1,1)
101
GUI_AIM_AT.TextStrokeTransparency  = 1
102
GUI_AIM_AT.TextWrapped             = true
103
GUI_AIM_AT.FontSize                = 'Size18'
104
GUI_AIM_AT.Font                    = 'SourceSansBold'
105
106
local TRACK = false
107
108
function CREATE(BASE, TEAM)
109
	local ESP_MAIN                   = Instance.new('BillboardGui', PLAYER.PlayerGui)
110
	local ESP_DOT                    = Instance.new('Frame', ESP_MAIN)
111
	local ESP_NAME                   = Instance.new('TextLabel', ESP_MAIN)
112
	
113
	ESP_MAIN.Name                    = 'ESP'
114
	ESP_MAIN.Adornee                 = BASE
115
	ESP_MAIN.AlwaysOnTop             = true
116
	ESP_MAIN.ExtentsOffset           = Vector3.new(0, 1, 0)
117
	ESP_MAIN.Size                    = UDim2.new(0, 5, 0, 5)
118
	
119
	ESP_DOT.Name                     = 'DOT'
120
	ESP_DOT.BackgroundColor          = BrickColor.new('Bright red')
121
	ESP_DOT.BackgroundTransparency   = 0.3
122
	ESP_DOT.BorderSizePixel          = 0
123
	ESP_DOT.Position                 = UDim2.new(-0.5, 0, -0.5, 0)
124
	ESP_DOT.Size                     = UDim2.new(2, 0, 2, 0)
125
	ESP_DOT.Visible                  = true
126
	ESP_DOT.ZIndex                   = 10
127
	
128
	ESP_NAME.Name                    = 'NAME'
129
	ESP_NAME.BackgroundColor3        = Color3.new(255, 255, 255)
130
	ESP_NAME.BackgroundTransparency  = 1
131
	ESP_NAME.BorderSizePixel         = 0
132
	ESP_NAME.Position                = UDim2.new(0, 0, 0, -40)
133
	ESP_NAME.Size                    = UDim2.new(1, 0, 10, 0)
134
	ESP_NAME.Visible                 = true
135
	ESP_NAME.ZIndex                  = 10
136
	ESP_NAME.Font                    = 'ArialBold'
137
	ESP_NAME.FontSize                = 'Size14'
138
	ESP_NAME.Text                    = BASE.Parent.Name:upper()
139
	ESP_NAME.TextColor               = BrickColor.new('Bright red')
140
end
141
142
function CLEAR()
143
	for _,v in pairs(PLAYER.PlayerGui:children()) do
144
		if v.Name == 'ESP' and v:IsA('BillboardGui') then
145
			v:Destroy()
146
		end
147
	end
148
end
149
150
function FIND()
151
	CLEAR()
152
	TRACK = true
153
	spawn(function()
154
		while wait() do
155
			if TRACK then
156
				CLEAR()
157
				for i,v in pairs(game.Players:GetChildren()) do
158
					if v.Character and v.Character:FindFirstChild('Head') then
159
						if _G.FREE_FOR_ALL == false then
160
							if v.TeamColor ~= PLAYER.TeamColor then
161
								if v.Character:FindFirstChild('Head') then
162
									CREATE(v.Character.Head, true)
163
								end
164
							end
165
						else
166
							if v.Character:FindFirstChild('Head') then
167
								CREATE(v.Character.Head, true)
168
							end
169
						end
170
					end
171
				end
172
			end
173
		end
174
		wait(1)
175
	end)
176
end
177
178
MOUSE.KeyDown:connect(function(KEY)
179
	KEY = KEY:lower():byte()
180
	if KEY == _G.BIND then
181
		ENABLED = true
182
	end
183
end)
184
185
MOUSE.KeyUp:connect(function(KEY)
186
	KEY = KEY:lower():byte()
187
	if KEY == _G.BIND then
188
		ENABLED = false
189
	end
190
end)
191
192
MOUSE.KeyDown:connect(function(KEY)
193
	KEY = KEY:lower():byte()
194
	if KEY == _G.ESP_BIND then
195
		if ESP_ENABLED == false then
196
			FIND()
197
			ESP_ENABLED = true
198
			print('ESP : ON')
199
		elseif ESP_ENABLED == true then
200
			wait()
201
			CLEAR()
202
			TRACK = false
203
			ESP_ENABLED = true
204
			print('ESP : OFF')
205
		end
206
	end
207
end)
208
209
MOUSE.KeyDown:connect(function(KEY)
210
	if KEY == _G.CHANGE_AIM then
211
		if _G.AIM_AT == 'Head' then
212
			_G.AIM_AT = 'Torso'
213
			GUI_AIM_AT.Text = 'AIMING : TORSO'
214
		elseif _G.AIM_AT == 'Torso' then
215
			_G.AIM_AT = 'Head'
216
			GUI_AIM_AT.Text = 'AIMING : HEAD'
217
		end
218
	end
219
end)
220
221
game:GetService('RunService').RenderStepped:connect(function()
222
	if ENABLED then
223
		local TARGET = GetNearestPlayerToMouse()
224
		if (TARGET ~= false) then
225
			local AIM = TARGET.Character:FindFirstChild(_G.AIM_AT)
226
			if AIM then
227
				CC.CoordinateFrame = CFrame.new(CC.CoordinateFrame.p, AIM.CFrame.p)
228
			end
229
			GUI_TARGET.Text = 'AIMBOT : '.. TARGET.Name:sub(1, 5)
230
		else
231
			GUI_TARGET.Text = 'AIMBOT : OFF'
232
		end
233
	end
234
end)
235
236
repeat
237
	wait()
238
	if ESP_ENABLED == true then
239
		FIND()
240
	end
241
until ESP_ENABLED == false
242
wait()
243
_G.FREE_FOR_ALL = true
244-
_G.BIND = 50 -- LEFT CTRL
244+
_G.BIND = 50 -- F
245
_G.ESP_BIND = 52 -- LEFT ALT