
KeylessUniversal

-- COMMUNISM.GG - OUR GAME
-- @@@@@@@@@@@@@
-- @@@@@
-- @@@@
-- @@@@
-- @@@@@@ @@@@
-- @@@@@@@ @@@@
-- @@@@@@@ @@@@
-- @@@@@@@@ @@@@@
-- @ @@@@@@@@
-- @@@@@
-- @@@ @@@@@@@@@
-- @@@@@ @@@@@@@@@@@ @@@@@
-- @@@@@ @@
-- @@@@@@
-- @@@@@@
-- @@@@@
-- COMMUNISM.GG - THE SOVIET UNION IS COMING TO ROBLOX
local Rayfield = loadstring(game:HttpGet('https://sirius.menu/rayfield'))()
local Window = Rayfield:CreateWindow({
Name = "Communism.GG",
Icon = 0, -- Icon in Topbar. Can use Lucide Icons (string) or Roblox Image (number). 0 to use no icon (default).
LoadingTitle = "Communism.GG",
LoadingSubtitle = "OUR script",
ShowText = "Communism.GG", -- for mobile users to unhide Rayfield, change if you'd like
Theme = "AmberGlow", -- Check https://docs.sirius.menu/rayfield/configuration/themes
ToggleUIKeybind = "K", -- The keybind to toggle the UI visibility (string like "K" or Enum.KeyCode)
DisableRayfieldPrompts = false,
DisableBuildWarnings = false, -- Prevents Rayfield from emitting warnings when the script has a version mismatch with the interface.
-- ScriptID = "sid_xxxxxxxxxxxx", -- Your Script ID from developer.sirius.menu — enables analytics, managed keys, and script hosting
ConfigurationSaving = {
Enabled = true,
FolderName = nil, -- Create a custom folder for your hub/game
FileName = "Communism.GG"
},
Discord = {
Enabled = false, -- Prompt the user to join your Discord server if their executor supports it
Invite = "noinvitelink", -- The Discord invite code, do not include Discord.gg/. E.g. Discord.gg/ABCD would be ABCD
RememberJoins = true -- Set this to false to make them join the Discord every time they load it up
},
KeySystem = false, -- Set this to true to use our key system
KeySettings = {
Title = "Untitled",
Subtitle = "Key System",
Note = "No method of obtaining the key is provided", -- Use this to tell the user how to get a key
FileName = "Key", -- It is recommended to use something unique, as other scripts using Rayfield may overwrite your key file
SaveKey = true, -- The user's key will be saved, but if you change the key, they will be unable to use your script
GrabKeyFromSite = false, -- If this is true, set Key below to the RAW site you would like Rayfield to get the key from
Key = {"Hello"} -- List of keys that the system will accept, can be RAW file links (pastebin, github, etc.) or simple strings ("hello", "key22")
}
})
local MainTab = Window:CreateTab("Movement", "axis-3d")
local VisualTab = Window:CreateTab("Visual", "eye")
local UIS = game:GetService("UserInputService")
local RunService = game:GetService("RunService")
local Players = game:GetService("Players")
local player = Players.LocalPlayer
local camera = workspace.CurrentCamera
local flying = false
local speed = 50
local linearVelocity
local alignOrientation
local attachment
local flyConnection
local deathConnection
local function stopFly()
flying = false
if flyConnection then
flyConnection:Disconnect()
flyConnection = nil
end
if deathConnection then
deathConnection:Disconnect()
deathConnection = nil
end
local character = player.Character
if character then
local humanoid = character:FindFirstChild("Humanoid")
if humanoid then
humanoid.PlatformStand = false
humanoid.AutoRotate = true
end
end
if linearVelocity then
linearVelocity:Destroy()
linearVelocity = nil
end
if alignOrientation then
alignOrientation:Destroy()
alignOrientation = nil
end
if attachment then
attachment:Destroy()
attachment = nil
end
end
local function startFly()
if flying then return end
flying = true
local character = player.Character or player.CharacterAdded:Wait()
local humanoid = character:WaitForChild("Humanoid")
local rootPart = character:WaitForChild("HumanoidRootPart")
humanoid.PlatformStand = true
humanoid.AutoRotate = false
attachment = Instance.new("Attachment")
attachment.Parent = rootPart
linearVelocity = Instance.new("LinearVelocity")
linearVelocity.Attachment0 = attachment
linearVelocity.RelativeTo = Enum.ActuatorRelativeTo.World
linearVelocity.VelocityConstraintMode = Enum.VelocityConstraintMode.Vector
linearVelocity.MaxForce = math.huge
linearVelocity.Parent = rootPart
alignOrientation = Instance.new("AlignOrientation")
alignOrientation.Attachment0 = attachment
alignOrientation.Mode = Enum.OrientationAlignmentMode.OneAttachment
alignOrientation.MaxTorque = math.huge
alignOrientation.Responsiveness = 15
alignOrientation.Parent = rootPart
deathConnection = humanoid.Died:Connect(function()
stopFly()
end)
flyConnection = RunService.RenderStepped:Connect(function()
if not flying then return end
local moveDirection = Vector3.new(
(UIS:IsKeyDown(Enum.KeyCode.A) and -1 or 0) + (UIS:IsKeyDown(Enum.KeyCode.D) and 1 or 0),
(UIS:IsKeyDown(Enum.KeyCode.Space) and 1 or 0) + (UIS:IsKeyDown(Enum.KeyCode.LeftShift) and -1 or 0),
(UIS:IsKeyDown(Enum.KeyCode.W) and -1 or 0) + (UIS:IsKeyDown(Enum.KeyCode.S) and 1 or 0)
)
if moveDirection.Magnitude > 0 then
local worldDirection = camera.CFrame:VectorToWorldSpace(moveDirection)
linearVelocity.VectorVelocity = worldDirection.Unit * speed
alignOrientation.CFrame = CFrame.lookAt(
rootPart.Position,
rootPart.Position + Vector3.new(worldDirection.X, 0, worldDirection.Z)
)
else
linearVelocity.VectorVelocity = Vector3.zero
end
end)
end
-- RAYFIELD FLIGHT TOGGLE
MainTab:CreateToggle({
Name = "Flight",
CurrentValue = false,
Flag = "FlyToggle",
Callback = function(Value)
if Value then
startFly()
else
stopFly()
end
end,
})
local Players = game:GetService("Players")
local RunService = game:GetService("RunService")
local Camera = workspace.CurrentCamera
local LocalPlayer = Players.LocalPlayer
local espEnabled = false
local espCache = {}
local renderConnection
local function createESP(player)
if player == LocalPlayer then return end
local box = Drawing.new("Square")
box.Thickness = 1
box.Filled = false
box.Visible = false
local tracer = Drawing.new("Line")
tracer.Thickness = 1
tracer.Visible = false
local name = Drawing.new("Text")
name.Size = 13
name.Center = true
name.Outline = true
name.Visible = false
name.Text = player.Name
espCache[player] = {
Box = box,
Tracer = tracer,
Name = name
}
end
local function removeESP(player)
if espCache[player] then
for _, drawing in pairs(espCache[player]) do
drawing:Remove()
end
espCache[player] = nil
end
end
local function enableESP()
for _, player in ipairs(Players:GetPlayers()) do
createESP(player)
end
renderConnection = RunService.RenderStepped:Connect(function()
for player, drawings in pairs(espCache) do
local character = player.Character
local root = character and character:FindFirstChild("HumanoidRootPart")
local humanoid = character and character:FindFirstChild("Humanoid")
if character and root and humanoid and humanoid.Health > 0 then
local pos, onScreen = Camera:WorldToViewportPoint(root.Position)
if onScreen then
local scale = 1 / (pos.Z * math.tan(math.rad(Camera.FieldOfView * 0.5)) * 2) * 100
local width = math.floor(35 * scale)
local height = math.floor(55 * scale)
-- BOX
drawings.Box.Size = Vector2.new(width, height)
drawings.Box.Position = Vector2.new(
pos.X - width / 2,
pos.Y - height / 2
)
drawings.Box.Visible = true
-- TRACER
drawings.Tracer.From = Vector2.new(
Camera.ViewportSize.X / 2,
Camera.ViewportSize.Y
)
drawings.Tracer.To = Vector2.new(pos.X, pos.Y)
drawings.Tracer.Visible = true
-- NAME
drawings.Name.Position = Vector2.new(
pos.X,
pos.Y - height / 2 - 14
)
drawings.Name.Visible = true
else
drawings.Box.Visible = false
drawings.Tracer.Visible = false
drawings.Name.Visible = false
end
else
drawings.Box.Visible = false
drawings.Tracer.Visible = false
drawings.Name.Visible = false
end
end
end)
end
local function disableESP()
if renderConnection then
renderConnection:Disconnect()
renderConnection = nil
end
for player in pairs(espCache) do
removeESP(player)
end
end
Players.PlayerAdded:Connect(function(player)
if espEnabled then
createESP(player)
end
end)
Players.PlayerRemoving:Connect(function(player)
removeESP(player)
end)
-- RAYFIELD TOGGLE
VisualTab:CreateToggle({
Name = "ESP",
CurrentValue = false,
Flag = "ESPToggle",
Callback = function(Value)
espEnabled = Value
if Value then
enableESP()
else
disableESP()
end
end,
})
local Players = game:GetService("Players")
local LocalPlayer = Players.LocalPlayer
local playerList = {}
local function refreshPlayerList()
table.clear(playerList)
for _, player in ipairs(Players:GetPlayers()) do
if player ~= LocalPlayer then
table.insert(playerList, player.Name)
end
end
end
refreshPlayerList()
Players.PlayerAdded:Connect(refreshPlayerList)
Players.PlayerRemoving:Connect(refreshPlayerList)
local TeleportDropdown = MainTab:CreateDropdown({
Name = "Teleport To Player",
Options = playerList,
CurrentOption = {},
MultipleOptions = false,
Flag = "PlayerTeleportDropdown",
Callback = function(selected)
local targetName = typeof(selected) == "table" and selected[1] or selected
local target = Players:FindFirstChild(targetName)
if not target then return end
if not target.Character then return end
local targetRoot = target.Character:FindFirstChild("HumanoidRootPart")
local localCharacter = LocalPlayer.Character
if targetRoot and localCharacter then
local localRoot = localCharacter:FindFirstChild("HumanoidRootPart")
if localRoot then
localRoot.CFrame = targetRoot.CFrame + Vector3.new(0, 3, 0)
end
end
end,
})
local Divider = MainTab:CreateDivider()
-- Services
local Players = game:GetService("Players")
local RunService = game:GetService("RunService")
local LocalPlayer = Players.LocalPlayer
-- State
local targetPlayer = nil
local flingConnection = nil
local flingActive = false
local angle = 0
local function getPlayerNames()
local names = {}
for _, p in ipairs(Players:GetPlayers()) do
if p ~= LocalPlayer then
table.insert(names, p.Name)
end
end
return names
end
local function startFling()
if flingConnection then flingConnection:Disconnect() end
flingActive = true
flingConnection = RunService.Heartbeat:Connect(function(dt)
if not flingActive or not targetPlayer then return end
local targetChar = targetPlayer.Character
local localChar = LocalPlayer.Character
if not targetChar or not localChar then return end
local targetRoot = targetChar:FindFirstChild("HumanoidRootPart")
local localRoot = localChar:FindFirstChild("HumanoidRootPart")
if not targetRoot or not localRoot then return end
angle = angle + dt * 2000
local yBounce = math.sin(math.rad(angle)) * 10
local jitter = Vector3.new(
math.random(-3, 3),
yBounce,
math.random(-3, 3)
)
local randomRotation = CFrame.Angles(
math.rad(math.random(0, 360)),
math.rad(math.random(0, 360)),
math.rad(math.random(0, 360))
)
localRoot.CFrame = CFrame.new(targetRoot.Position + jitter) * randomRotation
end)
end
local function stopFling()
flingActive = false
if flingConnection then
flingConnection:Disconnect()
flingConnection = nil
end
end
local FlingToggle
local PlayerDropdown = MainTab:CreateDropdown({
Name = "Select Player",
Options = getPlayerNames(),
CurrentOption = {""},
MultipleOptions = false,
Flag = "TargetPlayer",
Callback = function(options)
local found = Players:FindFirstChild(options[1])
stopFling()
targetPlayer = nil
angle = 0
if not found or found == LocalPlayer then
if FlingToggle then FlingToggle:Set(false) end
return
end
targetPlayer = found
end,
})
FlingToggle = MainTab:CreateToggle({
Name = "Enable Fling",
CurrentValue = false,
Flag = "FlingToggle",
Callback = function(value)
if value then
if targetPlayer then
startFling()
else
FlingToggle:Set(false)
end
else
stopFling()
end
end,
})
Players.PlayerRemoving:Connect(function(p)
if p == targetPlayer then
stopFling()
targetPlayer = nil
FlingToggle:Set(false)
PlayerDropdown:Refresh(getPlayerNames())
end
end)No comments yet for this script.



