
KeylessUniversal

-- MOD MENU - Country Game's Mod Menu (Updated with Noclip + Chat + Voice + FIXED WalkSpeed + Reverb + JumpPower + R6 Toggle)
-- LocalScript → StarterPlayer > StarterPlayerScripts
local Players = game:GetService("Players")
local UserInputService = game:GetService("UserInputService")
local TweenService = game:GetService("TweenService")
local RunService = game:GetService("RunService")
local TextChatService = game:GetService("TextChatService")
local VoiceChatService = game:GetService("VoiceChatService")
local SoundService = game:GetService("SoundService")
local player = Players.LocalPlayer
local playerGui = player:WaitForChild("PlayerGui")
-- ScreenGui
local screenGui = Instance.new("ScreenGui")
screenGui.Name = "CountryGameModMenu"
screenGui.ResetOnSpawn = false
screenGui.Parent = playerGui
-- Main Frame
local mainFrame = Instance.new("Frame")
mainFrame.Size = UDim2.new(0, 310, 0, 460)
mainFrame.Position = UDim2.new(0.5, -155, 0.5, -230)
mainFrame.BackgroundColor3 = Color3.fromRGB(25, 25, 25)
mainFrame.BorderSizePixel = 0
mainFrame.Active = true
mainFrame.Draggable = true
mainFrame.Parent = screenGui
local mainCorner = Instance.new("UICorner")
mainCorner.CornerRadius = UDim.new(0, 16)
mainCorner.Parent = mainFrame
-- Rainbow Title Bar
local titleBar = Instance.new("Frame")
titleBar.Size = UDim2.new(1, 0, 0, 46)
titleBar.BackgroundColor3 = Color3.fromRGB(220, 20, 20)
titleBar.BorderSizePixel = 0
titleBar.Parent = mainFrame
titleBar.Active = false
local titleCorner = Instance.new("UICorner")
titleCorner.CornerRadius = UDim.new(0, 16)
titleCorner.Parent = titleBar
local titleLabel = Instance.new("TextLabel")
titleLabel.Size = UDim2.new(1, 0, 1, 0)
titleLabel.BackgroundTransparency = 1
titleLabel.Text = "Country Game’s Mod Menu"
titleLabel.TextColor3 = Color3.fromRGB(255, 255, 255)
titleLabel.TextScaled = true
titleLabel.FontFace = Font.new("rbxasset://fonts/families/BuilderExtended.json", Enum.FontWeight.Bold)
titleLabel.Parent = titleBar
-- Rainbow animation for title bar
local hue = 0
RunService.Heartbeat:Connect(function(dt)
hue = (hue + dt * 0.6) % 1
titleBar.BackgroundColor3 = Color3.fromHSV(hue, 1, 1)
end)
-- Scrolling Frame
local scrollFrame = Instance.new("ScrollingFrame")
scrollFrame.Size = UDim2.new(1, -20, 1, -110)
scrollFrame.Position = UDim2.new(0, 10, 0, 55)
scrollFrame.BackgroundTransparency = 1
scrollFrame.BorderSizePixel = 0
scrollFrame.ScrollBarThickness = 6
scrollFrame.ScrollBarImageColor3 = Color3.fromRGB(220, 20, 20)
scrollFrame.CanvasSize = UDim2.new(0, 0, 0, 0)
scrollFrame.Parent = mainFrame
local uiListLayout = Instance.new("UIListLayout")
uiListLayout.SortOrder = Enum.SortOrder.LayoutOrder
uiListLayout.Padding = UDim.new(0, 9)
uiListLayout.Parent = scrollFrame
local builderFont = Font.new("rbxasset://fonts/families/BuilderExtended.json", Enum.FontWeight.SemiBold)
-- Rounded Button Creator
local function createButton(text)
local button = Instance.new("TextButton")
button.Size = UDim2.new(1, 0, 0, 48)
button.BackgroundColor3 = Color3.fromRGB(45, 45, 45)
button.Text = text
button.TextColor3 = Color3.fromRGB(255, 255, 255)
button.TextScaled = true
button.FontFace = builderFont
button.BorderSizePixel = 0
button.Parent = scrollFrame
local corner = Instance.new("UICorner")
corner.CornerRadius = UDim.new(0, 12)
corner.Parent = button
button.MouseEnter:Connect(function()
TweenService:Create(button, TweenInfo.new(0.15), {BackgroundColor3 = Color3.fromRGB(70, 70, 70)}):Play()
end)
button.MouseLeave:Connect(function()
TweenService:Create(button, TweenInfo.new(0.15), {BackgroundColor3 = Color3.fromRGB(45, 45, 45)}):Play()
end)
return button
end
-- ==================== MOD BUTTONS ====================
-- Noclip Toggle
local noclipButton = createButton("Noclip: OFF")
local noclipEnabled = false
local noclipConnection = nil
noclipButton.MouseButton1Click:Connect(function()
noclipEnabled = not noclipEnabled
if noclipEnabled then
noclipButton.Text = "Noclip: ON"
noclipButton.BackgroundColor3 = Color3.fromRGB(0, 170, 0)
if noclipConnection then noclipConnection:Disconnect() end
noclipConnection = RunService.Stepped:Connect(function()
if player.Character then
for _, part in ipairs(player.Character:GetDescendants()) do
if part:IsA("BasePart") then
part.CanCollide = false
end
end
end
end)
else
noclipButton.Text = "Noclip: OFF"
noclipButton.BackgroundColor3 = Color3.fromRGB(45, 45, 45)
if noclipConnection then
noclipConnection:Disconnect()
noclipConnection = nil
end
if player.Character then
for _, part in ipairs(player.Character:GetDescendants()) do
if part:IsA("BasePart") then
part.CanCollide = true
end
end
end
end
end)
-- See Everyone's Chat Status
local chatStatusButton = Instance.new("TextButton")
chatStatusButton.Size = UDim2.new(1, 0, 0, 64)
chatStatusButton.BackgroundColor3 = Color3.fromRGB(45, 45, 45)
chatStatusButton.Text = ""
chatStatusButton.BorderSizePixel = 0
chatStatusButton.Parent = scrollFrame
local chatCorner = Instance.new("UICorner")
chatCorner.CornerRadius = UDim.new(0, 16)
chatCorner.Parent = chatStatusButton
local rainbowGradChat = Instance.new("UIGradient")
rainbowGradChat.Color = ColorSequence.new{
ColorSequenceKeypoint.new(0.00, Color3.fromHSV(0/6,1,1)),
ColorSequenceKeypoint.new(0.17, Color3.fromHSV(1/6,1,1)),
ColorSequenceKeypoint.new(0.33, Color3.fromHSV(2/6,1,1)),
ColorSequenceKeypoint.new(0.50, Color3.fromHSV(3/6,1,1)),
ColorSequenceKeypoint.new(0.67, Color3.fromHSV(4/6,1,1)),
ColorSequenceKeypoint.new(0.83, Color3.fromHSV(5/6,1,1)),
ColorSequenceKeypoint.new(1.00, Color3.fromHSV(6/6,1,1))
}
rainbowGradChat.Rotation = 45
rainbowGradChat.Parent = chatStatusButton
local mainLblChat = Instance.new("TextLabel")
mainLblChat.Size = UDim2.new(1,0,0.65,0)
mainLblChat.BackgroundTransparency = 1
mainLblChat.Text = "See Everyone's Chat Status"
mainLblChat.TextColor3 = Color3.new(1,1,1)
mainLblChat.TextScaled = true
mainLblChat.FontFace = builderFont
mainLblChat.Parent = chatStatusButton
local wipLblChat = Instance.new("TextLabel")
wipLblChat.Size = UDim2.new(1,0,0.35,0)
wipLblChat.Position = UDim2.new(0,0,0.65,0)
wipLblChat.BackgroundTransparency = 1
wipLblChat.Text = "WIP!"
wipLblChat.TextColor3 = Color3.fromRGB(255, 200, 80)
wipLblChat.TextScaled = true
wipLblChat.FontFace = builderFont
wipLblChat.Parent = chatStatusButton
local showingChatStatus = false
local chatStatusGuis = {}
local function updateChatStatusLabels()
for _, plr in ipairs(Players:GetPlayers()) do
if plr == player then continue end
local char = plr.Character
if not char then continue end
local head = char:FindFirstChild("Head")
if not head then continue end
if chatStatusGuis[plr] then chatStatusGuis[plr]:Destroy() chatStatusGuis[plr] = nil end
if showingChatStatus then
local bb = Instance.new("BillboardGui")
bb.Name = "ChatStatus"
bb.Adornee = head
bb.Size = UDim2.new(0, 90, 0, 45)
bb.StudsOffset = Vector3.new(0, 3.6, 0)
bb.AlwaysOnTop = true
bb.Parent = head
local txt = Instance.new("TextLabel")
txt.Size = UDim2.new(1,0,1,0)
txt.BackgroundTransparency = 1
txt.Text = "💬"
txt.TextColor3 = Color3.fromRGB(100, 255, 100)
txt.TextScaled = true
txt.Font = Enum.Font.GothamBlack
txt.TextStrokeTransparency = 0.6
txt.TextStrokeColor3 = Color3.new(0,0,0)
txt.Parent = bb
chatStatusGuis[plr] = bb
end
end
end
chatStatusButton.MouseButton1Click:Connect(function()
showingChatStatus = not showingChatStatus
if showingChatStatus then
chatStatusButton.BackgroundColor3 = Color3.fromRGB(0, 180, 0)
updateChatStatusLabels()
else
chatStatusButton.BackgroundColor3 = Color3.fromRGB(45, 45, 45)
for _, g in pairs(chatStatusGuis) do if g then g:Destroy() end end
chatStatusGuis = {}
end
end)
-- Show Everyone's Voice Chat Status
local voiceStatusButton = Instance.new("TextButton")
voiceStatusButton.Size = UDim2.new(1, 0, 0, 64)
voiceStatusButton.BackgroundColor3 = Color3.fromRGB(45, 45, 45)
voiceStatusButton.Text = ""
voiceStatusButton.BorderSizePixel = 0
voiceStatusButton.Parent = scrollFrame
local voiceCorner = Instance.new("UICorner")
voiceCorner.CornerRadius = UDim.new(0, 16)
voiceCorner.Parent = voiceStatusButton
local rainbowGradVoice = Instance.new("UIGradient")
rainbowGradVoice.Color = ColorSequence.new{
ColorSequenceKeypoint.new(0.00, Color3.fromHSV(0/6,1,1)),
ColorSequenceKeypoint.new(0.17, Color3.fromHSV(1/6,1,1)),
ColorSequenceKeypoint.new(0.33, Color3.fromHSV(2/6,1,1)),
ColorSequenceKeypoint.new(0.50, Color3.fromHSV(3/6,1,1)),
ColorSequenceKeypoint.new(0.67, Color3.fromHSV(4/6,1,1)),
ColorSequenceKeypoint.new(0.83, Color3.fromHSV(5/6,1,1)),
ColorSequenceKeypoint.new(1.00, Color3.fromHSV(6/6,1,1))
}
rainbowGradVoice.Rotation = 45
rainbowGradVoice.Parent = voiceStatusButton
local mainLblVoice = Instance.new("TextLabel")
mainLblVoice.Size = UDim2.new(1,0,0.65,0)
mainLblVoice.BackgroundTransparency = 1
mainLblVoice.Text = "Show Everyone's Voice Chat Status"
mainLblVoice.TextColor3 = Color3.new(1,1,1)
mainLblVoice.TextScaled = true
mainLblVoice.FontFace = builderFont
mainLblVoice.Parent = voiceStatusButton
local wipLblVoice = Instance.new("TextLabel")
wipLblVoice.Size = UDim2.new(1,0,0.35,0)
wipLblVoice.Position = UDim2.new(0,0,0.65,0)
wipLblVoice.BackgroundTransparency = 1
wipLblVoice.Text = "WIP!"
wipLblVoice.TextColor3 = Color3.fromRGB(255, 200, 80)
wipLblVoice.TextScaled = true
wipLblVoice.FontFace = builderFont
wipLblVoice.Parent = voiceStatusButton
local showingVoiceStatus = false
local voiceStatusGuis = {}
local function updateVoiceStatusLabels()
for _, plr in ipairs(Players:GetPlayers()) do
if plr == player then continue end
local char = plr.Character
if not char then continue end
local head = char:FindFirstChild("Head")
if not head then continue end
if voiceStatusGuis[plr] then voiceStatusGuis[plr]:Destroy() voiceStatusGuis[plr] = nil end
if showingVoiceStatus then
local hasVoice = false
pcall(function()
hasVoice = VoiceChatService:IsVoiceEnabledForUserIdAsync(plr.UserId)
end)
local bb = Instance.new("BillboardGui")
bb.Name = "VoiceStatus"
bb.Adornee = head
bb.Size = UDim2.new(0, 90, 0, 45)
bb.StudsOffset = Vector3.new(0, 4.0, 0)
bb.AlwaysOnTop = true
bb.Parent = head
local txt = Instance.new("TextLabel")
txt.Size = UDim2.new(1,0,1,0)
txt.BackgroundTransparency = 1
txt.Text = hasVoice and "🔈" or "🔈❌"
txt.TextColor3 = hasVoice and Color3.fromRGB(80, 220, 255) or Color3.fromRGB(255, 80, 80)
txt.TextScaled = true
txt.Font = Enum.Font.GothamBlack
txt.TextStrokeTransparency = 0.6
txt.TextStrokeColor3 = Color3.new(0,0,0)
txt.Parent = bb
voiceStatusGuis[plr] = bb
end
end
end
voiceStatusButton.MouseButton1Click:Connect(function()
showingVoiceStatus = not showingVoiceStatus
if showingVoiceStatus then
voiceStatusButton.BackgroundColor3 = Color3.fromRGB(0, 180, 0)
updateVoiceStatusLabels()
else
voiceStatusButton.BackgroundColor3 = Color3.fromRGB(45, 45, 45)
for _, g in pairs(voiceStatusGuis) do if g then g:Destroy() end end
voiceStatusGuis = {}
end
end)
-- Music Mode Toggle (loops audio ID 122075745783906)
local musicButton = createButton("Music Mode: OFF")
local musicEnabled = false
local musicSound = nil
musicButton.MouseButton1Click:Connect(function()
musicEnabled = not musicEnabled
if musicEnabled then
musicButton.Text = "Music Mode: ON"
musicButton.BackgroundColor3 = Color3.fromRGB(200, 0, 200) -- purple-ish when active
if not musicSound then
musicSound = Instance.new("Sound")
musicSound.SoundId = "rbxassetid://122075745783906"
musicSound.Looped = true
musicSound.Volume = 0.6 -- reasonable default volume (adjust if needed)
musicSound.Parent = SoundService -- global music → plays everywhere
end
musicSound:Play()
else
musicButton.Text = "Music Mode: OFF"
musicButton.BackgroundColor3 = Color3.fromRGB(45, 45, 45)
if musicSound then
musicSound:Stop()
end
end
end)
-- Change To Reverb (Cave)
local reverbButton = createButton("Change To Reverb")
local reverbActive = false
reverbButton.MouseButton1Click:Connect(function()
reverbActive = not reverbActive
if reverbActive then
SoundService.AmbientReverb = Enum.ReverbType.Cave
reverbButton.Text = "Reverb: Cave"
reverbButton.BackgroundColor3 = Color3.fromRGB(120, 80, 200)
else
SoundService.AmbientReverb = Enum.ReverbType.NoReverb
reverbButton.Text = "Change To Reverb"
reverbButton.BackgroundColor3 = Color3.fromRGB(45, 45, 45)
end
end)
-- WalkSpeed – persistent
local wsFrame = Instance.new("Frame")
wsFrame.Size = UDim2.new(1, 0, 0, 48)
wsFrame.BackgroundColor3 = Color3.fromRGB(45, 45, 45)
wsFrame.BorderSizePixel = 0
wsFrame.Parent = scrollFrame
local wsCorner = Instance.new("UICorner")
wsCorner.CornerRadius = UDim.new(0,12)
wsCorner.Parent = wsFrame
local wsLabel = Instance.new("TextLabel")
wsLabel.Size = UDim2.new(0.58,0,1,0)
wsLabel.BackgroundTransparency = 1
wsLabel.Text = "WalkSpeed:"
wsLabel.TextColor3 = Color3.new(1,1,1)
wsLabel.TextScaled = true
wsLabel.FontFace = builderFont
wsLabel.TextXAlignment = Enum.TextXAlignment.Left
wsLabel.Parent = wsFrame
local wsBox = Instance.new("TextBox")
wsBox.Size = UDim2.new(0.37,0,0.7,0)
wsBox.Position = UDim2.new(0.60,0,0.15,0)
wsBox.BackgroundColor3 = Color3.fromRGB(30,30,30)
wsBox.Text = "16"
wsBox.TextColor3 = Color3.new(1,1,1)
wsBox.TextScaled = true
wsBox.FontFace = builderFont
wsBox.Parent = wsFrame
local wsTbCorner = Instance.new("UICorner")
wsTbCorner.CornerRadius = UDim.new(0,8)
wsTbCorner.Parent = wsBox
local desiredWalkSpeed = 16
local function applyWalkSpeed(char)
if not char then return end
local humanoid = char:FindFirstChildOfClass("Humanoid") or char:WaitForChild("Humanoid", 5)
if humanoid then
humanoid.WalkSpeed = desiredWalkSpeed
end
end
wsBox.FocusLost:Connect(function(enter)
if enter then
local val = tonumber(wsBox.Text)
if val and val > 0 then
desiredWalkSpeed = val
if player.Character then
applyWalkSpeed(player.Character)
end
print("WalkSpeed set to: " .. val)
else
wsBox.Text = tostring(desiredWalkSpeed)
end
end
end)
player.CharacterAdded:Connect(function(newChar)
applyWalkSpeed(newChar)
end)
if player.Character then
applyWalkSpeed(player.Character)
end
-- JumpPower – persistent
local jumpFrame = Instance.new("Frame")
jumpFrame.Size = UDim2.new(1, 0, 0, 48)
jumpFrame.BackgroundColor3 = Color3.fromRGB(45, 45, 45)
jumpFrame.BorderSizePixel = 0
jumpFrame.Parent = scrollFrame
local jumpCorner = Instance.new("UICorner")
jumpCorner.CornerRadius = UDim.new(0,12)
jumpCorner.Parent = jumpFrame
local jumpLabel = Instance.new("TextLabel")
jumpLabel.Size = UDim2.new(0.58,0,1,0)
jumpLabel.BackgroundTransparency = 1
jumpLabel.Text = "JumpPower:"
jumpLabel.TextColor3 = Color3.new(1,1,1)
jumpLabel.TextScaled = true
jumpLabel.FontFace = builderFont
jumpLabel.TextXAlignment = Enum.TextXAlignment.Left
jumpLabel.Parent = jumpFrame
local jumpBox = Instance.new("TextBox")
jumpBox.Size = UDim2.new(0.37,0,0.7,0)
jumpBox.Position = UDim2.new(0.60,0,0.15,0)
jumpBox.BackgroundColor3 = Color3.fromRGB(30,30,30)
jumpBox.Text = "50"
jumpBox.TextColor3 = Color3.new(1,1,1)
jumpBox.TextScaled = true
jumpBox.FontFace = builderFont
jumpBox.Parent = jumpFrame
local jumpTbCorner = Instance.new("UICorner")
jumpTbCorner.CornerRadius = UDim.new(0,8)
jumpTbCorner.Parent = jumpBox
local desiredJumpPower = 50
local function applyJumpPower(char)
if not char then return end
local humanoid = char:FindFirstChildOfClass("Humanoid") or char:WaitForChild("Humanoid", 5)
if humanoid then
humanoid.JumpPower = desiredJumpPower
humanoid.UseJumpPower = true
end
end
jumpBox.FocusLost:Connect(function(enter)
if enter then
local val = tonumber(jumpBox.Text)
if val and val >= 0 then
desiredJumpPower = val
if player.Character then
applyJumpPower(player.Character)
end
print("JumpPower set to: " .. val)
else
jumpBox.Text = tostring(desiredJumpPower)
end
end
end)
player.CharacterAdded:Connect(function(newChar)
applyJumpPower(newChar)
end)
if player.Character then
applyJumpPower(player.Character)
end
-- God Mode
local godButton = createButton("God Mode (Infinite FF)")
local godEnabled = false
local currentFF = nil
godButton.MouseButton1Click:Connect(function()
godEnabled = not godEnabled
if godEnabled then
if player.Character then
currentFF = Instance.new("ForceField")
currentFF.Name = "GodFF"
currentFF.Parent = player.Character
end
godButton.Text = "God Mode: ON"
godButton.BackgroundColor3 = Color3.fromRGB(0, 170, 0)
else
if currentFF then currentFF:Destroy() currentFF = nil end
godButton.Text = "God Mode (Infinite FF)"
godButton.BackgroundColor3 = Color3.fromRGB(45, 45, 45)
end
end)
player.CharacterAdded:Connect(function(char)
task.wait(0.1)
if godEnabled then
currentFF = Instance.new("ForceField")
currentFF.Name = "GodFF"
currentFF.Parent = char
end
end)
-- Lock First Person
local lockFPButton = createButton("Lock First Person")
local lockFPEnabled = false
lockFPButton.MouseButton1Click:Connect(function()
lockFPEnabled = not lockFPEnabled
if lockFPEnabled then
player.CameraMode = Enum.CameraMode.LockFirstPerson
lockFPButton.Text = "Lock First Person: ON"
lockFPButton.BackgroundColor3 = Color3.fromRGB(0, 170, 0)
else
player.CameraMode = Enum.CameraMode.Classic
lockFPButton.Text = "Lock First Person"
lockFPButton.BackgroundColor3 = Color3.fromRGB(45, 45, 45)
end
end)
-- Fake Chat
local fakeChatButton = createButton("Fake Chat")
fakeChatButton.MouseButton1Click:Connect(function()
local inputBox = Instance.new("TextBox")
inputBox.Size = UDim2.new(0.7, 0, 0.08, 0)
inputBox.Position = UDim2.new(0.15, 0, 0.4, 0)
inputBox.BackgroundColor3 = Color3.fromRGB(30,30,30)
inputBox.PlaceholderText = "Type message and press Enter..."
inputBox.TextColor3 = Color3.new(1,1,1)
inputBox.TextScaled = true
inputBox.FontFace = builderFont
inputBox.Parent = screenGui
local ibCorner = Instance.new("UICorner")
ibCorner.CornerRadius = UDim.new(0,10)
ibCorner.Parent = inputBox
inputBox:CaptureFocus()
inputBox.FocusLost:Connect(function(enterPressed)
if enterPressed and inputBox.Text ~= "" then
local channel = TextChatService.TextChannels and TextChatService.TextChannels:FindFirstChild("RBXGeneral")
if channel then
channel:SendAsync(inputBox.Text)
end
end
inputBox:Destroy()
end)
end)
-- Show Everyone PlayerID
local idButton = createButton("Show Everyone PlayerID")
local idLabels = {}
local showingIds = false
local function updatePlayerIds()
for _, plr in ipairs(Players:GetPlayers()) do
if plr == player then continue end
local char = plr.Character
if not char then continue end
local head = char:FindFirstChild("Head")
if not head then continue end
if idLabels[plr] then idLabels[plr]:Destroy() end
if showingIds then
local bb = Instance.new("BillboardGui")
bb.Name = "PlayerIdGui"
bb.Adornee = head
bb.Size = UDim2.new(0, 180, 0, 50)
bb.StudsOffset = Vector3.new(0, 3.2, 0)
bb.AlwaysOnTop = true
bb.Parent = head
local label = Instance.new("TextLabel")
label.Size = UDim2.new(1,0,1,0)
label.BackgroundTransparency = 1
label.Text = tostring(plr.UserId)
label.TextScaled = true
label.Font = Enum.Font.SourceSansBold
label.TextStrokeTransparency = 0.6
label.TextStrokeColor3 = Color3.new(0,0,0)
label.TextColor3 = plr.Team and plr.TeamColor.Color or Color3.new(1,1,1)
label.Parent = bb
idLabels[plr] = bb
end
end
end
idButton.MouseButton1Click:Connect(function()
showingIds = not showingIds
if showingIds then
idButton.Text = "Hide Everyone PlayerID"
idButton.BackgroundColor3 = Color3.fromRGB(0, 200, 255)
updatePlayerIds()
else
idButton.Text = "Show Everyone PlayerID"
idButton.BackgroundColor3 = Color3.fromRGB(45, 45, 45)
for _, gui in pairs(idLabels) do if gui then gui:Destroy() end end
idLabels = {}
end
end)
Players.PlayerAdded:Connect(function(plr)
plr.CharacterAdded:Connect(function()
task.delay(0.6, function()
if showingIds then updatePlayerIds() end
end)
end)
end)
Players.PlayerRemoving:Connect(function(plr)
if idLabels[plr] then
idLabels[plr]:Destroy()
idLabels[plr] = nil
end
end)
-- ╔════════════════════════════╗
-- ║ NEW FEATURE - PLAYER TRACK ║
-- ╚════════════════════════════╝
local trackButton = createButton("Player Track: OFF")
local trackingEnabled = false
local trackGuis = {}
local function updatePlayerTrack()
for _, plr in ipairs(Players:GetPlayers()) do
if plr == player then continue end
local char = plr.Character
if not char then continue end
local head = char:FindFirstChild("Head")
if not head then continue end
if trackGuis[plr] then
trackGuis[plr]:Destroy()
trackGuis[plr] = nil
end
if trackingEnabled then
local bb = Instance.new("BillboardGui")
bb.Name = "PlayerTrackDot"
bb.Adornee = head
bb.Size = UDim2.new(0, 60, 0, 60)
bb.StudsOffset = Vector3.new(0, 3.8, 0)
bb.AlwaysOnTop = true
bb.Parent = head
local txt = Instance.new("TextLabel")
txt.Size = UDim2.new(1, 0, 1, 0)
txt.BackgroundTransparency = 1
txt.Text = "•"
txt.TextScaled = true
txt.Font = Enum.Font.GothamBlack
txt.TextStrokeTransparency = 0.4
txt.TextStrokeColor3 = Color3.new(0,0,0)
txt.Parent = bb
-- Rainbow animation for the dot
local dotHue = 0
local conn
conn = RunService.Heartbeat:Connect(function(dt)
if not bb or not bb.Parent then
conn:Disconnect()
return
end
dotHue = (dotHue + dt * 1.2) % 1
txt.TextColor3 = Color3.fromHSV(dotHue, 1, 1)
end)
trackGuis[plr] = bb
end
end
end
trackButton.MouseButton1Click:Connect(function()
trackingEnabled = not trackingEnabled
if trackingEnabled then
trackButton.Text = "Player Track: ON"
trackButton.BackgroundColor3 = Color3.fromRGB(255, 100, 100)
updatePlayerTrack()
else
trackButton.Text = "Player Track: OFF"
trackButton.BackgroundColor3 = Color3.fromRGB(45, 45, 45)
for _, gui in pairs(trackGuis) do
if gui then gui:Destroy() end
end
trackGuis = {}
end
end)
-- Handle new players / respawns
Players.PlayerAdded:Connect(function(plr)
plr.CharacterAdded:Connect(function()
task.delay(0.5, function()
if trackingEnabled then
local char = plr.Character
if char then
local head = char:FindFirstChild("Head")
if head and not trackGuis[plr] then
updatePlayerTrack() -- full refresh is simpler
end
end
end
end)
end)
end)
Players.PlayerRemoving:Connect(function(plr)
if trackGuis[plr] then
trackGuis[plr]:Destroy()
trackGuis[plr] = nil
end
end)
-- Auto resize canvas
uiListLayout:GetPropertyChangedSignal("AbsoluteContentSize"):Connect(function()
scrollFrame.CanvasSize = UDim2.new(0, 0, 0, uiListLayout.AbsoluteContentSize.Y + 40)
end)
-- Hotkey to toggle menu
local menuVisible = true
UserInputService.InputBegan:Connect(function(input, gameProcessed)
if gameProcessed then return end
if input.KeyCode == Enum.KeyCode.RightShift then
menuVisible = not menuVisible
mainFrame.Visible = menuVisible
end
end)
print("Country Game’s Mod Menu Loaded! Press RIGHT SHIFT to toggle.")No comments yet for this script.



