M
Description
Simulador governo brasileiro Auto farm
GAMEUniversal
UPDATEDOct 28, 2026
ACCESSKeyless
PLATFORMDesktop
Script source Luau
-- [[ BloxScripts Risk Notice ]]
-- This script has not been verified by BloxScripts.fun. Deal with caution.
--
-- Stay safe:
-- • Never log in on unofficial Roblox sites or lookalike domains.
-- • Real Roblox links use roblox.com (check the .com ending).
-- • Treat fake Roblox login / "claim reward" pages as phishing.
-- [[ End BloxScripts Risk Notice ]]
-- KGS VIP V4
-- Instalação: LocalScript em
-- StarterPlayer > StarterPlayerScripts
--
-- Interface, scanner de NPCs, filtros, seleção,
-- teleporte de teste e rotina de teste cancelável.
local Players = game:GetService("Players")
local UIS = game:GetService("UserInputService")
local Workspace = game:GetService("Workspace")
local player = Players.LocalPlayer
local playerGui = player:WaitForChild("PlayerGui")
local previous = playerGui:FindFirstChild("KGSVIP_V4")
if previous then
previous:Destroy()
end
local BLUE = Color3.fromRGB(0, 145, 255)
local DARK = Color3.fromRGB(10, 14, 24)
local PANEL = Color3.fromRGB(23, 30, 45)
local WHITE = Color3.fromRGB(245, 248, 255)
local GREEN = Color3.fromRGB(35, 165, 100)
local RED = Color3.fromRGB(190, 50, 60)
local gui = Instance.new("ScreenGui")
gui.Name = "KGSVIP_V4"
gui.ResetOnSpawn = false
gui.DisplayOrder = 100
gui.Parent = playerGui
local function make(className, props, parent)
local obj = Instance.new(className)
for key, value in pairs(props) do
obj[key] = value
end
obj.Parent = parent
return obj
end
local function round(obj, radius)
make("UICorner", {
CornerRadius = UDim.new(0, radius)
}, obj)
end
local function outline(obj)
make("UIStroke", {
Color = BLUE,
Thickness = 1.5
}, obj)
end
local function newButton(parent, text, size, position, color)
local b = make("TextButton", {
Size = size,
Position = position,
BackgroundColor3 = color or PANEL,
Text = text,
TextColor3 = WHITE,
TextSize = 12,
Font = Enum.Font.GothamBold,
TextWrapped = true,
AutoButtonColor = true
}, parent)
round(b, 7)
return b
end
-- Botão flutuante
local bubble = make("TextButton", {
Name = "KGSButton",
Size = UDim2.fromOffset(60, 60),
Position = UDim2.new(0, 20, 0.5, -30),
BackgroundColor3 = DARK,
Text = "KGS",
TextColor3 = BLUE,
TextSize = 19,
Font = Enum.Font.GothamBold
}, gui)
round(bubble, 30)
outline(bubble)
-- Painel principal
local panel = make("Frame", {
Name = "MainPanel",
Size = UDim2.fromOffset(340, 455),
Position = UDim2.new(0.5, -170, 0.5, -227),
BackgroundColor3 = DARK,
Visible = false
}, gui)
round(panel, 12)
outline(panel)
make("TextLabel", {
Size = UDim2.new(1, -55, 0, 42),
Position = UDim2.fromOffset(12, 3),
BackgroundTransparency = 1,
Text = "KGS VIP | NPC SCANNER",
TextColor3 = BLUE,
TextSize = 17,
Font = Enum.Font.GothamBold,
TextXAlignment = Enum.TextXAlignment.Left
}, panel)
local close = newButton(
panel, "X",
UDim2.fromOffset(30, 30),
UDim2.new(1, -38, 0, 7)
)
local status = make("TextLabel", {
Size = UDim2.new(1, -20, 0, 38),
Position = UDim2.fromOffset(10, 45),
BackgroundColor3 = PANEL,
Text = "Pronto para pesquisar.",
TextColor3 = WHITE,
TextSize = 12,
Font = Enum.Font.Gotham,
TextWrapped = true
}, panel)
round(status, 6)
local apoioButton = newButton(
panel, "APOIO",
UDim2.fromOffset(98, 34),
UDim2.fromOffset(10, 89)
)
local prestigioButton = newButton(
panel, "PRESTÍGIO",
UDim2.fromOffset(104, 34),
UDim2.fromOffset(116, 89)
)
local allButton = newButton(
panel, "TODOS",
UDim2.fromOffset(102, 34),
UDim2.fromOffset(228, 89)
)
local refreshButton = newButton(
panel, "ATUALIZAR PESQUISA",
UDim2.new(1, -20, 0, 34),
UDim2.fromOffset(10, 129),
Color3.fromRGB(25, 85, 140)
)
local list = make("ScrollingFrame", {
Name = "NPCList",
Size = UDim2.new(1, -20, 0, 180),
Position = UDim2.fromOffset(10, 169),
BackgroundColor3 = PANEL,
BorderSizePixel = 0,
ScrollBarThickness = 5,
AutomaticCanvasSize = Enum.AutomaticSize.Y,
CanvasSize = UDim2.new(0, 0, 0, 0)
}, panel)
round(list, 6)
make("UIListLayout", {
Padding = UDim.new(0, 4),
SortOrder = Enum.SortOrder.LayoutOrder
}, list)
make("UIPadding", {
PaddingTop = UDim.new(0, 5),
PaddingLeft = UDim.new(0, 5),
PaddingRight = UDim.new(0, 5)
}, list)
local teleportButton = newButton(
panel, "TELEPORTAR",
UDim2.fromOffset(155, 34),
UDim2.fromOffset(10, 354),
GREEN
)
local interactButton = newButton(
panel, "INTERAGIR",
UDim2.fromOffset(155, 34),
UDim2.fromOffset(175, 354),
Color3.fromRGB(30, 90, 155)
)
local autoButton = newButton(
panel, "INICIAR AUTO FARM DE TESTE",
UDim2.new(1, -20, 0, 34),
UDim2.fromOffset(10, 394),
GREEN
)
local stopButton = newButton(
panel, "PARAR",
UDim2.new(1, -20, 0, 24),
UDim2.fromOffset(10, 434),
RED
)
-- Estado do scanner
local category = "TODOS"
local records = {}
local selected = nil
local running = false
local runId = 0
local totalTests = 0
local function characterRoot()
local character = player.Character
return character and character:FindFirstChild("HumanoidRootPart")
end
local function getPosition(prompt)
if not prompt or not prompt.Parent then
return nil
end
local parent = prompt.Parent
if parent:IsA("Attachment") then
return parent.WorldPosition
elseif parent:IsA("BasePart") then
return parent.Position
end
local model = prompt:FindFirstAncestorOfClass("Model")
if model then
local part = model.PrimaryPart
or model:FindFirstChildWhichIsA("BasePart", true)
if part then
return part.Position
end
end
return nil
end
local function classify(prompt, model)
local text = (
prompt.Name .. " " ..
prompt.ActionText .. " " ..
prompt.ObjectText .. " " ..
(model and model.Name or "")
):lower()
if text:find("prestígio") or text:find("prestigio") then
return "PRESTÍGIO"
end
if text:find("apoio")
or text:find("eleitor")
or text:find("votar") then
return "APOIO"
end
return "OUTRO"
end
local function clearList()
for _, child in ipairs(list:GetChildren()) do
if child:IsA("GuiObject")
and not child:IsA("UIListLayout")
and not child:IsA("UIPadding") then
child:Destroy()
end
end
end
local function scan()
clearList()
table.clear(records)
selected = nil
local root = characterRoot()
if not root then
status.Text = "Personagem não encontrado."
return
end
for _, obj in ipairs(Workspace:GetDescendants()) do
if obj:IsA("ProximityPrompt") then
local model = obj:FindFirstAncestorOfClass("Model")
local kind = classify(obj, model)
local position = getPosition(obj)
if position and (category == "TODOS" or category == kind) then
table.insert(records, {
prompt = obj,
model = model,
kind = kind,
position = position
})
end
end
end
table.sort(records, function(a, b)
return (root.Position - a.position).Magnitude
< (root.Position - b.position).Magnitude
end)
for index, record in ipairs(records) do
local distance = (root.Position - record.position).Magnitude
local name = record.model and record.model.Name
or record.prompt.Name
local row = newButton(
list,
string.format(
"%s | %s | %.0f studs",
record.kind, name, distance
),
UDim2.new(1, -5, 0, 34),
UDim2.new(),
DARK
)
row.LayoutOrder = index
row.TextSize = 10
row.Activated:Connect(function()
selected = record
status.Text = "Selecionado: " .. name
for _, child in ipairs(list:GetChildren()) do
if child:IsA("TextButton") then
child.BackgroundColor3 = DARK
end
end
row.BackgroundColor3 = Color3.fromRGB(25, 75, 120)
end)
end
status.Text = string.format(
"%s: %d interações | Testes: %d",
category, #records, totalTests
)
end
apoioButton.Activated:Connect(function()
category = "APOIO"
scan()
end)
prestigioButton.Activated:Connect(function()
category = "PRESTÍGIO"
scan()
end)
allButton.Activated:Connect(function()
category = "TODOS"
scan()
end)
refreshButton.Activated:Connect(scan)
bubble.Activated:Connect(function()
panel.Visible = not panel.Visible
if panel.Visible then
scan()
end
end)
close.Activated:Connect(function()
panel.Visible = false
end)
-- Teleporte apenas para testes no próprio projeto.
teleportButton.Activated:Connect(function()
if not selected or not selected.prompt:IsDescendantOf(Workspace) then
status.Text = "Selecione um NPC primeiro."
return
end
local root = characterRoot()
local position = getPosition(selected.prompt)
if not root or not position then
status.Text = "NPC ou personagem indisponível."
return
end
root.CFrame = CFrame.new(position + Vector3.new(0, 3, 5))
status.Text = "Teleporte de teste realizado."
end)
-- Verifica o prompt, sem simular a tecla E.
interactButton.Activated:Connect(function()
if not selected or not selected.prompt:IsDescendantOf(Workspace) then
status.Text = "Selecione uma interação primeiro."
return
end
local root = characterRoot()
local position = getPosition(selected.prompt)
if not root or not position then
status.Text = "Personagem ou interação indisponível."
return
end
local distance = (root.Position - position).Magnitude
if not selected.prompt.Enabled then
status.Text = "Interação desativada."
elseif distance > selected.prompt.MaxActivationDistance then
status.Text = "Muito longe do NPC."
else
status.Text = "Interação disponível. Pressione E."
totalTests += 1
end
end)
-- Rotina de teste cancelável:
-- percorre NPCs e registra disponibilidade,
-- sem acionar recompensas ou simular entrada.
autoButton.Activated:Connect(function()
if running then
status.Text = "Rotina de teste já está ativa."
return
end
if #records == 0 then
scan()
end
if #records == 0 then
status.Text = "Nenhum NPC disponível para testar."
return
end
running = true
runId += 1
local thisRun = runId
autoButton.Text = "AUTO FARM DE TESTE ATIVO"
task.spawn(function()
for _, record in ipairs(records) do
if not running or thisRun ~= runId then
break
end
if record.prompt:IsDescendantOf(Workspace) then
local position = getPosition(record.prompt)
local root = characterRoot()
if position and root then
local distance = (root.Position - position).Magnitude
status.Text = string.format(
"Teste: %s | %.0f studs",
record.model and record.model.Name
or record.prompt.Name,
distance
)
totalTests += 1
end
end
task.wait(1)
end
if thisRun == runId then
running = false
autoButton.Text = "INICIAR AUTO FARM DE TESTE"
status.Text = "Rotina de teste concluída."
end
end)
end)
stopButton.Activated:Connect(function()
running = false
runId += 1
autoButton.Text = "INICIAR AUTO FARM DE TESTE"
status.Text = "Rotina interrompida."
end)
-- Arrastar o botão flutuante
local dragging = false
local dragStart
local startPosition
bubble.InputBegan:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseButton1
or input.UserInputType == Enum.UserInputType.Touch then
dragging = true
dragStart = input.Position
startPosition = bubble.Position
end
end)
UIS.InputChanged:Connect(function(input)
if dragging and (
input.UserInputType == Enum.UserInputType.MouseMovement
or input.UserInputType == Enum.UserInputType.Touch
) then
local delta = input.Position - dragStart
bubble.Position = UDim2.new(
startPosition.X.Scale,
startPosition.X.Offset + delta.X,
startPosition.Y.Scale,
startPosition.Y.Offset + delta.Y
)
end
end)
UIS.InputEnded:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseButton1
or input.UserInputType == Enum.UserInputType.Touch then
dragging = false
end
end)
print("[KGS VIP V4] Interface carregada.")Review the source before using it. Executions count successful copies, capped at 10 per user and network per script in 24 hours.
Community discussion
0Start the conversation.


Your community, in one place