Ir al contenido
Funcional

Basic Script

CLclarkdevlinorg0 vistasEvade26 jul 2026
Compartir
Basic Script

Código del script

Lua
local p = game:GetService("Players")
local ws = game:GetService("Workspace")
local vim = game:GetService("VirtualInputManager")
local uis = game:GetService("UserInputService")
local rs = game:GetService("RunService")
local lp = p.LocalPlayer

local gui = Instance.new("ScreenGui")
gui.Name = "ChulFarm"
gui.ResetOnSpawn = false

if lp.PlayerGui:FindFirstChild("ChulFarm") then
    lp.PlayerGui:FindFirstChild("ChulFarm"):Destroy()
end
gui.Parent = lp.PlayerGui

local function drag(btn)
    local dragging = false
    local dragStart = nil
    local btnStart = nil
    
    btn.MouseButton1Down:Connect(function()
        dragging = true
        dragStart = uis:GetMouseLocation()
        btnStart = btn.Position
    end)
    
    uis.InputChanged:Connect(function(input)
        if dragging and input.UserInputType == Enum.UserInputType.MouseMovement then
            local delta = input.Position - dragStart
            btn.Position = UDim2.new(btnStart.X.Scale, btnStart.X.Offset + delta.X, btnStart.Y.Scale, btnStart.Y.Offset + delta.Y)
        end
    end)
    
    uis.InputEnded:Connect(function(input)
        if input.UserInputType == Enum.UserInputType.MouseButton1 then
            dragging = false
        end
    end)
end

local farmBtn = Instance.new("TextButton")
farmBtn.Size = UDim2.new(0, 80, 0, 30)
farmBtn.Position = UDim2.new(0.02, 0, 0.80, 0)
farmBtn.BackgroundColor3 = Color3.fromRGB(30, 30, 30)
farmBtn.Text = "Temp V"
farmBtn.TextColor3 = Color3.fromRGB(255, 255, 255)
farmBtn.TextSize = 12
farmBtn.Font = Enum.Font.SourceSansBold
farmBtn.Parent = gui
Instance.new("UICorner").Parent = farmBtn
drag(farmBtn)

local espBtn = Instance.new("TextButton")
espBtn.Size = UDim2.new(0, 80, 0, 30)
espBtn.Position = UDim2.new(0.02, 0, 0.87, 0)
espBtn.BackgroundColor3 = Color3.fromRGB(30, 30, 30)
espBtn.Text = "ESP: ON"
espBtn.TextColor3 = Color3.fromRGB(0, 255, 0)
espBtn.TextSize = 12
espBtn.Font = Enum.Font.SourceSansBold
espBtn.Parent = gui
Instance.new("UICorner").Parent = espBtn
drag(espBtn)

local playerESP = {}
local tempVESP = {}
local espEnabled = true

local function createPlayerESP(character)
    local highlight = Instance.new("Highlight")
    highlight.FillTransparency = 1
    highlight.OutlineTransparency = 0.2
    highlight.OutlineColor = Color3.fromRGB(173, 216, 230)
    highlight.DepthMode = Enum.HighlightDepthMode.AlwaysOnTop
    highlight.Enabled = espEnabled
    highlight.Parent = character
    
    local conn
    conn = rs.RenderStepped:Connect(function()
        if not character or not character.Parent then
            if highlight then highlight:Destroy() end
            if conn then conn:Disconnect() end
        end
    end)
    
    return {highlight = highlight, conn = conn}
end

local function createTempVESP(part)
    local box = Instance.new("SelectionBox")
    box.Adornee = part
    box.Color3 = Color3.fromRGB(0, 255, 0)
    box.LineThickness = 0.08
    box.Transparency = 0.2
    box.Visible = espEnabled
    box.Parent = part
    
    local bill = Instance.new("BillboardGui")
    bill.Size = UDim2.new(0, 50, 0, 15)
    bill.StudsOffset = Vector3.new(0, 1.5, 0)
    bill.AlwaysOnTop = true
    bill.Enabled = espEnabled
    bill.Parent = part
    
    local label = Instance.new("TextLabel")
    label.Size = UDim2.new(1, 0, 1, 0)
    label.BackgroundTransparency = 1
    label.TextColor3 = Color3.fromRGB(0, 255, 0)
    label.TextStrokeTransparency = 0.2
    label.TextStrokeColor3 = Color3.fromRGB(0, 0, 0)
    label.TextScaled = true
    label.Font = Enum.Font.GothamBold
    label.Text = "V"
    label.Parent = bill
    
    local conn
    conn = rs.RenderStepped:Connect(function()
        if not part or not part.Parent then
            box:Destroy()
            bill:Destroy()
            if conn then conn:Disconnect() end
        end
    end)
    
    return {box = box, bill = bill, conn = conn}
end

local function updateTempV()
    local folder = ws:FindFirstChild("_TempVPickups")
    if not folder then return end
    
    for _, obj in ipairs(folder:GetDescendants()) do
        if obj:IsA("ProximityPrompt") and obj.Name == "TempVPickupPrompt" then
            local parent = obj.Parent
            if parent and parent:IsA("BasePart") and not tempVESP[parent] then
                tempVESP[parent] = createTempVESP(parent)
            end
        end
    end
    
    for obj, data in pairs(tempVESP) do
        if not obj or not obj.Parent then
            if data.box then data.box:Destroy() end
            if data.bill then data.bill:Destroy() end
            if data.conn then data.conn:Disconnect() end
            tempVESP[obj] = nil
        end
    end
end

local function addPlayerESP(player)
    if player == lp then return end
    
    if playerESP[player] then
        local old = playerESP[player]
        if old.highlight then old.highlight:Destroy() end
        if old.conn then old.conn:Disconnect() end
        playerESP[player] = nil
    end
    
    local char = player.Character
    if char then
        local esp = createPlayerESP(char)
        if esp then playerESP[player] = esp end
    end
end

local function updatePlayers()
    for _, player in ipairs(p:GetPlayers()) do
        if player ~= lp then addPlayerESP(player) end
    end
    
    for player, data in pairs(playerESP) do
        if not player or not player.Parent then
            if data.highlight then data.highlight:Destroy() end
            if data.conn then data.conn:Disconnect() end
            playerESP[player] = nil
        end
    end
end

local function toggleESP()
    espEnabled = not espEnabled
    
    for _, data in pairs(playerESP) do
        if data.highlight then data.highlight.Enabled = espEnabled end
    end
    
    for _, data in pairs(tempVESP) do
        if data.box then data.box.Visible = espEnabled end
        if data.bill then data.bill.Enabled = espEnabled end
    end
    
    if espEnabled then
        updatePlayers()
        updateTempV()
    end
    
    espBtn.Text = espEnabled and "ESP: ON" or "ESP: OFF"
    espBtn.TextColor3 = espEnabled and Color3.fromRGB(0, 255, 0) or Color3.fromRGB(255, 0, 0)
end

local function getClosestPrompt()
    local char = lp.Character
    if not char or not char:FindFirstChild("HumanoidRootPart") then return nil end
    
    local hrp = char.HumanoidRootPart
    local folder = ws:FindFirstChild("_TempVPickups")
    if not folder then return nil end
    
    local minDist = math.huge
    local closest = nil
    
    for _, obj in ipairs(folder:GetDescendants()) do
        if obj:IsA("ProximityPrompt") and obj.Name == "TempVPickupPrompt" then
            local parent = obj.Parent
            if parent and parent:IsA("BasePart") then
                local dist = (hrp.Position - parent.Position).Magnitude
                if dist < minDist then
                    minDist = dist
                    closest = obj
                end
            end
        end
    end
    
    return closest
end

local function activatePrompt(prompt)
    prompt.HoldDuration = 0
    
    local success = pcall(function()
        fireproximityprompt(prompt, 1)
    end)
    
    if not success then
        local key = Enum.KeyCode.E
        pcall(function()
            if prompt.KeyboardKeyCode then
                key = prompt.KeyboardKeyCode
            end
        end)
        
        vim:SendKeyEvent(true, key, false, game)
        task.wait(0.05)
        vim:SendKeyEvent(false, key, false, game)
    end
end

local function onCharacterAdded(player, character)
    task.wait(0.2)
    if espEnabled and player ~= lp then
        addPlayerESP(player)
    end
end

for _, player in ipairs(p:GetPlayers()) do
    if player ~= lp then
        player.CharacterAdded:Connect(function(character)
            onCharacterAdded(player, character)
        end)
    end
end

p.PlayerAdded:Connect(function(player)
    if player ~= lp then
        task.wait(0.5)
        if espEnabled then addPlayerESP(player) end
        player.CharacterAdded:Connect(function(character)
            onCharacterAdded(player, character)
        end)
    end
end)

p.PlayerRemoving:Connect(function(player)
    if playerESP[player] then
        local data = playerESP[player]
        if data.highlight then data.highlight:Destroy() end
        if data.conn then data.conn:Disconnect() end
        playerESP[player] = nil
    end
end)

task.wait(0.5)
updatePlayers()
updateTempV()

spawn(function()
    while true do
        task.wait(2)
        if espEnabled then
            updatePlayers()
            updateTempV()
        end
    end
end)

farmBtn.MouseButton1Click:Connect(function()
    local char = lp.Character
    local hrp = char and char:FindFirstChild("HumanoidRootPart")
    
    if not hrp then
        farmBtn.Text = "Wait"
        task.wait(1)
        farmBtn.Text = "Temp V"
        return
    end
    
    local target = getClosestPrompt()
    
    if target and target.Parent then
        local part = target.Parent
        local originalColor = part.Color or Color3.fromRGB(255, 255, 255)
        part.Color = Color3.fromRGB(255, 200, 0)
        local originalPos = hrp.CFrame
        
        hrp.Velocity = Vector3.new(0, 0, 0)
        hrp.CFrame = part.CFrame * CFrame.new(0, 3, 0)
        
        task.wait(0.15)
        activatePrompt(target)
        task.wait(0.25)
        
        hrp.Velocity = Vector3.new(0, 0, 0)
        hrp.CFrame = originalPos
        
        task.wait(0.1)
        part.Color = originalColor
        
        farmBtn.Text = "Got!"
        task.wait(0.5)
        farmBtn.Text = "Temp V"
    else
        farmBtn.Text = "No item"
        task.wait(1)
        farmBtn.Text = "Temp V"
    end
end)

espBtn.MouseButton1Click:Connect(function()
    toggleESP()
end)

print("idk")

Comentarios (0)

Inicia sesión para unirte a la conversación

  • Sé el primero en comentar.

Preguntas frecuentes

¿Cómo uso el script Basic Script?
Copia el código de arriba, abre tu executor de Roblox, pega el código y presiona ejecutar mientras estés en el juego. Las funciones se activan instantáneamente una vez que el script se ejecuta.
¿El script Basic Script es gratuito?
Sí. Este script es gratuito para copiar y usar. Si usa un sistema de claves, sigue el enlace «Obtener clave» para desbloquearlo sin costo.
¿Es seguro usar el script Basic Script?
El código fuente completo se muestra en esta página para que puedas leer exactamente qué hace antes de ejecutarlo. Usa siempre un executor de confianza, y recuerda que usar scripts va en contra de los términos de servicio de Roblox — úsalos bajo tu propio riesgo.
¿Qué executor funciona con Basic Script?
Este script funciona con la mayoría de los executores populares de Roblox. Consulta nuestra página de executores para encontrar un executor gratuito o de pago confiable para tu dispositivo.
Basic Script | BloxScripter