
KeylessUniversal

-- LocalScript (в StarterPlayerScripts)
local Players = game:GetService("Players")
local RunService = game:GetService("RunService")
local Workspace = game:GetService("Workspace")
local GuiService = game:GetService("GuiService")
local player = Players.LocalPlayer
local stickPart = nil
local endPart = nil
local weldStick = nil
local weldEnd = nil
-- Слайдер 1: длина палки 3–100
local lengthValue = 3
-- Слайдер 2: прозрачность 0–1
local transparencyValue = 0.8
local function createUI()
local screenGui = Instance.new("ScreenGui")
screenGui.Name = "StickLengthUI"
screenGui.Parent = player:WaitForChild("PlayerGui")
local frame = Instance.new("Frame")
frame.Size = UDim2.fromOffset(240, 140)
frame.BackgroundTransparency = 0.4
frame.BackgroundColor3 = Color3.new(0.1, 0.1, 0.1)
frame.Position = UDim2.fromOffset(20, 20)
frame.Parent = screenGui
-- Лейбл длины
local labelLength = Instance.new("TextLabel")
labelLength.Size = UDim2.new(1, 0, 0.2, 0)
labelLength.Text = "Длина палки: "..lengthValue
labelLength.TextColor3 = Color3.new(1, 1, 1)
labelLength.BackgroundTransparency = 1
labelLength.Parent = frame
-- Слайдер длины
local sliderFrameLength = Instance.new("Frame")
sliderFrameLength.Size = UDim2.new(1, 0, 0.2, 0)
sliderFrameLength.Position = UDim2.new(0, 0, 0.2, 0)
sliderFrameLength.BackgroundColor3 = Color3.new(0.3, 0.3, 0.3)
sliderFrameLength.Parent = frame
local sliderBgLength = Instance.new("Frame")
sliderBgLength.Name = "SliderBgLength"
sliderBgLength.Size = UDim2.new(1, 0, 0.5, 0)
sliderBgLength.Position = UDim2.new(0, 0, 0.25, 0)
sliderBgLength.BackgroundColor3 = Color3.new(0.2, 0.2, 0.2)
sliderBgLength.Parent = sliderFrameLength
local handleLength = Instance.new("Frame")
handleLength.Size = UDim2.new(0, 12, 1, 0)
handleLength.BackgroundColor3 = Color3.new(0, 0.6, 1)
handleLength.Parent = sliderBgLength
-- Лейбл прозрачности
local labelTransp = Instance.new("TextLabel")
labelTransp.Size = UDim2.new(1, 0, 0.2, 0)
labelTransp.Position = UDim2.new(0, 0, 0.5, 0)
labelTransp.Text = "Прозрачность: "..string.format("%.2f", transparencyValue)
labelTransp.TextColor3 = Color3.new(1, 1, 1)
labelTransp.BackgroundTransparency = 1
labelTransp.Parent = frame
-- Слайдер прозрачности
local sliderFrameTransp = Instance.new("Frame")
sliderFrameTransp.Size = UDim2.new(1, 0, 0.2, 0)
sliderFrameTransp.Position = UDim2.new(0, 0, 0.7, 0)
sliderFrameTransp.BackgroundColor3 = Color3.new(0.3, 0.3, 0.3)
sliderFrameTransp.Parent = frame
local sliderBgTransp = Instance.new("Frame")
sliderBgTransp.Name = "SliderBgTransp"
sliderBgTransp.Size = UDim2.new(1, 0, 0.5, 0)
sliderBgTransp.Position = UDim2.new(0, 0, 0.25, 0)
sliderBgTransp.BackgroundColor3 = Color3.new(0.2, 0.2, 0.2)
sliderBgTransp.Parent = sliderFrameTransp
local handleTransp = Instance.new("Frame")
handleTransp.Size = UDim2.new(0, 12, 1, 0)
handleTransp.BackgroundColor3 = Color3.new(0, 0.6, 1)
handleTransp.Parent = sliderBgTransp
----------------------------
-- Логика слайдера ДЛИНЫ
----------------------------
local draggingLength = false
handleLength.InputBegan:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseButton1 then
draggingLength = true
end
end)
handleLength.InputEnded:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseButton1 then
draggingLength = false
end
end)
RunService.Heartbeat:Connect(function()
if draggingLength then
local mouse = player:GetMouse()
local x = mouse.X - sliderBgLength.AbsolutePosition.X
local xClamped = math.clamp(x, 0, sliderBgLength.AbsoluteSize.X)
local pct = xClamped / sliderBgLength.AbsoluteSize.X
lengthValue = math.clamp(math.floor(100 * pct + 0.5), 3, 100) -- 3–100
handleLength.Position = UDim2.new(pct, 0, handleLength.Position.Y.Scale, 0)
labelLength.Text = "Длина палки: "..lengthValue
updateStick()
end
end)
-------------------------------
-- Логика слайдера ПРОЗРАЧНОСТИ
-------------------------------
local draggingTransp = false
handleTransp.InputBegan:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseButton1 then
draggingTransp = true
end
end)
handleTransp.InputEnded:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseButton1 then
draggingTransp = false
end
end)
RunService.Heartbeat:Connect(function()
if draggingTransp then
local mouse = player:GetMouse()
local x = mouse.X - sliderBgTransp.AbsolutePosition.X
local xClamped = math.clamp(x, 0, sliderBgTransp.AbsoluteSize.X)
local pct = xClamped / sliderBgTransp.AbsoluteSize.X
transparencyValue = math.clamp(pct, 0, 1) -- 0–1
handleTransp.Position = UDim2.new(pct, 0, handleTransp.Position.Y.Scale, 0)
labelTransp.Text = "Прозрачность: "..string.format("%.2f", transparencyValue)
updateStickTransparency()
end
end)
end
local function updateStickTransparency()
if stickPart then
stickPart.Transparency = transparencyValue
end
if endPart then
endPart.Transparency = transparencyValue
end
end
local function clearStick()
if stickPart then
stickPart:Destroy()
stickPart = nil
end
if endPart then
endPart:Destroy()
endPart = nil
end
if weldStick then
weldStick:Destroy()
weldStick = nil
end
if weldEnd then
weldEnd:Destroy()
weldEnd = nil
end
end
local function updateStick()
if not stickPart or not endPart then
return
end
local root = player.Character and player.Character:FindFirstChild("HumanoidRootPart")
if not root then
return
end
-- Обновляем палку по длине 3–100
stickPart.Size = Vector3.new(lengthValue, 0.2, 0.2)
stickPart.CFrame = root.CFrame * CFrame.new(lengthValue / 2, 0, 0)
-- Обновляем конец (вертикальный 2×7×2)
endPart.CFrame = root.CFrame * CFrame.new(lengthValue, 0, 0)
end
local function createStick(character)
clearStick()
local rootPart = character:WaitForChild("HumanoidRootPart")
-- Основная палка
stickPart = Instance.new("Part")
stickPart.Name = "Stick"
stickPart.Size = Vector3.new(lengthValue, 0.2, 0.2)
stickPart.Material = Enum.Material.Metal
stickPart.Transparency = transparencyValue
stickPart.CanCollide = false
stickPart.Anchored = false
stickPart.CFrame = rootPart.CFrame * CFrame.new(lengthValue / 2, 0, 0)
stickPart.Parent = Workspace
-- Weld палки к RootPart
weldStick = Instance.new("WeldConstraint")
weldStick.Part0 = rootPart
weldStick.Part1 = stickPart
weldStick.Parent = stickPart
-- Конечная часть: 7 в высоту, 2×2 в ширину
endPart = Instance.new("Part")
endPart.Name = "StickEnd"
endPart.Size = Vector3.new(2, 7, 2)
endPart.Material = Enum.Material.Metal
endPart.Transparency = transparencyValue
endPart.CanCollide = false
endPart.Anchored = false
endPart.CFrame = rootPart.CFrame * CFrame.new(lengthValue, 0, 0) -- на конце палки
endPart.Parent = Workspace
-- Weld конечной части к палке
weldEnd = Instance.new("WeldConstraint")
weldEnd.Part0 = stickPart
weldEnd.Part1 = endPart
weldEnd.Parent = endPart
-- Применяем стартовую прозрачность
updateStickTransparency()
end
-- Отключаем GamePaused уведомление
GuiService:SetGameplayPausedNotificationEnabled(false)
-- Запуск
player.CharacterAdded:Connect(function(character)
task.wait(0.1)
createStick(character)
createUI()
end)
if player.Character then
createStick(player.Character)
createStick(character)
endNo comments yet for this script.



