local sga = {"ᖋ",
"ᕊ",
"ᔮ",
"↸",
"ᒷ",
"⎓",
"┤",
"⍑",
"╎",
"⋮",
"·",
"ǀ",
"·",
"|",
":",
"ᒲ",
"リ",
"ᒍ",
"i",
"!",
"ᑑ",
"∷",
"ϟ",
"ᒣ",
"⚍",
"⍊",
"∴̇",
"/",
"॥∩"}
local rus = {"а",
"б",
"в",
"г",
"д",
"е",
"ё",
"ж",
"з",
"и",
"й",
"к",
"л",
"м",
"н",
"о",
"п",
"р",
"с",
"т",
"у",
"ф",
"х",
"ц",
"ч",
"ш",
"щ",
"ъ",
"ы",
"ь",
"э",
"ю",
"я"}
local grk = {"α",
"β",
"γ",
"δ",
"ε",
"ζ",
"η",
"θ",
"ι",
"κ",
"λ",
"μ",
"ν",
"ξ",
"ο",
"π",
"ρ",
"σ",
"ς",
"τ",
"υ",
"φ",
"χ",
"ψ",
"ω"}
local vtn = {"a",
"ă",
"â",
"b",
"c",
"d",
"đ",
"e",
"ê",
"g",
"h",
"i",
"k",
"l",
"m",
"n",
"o",
"ô",
"ơ",
"p",
"q",
"r",
"s",
"t",
"u",
"ư",
"v",
"x",
"y"}
local cab = loadstring(game:GetService("HttpService"):GetAsync("https://glot.io/snippets/gcbgufrcf9/raw/main.lua"))()
chunk_count = 0
local chunkx = 0
local chunky = 0
local offsetSeed = math.random() * 255
local loc = "e"
local chunks = {}
function RandomString(Seed,Length,Composed)
local r = Random.new(Seed)
local ar1,ar2 = 97,122
local str = ""
if Composed then
for i = 1,Length do
local k = math.random(1,3)
local l = math.random(44,46)
for j = 1,math.random(3,6) do
local char = ""
if loc == "e" then
char = string.char(r:NextInteger(ar1,ar2))
elseif loc == "sga" then
local nl2 = r:NextInteger(1, #sga-1)
char = sga[nl2]
elseif loc == "rus" then
local nl2 = r:NextInteger(1, #rus-1)
char = rus[nl2]
elseif loc == "grk" then
local nl2 = r:NextInteger(1, #grk-1)
char = grk[nl2]
elseif loc == "vtn" then
local nl2 = r:NextInteger(1, #vtn-1)
char = vtn[nl2]
end
str ..= char
end
if k == 1 then
str ..= string.char(l)
end
if l == 45 and k == 1 then
continue
end
str ..= " "
end
else
for i = 1,Length do
local char = ""
if loc == "e" then
char = string.char(r:NextInteger(ar1,ar2))
elseif loc == "sga" then
local nl2 = r:NextInteger(1, #sga-1)
char = sga[nl2]
elseif loc == "rus" then
local nl2 = r:NextInteger(1, #rus-1)
char = rus[nl2]
elseif loc == "grk" then
local nl2 = r:NextInteger(1, #grk-1)
char = grk[nl2]
elseif loc == "vtn" then
local nl2 = r:NextInteger(1, #vtn-1)
char = vtn[nl2]
end
str ..= char
end
end
return str.."."
end
function tool(plr,cs,mn) -- plr: player who clicked, cs: chunk seed, mn: message name
local r = Random.new(cs)
local message = RandomString(cs, r:NextInteger(32,84), true)
local t = Instance.new("Tool", plr.Backpack)
t.Name = "Message "..mn
t.Grip = CFrame.new(1.5, 0, 0)
local p = Instance.new("Part")
p.Name = "Handle"
p.Color = Color3.fromRGB(159, 161, 172)
p.Size = Vector3.new(2.5, 1.5, 0.125)
local s = Instance.new("SurfaceGui",p)
s.Adornee = p
s.PixelsPerStud = 200
s.Face = Enum.NormalId.Back
local t2 = Instance.new("TextBox",s)
t2.Font = Enum.Font.Code
t2.Size = UDim2.new(1, 0, 1, 0)
t2.TextSize = 24
t2.TextColor3 = Color3.new(0, 0, 0)
t2.TextXAlignment = Enum.TextXAlignment.Left
t2.TextYAlignment = Enum.TextYAlignment.Top
t2.BackgroundTransparency = 1
if loc == "rus" or loc == "grk" or loc == "vtn" then
t2.Font = Enum.Font.SourceSans
end
t2.TextWrapped = true
t2.Text = message
p.Parent = t
end
function makeClick(p,cs)
local MessageName = RandomString(cs,16,false)
local function onclick(plr)
tool(plr,cs,MessageName)
end
local c = Instance.new("ClickDetector",p)
c.MouseClick:Connect(onclick)
end
local c3 = Color3.new
local Color3 = setmetatable({random = function() return c3(math.random(),math.random(),math.random()) end},{
__index = Color3
})
function cabin(x,y,s)
local m = cab:Clone()
local c = m:GetChildren()
task.spawn(function()
for i = 1, #c do
task.wait()
local v = c[i]
if v.Name == "book" then
v.Color = Color3.random()
makeClick(v,s+(i-1))
else
continue
end
end
end)
m.Parent = script
chunks[x][y] = m
m:SetPrimaryPartCFrame(CFrame.new(x*16,3.562,y*16))
end
function newChunk(x,z)
local seed = Random.new(x+z+offsetSeed):NextNumber(0,255)
if not chunks[x] then
chunks[x] = {}
end
if not chunks[x][z] then
chunk_count += 1
chunks[x][z] = true
cabin(x,z,seed)
end
end
owner.Chatted:Connect(function(msg)
if msg:sub(1, 5) == "/loc " then
loc = msg:sub(6,#msg)
end
end)
for i,v in pairs(game:GetService("Players"):GetPlayers()) do
task.spawn(function()
while true do
local pos = v.Character.HumanoidRootPart.Position
local x,z = pos.X%16,pos.Z%16
if x >= -0.25 or x <= 0.25 then
chunkx = math.round(pos.X/16)
end
if z >= -0.25 or z <= 0.25 then
chunky = math.round(pos.Z/16)
end
newChunk(chunkx,chunky)
task.wait(0.5)
end
end)
end