-- LocalScript ProximityPrompt (via decompile) local ProximityPromptService_1 = game:GetService("ProximityPromptService") local TweenService_upv_1 = game:GetService("TweenService") local UserInputService_upv_1 = game:GetService("UserInputService") local TextService_upv_1 = game:GetService("TextService") local _ = game:GetService("Debris") local PlayerGui_upv_1 = game:GetService("Players").LocalPlayer.PlayerGui local tbl_upv_1 = {} local tbl_upv_2 = {"Keyboard", "Touch", "Gamepad"} local ProximityPromptStyle_upv_1 = Enum.ProximityPromptStyle local ProximityPromptInputType_upv_1 = Enum.ProximityPromptInputType local Mapping_upv_1 = require(script.Mapping) local Template_upv_1 = script.Template local u1 = TweenInfo.new(0.15, Enum.EasingStyle.Quad) local u2 = TweenInfo.new(0.85, Enum.EasingStyle.Quad) local u3 = TweenInfo.new(0.65, Enum.EasingStyle.Quad) local u4 = TweenInfo.new(0.35, Enum.EasingStyle.Quad) local tbl_upv_3 = {"Handle", "HumanoidRootPart", "Humanoid", "UpperTorso", "LowerTorso", "Position"} ProximityPromptService_1.PromptShown:Connect( function(a1, a2) --[[ line: 32 upvalues: ProximityPromptStyle_upv_1 (copy, index: 1) tbl_upv_3 (copy, index: 2) ]] a1.Style = ProximityPromptStyle_upv_1.Custom local u5 = _getprompt(a1, a2) local u6 = script:FindFirstChild("Highlight"):Clone() if a1:IsDescendantOf(workspace.Vehicles) then u6:Destroy() else if table.find(tbl_upv_3, a1.Parent.Name) then u6.Parent = a1.Parent.Parent if a1.Name == "Snatch" then u6.FillColor = Color3.fromRGB(0, 255, 0) u6.FillTransparency = 0.7 u6.OutlineColor = Color3.fromRGB(0, 255, 0) end else u6.Parent = a1.Parent end u6.Enabled = true end a1.PromptHidden:Once( function() --[[ line: 52 upvalues: u5 (copy, index: 1) u6 (copy, index: 2) ]] u5() u6:Destroy() end ) end ) function _createPromptUI(a1, a2, a3) --[[ name: _createPromptUI line: 60 upvalues: Template_upv_1 (copy, index: 1) UserInputService_upv_1 (copy, index: 2) ]] local v1, v2 = nil, nil if a1 ~= "Keyboard" then local v3 = nil if a1 == "Touch" then local ObjectText_1 = a2.ObjectText v3 = a2.ActionText if hasText(v3) then local ObjectText_2 = v3 else local ObjectText_2 = "Intereact" end local v4 if hasText(ObjectText_1) then v4 = Template_upv_1.Complex:Clone() else v4 = Template_upv_1.Simple:Clone() end local ObjectText_2 v4.Frame.Info.Action.Text = ObjectText_2 if v4.Name == "Complex" then v4.Frame.Info.Object.Text = ObjectText_1 end v4.Frame.Key.ButtonText.Text = "" v4.Frame.Key.ButtonImage.Image = "rbxasset://textures/ui/Controls/TouchTapIcon.png" local v5 = calculateBorder(v4.Frame.Info.Action) if #ObjectText_2 < #ObjectText_1 then v5 = calculateBorder(v4.Frame.Info.Object) end v4.Size = UDim2.fromOffset(math.clamp(v5 + 55, 125, 500), 45) v4.Adornee = a2.Parent return v4 elseif a1 == "Gamepad" then local GamepadKeyCode_1 = a2.GamepadKeyCode local ObjectText_3 = a2.ObjectText local ActionText_1 = a2.ActionText if hasText(ActionText_1) then v1 = ActionText_1 else v1 = "Intereact" end local v6 if hasText(ObjectText_3) then v6 = Template_upv_1.Complex:Clone() else v6 = Template_upv_1.Simple:Clone() end v6.Frame.Info.Action.Text = v1 if v6.Name == "Complex" then v6.Frame.Info.Object.Text = ObjectText_3 end local v7 = getFormat("gamepadImage", GamepadKeyCode_1) v6.Frame.Key.ButtonText.Text = "" v6.Frame.Key.ButtonImage.Image = v7 local v8 = calculateBorder(v6.Frame.Info.Action) if #v1 < #ObjectText_3 then v8 = calculateBorder(v6.Frame.Info.Object) end v6.Size = UDim2.fromOffset(math.clamp(v8 + 55, 125, 500), 45) v6.Adornee = a2.Parent return v6 end else local KeyboardKeyCode_1 = a2.KeyboardKeyCode local ObjectText_2 = a2.ObjectText v1 = a2.ActionText if not (hasText(v1)) then v1 = "Intereact" end local v9 if hasText(ObjectText_2) then v9 = Template_upv_1.Complex:Clone() else v9 = Template_upv_1.Simple:Clone() end v9.Frame.Info.Action.Text = v1 if v9.Name == "Complex" then v9.Frame.Info.Object.Text = ObjectText_2 end local v10 = UserInputService_upv_1:GetStringForKeyCode(KeyboardKeyCode_1) local v11 = getFormat("keycodeText", KeyboardKeyCode_1) v2 = getFormat("keyboardImage", KeyboardKeyCode_1) v9.Frame.Key.ButtonText.Text = v11 or v10 if v2 then v9.Frame.Key.IconImage.Image = v2 v9.Frame.Key.IconImage.Visible = true end local v12 = calculateBorder(v9.Frame.Info.Action) if #v1 < #ObjectText_2 then v12 = calculateBorder(v9.Frame.Info.Object) end v9.Size = UDim2.fromOffset(math.clamp(v12 + 55, 125, 500), 45) v9.Adornee = a2.Parent return v9 end end function _onHoldBegan(a1, a2, a3) --[[ name: _onHoldBegan line: 211 upvalues: TweenService_upv_1 (copy, index: 1) u4 (copy, index: 2) ]] _clearTweens(a3, "onRelease") local v13 = TweenInfo.new(a2.HoldDuration, Enum.EasingStyle.Linear) local v14 = TweenService_upv_1:Create(a3.Frame.Key, u4, {Position = UDim2.fromScale(0.5, 0), AnchorPoint = Vector2.new(0.5, 0)}) a3.Frame.Sized.MaxSize = Vector2.new(a3.Frame.AbsoluteSize.X, 45) local v15 = TweenService_upv_1:Create(a3.Frame.Sized, u4, {MaxSize = Vector2.new(45, 45)}) for _, value_1 in next, a3.Frame.Info:GetChildren() do local v16 = TweenService_upv_1:Create(value_1, u4, {TextTransparency = 1}) v16:Play() _addTween(a3, "onHold", v16) end a3.Frame.Load.Size = UDim2.fromScale(0, 1) a3.Frame.Load.Transparency = 0.75 _addTween(a3, "onHold", (TweenService_upv_1:Create(a3.Frame.Load, v13, {Size = UDim2.fromScale(1, 1)}))) _addTween(a3, "onHold", v14) _addTween(a3, "onHold", v15) end function _onHoldEnded(a1, a2, a3) --[[ name: _onHoldEnded line: 254 upvalues: TweenService_upv_1 (copy, index: 1) u4 (copy, index: 2) u2 (copy, index: 3) ]] _clearTweens(a3, "onHold") local v17 = TweenService_upv_1:Create(a3.Frame.Key, u4, {Position = UDim2.fromScale(0, 0), AnchorPoint = Vector2.new(0, 0)}) a3.Frame.Sized.MaxSize = Vector2.new(a3.Frame.AbsoluteSize.X, 45) local v18 = TweenService_upv_1:Create(a3.Frame.Sized, u2, {MaxSize = Vector2.new(500, 45)}) for _, value_2 in next, a3.Frame.Info:GetChildren() do local v19 = TweenService_upv_1:Create(value_2, u4, {TextTransparency = 0}) v19:Play() _addTween(a3, "onRelease", v19) end local v20 = TweenService_upv_1:Create(a3.Frame.Load, u4, {Transparency = 1}) _addTween(a3, "onRelease", v18) _addTween(a3, "onRelease", v20) _addTween(a3, "onRelease", v17) end function _onTapped(a1, a2, a3) --[[ name: _onTapped line: 293 upvalues: TweenService_upv_1 (copy, index: 1) u1 (copy, index: 2) u3 (copy, index: 3) ]] local tbl_4 = {} tbl_4.Size = UDim2.fromOffset(25, 25) TweenService_upv_1:Create(a3.Frame.Key.ButtonImage, u1, tbl_4):Play() task.wait(0.15) local tbl_5 = {} tbl_5.Size = UDim2.fromOffset(30, 30) TweenService_upv_1:Create(a3.Frame.Key.ButtonImage, u1, tbl_5):Play() a3.Frame.Load.Size = UDim2.fromScale(1, 1) a3.Frame.Load.Transparency = 0.75 TweenService_upv_1:Create(a3.Frame.Load, u3, {Transparency = 1}):Play() end function _showPrompt(a1, a2, a3) --[[ name: _showPrompt line: 312 upvalues: TweenService_upv_1 (copy, index: 1) u4 (copy, index: 2) u2 (copy, index: 3) ]] a3.Enabled = true for _, value_3 in next, a3:GetDescendants() do if value_3:IsA("Frame") then local BackgroundTransparency_1 = script:FindFirstChild(value_3.Name, true).BackgroundTransparency value_3.BackgroundTransparency = 1 _addTween(a3, "show", (TweenService_upv_1:Create(value_3, u4, {BackgroundTransparency = BackgroundTransparency_1}))) continue end if value_3:IsA("TextLabel") then local TextTransparency_1 = script:FindFirstChild(value_3.Name, true).TextTransparency value_3.TextTransparency = 1 _addTween(a3, "show", (TweenService_upv_1:Create(value_3, u4, {TextTransparency = TextTransparency_1}))) continue end if value_3:IsA("ImageLabel") then local ImageTransparency_1 = script:FindFirstChild(value_3.Name, true).ImageTransparency value_3.ImageTransparency = 1 _addTween(a3, "show", (TweenService_upv_1:Create(value_3, u4, {ImageTransparency = ImageTransparency_1}))) end end a3.Frame.Key.Position = UDim2.fromScale(0.5, 0) a3.Frame.Key.AnchorPoint = Vector2.new(0.5, 0) local v21 = TweenService_upv_1:Create(a3.Frame.Key, u4, {Position = UDim2.fromScale(0, 0), AnchorPoint = Vector2.new(0, 0)}) a3.Frame.Sized.MaxSize = Vector2.new(45, 45) local v22 = TweenService_upv_1:Create(a3.Frame.Sized, u2, {MaxSize = Vector2.new(500, 45)}) _addTween(a3, "show", v21) _addTween(a3, "show", v22) end function _closePrompt(a1, a2, a3) --[[ name: _closePrompt line: 365 upvalues: TweenService_upv_1 (copy, index: 1) u4 (copy, index: 2) ]] for _, value_4 in next, a3:GetDescendants() do if value_4:IsA("Frame") then _addTween(a3, "show", (TweenService_upv_1:Create(value_4, u4, {BackgroundTransparency = 1}))) continue end if value_4:IsA("TextLabel") then _addTween(a3, "show", (TweenService_upv_1:Create(value_4, u4, {TextTransparency = 1}))) continue end if value_4:IsA("ImageLabel") then _addTween(a3, "show", (TweenService_upv_1:Create(value_4, u4, {ImageTransparency = 1}))) end end local v23 = TweenService_upv_1:Create(a3.Frame.Key, u4, {Position = UDim2.fromScale(0.5, 0), AnchorPoint = Vector2.new(0.5, 0)}) a3.Frame.Sized.MaxSize = Vector2.new(a3.Frame.AbsoluteSize.X, 45) local v24 = TweenService_upv_1:Create(a3.Frame.Sized, u4, {MaxSize = Vector2.new(45, 45)}) _addTween(a3, "show", v23) _addTween(a3, "show", v24) task.wait(0.2) a3:Destroy() _clearTweens(a3, "show") end function _getprompt(a1, a2) --[[ name: _getprompt line: 412 upvalues: PlayerGui_upv_1 (copy, index: 1) tbl_upv_1 (copy, index: 2) ]] local u7 = _getDeviceName(a2) if not u7 then return nil end local u8 = _createPromptUI(u7, a1, nil) u8.Parent = PlayerGui_upv_1:WaitForChild("Main", 10) tbl_upv_1[u8] = {} _setupPromptEvent(u7, a1, u8) _showPrompt(u7, a1, u8) local v25 = function() --[[ line: 429 upvalues: u7 (copy, index: 1) a1 (copy, index: 2) u8 (ref, index: 3) ]] _closePrompt(u7, a1, u8) end return v25 end function _setupPromptEvent(a1, a2, a3) --[[ name: _setupPromptEvent line: 438 upvalues: tbl_upv_1 (copy, index: 1) ]] local u9 = {} local v26 = a3.AncestryChanged:Connect( function(a4, a5) --[[ line: 441 upvalues: a3 (copy, index: 1) u9 (ref, index: 2) tbl_upv_1 (copy, index: 3) ]] if (a3:IsDescendantOf(game)) then return end for _, value_5 in next, u9 do value_5:Disconnect() end u9 = nil tbl_upv_1[a3] = nil end ) if a2.HoldDuration > 0 then local v27 = a2.PromptButtonHoldBegan:Connect( function() --[[ line: 453 upvalues: a1 (copy, index: 1) a2 (copy, index: 2) a3 (copy, index: 3) ]] _onHoldBegan(a1, a2, a3) end ) local v28 = a2.PromptButtonHoldEnded:Connect( function() --[[ line: 459 upvalues: a1 (copy, index: 1) a2 (copy, index: 2) a3 (copy, index: 3) ]] _onHoldEnded(a1, a2, a3) end ) table.insert(u9, v27) table.insert(u9, v28) else local v29 = a2.Triggered:Connect( function() --[[ line: 468 upvalues: a1 (copy, index: 1) a2 (copy, index: 2) a3 (copy, index: 3) ]] _onTapped(a1, a2, a3) end ) table.insert(u9, v29) end local u10 = nil local v30 = a3.Button.InputBegan:Connect( function(a6) --[[ line: 477 upvalues: a2 (copy, index: 1) u10 (ref, index: 2) ]] if (a6.UserInputType == Enum.UserInputType.Touch or a6.UserInputType == Enum.UserInputType.MouseButton1) and a6.UserInputState ~= Enum.UserInputState.Change then a2:InputHoldBegin() u10 = true end end ) local v31 = a3.Button.InputEnded:Connect( function(a7) --[[ line: 485 upvalues: u10 (ref, index: 1) a2 (copy, index: 2) ]] if (a7.UserInputType == Enum.UserInputType.Touch or a7.UserInputType == Enum.UserInputType.MouseButton1) and (u10) then u10 = false a2:InputHoldEnd() end end ) table.insert(u9, v30) table.insert(u9, v31) table.insert(u9, v26) end function _getDeviceName(a1) --[[ name: _getDeviceName line: 507 upvalues: tbl_upv_2 (copy, index: 1) ProximityPromptInputType_upv_1 (copy, index: 2) ]] for _, value_6 in next, tbl_upv_2 do if a1 ~= ProximityPromptInputType_upv_1[value_6] then continue end return value_6 end return nil end function _clearTweens(a1, a2) --[[ name: _clearTweens line: 521 upvalues: tbl_upv_1 (copy, index: 1) ]] if not (tbl_upv_1[a1]) then tbl_upv_1[a1] = {} end for _, value_7 in next, tbl_upv_1[a1][a2] or {} do value_7:Cancel() end tbl_upv_1[a1][a2] = nil end function _addTween(a1, a2, a3) --[[ name: _addTween line: 534 upvalues: tbl_upv_1 (copy, index: 1) ]] if not (tbl_upv_1[a1][a2]) then tbl_upv_1[a1][a2] = {} end a3:Play() table.insert(tbl_upv_1[a1][a2], a3) end function getFormat(a1, a2) --[[ name: getFormat line: 545 upvalues: Mapping_upv_1 (copy, index: 1) ]] return Mapping_upv_1[a1][a2] end function hasText(a1) --[[ name: hasText line: 552 ]] return a1 ~= "" end function calculateBorder(a1) --[[ name: calculateBorder line: 559 upvalues: TextService_upv_1 (copy, index: 1) ]] return TextService_upv_1:GetTextSize(a1.Text, a1.TextSize, a1.Font, Vector2.new()).X end