local Players = game:GetService("Players")
local UserInputService = game:GetService("UserInputService")
local TweenService = game:GetService("TweenService")
-- Color Palette
local Colors = {
Background = Color3.fromRGB(25, 25, 25),
Primary = Color3.fromRGB(40, 40, 40),
Accent = Color3.fromRGB(60, 60, 60),
Text = Color3.fromRGB(230, 230, 230),
Button = Color3.fromRGB(70, 130, 180)
}
-- Create Main GUI
local ScreenGui = Instance.new("ScreenGui")
ScreenGui.Parent = Players.LocalPlayer.PlayerGui
ScreenGui.Name = "SpeedControllerGui"
ScreenGui.ZIndexBehavior = Enum.ZIndexBehavior.Sibling
-- Notification System
local function createNotification(message)
local NotificationFrame = Instance.new("Frame")
NotificationFrame.Size = UDim2.new(0, 250, 0, 50)
NotificationFrame.Position = UDim2.new(1, -270, 1, -70)
NotificationFrame.BackgroundColor3 = Colors.Primary
NotificationFrame.BorderSizePixel = 0
NotificationFrame.Parent = ScreenGui
local UICorner = Instance.new("UICorner")
UICorner.CornerRadius = UDim.new(0, 10)
UICorner.Parent = NotificationFrame
local NotificationText = Instance.new("TextLabel")
NotificationText.Size = UDim2.new(1, 0, 1, 0)
NotificationText.Text = message
NotificationText.Font = Enum.Font.GothamSemibold
NotificationText.TextSize = 14
NotificationText.TextColor3 = Colors.Text
NotificationText.BackgroundTransparency = 1
NotificationText.Parent = NotificationFrame
-- Slide in from right
NotificationFrame.Position = UDim2.new(1, 0, 1, -70)
TweenService:Create(NotificationFrame, TweenInfo.new(0.5), {
Position = UDim2.new(1, -270, 1, -70)
}):Play()
-- Auto-remove after 5 seconds
task.delay(5, function()
TweenService:Create(NotificationFrame, TweenInfo.new(0.5), {
Position = UDim2.new(1, 0, 1, -70)
}):Play()
task.wait(0.5)
NotificationFrame:Destroy()
end)
end
-- Main Frame
local MainFrame = Instance.new("Frame")
MainFrame.Size = UDim2.new(0, 350, 0, 350) -- Reduced height
MainFrame.Position = UDim2.new(0.5, -175, 0.5, -175)
MainFrame.BackgroundColor3 = Colors.Background
MainFrame.BorderSizePixel = 0
MainFrame.Parent = ScreenGui
-- Create rounded corner
local UICorner = Instance.new("UICorner")
UICorner.CornerRadius = UDim.new(0, 12)
UICorner.Parent = MainFrame
-- Title Bar
local TitleBar = Instance.new("Frame")
TitleBar.Size = UDim2.new(1, 0, 0, 50)
TitleBar.BackgroundColor3 = Colors.Primary
TitleBar.BorderSizePixel = 0
TitleBar.Parent = MainFrame
-- Rounded corner for title bar
local TitleCorner = Instance.new("UICorner")
TitleCorner.CornerRadius = UDim.new(0, 12)
TitleCorner.Parent = TitleBar
local TitleLabel = Instance.new("TextLabel")
TitleLabel.Size = UDim2.new(1, 0, 1, 0)
TitleLabel.Text = "Kr0n1k's Player Controller"
TitleLabel.Font = Enum.Font.GothamSemibold
TitleLabel.TextSize = 20
TitleLabel.TextColor3 = Colors.Text
TitleLabel.BackgroundTransparency = 1
TitleLabel.Parent = TitleBar
-- Function to create a input field
local function CreateModernInput(parent, yOffset, placeholderText)
local InputFrame = Instance.new("Frame")
InputFrame.Size = UDim2.new(1, -40, 0, 40)
InputFrame.Position = UDim2.new(0, 20, 0, yOffset)
InputFrame.BackgroundColor3 = Colors.Accent
InputFrame.BorderSizePixel = 0
InputFrame.Parent = parent
local UICorner = Instance.new("UICorner")
UICorner.CornerRadius = UDim.new(0, 8)
UICorner.Parent = InputFrame
local InputBox = Instance.new("TextBox")
InputBox.Size = UDim2.new(1, -20, 1, 0)
InputBox.Position = UDim2.new(0, 10, 0, 0)
InputBox.PlaceholderText = placeholderText
InputBox.Text = ""
InputBox.BackgroundTransparency = 1
InputBox.Font = Enum.Font.Gotham
InputBox.TextSize = 14
InputBox.TextColor3 = Colors.Text
InputBox.PlaceholderColor3 = Color3.fromRGB(150, 150, 150)
InputBox.Parent = InputFrame
return InputBox
end
-- Function to create a button
local function CreateModernButton(parent, yOffset, text, onClick)
local Button = Instance.new("TextButton")
Button.Size = UDim2.new(1, -40, 0, 40)
Button.Position = UDim2.new(0, 20, 0, yOffset)
Button.BackgroundColor3 = Colors.Button
Button.BorderSizePixel = 0
Button.Text = text
Button.Font = Enum.Font.GothamSemibold
Button.TextSize = 14
Button.TextColor3 = Color3.new(1, 1, 1)
Button.Parent = parent
local UICorner = Instance.new("UICorner")
UICorner.CornerRadius = UDim.new(0, 8)
UICorner.Parent = Button
Button.MouseButton1Click:Connect(onClick)
return Button
end
-- Speed Section
local SpeedInput = CreateModernInput(MainFrame, 70, "Enter Walk Speed")
local SpeedButton = CreateModernButton(MainFrame, 120, "Apply Walk Speed", function()
local speedValue = tonumber(SpeedInput.Text)
if speedValue then
local character = Players.LocalPlayer.Character
if character then
local humanoid = character:FindFirstChildOfClass("Humanoid")
if humanoid then
humanoid.WalkSpeed = speedValue
createNotification("Walk Speed Set to " .. speedValue)
end
end
end
end)
-- Gravity Section
local GravityInput = CreateModernInput(MainFrame, 170, "Enter Gravity")
local GravityButton = CreateModernButton(MainFrame, 220, "Apply Gravity", function()
local gravityValue = tonumber(GravityInput.Text)
if gravityValue then
workspace.Gravity = gravityValue
createNotification("Gravity Set to " .. gravityValue)
end
end)
-- Super Jump Section
local JumpHeightInput = CreateModernInput(MainFrame, 270, "Enter Jump Power")
local JumpButton = CreateModernButton(MainFrame, 320, "Apply Jump Power", function()
local jumpValue = tonumber(JumpHeightInput.Text)
if jumpValue then
local character = Players.LocalPlayer.Character
if character then
local humanoid = character:FindFirstChildOfClass("Humanoid")
if humanoid then
humanoid.JumpPower = jumpValue
createNotification("Jump Power Set to " .. jumpValue)
end
end
end
end)
-- Dragging Functionality
local dragging
local dragInput
local dragStart
local startPos
local function update(input)
local delta = input.Position - dragStart
MainFrame.Position = UDim2.new(startPos.X.Scale, startPos.X.Offset + delta.X, startPos.Y.Scale, startPos.Y.Offset + delta.Y)
end
TitleBar.InputBegan:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then
dragging = true
dragStart = input.Position
startPos = MainFrame.Position
input.Changed:Connect(function()
if input.UserInputState == Enum.UserInputState.End then
dragging = false
end
end)
end
end)
TitleBar.InputChanged:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseMovement or input.UserInputType == Enum.UserInputType.Touch then
dragInput = input
end
end)
UserInputService.InputChanged:Connect(function(input)
if input == dragInput and dragging then
update(input)
end
end)
-- Initial Notification
createNotification("Kr0n1k's Player Controller Loaded!")
Comments
"The UI might look horrible, this was one of my "rushed" projects, I've tried refining, sorry if it's not visually pleasing loll" as in chatgpt was bad at making ui
that's pretty cool ngl
Another one of my small projects, They're not the best visually pleasing, but they work like a charm (for now)