Nevzyn

Untitled

Nov 3rd, 2025
32
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 68.00 KB | None | 0 0
  1. --[[
  2. ╔═══════════════════════════════════════════════════════════╗
  3. ║ Pré-história - By: NickZScripts ║
  4. ║ Sistema Modular & Anti-Conflitos ║
  5. ║ Interface: Custom UI (No Library) ║
  6. ╚═══════════════════════════════════════════════════════════╝
  7. ]]
  8.  
  9. --// ========== SERVICES ========== //
  10. local Players = game:GetService("Players")
  11. local RunService = game:GetService("RunService")
  12. local HttpService = game:GetService("HttpService")
  13. local ReplicatedStorage = game:GetService("ReplicatedStorage")
  14. local Teams = game:GetService("Teams")
  15. local TweenService = game:GetService("TweenService")
  16. local UserInputService = game:GetService("UserInputService")
  17. local CoreGui = game:GetService("CoreGui")
  18.  
  19. --// ========== VARIÁVEIS GLOBAIS ========== //
  20. local LocalPlayer = Players.LocalPlayer
  21. local ScriptVersion = "v5.0.0"
  22. local LastSpawnPosition = nil
  23. local Camera = workspace.CurrentCamera
  24. local ActiveTeleportConnection = nil
  25.  
  26. --// ========== CONFIGURAÇÕES DO AUTO FARM ========== //
  27. local Config = {
  28. AutoFarm = false,
  29. AutoColeta = false,
  30. CheckDelay = 0.3,
  31. DelayBetweenCrystals = 0.1,
  32. raioDeColeta = 25,
  33. delayEntreTentativas = 0.25,
  34. podeExecutar = true,
  35.  
  36. -- ESP de Carnes
  37. EspMeatActive = false,
  38. ESP_MIN_SIZE = 35,
  39. ESP_MAX_SIZE = 65,
  40. ESP_UPDATE_RATE = 0.1,
  41. MAX_VISIBLE_DISTANCE = 999999,
  42.  
  43. -- ESP de Jogadores
  44. PlayerESP = false,
  45. PlayerESP_ShowHP = false,
  46. PlayerESP_TeamCheck = false,
  47.  
  48. -- Click Teleport
  49. ClickTeleportEnabled = false,
  50.  
  51. -- Teleports Salvos
  52. SavedTeleports = {},
  53.  
  54. -- Patrulha
  55. PatrulhaPontos = {
  56. CFrame.new(0, 30, 0),
  57. CFrame.new(800, 30, 400),
  58. CFrame.new(-750, 30, -600),
  59. CFrame.new(450, 30, -1000),
  60. CFrame.new(-900, 30, 700),
  61. CFrame.new(0, 30, 1000),
  62. },
  63. }
  64.  
  65. --// ========== CACHE DE NÍVEL ========== //
  66. local DinoLevelCache = {
  67. value = 0,
  68. lastUpdate = 0,
  69. updateInterval = 2
  70. }
  71.  
  72. --// ========== DETECTAR POSIÇÃO DE SPAWN ========== //
  73. task.spawn(function()
  74. local char = LocalPlayer.Character or LocalPlayer.CharacterAdded:Wait()
  75. local root = char:WaitForChild("HumanoidRootPart", 10)
  76.  
  77. if root then
  78. task.wait(2)
  79. LastSpawnPosition = root.CFrame
  80. end
  81.  
  82. LocalPlayer.CharacterAdded:Connect(function(newChar)
  83. task.wait(2)
  84. local newRoot = newChar:FindFirstChild("HumanoidRootPart")
  85. if newRoot then
  86. LastSpawnPosition = newRoot.CFrame
  87. end
  88. end)
  89. end)
  90.  
  91. --// ========== SISTEMA DE UI CUSTOMIZADA ========== //
  92.  
  93. local UI = {}
  94. UI.Theme = {
  95. Background = Color3.fromRGB(20, 20, 30),
  96. Secondary = Color3.fromRGB(30, 30, 40),
  97. Accent = Color3.fromRGB(100, 150, 255),
  98. Success = Color3.fromRGB(80, 200, 120),
  99. Danger = Color3.fromRGB(255, 80, 80),
  100. Warning = Color3.fromRGB(255, 180, 60),
  101. Text = Color3.fromRGB(255, 255, 255),
  102. TextDim = Color3.fromRGB(180, 180, 200),
  103. Border = Color3.fromRGB(60, 60, 80),
  104. }
  105.  
  106. UI.Elements = {}
  107. UI.Tabs = {}
  108. UI.CurrentTab = nil
  109. UI.Notifications = {}
  110.  
  111. --// ========== FUNÇÕES DE UTILIDADE UI ========== //
  112.  
  113. local function CreateInstance(className, properties)
  114. local instance = Instance.new(className)
  115. for k, v in pairs(properties) do
  116. if k ~= "Parent" then
  117. instance[k] = v
  118. end
  119. end
  120. instance.Parent = properties.Parent
  121. return instance
  122. end
  123.  
  124. local function Tween(object, properties, duration, style, direction)
  125. duration = duration or 0.3
  126. style = style or Enum.EasingStyle.Quad
  127. direction = direction or Enum.EasingDirection.Out
  128.  
  129. local tween = TweenService:Create(object, TweenInfo.new(duration, style, direction), properties)
  130. tween:Play()
  131. return tween
  132. end
  133.  
  134. local function AddCorner(parent, radius)
  135. return CreateInstance("UICorner", {
  136. CornerRadius = UDim.new(0, radius or 8),
  137. Parent = parent
  138. })
  139. end
  140.  
  141. local function AddStroke(parent, color, thickness, transparency)
  142. return CreateInstance("UIStroke", {
  143. Color = color or UI.Theme.Border,
  144. Thickness = thickness or 1,
  145. Transparency = transparency or 0,
  146. Parent = parent
  147. })
  148. end
  149.  
  150. local function AddPadding(parent, offset)
  151. return CreateInstance("UIPadding", {
  152. PaddingLeft = UDim.new(0, offset or 10),
  153. PaddingRight = UDim.new(0, offset or 10),
  154. PaddingTop = UDim.new(0, offset or 10),
  155. PaddingBottom = UDim.new(0, offset or 10),
  156. Parent = parent
  157. })
  158. end
  159.  
  160. --// ========== SISTEMA DE NOTIFICAÇÕES ========== //
  161.  
  162. function UI:Notify(title, content, duration, icon)
  163. duration = duration or 3
  164. icon = icon or "ℹ️"
  165.  
  166. local notifContainer = self.Elements.NotificationContainer
  167. if not notifContainer then return end
  168.  
  169. local notif = CreateInstance("Frame", {
  170. Size = UDim2.new(1, -20, 0, 0),
  171. Position = UDim2.new(0, 10, 0, 0),
  172. BackgroundColor3 = UI.Theme.Secondary,
  173. BackgroundTransparency = 0.1,
  174. BorderSizePixel = 0,
  175. ClipsDescendants = true,
  176. Parent = notifContainer
  177. })
  178.  
  179. AddCorner(notif, 8)
  180. AddStroke(notif, UI.Theme.Accent, 1, 0.5)
  181.  
  182. local iconLabel = CreateInstance("TextLabel", {
  183. Size = UDim2.new(0, 40, 1, 0),
  184. BackgroundTransparency = 1,
  185. Text = icon,
  186. TextSize = 20,
  187. TextColor3 = UI.Theme.Accent,
  188. Font = Enum.Font.GothamBold,
  189. Parent = notif
  190. })
  191.  
  192. local textContainer = CreateInstance("Frame", {
  193. Size = UDim2.new(1, -50, 1, 0),
  194. Position = UDim2.new(0, 45, 0, 0),
  195. BackgroundTransparency = 1,
  196. Parent = notif
  197. })
  198.  
  199. AddPadding(textContainer, 5)
  200.  
  201. local titleLabel = CreateInstance("TextLabel", {
  202. Size = UDim2.new(1, 0, 0, 18),
  203. BackgroundTransparency = 1,
  204. Text = title,
  205. TextSize = 14,
  206. TextColor3 = UI.Theme.Text,
  207. Font = Enum.Font.GothamBold,
  208. TextXAlignment = Enum.TextXAlignment.Left,
  209. TextYAlignment = Enum.TextYAlignment.Top,
  210. Parent = textContainer
  211. })
  212.  
  213. local contentLabel = CreateInstance("TextLabel", {
  214. Size = UDim2.new(1, 0, 1, -20),
  215. Position = UDim2.new(0, 0, 0, 20),
  216. BackgroundTransparency = 1,
  217. Text = content,
  218. TextSize = 12,
  219. TextColor3 = UI.Theme.TextDim,
  220. Font = Enum.Font.Gotham,
  221. TextXAlignment = Enum.TextXAlignment.Left,
  222. TextYAlignment = Enum.TextYAlignment.Top,
  223. TextWrapped = true,
  224. Parent = textContainer
  225. })
  226.  
  227. -- Animar entrada
  228. Tween(notif, {Size = UDim2.new(1, -20, 0, 70)}, 0.3, Enum.EasingStyle.Back)
  229.  
  230. -- Remover após duração
  231. task.delay(duration, function()
  232. Tween(notif, {
  233. Size = UDim2.new(1, -20, 0, 0),
  234. BackgroundTransparency = 1
  235. }, 0.3)
  236.  
  237. task.wait(0.3)
  238. notif:Destroy()
  239. end)
  240.  
  241. -- Reposicionar outras notificações
  242. task.wait(0.1)
  243. local yOffset = 0
  244. for _, child in ipairs(notifContainer:GetChildren()) do
  245. if child:IsA("Frame") then
  246. Tween(child, {Position = UDim2.new(0, 10, 0, yOffset)}, 0.2)
  247. yOffset = yOffset + child.Size.Y.Offset + 10
  248. end
  249. end
  250. end
  251.  
  252. --// ========== CRIAR INTERFACE PRINCIPAL ========== //
  253.  
  254. function UI:CreateWindow(title)
  255. -- Limpar UI antiga se existir
  256. local oldGui = CoreGui:FindFirstChild("PreHistoriaUI")
  257. if oldGui then oldGui:Destroy() end
  258.  
  259. -- ScreenGui Principal
  260. local screenGui = CreateInstance("ScreenGui", {
  261. Name = "PreHistoriaUI",
  262. ResetOnSpawn = false,
  263. ZIndexBehavior = Enum.ZIndexBehavior.Sibling,
  264. Parent = CoreGui
  265. })
  266.  
  267. self.Elements.ScreenGui = screenGui
  268.  
  269. -- Container de Notificações
  270. local notifContainer = CreateInstance("Frame", {
  271. Name = "NotificationContainer",
  272. Size = UDim2.new(0, 300, 1, -100),
  273. Position = UDim2.new(1, -310, 0, 10),
  274. BackgroundTransparency = 1,
  275. Parent = screenGui
  276. })
  277.  
  278. self.Elements.NotificationContainer = notifContainer
  279.  
  280. -- Frame Principal
  281. local mainFrame = CreateInstance("Frame", {
  282. Name = "MainFrame",
  283. Size = UDim2.new(0, 550, 0, 600),
  284. Position = UDim2.new(0.5, -275, 0.5, -300),
  285. BackgroundColor3 = UI.Theme.Background,
  286. BorderSizePixel = 0,
  287. Active = true,
  288. Parent = screenGui
  289. })
  290.  
  291. AddCorner(mainFrame, 12)
  292. AddStroke(mainFrame, UI.Theme.Accent, 2, 0.3)
  293.  
  294. self.Elements.MainFrame = mainFrame
  295.  
  296. -- Gradiente de fundo
  297. CreateInstance("UIGradient", {
  298. Color = ColorSequence.new{
  299. ColorSequenceKeypoint.new(0, Color3.fromRGB(25, 25, 35)),
  300. ColorSequenceKeypoint.new(1, Color3.fromRGB(15, 15, 25))
  301. },
  302. Rotation = 45,
  303. Parent = mainFrame
  304. })
  305.  
  306. -- Header
  307. local header = CreateInstance("Frame", {
  308. Name = "Header",
  309. Size = UDim2.new(1, 0, 0, 50),
  310. BackgroundColor3 = UI.Theme.Secondary,
  311. BackgroundTransparency = 0.3,
  312. BorderSizePixel = 0,
  313. Parent = mainFrame
  314. })
  315.  
  316. AddCorner(header, 12)
  317.  
  318. -- Fix para cantos do header
  319. CreateInstance("Frame", {
  320. Size = UDim2.new(1, 0, 0, 12),
  321. Position = UDim2.new(0, 0, 1, -12),
  322. BackgroundColor3 = UI.Theme.Secondary,
  323. BackgroundTransparency = 0.3,
  324. BorderSizePixel = 0,
  325. Parent = header
  326. })
  327.  
  328. -- Título
  329. local titleLabel = CreateInstance("TextLabel", {
  330. Size = UDim2.new(1, -120, 1, 0),
  331. Position = UDim2.new(0, 15, 0, 0),
  332. BackgroundTransparency = 1,
  333. Text = title,
  334. TextColor3 = UI.Theme.Text,
  335. TextSize = 18,
  336. Font = Enum.Font.GothamBold,
  337. TextXAlignment = Enum.TextXAlignment.Left,
  338. Parent = header
  339. })
  340.  
  341. -- Botão Minimizar
  342. local minimizeBtn = CreateInstance("TextButton", {
  343. Size = UDim2.new(0, 35, 0, 35),
  344. Position = UDim2.new(1, -80, 0.5, -17.5),
  345. BackgroundColor3 = UI.Theme.Warning,
  346. BackgroundTransparency = 0.2,
  347. Text = "➖",
  348. TextColor3 = UI.Theme.Text,
  349. TextSize = 18,
  350. Font = Enum.Font.GothamBold,
  351. AutoButtonColor = false,
  352. Parent = header
  353. })
  354.  
  355. AddCorner(minimizeBtn, 8)
  356.  
  357. minimizeBtn.MouseButton1Click:Connect(function()
  358. self:ToggleMinimize()
  359. end)
  360.  
  361. -- Botão Fechar
  362. local closeBtn = CreateInstance("TextButton", {
  363. Size = UDim2.new(0, 35, 0, 35),
  364. Position = UDim2.new(1, -40, 0.5, -17.5),
  365. BackgroundColor3 = UI.Theme.Danger,
  366. BackgroundTransparency = 0.2,
  367. Text = "✕",
  368. TextColor3 = UI.Theme.Text,
  369. TextSize = 20,
  370. Font = Enum.Font.GothamBold,
  371. AutoButtonColor = false,
  372. Parent = header
  373. })
  374.  
  375. AddCorner(closeBtn, 8)
  376.  
  377. closeBtn.MouseButton1Click:Connect(function()
  378. self:Destroy()
  379. end)
  380.  
  381. -- Hover effects
  382. local function addHoverEffect(btn)
  383. btn.MouseEnter:Connect(function()
  384. Tween(btn, {BackgroundTransparency = 0}, 0.2)
  385. end)
  386. btn.MouseLeave:Connect(function()
  387. Tween(btn, {BackgroundTransparency = 0.2}, 0.2)
  388. end)
  389. end
  390.  
  391. addHoverEffect(minimizeBtn)
  392. addHoverEffect(closeBtn)
  393.  
  394. -- Tornar draggable
  395. local dragging, dragInput, dragStart, startPos
  396.  
  397. header.InputBegan:Connect(function(input)
  398. if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then
  399. dragging = true
  400. dragStart = input.Position
  401. startPos = mainFrame.Position
  402.  
  403. input.Changed:Connect(function()
  404. if input.UserInputState == Enum.UserInputState.End then
  405. dragging = false
  406. end
  407. end)
  408. end
  409. end)
  410.  
  411. header.InputChanged:Connect(function(input)
  412. if input.UserInputType == Enum.UserInputType.MouseMovement or input.UserInputType == Enum.UserInputType.Touch then
  413. dragInput = input
  414. end
  415. end)
  416.  
  417. UserInputService.InputChanged:Connect(function(input)
  418. if input == dragInput and dragging then
  419. local delta = input.Position - dragStart
  420. mainFrame.Position = UDim2.new(
  421. startPos.X.Scale,
  422. startPos.X.Offset + delta.X,
  423. startPos.Y.Scale,
  424. startPos.Y.Offset + delta.Y
  425. )
  426. end
  427. end)
  428.  
  429. -- Container de Tabs
  430. local tabContainer = CreateInstance("Frame", {
  431. Name = "TabContainer",
  432. Size = UDim2.new(0, 120, 1, -60),
  433. Position = UDim2.new(0, 5, 0, 55),
  434. BackgroundTransparency = 1,
  435. Parent = mainFrame
  436. })
  437.  
  438. CreateInstance("UIListLayout", {
  439. Padding = UDim.new(0, 5),
  440. SortOrder = Enum.SortOrder.LayoutOrder,
  441. Parent = tabContainer
  442. })
  443.  
  444. self.Elements.TabContainer = tabContainer
  445.  
  446. -- Container de Conteúdo
  447. local contentContainer = CreateInstance("Frame", {
  448. Name = "ContentContainer",
  449. Size = UDim2.new(1, -135, 1, -65),
  450. Position = UDim2.new(0, 130, 0, 60),
  451. BackgroundTransparency = 1,
  452. ClipsDescendants = true,
  453. Parent = mainFrame
  454. })
  455.  
  456. self.Elements.ContentContainer = contentContainer
  457.  
  458. return self
  459. end
  460.  
  461. function UI:ToggleMinimize()
  462. local mainFrame = self.Elements.MainFrame
  463. local isMinimized = mainFrame.Size.Y.Offset <= 55
  464.  
  465. if isMinimized then
  466. Tween(mainFrame, {Size = UDim2.new(0, 550, 0, 600)}, 0.3, Enum.EasingStyle.Back)
  467. else
  468. Tween(mainFrame, {Size = UDim2.new(0, 550, 0, 50)}, 0.3, Enum.EasingStyle.Back)
  469. end
  470. end
  471.  
  472. function UI:Destroy()
  473. if self.Elements.ScreenGui then
  474. self.Elements.ScreenGui:Destroy()
  475. end
  476. ClickTeleportModule.Cleanup()
  477. print("🗑️ UI Destruída")
  478. end
  479.  
  480. --// ========== CRIAR TAB ========== //
  481.  
  482. function UI:CreateTab(name, icon)
  483. icon = icon or "📁"
  484.  
  485. local tabBtn = CreateInstance("TextButton", {
  486. Name = name,
  487. Size = UDim2.new(1, 0, 0, 40),
  488. BackgroundColor3 = UI.Theme.Secondary,
  489. BackgroundTransparency = 0.5,
  490. Text = "",
  491. AutoButtonColor = false,
  492. Parent = self.Elements.TabContainer
  493. })
  494.  
  495. AddCorner(tabBtn, 8)
  496.  
  497. local iconLabel = CreateInstance("TextLabel", {
  498. Size = UDim2.new(0, 30, 1, 0),
  499. Position = UDim2.new(0, 5, 0, 0),
  500. BackgroundTransparency = 1,
  501. Text = icon,
  502. TextSize = 18,
  503. TextColor3 = UI.Theme.TextDim,
  504. Font = Enum.Font.GothamBold,
  505. Parent = tabBtn
  506. })
  507.  
  508. local nameLabel = CreateInstance("TextLabel", {
  509. Size = UDim2.new(1, -40, 1, 0),
  510. Position = UDim2.new(0, 35, 0, 0),
  511. BackgroundTransparency = 1,
  512. Text = name,
  513. TextSize = 13,
  514. TextColor3 = UI.Theme.TextDim,
  515. Font = Enum.Font.GothamBold,
  516. TextXAlignment = Enum.TextXAlignment.Left,
  517. Parent = tabBtn
  518. })
  519.  
  520. -- Conteúdo da Tab
  521. local tabContent = CreateInstance("ScrollingFrame", {
  522. Name = name .. "Content",
  523. Size = UDim2.new(1, 0, 1, 0),
  524. BackgroundTransparency = 1,
  525. BorderSizePixel = 0,
  526. ScrollBarThickness = 4,
  527. ScrollBarImageColor3 = UI.Theme.Accent,
  528. CanvasSize = UDim2.new(0, 0, 0, 0),
  529. Visible = false,
  530. Parent = self.Elements.ContentContainer
  531. })
  532.  
  533. CreateInstance("UIListLayout", {
  534. Padding = UDim.new(0, 8),
  535. SortOrder = Enum.SortOrder.LayoutOrder,
  536. Parent = tabContent
  537. })
  538.  
  539. AddPadding(tabContent, 5)
  540.  
  541. -- Auto-resize canvas
  542. tabContent:GetPropertyChangedSignal("AbsoluteCanvasSize"):Connect(function()
  543. tabContent.CanvasSize = UDim2.new(0, 0, 0, tabContent.AbsoluteCanvasSize.Y + 10)
  544. end)
  545.  
  546. -- Função de seleção
  547. tabBtn.MouseButton1Click:Connect(function()
  548. self:SelectTab(name)
  549. end)
  550.  
  551. -- Hover effect
  552. tabBtn.MouseEnter:Connect(function()
  553. if self.CurrentTab ~= name then
  554. Tween(tabBtn, {BackgroundTransparency = 0.3}, 0.2)
  555. end
  556. end)
  557.  
  558. tabBtn.MouseLeave:Connect(function()
  559. if self.CurrentTab ~= name then
  560. Tween(tabBtn, {BackgroundTransparency = 0.5}, 0.2)
  561. end
  562. end)
  563.  
  564. self.Tabs[name] = {
  565. Button = tabBtn,
  566. Content = tabContent,
  567. Icon = iconLabel,
  568. Name = nameLabel
  569. }
  570.  
  571. -- Primeira tab ativa por padrão
  572. if not self.CurrentTab then
  573. self:SelectTab(name)
  574. end
  575.  
  576. return {
  577. CreateSection = function(_, sectionName)
  578. return self:CreateSection(tabContent, sectionName)
  579. end,
  580. CreateToggle = function(_, config)
  581. return self:CreateToggle(tabContent, config)
  582. end,
  583. CreateButton = function(_, config)
  584. return self:CreateButton(tabContent, config)
  585. end,
  586. CreateLabel = function(_, text)
  587. return self:CreateLabel(tabContent, text)
  588. end,
  589. CreateSlider = function(_, config)
  590. return self:CreateSlider(tabContent, config)
  591. end,
  592. CreateParagraph = function(_, config)
  593. return self:CreateParagraph(tabContent, config)
  594. end
  595. }
  596. end
  597.  
  598. function UI:SelectTab(name)
  599. for tabName, tab in pairs(self.Tabs) do
  600. if tabName == name then
  601. -- Ativar
  602. Tween(tab.Button, {BackgroundTransparency = 0}, 0.2)
  603. Tween(tab.Icon, {TextColor3 = UI.Theme.Accent}, 0.2)
  604. Tween(tab.Name, {TextColor3 = UI.Theme.Text}, 0.2)
  605. tab.Content.Visible = true
  606. else
  607. -- Desativar
  608. Tween(tab.Button, {BackgroundTransparency = 0.5}, 0.2)
  609. Tween(tab.Icon, {TextColor3 = UI.Theme.TextDim}, 0.2)
  610. Tween(tab.Name, {TextColor3 = UI.Theme.TextDim}, 0.2)
  611. tab.Content.Visible = false
  612. end
  613. end
  614. self.CurrentTab = name
  615. end
  616.  
  617. --// ========== CRIAR SEÇÃO ========== //
  618.  
  619. function UI:CreateSection(parent, name)
  620. local section = CreateInstance("Frame", {
  621. Size = UDim2.new(1, 0, 0, 35),
  622. BackgroundTransparency = 1,
  623. Parent = parent
  624. })
  625.  
  626. local line = CreateInstance("Frame", {
  627. Size = UDim2.new(1, 0, 0, 2),
  628. Position = UDim2.new(0, 0, 0.5, 0),
  629. BackgroundColor3 = UI.Theme.Border,
  630. BorderSizePixel = 0,
  631. Parent = section
  632. })
  633.  
  634. local label = CreateInstance("TextLabel", {
  635. Size = UDim2.new(0, 0, 1, 0),
  636. Position = UDim2.new(0, 0, 0, 0),
  637. BackgroundColor3 = UI.Theme.Background,
  638. BackgroundTransparency = 0,
  639. Text = " " .. name .. " ",
  640. TextSize = 14,
  641. TextColor3 = UI.Theme.Accent,
  642. Font = Enum.Font.GothamBold,
  643. AutomaticSize = Enum.AutomaticSize.X,
  644. Parent = section
  645. })
  646.  
  647. return section
  648. end
  649.  
  650. --// ========== CRIAR TOGGLE ========== //
  651.  
  652. function UI:CreateToggle(parent, config)
  653. local name = config.Name or "Toggle"
  654. local default = config.CurrentValue or false
  655. local callback = config.Callback or function() end
  656.  
  657. local container = CreateInstance("Frame", {
  658. Size = UDim2.new(1, 0, 0, 40),
  659. BackgroundColor3 = UI.Theme.Secondary,
  660. BackgroundTransparency = 0.3,
  661. BorderSizePixel = 0,
  662. Parent = parent
  663. })
  664.  
  665. AddCorner(container, 8)
  666.  
  667. local nameLabel = CreateInstance("TextLabel", {
  668. Size = UDim2.new(1, -60, 1, 0),
  669. Position = UDim2.new(0, 10, 0, 0),
  670. BackgroundTransparency = 1,
  671. Text = name,
  672. TextSize = 14,
  673. TextColor3 = UI.Theme.Text,
  674. Font = Enum.Font.Gotham,
  675. TextXAlignment = Enum.TextXAlignment.Left,
  676. Parent = container
  677. })
  678.  
  679. local toggleBtn = CreateInstance("TextButton", {
  680. Size = UDim2.new(0, 45, 0, 25),
  681. Position = UDim2.new(1, -50, 0.5, -12.5),
  682. BackgroundColor3 = default and UI.Theme.Success or UI.Theme.Border,
  683. Text = "",
  684. AutoButtonColor = false,
  685. Parent = container
  686. })
  687.  
  688. AddCorner(toggleBtn, 12)
  689.  
  690. local indicator = CreateInstance("Frame", {
  691. Size = UDim2.new(0, 19, 0, 19),
  692. Position = default and UDim2.new(1, -22, 0.5, -9.5) or UDim2.new(0, 3, 0.5, -9.5),
  693. BackgroundColor3 = UI.Theme.Text,
  694. Parent = toggleBtn
  695. })
  696.  
  697. AddCorner(indicator, 10)
  698.  
  699. local state = default
  700.  
  701. toggleBtn.MouseButton1Click:Connect(function()
  702. state = not state
  703.  
  704. Tween(toggleBtn, {
  705. BackgroundColor3 = state and UI.Theme.Success or UI.Theme.Border
  706. }, 0.2)
  707.  
  708. Tween(indicator, {
  709. Position = state and UDim2.new(1, -22, 0.5, -9.5) or UDim2.new(0, 3, 0.5, -9.5)
  710. }, 0.2, Enum.EasingStyle.Quad)
  711.  
  712. task.spawn(callback, state)
  713. end)
  714.  
  715. return {
  716. Set = function(_, value)
  717. state = value
  718.  
  719. Tween(toggleBtn, {
  720. BackgroundColor3 = state and UI.Theme.Success or UI.Theme.Border
  721. }, 0.2)
  722.  
  723. Tween(indicator, {
  724. Position = state and UDim2.new(1, -22, 0.5, -9.5) or UDim2.new(0, 3, 0.5, -9.5)
  725. }, 0.2, Enum.EasingStyle.Quad)
  726. end
  727. }
  728. end
  729.  
  730. --// ========== CRIAR BOTÃO ========== //
  731.  
  732. function UI:CreateButton(parent, config)
  733. local name = config.Name or "Button"
  734. local callback = config.Callback or function() end
  735.  
  736. local btn = CreateInstance("TextButton", {
  737. Size = UDim2.new(1, 0, 0, 40),
  738. BackgroundColor3 = UI.Theme.Accent,
  739. BackgroundTransparency = 0.2,
  740. Text = name,
  741. TextColor3 = UI.Theme.Text,
  742. TextSize = 14,
  743. Font = Enum.Font.GothamBold,
  744. AutoButtonColor = false,
  745. Parent = parent
  746. })
  747.  
  748. AddCorner(btn, 8)
  749. AddStroke(btn, UI.Theme.Accent, 1, 0.5)
  750.  
  751. btn.MouseButton1Click:Connect(function()
  752. Tween(btn, {BackgroundTransparency = 0}, 0.1)
  753. task.wait(0.1)
  754. Tween(btn, {BackgroundTransparency = 0.2}, 0.2)
  755.  
  756. task.spawn(callback)
  757. end)
  758.  
  759. btn.MouseEnter:Connect(function()
  760. Tween(btn, {BackgroundTransparency = 0.1}, 0.2)
  761. end)
  762.  
  763. btn.MouseLeave:Connect(function()
  764. Tween(btn, {BackgroundTransparency = 0.2}, 0.2)
  765. end)
  766.  
  767. return btn
  768. end
  769.  
  770. --// ========== CRIAR LABEL ========== //
  771.  
  772. function UI:CreateLabel(parent, text)
  773. local label = CreateInstance("TextLabel", {
  774. Size = UDim2.new(1, 0, 0, 30),
  775. BackgroundTransparency = 1,
  776. Text = text,
  777. TextSize = 13,
  778. TextColor3 = UI.Theme.TextDim,
  779. Font = Enum.Font.Gotham,
  780. TextXAlignment = Enum.TextXAlignment.Left,
  781. Parent = parent
  782. })
  783.  
  784. return {
  785. Set = function(_, newText)
  786. label.Text = newText
  787. end
  788. }
  789. end
  790.  
  791. --// ========== CRIAR PARÁGRAFO ========== //
  792.  
  793. function UI:CreateParagraph(parent, config)
  794. local title = config.Title or "Title"
  795. local content = config.Content or "Content"
  796.  
  797. local container = CreateInstance("Frame", {
  798. Size = UDim2.new(1, 0, 0, 0),
  799. BackgroundColor3 = UI.Theme.Secondary,
  800. BackgroundTransparency = 0.5,
  801. BorderSizePixel = 0,
  802. AutomaticSize = Enum.AutomaticSize.Y,
  803. Parent = parent
  804. })
  805.  
  806. AddCorner(container, 8)
  807. AddPadding(container, 10)
  808.  
  809. local titleLabel = CreateInstance("TextLabel", {
  810. Size = UDim2.new(1, 0, 0, 20),
  811. BackgroundTransparency = 1,
  812. Text = title,
  813. TextSize = 14,
  814. TextColor3 = UI.Theme.Accent,
  815. Font = Enum.Font.GothamBold,
  816. TextXAlignment = Enum.TextXAlignment.Left,
  817. TextYAlignment = Enum.TextYAlignment.Top,
  818. Parent = container
  819. })
  820.  
  821. local contentLabel = CreateInstance("TextLabel", {
  822. Size = UDim2.new(1, 0, 0, 0),
  823. Position = UDim2.new(0, 0, 0, 25),
  824. BackgroundTransparency = 1,
  825. Text = content,
  826. TextSize = 12,
  827. TextColor3 = UI.Theme.TextDim,
  828. Font = Enum.Font.Gotham,
  829. TextXAlignment = Enum.TextXAlignment.Left,
  830. TextYAlignment = Enum.TextYAlignment.Top,
  831. TextWrapped = true,
  832. AutomaticSize = Enum.AutomaticSize.Y,
  833. Parent = container
  834. })
  835.  
  836. return container
  837. end
  838.  
  839. --// ========== CRIAR SLIDER ========== //
  840.  
  841. function UI:CreateSlider(parent, config)
  842. local name = config.Name or "Slider"
  843. local min = config.Min or 0
  844. local max = config.Max or 100
  845. local default = config.CurrentValue or min
  846. local increment = config.Increment or 1
  847. local callback = config.Callback or function() end
  848.  
  849. local container = CreateInstance("Frame", {
  850. Size = UDim2.new(1, 0, 0, 50),
  851. BackgroundColor3 = UI.Theme.Secondary,
  852. BackgroundTransparency = 0.3,
  853. BorderSizePixel = 0,
  854. Parent = parent
  855. })
  856.  
  857. AddCorner(container, 8)
  858.  
  859. local nameLabel = CreateInstance("TextLabel", {
  860. Size = UDim2.new(1, -60, 0, 20),
  861. Position = UDim2.new(0, 10, 0, 5),
  862. BackgroundTransparency = 1,
  863. Text = name,
  864. TextSize = 13,
  865. TextColor3 = UI.Theme.Text,
  866. Font = Enum.Font.Gotham,
  867. TextXAlignment = Enum.TextXAlignment.Left,
  868. Parent = container
  869. })
  870.  
  871. local valueLabel = CreateInstance("TextLabel", {
  872. Size = UDim2.new(0, 50, 0, 20),
  873. Position = UDim2.new(1, -55, 0, 5),
  874. BackgroundTransparency = 1,
  875. Text = tostring(default),
  876. TextSize = 13,
  877. TextColor3 = UI.Theme.Accent,
  878. Font = Enum.Font.GothamBold,
  879. TextXAlignment = Enum.TextXAlignment.Right,
  880. Parent = container
  881. })
  882.  
  883. local sliderBack = CreateInstance("Frame", {
  884. Size = UDim2.new(1, -20, 0, 6),
  885. Position = UDim2.new(0, 10, 1, -15),
  886. BackgroundColor3 = UI.Theme.Border,
  887. BorderSizePixel = 0,
  888. Parent = container
  889. })
  890.  
  891. AddCorner(sliderBack, 3)
  892.  
  893. local sliderFill = CreateInstance("Frame", {
  894. Size = UDim2.new((default - min) / (max - min), 0, 1, 0),
  895. BackgroundColor3 = UI.Theme.Accent,
  896. BorderSizePixel = 0,
  897. Parent = sliderBack
  898. })
  899.  
  900. AddCorner(sliderFill, 3)
  901.  
  902. local sliderBtn = CreateInstance("TextButton", {
  903. Size = UDim2.new(0, 16, 0, 16),
  904. Position = UDim2.new((default - min) / (max - min), -8, 0.5, -8),
  905. BackgroundColor3 = UI.Theme.Text,
  906. Text = "",
  907. AutoButtonColor = false,
  908. Parent = sliderBack
  909. })
  910.  
  911. AddCorner(sliderBtn, 8)
  912.  
  913. local dragging = false
  914.  
  915. local function update(input)
  916. local sizeX = sliderBack.AbsoluteSize.X
  917. local posX = math.clamp(input.Position.X - sliderBack.AbsolutePosition.X, 0, sizeX)
  918. local percent = posX / sizeX
  919. local value = math.floor((min + (max - min) * percent) / increment + 0.5) * increment
  920. value = math.clamp(value, min, max)
  921.  
  922. sliderFill.Size = UDim2.new(percent, 0, 1, 0)
  923. sliderBtn.Position = UDim2.new(percent, -8, 0.5, -8)
  924. valueLabel.Text = tostring(value)
  925.  
  926. task.spawn(callback, value)
  927. end
  928.  
  929. sliderBtn.InputBegan:Connect(function(input)
  930. if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then
  931. dragging = true
  932. update(input)
  933. end
  934. end)
  935.  
  936. sliderBtn.InputEnded:Connect(function(input)
  937. if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then
  938. dragging = false
  939. end
  940. end)
  941.  
  942. UserInputService.InputChanged:Connect(function(input)
  943. if dragging and (input.UserInputType == Enum.UserInputType.MouseMovement or input.UserInputType == Enum.UserInputType.Touch) then
  944. update(input)
  945. end
  946. end)
  947.  
  948. sliderBack.InputBegan:Connect(function(input)
  949. if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then
  950. update(input)
  951. end
  952. end)
  953.  
  954. return container
  955. end
  956.  
  957. --// ========== FUNÇÕES DE UTILIDADE ========== //
  958.  
  959. local function getCharacter()
  960. return LocalPlayer.Character or LocalPlayer.CharacterAdded:Wait()
  961. end
  962.  
  963. local function getHumanoidRootPart()
  964. local char = getCharacter()
  965. return char and char:FindFirstChild("HumanoidRootPart")
  966. end
  967.  
  968. local function teleportTo(cf)
  969. local root = getHumanoidRootPart()
  970. if root and root.Parent then
  971. root.Parent:SetPrimaryPartCFrame(cf)
  972. end
  973. end
  974.  
  975. local function teleportToCrystal(c)
  976. local root = getHumanoidRootPart()
  977. if root and c then
  978. root.Parent:SetPrimaryPartCFrame(CFrame.new(c.Position + Vector3.new(0, 4.5, 0)))
  979. end
  980. end
  981.  
  982. --// ========== SISTEMA DE TELEPORTE SEGURO ========== //
  983.  
  984. local function safeTeleport(targetCFrame, locationName)
  985. if ActiveTeleportConnection then
  986. ActiveTeleportConnection:Disconnect()
  987. ActiveTeleportConnection = nil
  988. end
  989.  
  990. local char = LocalPlayer.Character
  991. local root = char and char:FindFirstChild("HumanoidRootPart")
  992. local humanoid = char and char:FindFirstChild("Humanoid")
  993.  
  994. if not root or not humanoid then
  995. UI:Notify("❌ Erro", "Personagem não encontrado!", 2)
  996. return false
  997. end
  998.  
  999. UI:Notify("🚀 Teleportando", "Indo para: " .. locationName, 1)
  1000.  
  1001. root.CFrame = targetCFrame
  1002.  
  1003. task.spawn(function()
  1004. task.wait(0.05)
  1005.  
  1006. local rayParams = RaycastParams.new()
  1007. rayParams.FilterType = Enum.RaycastFilterType.Blacklist
  1008. rayParams.FilterDescendantsInstances = {char}
  1009.  
  1010. local rayResult = workspace:Raycast(
  1011. root.Position,
  1012. Vector3.new(0, -100, 0),
  1013. rayParams
  1014. )
  1015.  
  1016. if rayResult then
  1017. root.CFrame = CFrame.new(rayResult.Position + Vector3.new(0, 3, 0))
  1018. end
  1019. end)
  1020.  
  1021. local teleportStartTime = tick()
  1022. local maxWaitTime = 1.2
  1023. local minWaitTime = 0.2
  1024.  
  1025. ActiveTeleportConnection = RunService.Heartbeat:Connect(function()
  1026. if not char or not char.Parent or not root or not root.Parent or not humanoid then
  1027. if ActiveTeleportConnection then
  1028. ActiveTeleportConnection:Disconnect()
  1029. ActiveTeleportConnection = nil
  1030. end
  1031. return
  1032. end
  1033.  
  1034. local elapsedTime = tick() - teleportStartTime
  1035.  
  1036. local floorMaterial = humanoid.FloorMaterial
  1037. local isOnGround = floorMaterial ~= Enum.Material.Air
  1038.  
  1039. local velocity = root.AssemblyLinearVelocity
  1040. local isStationary = velocity.Magnitude < 2
  1041.  
  1042. local humanoidState = humanoid:GetState()
  1043. local isLanded = humanoidState == Enum.HumanoidStateType.Landed or
  1044. humanoidState == Enum.HumanoidStateType.Running or
  1045. humanoidState == Enum.HumanoidStateType.RunningNoPhysics
  1046.  
  1047. if (elapsedTime > minWaitTime and (isOnGround or (isStationary and isLanded))) or elapsedTime > maxWaitTime then
  1048. if ActiveTeleportConnection then
  1049. ActiveTeleportConnection:Disconnect()
  1050. ActiveTeleportConnection = nil
  1051. end
  1052.  
  1053. if isOnGround or isLanded then
  1054. UI:Notify("✅ Chegou", locationName, 1)
  1055. else
  1056. local rayParams = RaycastParams.new()
  1057. rayParams.FilterType = Enum.RaycastFilterType.Blacklist
  1058. rayParams.FilterDescendantsInstances = {char}
  1059.  
  1060. local rayResult = workspace:Raycast(
  1061. root.Position,
  1062. Vector3.new(0, -200, 0),
  1063. rayParams
  1064. )
  1065.  
  1066. if rayResult then
  1067. root.CFrame = CFrame.new(rayResult.Position + Vector3.new(0, 3, 0))
  1068. end
  1069.  
  1070. UI:Notify("⚠️ Ajustado", "Posição corrigida", 1)
  1071. end
  1072.  
  1073. return
  1074. end
  1075. end)
  1076.  
  1077. return true
  1078. end
  1079.  
  1080. --// ========== MÓDULO: CLICK TELEPORT ========== //
  1081.  
  1082. local ClickTeleportModule = (function()
  1083. local _enabled = false
  1084. local _uiVisible = false
  1085. local _screenGui = nil
  1086. local _mainFrame = nil
  1087. local _minimizedBtn = nil
  1088. local _connections = {}
  1089.  
  1090. local Mouse = LocalPlayer:GetMouse()
  1091.  
  1092. local ClickState = {
  1093. StartTime = 0,
  1094. StartPosition = nil,
  1095. IsValid = false,
  1096. }
  1097.  
  1098. local CTConfig = {
  1099. MaxClickTime = 0.3,
  1100. MaxDragDistance = 10,
  1101. RaycastDistance = 10000,
  1102. TeleportOffset = 3,
  1103. }
  1104.  
  1105. local CTTheme = {
  1106. Background = Color3.fromRGB(25, 25, 35),
  1107. Secondary = Color3.fromRGB(35, 35, 45),
  1108. Accent = Color3.fromRGB(90, 170, 255),
  1109. Success = Color3.fromRGB(90, 255, 140),
  1110. Danger = Color3.fromRGB(255, 90, 90),
  1111. Text = Color3.fromRGB(255, 255, 255),
  1112. TextDim = Color3.fromRGB(180, 180, 200),
  1113. }
  1114.  
  1115. local function _getMouseHit()
  1116. local unitRay = Camera:ScreenPointToRay(Mouse.X, Mouse.Y)
  1117.  
  1118. local raycastParams = RaycastParams.new()
  1119. raycastParams.FilterType = Enum.RaycastFilterType.Blacklist
  1120. raycastParams.FilterDescendantsInstances = {LocalPlayer.Character}
  1121. raycastParams.IgnoreWater = false
  1122.  
  1123. local raycastResult = workspace:Raycast(
  1124. unitRay.Origin,
  1125. unitRay.Direction * CTConfig.RaycastDistance,
  1126. raycastParams
  1127. )
  1128.  
  1129. return raycastResult
  1130. end
  1131.  
  1132. local function _teleportToPosition(position)
  1133. local root = getHumanoidRootPart()
  1134. if not root then return false end
  1135.  
  1136. local currentPosition = root.Position
  1137. local teleportPos = position + Vector3.new(0, CTConfig.TeleportOffset, 0)
  1138. local directionVector = (position - currentPosition)
  1139. local horizontalDirection = Vector3.new(directionVector.X, 0, directionVector.Z)
  1140. local lookDirection = horizontalDirection.Unit
  1141. local targetCFrame = CFrame.new(teleportPos, teleportPos + lookDirection)
  1142.  
  1143. root.CFrame = targetCFrame
  1144.  
  1145. return true
  1146. end
  1147.  
  1148. local function _isValidClick(startPos, endPos, duration)
  1149. if duration > CTConfig.MaxClickTime then return false end
  1150.  
  1151. local dragDistance = (endPos - startPos).Magnitude
  1152. if dragDistance > CTConfig.MaxDragDistance then return false end
  1153.  
  1154. return true
  1155. end
  1156.  
  1157. local function _updateStatusLabel(text, color)
  1158. if _mainFrame then
  1159. local statusLabel = _mainFrame:FindFirstChild("Container"):FindFirstChild("StatusLabel")
  1160. if statusLabel then
  1161. statusLabel.Text = text
  1162. statusLabel.TextColor3 = color
  1163. end
  1164. end
  1165. end
  1166.  
  1167. local function _enableClickDetection()
  1168. for _, conn in ipairs(_connections) do
  1169. if conn and conn.Connected then
  1170. conn:Disconnect()
  1171. end
  1172. end
  1173. _connections = {}
  1174.  
  1175. table.insert(_connections, UserInputService.InputBegan:Connect(function(input, gameProcessed)
  1176. if gameProcessed then return end
  1177. if not _enabled then return end
  1178.  
  1179. if input.UserInputType == Enum.UserInputType.MouseButton1 or
  1180. input.UserInputType == Enum.UserInputType.Touch then
  1181. ClickState.StartTime = tick()
  1182. ClickState.StartPosition = Vector2.new(Mouse.X, Mouse.Y)
  1183. ClickState.IsValid = true
  1184. end
  1185. end))
  1186.  
  1187. table.insert(_connections, UserInputService.InputEnded:Connect(function(input, gameProcessed)
  1188. if gameProcessed then return end
  1189. if not _enabled then return end
  1190. if not ClickState.IsValid then return end
  1191.  
  1192. if input.UserInputType == Enum.UserInputType.MouseButton1 or
  1193. input.UserInputType == Enum.UserInputType.Touch then
  1194.  
  1195. local clickDuration = tick() - ClickState.StartTime
  1196. local endPosition = Vector2.new(Mouse.X, Mouse.Y)
  1197.  
  1198. if _isValidClick(ClickState.StartPosition, endPosition, clickDuration) then
  1199. local raycastResult = _getMouseHit()
  1200.  
  1201. if raycastResult then
  1202. if _teleportToPosition(raycastResult.Position) then
  1203. _updateStatusLabel("✅ Teleportado!", CTTheme.Success)
  1204.  
  1205. task.wait(1)
  1206. _updateStatusLabel("Clique em qualquer lugar para teleportar", CTTheme.TextDim)
  1207. end
  1208. else
  1209. _updateStatusLabel("❌ Não é possível teleportar para o céu", CTTheme.Danger)
  1210.  
  1211. task.wait(1.5)
  1212. _updateStatusLabel("Clique em qualquer lugar para teleportar", CTTheme.TextDim)
  1213. end
  1214. end
  1215.  
  1216. ClickState.IsValid = false
  1217. end
  1218. end))
  1219. end
  1220.  
  1221. local function _disableClickDetection()
  1222. for _, conn in ipairs(_connections) do
  1223. if conn and conn.Connected then
  1224. conn:Disconnect()
  1225. end
  1226. end
  1227. _connections = {}
  1228. end
  1229.  
  1230. local function _minimizeUI()
  1231. if _mainFrame then
  1232. _mainFrame.Visible = false
  1233. end
  1234. if _minimizedBtn then
  1235. _minimizedBtn.Visible = true
  1236.  
  1237. _minimizedBtn.Size = UDim2.new(0, 0, 0, 0)
  1238. TweenService:Create(_minimizedBtn, TweenInfo.new(0.3, Enum.EasingStyle.Back, Enum.EasingDirection.Out), {
  1239. Size = UDim2.new(0, 50, 0, 50)
  1240. }):Play()
  1241. end
  1242. end
  1243.  
  1244. local function _maximizeUI()
  1245. if _minimizedBtn then
  1246. TweenService:Create(_minimizedBtn, TweenInfo.new(0.2, Enum.EasingStyle.Back, Enum.EasingDirection.In), {
  1247. Size = UDim2.new(0, 0, 0, 0)
  1248. }):Play()
  1249.  
  1250. task.wait(0.2)
  1251. _minimizedBtn.Visible = false
  1252. end
  1253. if _mainFrame then
  1254. _mainFrame.Visible = true
  1255.  
  1256. _mainFrame.Size = UDim2.new(0, 0, 0, 0)
  1257. TweenService:Create(_mainFrame, TweenInfo.new(0.3, Enum.EasingStyle.Back, Enum.EasingDirection.Out), {
  1258. Size = UDim2.new(0, 260, 0, 180)
  1259. }):Play()
  1260. end
  1261. end
  1262.  
  1263. local function _createUI()
  1264. if _screenGui then
  1265. pcall(function() _screenGui:Destroy() end)
  1266. _screenGui = nil
  1267. end
  1268.  
  1269. _screenGui = Instance.new("ScreenGui")
  1270. _screenGui.Name = "ClickTeleportUI_PreHistoria"
  1271. _screenGui.ResetOnSpawn = false
  1272. _screenGui.ZIndexBehavior = Enum.ZIndexBehavior.Sibling
  1273. _screenGui.Parent = game:GetService("CoreGui")
  1274.  
  1275. _mainFrame = Instance.new("Frame")
  1276. _mainFrame.Name = "MainFrame"
  1277. _mainFrame.Size = UDim2.new(0, 260, 0, 180)
  1278. _mainFrame.Position = UDim2.new(0.5, -130, 0.5, -90)
  1279. _mainFrame.BackgroundColor3 = CTTheme.Background
  1280. _mainFrame.BackgroundTransparency = 0.05
  1281. _mainFrame.BorderSizePixel = 0
  1282. _mainFrame.Active = true
  1283. _mainFrame.Draggable = true
  1284. _mainFrame.Parent = _screenGui
  1285.  
  1286. AddCorner(_mainFrame, 12)
  1287. AddStroke(_mainFrame, CTTheme.Accent, 2, 0.3)
  1288.  
  1289. local bgGradient = Instance.new("UIGradient")
  1290. bgGradient.Color = ColorSequence.new{
  1291. ColorSequenceKeypoint.new(0, Color3.fromRGB(30, 30, 40)),
  1292. ColorSequenceKeypoint.new(1, Color3.fromRGB(20, 20, 30))
  1293. }
  1294. bgGradient.Rotation = 45
  1295. bgGradient.Parent = _mainFrame
  1296.  
  1297. local header = Instance.new("Frame")
  1298. header.Size = UDim2.new(1, 0, 0, 50)
  1299. header.BackgroundColor3 = CTTheme.Secondary
  1300. header.BackgroundTransparency = 0.2
  1301. header.BorderSizePixel = 0
  1302. header.Parent = _mainFrame
  1303.  
  1304. AddCorner(header, 12)
  1305.  
  1306. local headerFix = Instance.new("Frame")
  1307. headerFix.Size = UDim2.new(1, 0, 0, 12)
  1308. headerFix.Position = UDim2.new(0, 0, 1, -12)
  1309. headerFix.BackgroundColor3 = CTTheme.Secondary
  1310. headerFix.BackgroundTransparency = 0.2
  1311. headerFix.BorderSizePixel = 0
  1312. headerFix.Parent = header
  1313.  
  1314. local title = Instance.new("TextLabel")
  1315. title.Size = UDim2.new(1, -85, 1, 0)
  1316. title.Position = UDim2.new(0, 15, 0, 0)
  1317. title.BackgroundTransparency = 1
  1318. title.Text = "🎯 Click Teleport"
  1319. title.TextColor3 = CTTheme.Text
  1320. title.TextSize = 17
  1321. title.Font = Enum.Font.GothamBold
  1322. title.TextXAlignment = Enum.TextXAlignment.Left
  1323. title.Parent = header
  1324.  
  1325. local minimizeBtn = Instance.new("TextButton")
  1326. minimizeBtn.Size = UDim2.new(0, 35, 0, 35)
  1327. minimizeBtn.Position = UDim2.new(1, -78, 0.5, -17.5)
  1328. minimizeBtn.BackgroundColor3 = Color3.fromRGB(255, 200, 100)
  1329. minimizeBtn.BackgroundTransparency = 0.2
  1330. minimizeBtn.Text = "➖"
  1331. minimizeBtn.TextColor3 = CTTheme.Text
  1332. minimizeBtn.TextSize = 18
  1333. minimizeBtn.Font = Enum.Font.GothamBold
  1334. minimizeBtn.AutoButtonColor = false
  1335. minimizeBtn.Parent = header
  1336.  
  1337. AddCorner(minimizeBtn, 8)
  1338.  
  1339. local closeBtn = Instance.new("TextButton")
  1340. closeBtn.Size = UDim2.new(0, 35, 0, 35)
  1341. closeBtn.Position = UDim2.new(1, -38, 0.5, -17.5)
  1342. closeBtn.BackgroundColor3 = CTTheme.Danger
  1343. closeBtn.BackgroundTransparency = 0.2
  1344. closeBtn.Text = "✕"
  1345. closeBtn.TextColor3 = CTTheme.Text
  1346. closeBtn.TextSize = 20
  1347. closeBtn.Font = Enum.Font.GothamBold
  1348. closeBtn.AutoButtonColor = false
  1349. closeBtn.Parent = header
  1350.  
  1351. AddCorner(closeBtn, 8)
  1352.  
  1353. local container = Instance.new("Frame")
  1354. container.Name = "Container"
  1355. container.Size = UDim2.new(1, -20, 1, -60)
  1356. container.Position = UDim2.new(0, 10, 0, 55)
  1357. container.BackgroundTransparency = 1
  1358. container.Parent = _mainFrame
  1359.  
  1360. local toggleBtn = Instance.new("TextButton")
  1361. toggleBtn.Name = "ToggleBtn"
  1362. toggleBtn.Size = UDim2.new(1, 0, 0, 55)
  1363. toggleBtn.Position = UDim2.new(0, 0, 0, 0)
  1364. toggleBtn.BackgroundColor3 = CTTheme.Danger
  1365. toggleBtn.BackgroundTransparency = 0.1
  1366. toggleBtn.Text = "🔴 DESATIVADO"
  1367. toggleBtn.TextColor3 = CTTheme.Text
  1368. toggleBtn.TextSize = 16
  1369. toggleBtn.Font = Enum.Font.GothamBold
  1370. toggleBtn.AutoButtonColor = false
  1371. toggleBtn.Parent = container
  1372.  
  1373. AddCorner(toggleBtn, 10)
  1374.  
  1375. local toggleStroke = Instance.new("UIStroke")
  1376. toggleStroke.Name = "Stroke"
  1377. toggleStroke.Color = CTTheme.Danger
  1378. toggleStroke.Thickness = 2
  1379. toggleStroke.Transparency = 0.3
  1380. toggleStroke.Parent = toggleBtn
  1381.  
  1382. local statusLabel = Instance.new("TextLabel")
  1383. statusLabel.Name = "StatusLabel"
  1384. statusLabel.Size = UDim2.new(1, 0, 0, 25)
  1385. statusLabel.Position = UDim2.new(0, 0, 0, 65)
  1386. statusLabel.BackgroundTransparency = 1
  1387. statusLabel.Text = "Clique em qualquer lugar para teleportar"
  1388. statusLabel.TextColor3 = CTTheme.TextDim
  1389. statusLabel.TextSize = 12
  1390. statusLabel.Font = Enum.Font.Gotham
  1391. statusLabel.TextWrapped = true
  1392. statusLabel.Parent = container
  1393.  
  1394. local infoLabel = Instance.new("TextLabel")
  1395. infoLabel.Size = UDim2.new(1, 0, 0, 20)
  1396. infoLabel.Position = UDim2.new(0, 0, 0, 92)
  1397. infoLabel.BackgroundTransparency = 1
  1398. infoLabel.Text = "⚡ Teleporte limpo e instantâneo"
  1399. infoLabel.TextColor3 = CTTheme.Success
  1400. infoLabel.TextSize = 11
  1401. infoLabel.Font = Enum.Font.Gotham
  1402. infoLabel.Parent = container
  1403.  
  1404. _minimizedBtn = Instance.new("TextButton")
  1405. _minimizedBtn.Name = "MinimizedBtn"
  1406. _minimizedBtn.Size = UDim2.new(0, 50, 0, 50)
  1407. _minimizedBtn.Position = UDim2.new(1, -60, 0, 10)
  1408. _minimizedBtn.BackgroundColor3 = CTTheme.Accent
  1409. _minimizedBtn.BackgroundTransparency = 0.1
  1410. _minimizedBtn.Text = "🎯"
  1411. _minimizedBtn.TextColor3 = CTTheme.Text
  1412. _minimizedBtn.TextSize = 24
  1413. _minimizedBtn.Font = Enum.Font.GothamBold
  1414. _minimizedBtn.AutoButtonColor = false
  1415. _minimizedBtn.Visible = false
  1416. _minimizedBtn.Active = true
  1417. _minimizedBtn.Draggable = true
  1418. _minimizedBtn.Parent = _screenGui
  1419.  
  1420. AddCorner(_minimizedBtn, 12)
  1421. AddStroke(_minimizedBtn, CTTheme.Accent, 2)
  1422.  
  1423. toggleBtn.MouseButton1Click:Connect(function()
  1424. _enabled = not _enabled
  1425.  
  1426. if _enabled then
  1427. toggleBtn.Text = "🟢 ATIVADO"
  1428. toggleBtn.BackgroundColor3 = CTTheme.Success
  1429. toggleStroke.Color = CTTheme.Success
  1430. statusLabel.Text = "Clique em qualquer lugar para teleportar"
  1431. _enableClickDetection()
  1432. else
  1433. toggleBtn.Text = "🔴 DESATIVADO"
  1434. toggleBtn.BackgroundColor3 = CTTheme.Danger
  1435. toggleStroke.Color = CTTheme.Danger
  1436. statusLabel.Text = "Teleporte desativado"
  1437. _disableClickDetection()
  1438. end
  1439. end)
  1440.  
  1441. minimizeBtn.MouseButton1Click:Connect(function()
  1442. _minimizeUI()
  1443. end)
  1444.  
  1445. _minimizedBtn.MouseButton1Click:Connect(function()
  1446. _maximizeUI()
  1447. end)
  1448.  
  1449. closeBtn.MouseButton1Click:Connect(function()
  1450. _enabled = false
  1451. _disableClickDetection()
  1452.  
  1453. if _screenGui then
  1454. pcall(function() _screenGui:Destroy() end)
  1455. _screenGui = nil
  1456. _mainFrame = nil
  1457. _minimizedBtn = nil
  1458. end
  1459.  
  1460. _uiVisible = false
  1461. Config.ClickTeleportEnabled = false
  1462.  
  1463. UI:Notify("🎯 Click Teleport", "Desativado completamente", 2)
  1464. end)
  1465.  
  1466. _uiVisible = true
  1467. end
  1468.  
  1469. return {
  1470. Init = function()
  1471. print("✅ Módulo Click Teleport inicializado")
  1472. end,
  1473.  
  1474. Toggle = function(state)
  1475. Config.ClickTeleportEnabled = state
  1476.  
  1477. if state then
  1478. if not _uiVisible then
  1479. _createUI()
  1480. UI:Notify("🎯 Click Teleport", "Interface aberta!", 2)
  1481. end
  1482. else
  1483. if _screenGui then
  1484. _enabled = false
  1485. _disableClickDetection()
  1486.  
  1487. pcall(function() _screenGui:Destroy() end)
  1488. _screenGui = nil
  1489. _mainFrame = nil
  1490. _minimizedBtn = nil
  1491. end
  1492.  
  1493. _uiVisible = false
  1494. UI:Notify("🎯 Click Teleport", "Desativado", 2)
  1495. end
  1496. end,
  1497.  
  1498. Cleanup = function()
  1499. _enabled = false
  1500. _disableClickDetection()
  1501.  
  1502. if _screenGui then
  1503. pcall(function() _screenGui:Destroy() end)
  1504. _screenGui = nil
  1505. _mainFrame = nil
  1506. _minimizedBtn = nil
  1507. end
  1508.  
  1509. _uiVisible = false
  1510. print("🧹 Click Teleport limpo")
  1511. end,
  1512.  
  1513. IsEnabled = function()
  1514. return Config.ClickTeleportEnabled
  1515. end
  1516. }
  1517. end)()
  1518.  
  1519. ClickTeleportModule.Init()
  1520.  
  1521. --// ========== SISTEMA DE NÍVEL DO DINO ========== //
  1522.  
  1523. local function getDinoLevelSilent()
  1524. local now = tick()
  1525. if (now - DinoLevelCache.lastUpdate) < DinoLevelCache.updateInterval then
  1526. return DinoLevelCache.value
  1527. end
  1528.  
  1529. local leaderstats = LocalPlayer:FindFirstChild("leaderstats")
  1530. if leaderstats then
  1531. for _, stat in ipairs(leaderstats:GetChildren()) do
  1532. local name = stat.Name:lower()
  1533. if name:find("level") or name:find("lvl") or name:find("nivel") then
  1534. if stat:IsA("IntValue") or stat:IsA("NumberValue") then
  1535. local val = tonumber(stat.Value) or 0
  1536. if val > 0 then
  1537. DinoLevelCache.value = val
  1538. DinoLevelCache.lastUpdate = now
  1539. return val
  1540. end
  1541. end
  1542. end
  1543. end
  1544. end
  1545.  
  1546. local playerGui = LocalPlayer:FindFirstChild("PlayerGui")
  1547. if playerGui then
  1548. for _, gui in ipairs(playerGui:GetDescendants()) do
  1549. if gui:IsA("TextLabel") or gui:IsA("TextBox") then
  1550. local text = gui.Text:lower()
  1551.  
  1552. if text:find("level") or text:find("lvl") or text:find("nivel") then
  1553. local number = text:match("%d+")
  1554. if number then
  1555. local val = tonumber(number)
  1556. if val and val > 0 and val <= 100 then
  1557. DinoLevelCache.value = val
  1558. DinoLevelCache.lastUpdate = now
  1559. return val
  1560. end
  1561. end
  1562. end
  1563. end
  1564. end
  1565. end
  1566.  
  1567. DinoLevelCache.lastUpdate = now
  1568. return DinoLevelCache.value
  1569. end
  1570.  
  1571. --// ========== SISTEMA DE CRISTAIS ========== //
  1572.  
  1573. local prioridadeMap = { legendary = 1, epic = 2, rare = 3, crystal = 4 }
  1574.  
  1575. local function getCrystalRank(name)
  1576. name = name:lower()
  1577. for key, rank in pairs(prioridadeMap) do
  1578. if name:find(key) then return rank end
  1579. end
  1580. return 5
  1581. end
  1582.  
  1583. local function getSortedCrystals()
  1584. local found = {}
  1585. for _, obj in ipairs(workspace:GetDescendants()) do
  1586. if obj:IsA("BasePart") and obj.Parent and obj.Parent:IsA("Model") then
  1587. local rank = getCrystalRank(obj.Parent.Name)
  1588. if rank < 5 then
  1589. table.insert(found, {part = obj, rank = rank})
  1590. end
  1591. end
  1592. end
  1593. table.sort(found, function(a, b) return a.rank < b.rank end)
  1594. local parts = {}
  1595. for _, entry in ipairs(found) do
  1596. table.insert(parts, entry.part)
  1597. end
  1598. return parts
  1599. end
  1600.  
  1601. --// ========== SISTEMA ESP DE CARNES ========== //
  1602.  
  1603. local ActiveMeatESPs = {}
  1604. local meatUpdateLoop = nil
  1605. local meatScanLoop = nil
  1606.  
  1607. local function isMeatObject(obj)
  1608. if not obj then return false, nil end
  1609.  
  1610. if obj:IsA("ProximityPrompt") and obj.Enabled then
  1611. local action = (obj.ActionText or ""):lower()
  1612. local objText = (obj.ObjectText or ""):lower()
  1613.  
  1614. local foodActions = {"coma", "eat", "pegar", "pick", "grab", "take"}
  1615.  
  1616. for _, foodAction in ipairs(foodActions) do
  1617. if action:find(foodAction) then
  1618. local fullText = action .. " " .. objText
  1619. local excludeWords = {"plant", "fish", "berry", "fruit", "vegetable", "seed"}
  1620.  
  1621. local isExcluded = false
  1622. for _, word in ipairs(excludeWords) do
  1623. if fullText:find(word) then
  1624. isExcluded = true
  1625. break
  1626. end
  1627. end
  1628.  
  1629. if not isExcluded then
  1630. local parent = obj.Parent
  1631. if parent and parent:IsA("BasePart") then
  1632. for _, player in ipairs(Players:GetPlayers()) do
  1633. if player.Character and parent:IsDescendantOf(player.Character) then
  1634. return false, nil
  1635. end
  1636. end
  1637. return true, parent
  1638. end
  1639. end
  1640. end
  1641. end
  1642. end
  1643.  
  1644. if obj:IsA("Model") or obj:IsA("BasePart") then
  1645. local name = (obj.Name or ""):lower()
  1646.  
  1647. local meatWords = {
  1648. "meat", "carne", "beef", "steak", "chicken",
  1649. "frango", "pork", "porco", "bacon", "ham"
  1650. }
  1651.  
  1652. for _, word in ipairs(meatWords) do
  1653. if name:find(word) then
  1654. for _, player in ipairs(Players:GetPlayers()) do
  1655. if player.Character and obj:IsDescendantOf(player.Character) then
  1656. return false, nil
  1657. end
  1658. end
  1659.  
  1660. if obj:IsA("Model") then
  1661. local part = obj.PrimaryPart or obj:FindFirstChildWhichIsA("BasePart")
  1662. return part ~= nil, part
  1663. else
  1664. return true, obj
  1665. end
  1666. end
  1667. end
  1668. end
  1669.  
  1670. return false, nil
  1671. end
  1672.  
  1673. local function findNearestMeat()
  1674. local char = LocalPlayer.Character
  1675. local root = char and char:FindFirstChild("HumanoidRootPart")
  1676. if not root then return nil, math.huge end
  1677.  
  1678. local nearestMeat = nil
  1679. local nearestDistance = math.huge
  1680.  
  1681. for _, obj in ipairs(workspace:GetDescendants()) do
  1682. local isMeat, part = isMeatObject(obj)
  1683. if isMeat and part and part.Parent then
  1684. local distance = (part.Position - root.Position).Magnitude
  1685. if distance < nearestDistance then
  1686. nearestDistance = distance
  1687. nearestMeat = part
  1688. end
  1689. end
  1690. end
  1691.  
  1692. return nearestMeat, nearestDistance
  1693. end
  1694.  
  1695. local function createMeatESP(part)
  1696. if not part or not part:IsA("BasePart") or not part.Parent then return end
  1697.  
  1698. local id = tostring(part:GetDebugId())
  1699. if ActiveMeatESPs[id] then return end
  1700.  
  1701. local esp = Instance.new("BillboardGui")
  1702. esp.Name = "MeatESP_" .. id
  1703. esp.Adornee = part
  1704. esp.Size = UDim2.new(0, Config.ESP_MAX_SIZE, 0, Config.ESP_MAX_SIZE * 0.4)
  1705. esp.StudsOffset = Vector3.new(0, 3, 0)
  1706. esp.AlwaysOnTop = true
  1707. esp.LightInfluence = 0
  1708. esp.MaxDistance = Config.MAX_VISIBLE_DISTANCE
  1709. esp.Parent = workspace
  1710. esp.Enabled = true
  1711.  
  1712. local frame = Instance.new("Frame", esp)
  1713. frame.Size = UDim2.new(1, 0, 1, 0)
  1714. frame.BackgroundColor3 = Color3.fromRGB(255, 80, 80)
  1715. frame.BackgroundTransparency = 0.4
  1716. frame.BorderSizePixel = 1
  1717. frame.BorderColor3 = Color3.fromRGB(255, 200, 0)
  1718.  
  1719. AddCorner(frame, 6)
  1720.  
  1721. local iconLabel = Instance.new("TextLabel", frame)
  1722. iconLabel.Size = UDim2.new(0.3, 0, 0.9, 0)
  1723. iconLabel.Position = UDim2.new(0, 2, 0.05, 0)
  1724. iconLabel.BackgroundTransparency = 1
  1725. iconLabel.Text = "🥩"
  1726. iconLabel.TextScaled = true
  1727. iconLabel.TextColor3 = Color3.fromRGB(255, 255, 255)
  1728. iconLabel.Font = Enum.Font.SourceSansBold
  1729. iconLabel.TextStrokeTransparency = 0.5
  1730.  
  1731. local distLabel = Instance.new("TextLabel", frame)
  1732. distLabel.Name = "Distance"
  1733. distLabel.Size = UDim2.new(0.7, -4, 0.9, 0)
  1734. distLabel.Position = UDim2.new(0.3, 2, 0.05, 0)
  1735. distLabel.BackgroundTransparency = 1
  1736. distLabel.Text = "0m"
  1737. distLabel.TextColor3 = Color3.fromRGB(255, 255, 255)
  1738. distLabel.TextStrokeTransparency = 0.3
  1739. distLabel.TextStrokeColor3 = Color3.fromRGB(0, 0, 0)
  1740. distLabel.Font = Enum.Font.GothamBold
  1741. distLabel.TextScaled = true
  1742.  
  1743. ActiveMeatESPs[id] = {
  1744. gui = esp,
  1745. part = part,
  1746. distLabel = distLabel,
  1747. frame = frame,
  1748. iconLabel = iconLabel
  1749. }
  1750.  
  1751. return true
  1752. end
  1753.  
  1754. local function scanForMeats()
  1755. if not Config.EspMeatActive then return end
  1756.  
  1757. for id, data in pairs(ActiveMeatESPs) do
  1758. if data.gui then
  1759. pcall(function() data.gui:Destroy() end)
  1760. end
  1761. end
  1762. ActiveMeatESPs = {}
  1763.  
  1764. local meatCount = 0
  1765. local checkedCount = 0
  1766.  
  1767. for _, obj in ipairs(workspace:GetDescendants()) do
  1768. checkedCount = checkedCount + 1
  1769.  
  1770. if checkedCount % 300 == 0 then
  1771. task.wait()
  1772. if not Config.EspMeatActive then return end
  1773. end
  1774.  
  1775. local isMeat, part = isMeatObject(obj)
  1776. if isMeat and part and part.Parent then
  1777. if createMeatESP(part) then
  1778. meatCount = meatCount + 1
  1779. end
  1780. end
  1781. end
  1782. end
  1783.  
  1784. local function updateMeatESPInfo()
  1785. if not Config.EspMeatActive then return end
  1786.  
  1787. local char = LocalPlayer.Character
  1788. local root = char and char:FindFirstChild("HumanoidRootPart")
  1789. if not root then return end
  1790.  
  1791. for id, data in pairs(ActiveMeatESPs) do
  1792. if data.part and data.part.Parent and data.gui and data.gui.Parent then
  1793. local distance = (data.part.Position - root.Position).Magnitude
  1794.  
  1795. data.gui.Enabled = true
  1796.  
  1797. if data.distLabel then
  1798. if distance < 100 then
  1799. data.distLabel.Text = string.format("%.0fm", distance)
  1800. elseif distance < 1000 then
  1801. data.distLabel.Text = string.format("%.0fm", distance)
  1802. else
  1803. data.distLabel.Text = string.format("%.1fkm", distance / 1000)
  1804. end
  1805. end
  1806.  
  1807. local scaleFactor
  1808. if distance <= 50 then scaleFactor = 1.0
  1809. elseif distance <= 200 then scaleFactor = 0.75
  1810. elseif distance <= 500 then scaleFactor = 0.6
  1811. elseif distance <= 1000 then scaleFactor = 0.5
  1812. else scaleFactor = 0.4 end
  1813.  
  1814. local newSize = Config.ESP_MIN_SIZE + ((Config.ESP_MAX_SIZE - Config.ESP_MIN_SIZE) * scaleFactor)
  1815. data.gui.Size = UDim2.new(0, newSize, 0, newSize * 0.4)
  1816.  
  1817. if data.frame then
  1818. local transparency
  1819. if distance < 300 then transparency = 0.3
  1820. elseif distance < 1000 then transparency = 0.5
  1821. else transparency = 0.7 end
  1822. data.frame.BackgroundTransparency = transparency
  1823. end
  1824.  
  1825. if distance < 100 then
  1826. data.frame.BackgroundColor3 = Color3.fromRGB(100, 255, 100)
  1827. data.frame.BorderColor3 = Color3.fromRGB(200, 255, 200)
  1828. elseif distance < 500 then
  1829. data.frame.BackgroundColor3 = Color3.fromRGB(255, 255, 100)
  1830. data.frame.BorderColor3 = Color3.fromRGB(255, 255, 150)
  1831. else
  1832. data.frame.BackgroundColor3 = Color3.fromRGB(255, 120, 120)
  1833. data.frame.BorderColor3 = Color3.fromRGB(255, 150, 150)
  1834. end
  1835. else
  1836. if data.gui then
  1837. pcall(function() data.gui:Destroy() end)
  1838. end
  1839. ActiveMeatESPs[id] = nil
  1840. end
  1841. end
  1842. end
  1843.  
  1844. local function startMeatESP()
  1845. if meatUpdateLoop then return end
  1846.  
  1847. scanForMeats()
  1848.  
  1849. meatUpdateLoop = RunService.Heartbeat:Connect(function()
  1850. updateMeatESPInfo()
  1851. end)
  1852.  
  1853. meatScanLoop = task.spawn(function()
  1854. while Config.EspMeatActive do
  1855. task.wait(10)
  1856. if Config.EspMeatActive then
  1857. scanForMeats()
  1858. end
  1859. end
  1860. end)
  1861.  
  1862. workspace.DescendantAdded:Connect(function(obj)
  1863. if not Config.EspMeatActive then return end
  1864.  
  1865. task.wait(0.1)
  1866. local isMeat, part = isMeatObject(obj)
  1867. if isMeat and part then
  1868. local id = tostring(part:GetDebugId())
  1869. if not ActiveMeatESPs[id] then
  1870. createMeatESP(part)
  1871. end
  1872. end
  1873. end)
  1874. end
  1875.  
  1876. local function stopMeatESP()
  1877. if meatUpdateLoop then
  1878. meatUpdateLoop:Disconnect()
  1879. meatUpdateLoop = nil
  1880. end
  1881.  
  1882. if meatScanLoop then
  1883. task.cancel(meatScanLoop)
  1884. meatScanLoop = nil
  1885. end
  1886.  
  1887. for id, data in pairs(ActiveMeatESPs) do
  1888. if data.gui then
  1889. pcall(function() data.gui:Destroy() end)
  1890. end
  1891. end
  1892. ActiveMeatESPs = {}
  1893. end
  1894.  
  1895. --// ========== SISTEMA ESP DE JOGADORES ========== //
  1896.  
  1897. local PlayerESP_Data = {}
  1898.  
  1899. local ESP_CONFIG = {
  1900. UpdateInterval = 0.5,
  1901. HPBarMaxDistance = 4000,
  1902. HPBarSize = UDim2.new(0, 50, 0, 5),
  1903. HPBarYOffset = 0.5,
  1904. HighlightFillTransparency = 0.85,
  1905. OutlineTransparency = 0.15,
  1906. }
  1907.  
  1908. local COLOR_ENEMY = Color3.fromRGB(255, 85, 85)
  1909. local COLOR_FRIEND = Color3.fromRGB(85, 255, 85)
  1910. local COLOR_NEUTRAL = Color3.fromRGB(240, 240, 240)
  1911.  
  1912. local function isNeutralPlayer(p)
  1913. return p.Team == nil
  1914. end
  1915.  
  1916. local function isAllyPlayer(p)
  1917. return LocalPlayer.Team and p.Team == LocalPlayer.Team
  1918. end
  1919.  
  1920. local function colorForPlayer(p)
  1921. if isNeutralPlayer(p) then
  1922. return COLOR_NEUTRAL
  1923. end
  1924.  
  1925. if isAllyPlayer(p) then
  1926. return COLOR_FRIEND
  1927. end
  1928.  
  1929. return COLOR_ENEMY
  1930. end
  1931.  
  1932. local function shouldShowPlayerESP(p)
  1933. if not Config.PlayerESP then return false end
  1934. if Config.PlayerESP_TeamCheck then return not isAllyPlayer(p) end
  1935. return true
  1936. end
  1937.  
  1938. local function shouldShowPlayerHP(p)
  1939. if not Config.PlayerESP_ShowHP then return false end
  1940. if Config.PlayerESP_TeamCheck then return not isAllyPlayer(p) end
  1941. return true
  1942. end
  1943.  
  1944. local function clearPlayerESP(plr)
  1945. local pack = PlayerESP_Data[plr]
  1946. if not pack then return end
  1947.  
  1948. if pack.highlight then
  1949. pcall(function() pack.highlight:Destroy() end)
  1950. pack.highlight = nil
  1951. end
  1952.  
  1953. if pack.hpGui then
  1954. pcall(function() pack.hpGui:Destroy() end)
  1955. pack.hpGui = nil
  1956. end
  1957.  
  1958. PlayerESP_Data[plr] = nil
  1959. end
  1960.  
  1961. local function setupPlayerESP(plr)
  1962. if plr == LocalPlayer then return end
  1963. if not plr.Character then return end
  1964.  
  1965. clearPlayerESP(plr)
  1966.  
  1967. local char = plr.Character
  1968. local hum = char:FindFirstChildOfClass("Humanoid")
  1969. local root = char:FindFirstChild("HumanoidRootPart")
  1970. local head = char:FindFirstChild("Head")
  1971.  
  1972. if not hum or not root then return end
  1973.  
  1974. PlayerESP_Data[plr] = {}
  1975.  
  1976. -- Highlight
  1977. local hi = Instance.new("Highlight")
  1978. hi.Name = "PlayerESP_Highlight"
  1979. hi.DepthMode = Enum.HighlightDepthMode.AlwaysOnTop
  1980. hi.FillTransparency = ESP_CONFIG.HighlightFillTransparency
  1981. hi.OutlineTransparency = ESP_CONFIG.OutlineTransparency
  1982. hi.Adornee = char
  1983. hi.Parent = char
  1984.  
  1985. local col = colorForPlayer(plr)
  1986. hi.FillColor = col
  1987. hi.OutlineColor = col
  1988. hi.Enabled = shouldShowPlayerESP(plr)
  1989.  
  1990. PlayerESP_Data[plr].highlight = hi
  1991.  
  1992. -- HP Bar
  1993. local bill = Instance.new("BillboardGui")
  1994. bill.Name = "PlayerESP_HP"
  1995. bill.AlwaysOnTop = true
  1996. bill.LightInfluence = 0
  1997. bill.Size = ESP_CONFIG.HPBarSize
  1998. bill.MaxDistance = ESP_CONFIG.HPBarMaxDistance
  1999. bill.Parent = char
  2000.  
  2001. if head then
  2002. bill.Adornee = head
  2003. local headSize = head.Size.Y
  2004. bill.StudsOffset = Vector3.new(0, headSize/2 + ESP_CONFIG.HPBarYOffset, 0)
  2005. else
  2006. bill.Adornee = root
  2007. bill.StudsOffset = Vector3.new(0, 2.5 + ESP_CONFIG.HPBarYOffset, 0)
  2008. end
  2009.  
  2010. local bg = Instance.new("Frame", bill)
  2011. bg.BackgroundColor3 = Color3.fromRGB(25, 25, 25)
  2012. bg.BackgroundTransparency = 0.2
  2013. bg.BorderSizePixel = 0
  2014. bg.Size = UDim2.fromScale(1, 1)
  2015.  
  2016. AddCorner(bg, 2)
  2017. AddStroke(bg, Color3.fromRGB(0, 0, 0), 1.5)
  2018.  
  2019. local fill = Instance.new("Frame", bg)
  2020. fill.BackgroundColor3 = COLOR_FRIEND
  2021. fill.BorderSizePixel = 0
  2022. fill.Size = UDim2.fromScale(1, 1)
  2023.  
  2024. AddCorner(fill, 2)
  2025.  
  2026. bill.Enabled = shouldShowPlayerHP(plr)
  2027.  
  2028. PlayerESP_Data[plr].hpGui = bill
  2029. PlayerESP_Data[plr].hpFill = fill
  2030. PlayerESP_Data[plr].hum = hum
  2031. end
  2032.  
  2033. task.spawn(function()
  2034. while true do
  2035. task.wait(ESP_CONFIG.UpdateInterval)
  2036.  
  2037. for plr, pack in pairs(PlayerESP_Data) do
  2038. if plr and plr.Parent and plr.Character then
  2039. local hum = pack.hum
  2040.  
  2041. if hum and pack.hpFill then
  2042. local h = hum.Health
  2043. local m = hum.MaxHealth
  2044. if m <= 0 then m = 100 end
  2045.  
  2046. local ratio = math.clamp(h / m, 0, 1)
  2047. pack.hpFill.Size = UDim2.new(ratio, 0, 1, 0)
  2048.  
  2049. local r, g
  2050. if ratio > 0.5 then
  2051. r = (1 - ratio) * 2 * 255
  2052. g = 255
  2053. else
  2054. r = 255
  2055. g = ratio * 2 * 255
  2056. end
  2057.  
  2058. pack.hpFill.BackgroundColor3 = Color3.fromRGB(r, g, 0)
  2059.  
  2060. if pack.hpGui then
  2061. pack.hpGui.Enabled = shouldShowPlayerHP(plr) and (h > 0)
  2062. end
  2063. end
  2064.  
  2065. if pack.highlight then
  2066. pack.highlight.Enabled = shouldShowPlayerESP(plr)
  2067. end
  2068. else
  2069. clearPlayerESP(plr)
  2070. end
  2071. end
  2072. end
  2073. end)
  2074.  
  2075. Players.PlayerAdded:Connect(function(plr)
  2076. plr.CharacterAdded:Connect(function()
  2077. task.wait(1)
  2078. setupPlayerESP(plr)
  2079. end)
  2080. end)
  2081.  
  2082. Players.PlayerRemoving:Connect(function(plr)
  2083. clearPlayerESP(plr)
  2084. end)
  2085.  
  2086. for _, plr in ipairs(Players:GetPlayers()) do
  2087. if plr ~= LocalPlayer and plr.Character then
  2088. setupPlayerESP(plr)
  2089. end
  2090.  
  2091. plr.CharacterAdded:Connect(function()
  2092. task.wait(1)
  2093. setupPlayerESP(plr)
  2094. end)
  2095. end
  2096.  
  2097. --// ========== CARREGAR TELEPORTS SALVOS ========== //
  2098.  
  2099. local function loadSavedTeleports()
  2100. local success, data = pcall(function()
  2101. return HttpService:JSONDecode(readfile("PreHistoria_Teleports.json"))
  2102. end)
  2103.  
  2104. if success and data then
  2105. Config.SavedTeleports = data
  2106. print("📍 Carregado " .. #data .. " teleports salvos")
  2107. else
  2108. Config.SavedTeleports = {}
  2109. print("📍 Nenhum teleport salvo encontrado")
  2110. end
  2111. end
  2112.  
  2113. loadSavedTeleports()
  2114.  
  2115. --// ========== CRIAR INTERFACE ========== //
  2116.  
  2117. UI:CreateWindow("🦖 Pré-história - By: NickZScripts")
  2118.  
  2119. --// ========== ABA MENU ========== //
  2120.  
  2121. local MenuTab = UI:CreateTab("Menu", "🏠")
  2122.  
  2123. MenuTab:CreateSection("📊 Informações")
  2124.  
  2125. local PlayersCountLabel = MenuTab:CreateLabel("👥 Players Online: 0/0")
  2126.  
  2127. local function updatePlayerCount()
  2128. local current = #Players:GetPlayers()
  2129. local max = Players.MaxPlayers
  2130. PlayersCountLabel:Set(string.format("👥 Players Online: %d/%d", current, max))
  2131. end
  2132.  
  2133. updatePlayerCount()
  2134.  
  2135. Players.PlayerAdded:Connect(updatePlayerCount)
  2136. Players.PlayerRemoving:Connect(updatePlayerCount)
  2137.  
  2138. task.spawn(function()
  2139. while true do
  2140. task.wait(5)
  2141. updatePlayerCount()
  2142. end
  2143. end)
  2144.  
  2145. MenuTab:CreateParagraph({
  2146. Title = "📜 Script Info",
  2147. Content = "Versão: " .. ScriptVersion .. "\nStatus: ✅ Operacional\nInterface: Custom UI"
  2148. })
  2149.  
  2150. MenuTab:CreateParagraph({
  2151. Title = "👤 Jogador",
  2152. Content = "Nome: " .. LocalPlayer.Name .. "\nDisplay: " .. LocalPlayer.DisplayName .. "\nID: " .. LocalPlayer.UserId
  2153. })
  2154.  
  2155. MenuTab:CreateSection("⚡ Sistemas Ativos")
  2156.  
  2157. local AutoFarmStatusLabel = MenuTab:CreateLabel("💎 Auto Farm - Desligado")
  2158. local EspCarnesStatusLabel = MenuTab:CreateLabel("🥩 ESP Carnes - Desligado")
  2159. local EspJogadoresStatusLabel = MenuTab:CreateLabel("👥 ESP Jogadores - Desligado")
  2160. local AutoColetaStatusLabel = MenuTab:CreateLabel("🔄 Auto Coleta - Desligado")
  2161.  
  2162. MenuTab:CreateSection("👨‍💻 Créditos")
  2163.  
  2164. MenuTab:CreateParagraph({
  2165. Title = "Desenvolvedor",
  2166. Content = "Script: NickZScripts\nInterface: Custom UI (No Library)\nVersão: " .. ScriptVersion
  2167. })
  2168.  
  2169. --// ========== ABA AUTO FARM ========== //
  2170.  
  2171. local FarmTab = UI:CreateTab("Auto Farm", "⚡")
  2172.  
  2173. FarmTab:CreateSection("💎 Farm de Cristais")
  2174.  
  2175. local DinoLevelLabel = FarmTab:CreateLabel("🦖 Nível do Dino: 0/60")
  2176.  
  2177. task.spawn(function()
  2178. while true do
  2179. task.wait(2)
  2180. local level = getDinoLevelSilent()
  2181. DinoLevelLabel:Set(string.format("🦖 Nível do Dino: %d/60", level))
  2182. end
  2183. end)
  2184.  
  2185. local AutoFarmToggle = FarmTab:CreateToggle({
  2186. Name = "Auto Farm Cristais",
  2187. CurrentValue = false,
  2188. Callback = function(Value)
  2189. Config.AutoFarm = Value
  2190.  
  2191. if Value then
  2192. AutoFarmStatusLabel:Set("💎 Auto Farm - Ligado")
  2193. UI:Notify("✅ Ativado", "Auto Farm ligado", 2)
  2194. else
  2195. AutoFarmStatusLabel:Set("💎 Auto Farm - Desligado")
  2196. UI:Notify("❌ Desativado", "Auto Farm desligado", 2)
  2197. end
  2198. end,
  2199. })
  2200.  
  2201. FarmTab:CreateSection("🔄 Auto Coleta")
  2202.  
  2203. local AutoColetaToggle = FarmTab:CreateToggle({
  2204. Name = "Auto Coleta",
  2205. CurrentValue = false,
  2206. Callback = function(Value)
  2207. Config.AutoColeta = Value
  2208.  
  2209. if Value then
  2210. AutoColetaStatusLabel:Set("🔄 Auto Coleta - Ligado")
  2211. UI:Notify("✅ Ativado", "Auto Coleta ligado", 2)
  2212. else
  2213. AutoColetaStatusLabel:Set("🔄 Auto Coleta - Desligado")
  2214. UI:Notify("❌ Desativado", "Auto Coleta desligado", 2)
  2215. end
  2216. end,
  2217. })
  2218.  
  2219. --// ========== ABA ESP ========== //
  2220.  
  2221. local EspTab = UI:CreateTab("ESP", "👁️")
  2222.  
  2223. EspTab:CreateSection("👥 ESP de Jogadores")
  2224.  
  2225. local EspJogadoresToggle = EspTab:CreateToggle({
  2226. Name = "ESP de Jogadores",
  2227. CurrentValue = false,
  2228. Callback = function(Value)
  2229. Config.PlayerESP = Value
  2230.  
  2231. if Value then
  2232. EspJogadoresStatusLabel:Set("👥 ESP Jogadores - Ligado")
  2233.  
  2234. for _, plr in ipairs(Players:GetPlayers()) do
  2235. if plr ~= LocalPlayer then
  2236. setupPlayerESP(plr)
  2237. end
  2238. end
  2239.  
  2240. UI:Notify("✅ Ativado", "ESP Jogadores ligado", 2)
  2241. else
  2242. EspJogadoresStatusLabel:Set("👥 ESP Jogadores - Desligado")
  2243.  
  2244. for plr, pack in pairs(PlayerESP_Data) do
  2245. if pack.highlight then pack.highlight.Enabled = false end
  2246. if pack.hpGui then pack.hpGui.Enabled = false end
  2247. end
  2248.  
  2249. UI:Notify("❌ Desativado", "ESP Jogadores desligado", 2)
  2250. end
  2251. end,
  2252. })
  2253.  
  2254. local EspHPToggle = EspTab:CreateToggle({
  2255. Name = "Barra de Vida",
  2256. CurrentValue = false,
  2257. Callback = function(Value)
  2258. Config.PlayerESP_ShowHP = Value
  2259.  
  2260. for plr, pack in pairs(PlayerESP_Data) do
  2261. if pack.hpGui then
  2262. pack.hpGui.Enabled = shouldShowPlayerHP(plr)
  2263. end
  2264. end
  2265.  
  2266. UI:Notify(Value and "✅ Ativado" or "❌ Desativado", "Barra de Vida " .. (Value and "ligada" or "desligada"), 2)
  2267. end,
  2268. })
  2269.  
  2270. local EspTeamCheckToggle = EspTab:CreateToggle({
  2271. Name = "TeamCheck (Só Inimigos)",
  2272. CurrentValue = false,
  2273. Callback = function(Value)
  2274. Config.PlayerESP_TeamCheck = Value
  2275.  
  2276. for plr, pack in pairs(PlayerESP_Data) do
  2277. if pack.highlight then
  2278. pack.highlight.Enabled = shouldShowPlayerESP(plr)
  2279. end
  2280. if pack.hpGui then
  2281. pack.hpGui.Enabled = shouldShowPlayerHP(plr)
  2282. end
  2283. end
  2284.  
  2285. UI:Notify(Value and "✅ Ativado" or "❌ Desativado", "TeamCheck " .. (Value and "ligado" or "desligado"), 2)
  2286. end,
  2287. })
  2288.  
  2289. EspTab:CreateSection("🥩 ESP de Carnes")
  2290.  
  2291. local EspToggle = EspTab:CreateToggle({
  2292. Name = "ESP de Carnes",
  2293. CurrentValue = false,
  2294. Callback = function(Value)
  2295. Config.EspMeatActive = Value
  2296.  
  2297. if Value then
  2298. EspCarnesStatusLabel:Set("🥩 ESP Carnes - Ligado")
  2299. startMeatESP()
  2300. UI:Notify("✅ Ativado", "ESP Carnes ligado", 2)
  2301. else
  2302. EspCarnesStatusLabel:Set("🥩 ESP Carnes - Desligado")
  2303. stopMeatESP()
  2304. UI:Notify("❌ Desativado", "ESP Carnes desligado", 2)
  2305. end
  2306. end,
  2307. })
  2308.  
  2309. --// ========== ABA TELEPORT ========== //
  2310.  
  2311. local TeleportTab = UI:CreateTab("Teleport", "🚀")
  2312.  
  2313. TeleportTab:CreateSection("🍖 Teleportes Rápidos")
  2314.  
  2315. TeleportTab:CreateButton({
  2316. Name = "Teleportar para Carne Mais Próxima",
  2317. Callback = function()
  2318. local meat, distance = findNearestMeat()
  2319.  
  2320. if not meat then
  2321. UI:Notify("❌ Erro", "Nenhuma carne encontrada!", 2)
  2322. return
  2323. end
  2324.  
  2325. safeTeleport(CFrame.new(meat.Position + Vector3.new(0, 3, 0)), "Carne")
  2326. end,
  2327. })
  2328.  
  2329. TeleportTab:CreateSection("🏠 Teleporte para Spawn")
  2330.  
  2331. TeleportTab:CreateButton({
  2332. Name = "Voltar ao Spawn",
  2333. Callback = function()
  2334. if not LastSpawnPosition then
  2335. UI:Notify("❌ Erro", "Spawn não detectado!", 2)
  2336. return
  2337. end
  2338.  
  2339. safeTeleport(LastSpawnPosition, "Spawn")
  2340. end,
  2341. })
  2342.  
  2343. TeleportTab:CreateSection("📍 Locais Salvos")
  2344.  
  2345. if #Config.SavedTeleports > 0 then
  2346. for i, data in ipairs(Config.SavedTeleports) do
  2347. if data.position then
  2348. local locationName = data.name or ("Local " .. i)
  2349.  
  2350. TeleportTab:CreateButton({
  2351. Name = "📍 " .. locationName,
  2352. Callback = function()
  2353. local pos = data.position
  2354.  
  2355. if not pos or not pos.X or not pos.Y or not pos.Z then
  2356. UI:Notify("❌ Erro", "Posição inválida!", 2)
  2357. return
  2358. end
  2359.  
  2360. local targetCF = CFrame.new(pos.X, pos.Y, pos.Z)
  2361. safeTeleport(targetCF, locationName)
  2362. end,
  2363. })
  2364. end
  2365. end
  2366. else
  2367. TeleportTab:CreateParagraph({
  2368. Title = "ℹ️ Nenhum Local Salvo",
  2369. Content = "Você ainda não possui locais salvos."
  2370. })
  2371. end
  2372.  
  2373. --// ========== ABA OUTROS ========== //
  2374.  
  2375. local OutrosTab = UI:CreateTab("Outros", "⚙️")
  2376.  
  2377. OutrosTab:CreateSection("🎯 Click Teleport")
  2378.  
  2379. OutrosTab:CreateParagraph({
  2380. Title = "ℹ️ Sobre Click Teleport",
  2381. Content = "Teleporte instantâneo clicando em qualquer superfície.\n\n✅ Personagem olha para onde clicou\n✅ Sem efeitos visuais\n✅ Interface móvel"
  2382. })
  2383.  
  2384. OutrosTab:CreateButton({
  2385. Name = "🎯 Abrir Click Teleport",
  2386. Callback = function()
  2387. if not Config.ClickTeleportEnabled then
  2388. ClickTeleportModule.Toggle(true)
  2389. UI:Notify("✅ Click Teleport", "Interface aberta!", 2)
  2390. else
  2391. UI:Notify("ℹ️ Já Ativo", "Click Teleport já está aberto!", 2)
  2392. end
  2393. end,
  2394. })
  2395.  
  2396. OutrosTab:CreateSection("ℹ️ Informações")
  2397.  
  2398. OutrosTab:CreateParagraph({
  2399. Title = "⚙️ Sobre",
  2400. Content = "Interface customizada sem bibliotecas externas!\n\nTodas as funcionalidades foram mantidas do script original."
  2401. })
  2402.  
  2403. --// ========== AUTO FARM LOOP ========== //
  2404.  
  2405. task.spawn(function()
  2406. local index = 1
  2407. while true do
  2408. task.wait(Config.CheckDelay)
  2409. if Config.AutoFarm then
  2410. local currentLevel = getDinoLevelSilent()
  2411.  
  2412. if currentLevel >= 60 then
  2413. Config.AutoFarm = false
  2414. AutoFarmToggle:Set(false)
  2415. AutoFarmStatusLabel:Set("💎 Auto Farm - Desligado")
  2416.  
  2417. UI:Notify("✅ Completo", "Nível 60 atingido!", 3)
  2418. else
  2419. local crystals = getSortedCrystals()
  2420. if #crystals > 0 then
  2421. for _, c in ipairs(crystals) do
  2422. if not Config.AutoFarm or not c or not c.Parent then break end
  2423. teleportToCrystal(c)
  2424.  
  2425. local fixarConexao = RunService.Heartbeat:Connect(function()
  2426. if Config.AutoFarm and c and c:IsDescendantOf(workspace) then
  2427. local char = getCharacter()
  2428. if char and char.PrimaryPart then
  2429. char:SetPrimaryPartCFrame(CFrame.new(c.Position + Vector3.new(0, 4.5, 0)))
  2430. end
  2431. end
  2432. end)
  2433.  
  2434. local elapsed = 0
  2435. while c:IsDescendantOf(workspace) and elapsed < 12 and Config.AutoFarm do
  2436. task.wait(Config.CheckDelay)
  2437. elapsed += Config.CheckDelay
  2438. end
  2439. fixarConexao:Disconnect()
  2440. task.wait(Config.DelayBetweenCrystals)
  2441. end
  2442. else
  2443. index = (index % #Config.PatrulhaPontos) + 1
  2444. teleportTo(Config.PatrulhaPontos[index])
  2445. task.wait(2)
  2446. end
  2447. end
  2448. end
  2449. end
  2450. end)
  2451.  
  2452. --// ========== AUTO COLETA ========== //
  2453.  
  2454. RunService.Heartbeat:Connect(function()
  2455. if not (Config.AutoFarm or Config.AutoColeta) then return end
  2456.  
  2457. if not Config.podeExecutar then return end
  2458. Config.podeExecutar = false
  2459.  
  2460. local root = getHumanoidRootPart()
  2461. if root then
  2462. for _, obj in ipairs(workspace:GetDescendants()) do
  2463. if obj:IsA("ProximityPrompt") and obj.Parent and obj.Parent:IsA("BasePart") then
  2464. if obj.Enabled and (obj.Parent.Position - root.Position).Magnitude <= Config.raioDeColeta then
  2465. pcall(function()
  2466. fireproximityprompt(obj)
  2467. end)
  2468. end
  2469. end
  2470. end
  2471. end
  2472.  
  2473. task.delay(Config.delayEntreTentativas, function()
  2474. Config.podeExecutar = true
  2475. end)
  2476. end)
  2477.  
  2478. --// ========== CLEANUP AO SAIR ========== //
  2479.  
  2480. LocalPlayer.CharacterRemoving:Connect(function()
  2481. ClickTeleportModule.Cleanup()
  2482. end)
  2483.  
  2484. --// ========== LOGS FINAIS ========== //
  2485.  
  2486. print("╔═══════════════════════════════════════════════════════════╗")
  2487. print("║ Pré-história - By: NickZScripts ║")
  2488. print("╠═══════════════════════════════════════════════════════════╣")
  2489. print("║ ✅ Interface UI Customizada carregada! ║")
  2490. print("║ 📌 Versão: " .. ScriptVersion .. " ║")
  2491. print("║ 🎮 Jogador: " .. LocalPlayer.Name)
  2492. print("║ 📊 Players: " .. #Players:GetPlayers() .. "/" .. Players.MaxPlayers)
  2493. print("║ 📍 Teleports Salvos: " .. #Config.SavedTeleports)
  2494. print("╠═══════════════════════════════════════════════════════════╣")
  2495. print("║ 🎨 Interface: 100% Customizada (Sem Bibliotecas) ║")
  2496. print("║ 🚀 Sistema de Teleporte Ultra-Rápido ║")
  2497. print("║ 👁️ ESP de Jogadores e Carnes ║")
  2498. print("║ ⚡ Auto Farm + Auto Coleta ║")
  2499. print("║ 🎯 Click Teleport Integrado ║")
  2500. print("╚═══════════════════════════════════════════════════════════╝")
  2501.  
  2502. UI:Notify("🦖 Pré-história", "Script carregado com sucesso!\nVersão: " .. ScriptVersion, 3, "✅")
Advertisement
Add Comment
Please, Sign In to add comment