Run it
Copy the script and paste it into your executor.
HttpService = :()
Players = :()
TeleportService = :()
StarterGui = :()
lp = Players.LocalPlayer
Cryptic = {
Config = {
UserName = , RepoName = , Branch = ,
Discord =
},
}
(path)
url = .. Cryptic.Config.UserName .. .. Cryptic.Config.RepoName .. .. Cryptic.Config.Branch .. .. path .. .. ()
s, r = (.HttpGet, , url)
s r
f = (r)
f ()
registry = ()
(registry) ==
Cryptic.MapNameMatchers = registry.NameMatchers {}
Cryptic.Maps = registry.PlaceIds {}
Cryptic.GameIds = registry.GameIds {}
Cryptic.MapNameMatchers = {}
Cryptic.Maps = {}
Cryptic.GameIds = {}
i18n = ()
i18n
i18n.()
().CrypticI18n = i18n
(() () )
(key)
i18n i18n.(key)
key
()
Cryptic.Structure = {
[] = { Icon = , Key = , Folder = , Files = {, , , , , , , , , , , , } },
[] = { Icon = , Key = , Folder = , Files = {, , , , , , , , , , , , , } },
[] = { Icon = , Key = , Folder = , Files = {, , , , , , , , , , , , , , , , } },
[] = { Icon = , Key = , Folder = , Files = {, , , } },
[] = { Icon = , Key = , Folder = , Files = {, , } },
[] = { Icon = , Key = , Folder = , Files = {, , , , , , , , , } },
[] = { Icon = , Key = , Folder = , Files = {, , , } },
}
Cryptic.TabsOrder = {
, , , , , ,
}
(id)
data = Cryptic.Structure[id]
data id
data._isMapTab data._mapData
.. data._mapData.Name
(data.Key)
(id)
data = Cryptic.Structure[id]
data
data._isMapTab
data.Icon
ElementCache = {}
(elementName)
ElementCache[elementName] ElementCache[elementName]
url = .. Cryptic.Config.UserName .. .. Cryptic.Config.RepoName .. .. Cryptic.Config.Branch .. .. elementName .. .. ()
s, r = (.HttpGet, , url)
s r
chunk = (r)
chunk
func = ()
ElementCache[elementName] = func
func
( .. elementName)
()
mapFilePath
Cryptic.MapNameMatchers
placeName
(()
placeName = :():(.PlaceId).Name
)
placeName placeName ~=
lower = .(placeName)
_, m (Cryptic.MapNameMatchers)
m.pattern m.file .(lower, m.pattern, , )
mapFilePath = m.file
mapFilePath Cryptic.Maps
mapFilePath = Cryptic.Maps[.PlaceId]
mapFilePath Cryptic.GameIds
mapFilePath = Cryptic.GameIds[.GameId]
mapFilePath
mapData = (mapFilePath .. )
(mapData) ~=
id =
Cryptic.Structure[id] = { _isMapTab = , _mapData = mapData }
.(Cryptic.TabsOrder, , id)
()
loaderURL = .(
,
Cryptic.Config.UserName, Cryptic.Config.RepoName, Cryptic.Config.Branch
)
loader = .(
,
loaderURL
)
(()
queue_on_teleport
(loader)
.queue_on_teleport
.(loader)
fluxus fluxus.queue_on_teleport
fluxus.(loader)
)
(text)
(()
StarterGui:(, {
Title = , Text = text, Duration = ,
})
)
(())
sameOk = (()
TeleportService:(.PlaceId, .JobId, lp)
)
sameOk
(())
hopOk =
(()
cursor =
_ = ,
apiUrl = .. .PlaceId
..
.. (cursor ~= ( .. cursor) )
res = :(apiUrl)
res res ==
data = HttpService:(res)
data data.data
_, srv (data.data)
srv.id ~= .JobId
(srv.playing) ==
(srv.maxPlayers) ==
srv.playing < srv.maxPlayers
ok = (()
TeleportService:(.PlaceId, srv.id, lp)
)
ok hopOk =
data.nextPageCursor data.nextPageCursor ~=
cursor = data.nextPageCursor
)
hopOk
(())
()
()
()
UI = ()
UI
MainWin = UI:( .. Cryptic.Config.Discord)
().CrypticOpenLangPicker = ()
Picker = ()
Picker i18n
Picker.(i18n, (code)
code
code == i18n.()
i18n.(code)
()
, { closable = , preselected = i18n.() })
_, tabId (Cryptic.TabsOrder)
tabData = Cryptic.Structure[tabId]
tabData
CurrentTab = MainWin:((tabId), (tabId))
elementsList = {
, , , , , , ,
, , , , ,
, , , ,
}
_, el (elementsList)
CurrentTab[ .. el] = (self, ...)
elementFunc = (el)
elementFunc (self, ...)
.((data, tab, nameOfTab)
data._isMapTab data._mapData
mapData = data._mapData
(mapData.Render) ==
(() mapData.(tab, UI) )
tab:( .. ())
MapCardFunc = ()
MapCardFunc (() (tab, mapData) )
(targetTab, folder, fileList)
i, fname (fileList)
filePath = (folder == ) (fname .. ) ( .. folder .. .. fname .. )
init = (filePath)
(init) ==
ok, result = (init, targetTab, UI)
ok result ~=
targetTab:()
nameOfTab ==
tsInit = ()
(tsInit) == (() (tab, UI) )
(title, icon)
openFunc = ()
openFunc tab
openTab = (tab, title, icon)
els = {, , , , , , , , , , , , , , }
_, el (els)
openTab[ .. el] = (self, ...)
f = (el)
f (self, ...)
openTab
spyTab = ((), )
_, fname ({, , , , , })
init = ( .. fname .. )
(init) == (() (spyTab, UI) )
funTab = ((), )
funGroup = {}
origFunToggle = funTab.AddToggle
funTab.AddToggle = (self, label, callback)
toggleObj
wrapped = (active)
active
_, other (funGroup)
other ~= toggleObj
(() other:() )
callback (active)
toggleObj = (self, label, wrapped)
toggleObj .(funGroup, toggleObj)
toggleObj
origFunLockedToggle = funTab.AddLockedToggle
funTab.AddLockedToggle = (self, label, reasonOrCb, callbackOrNil)
reason, callback
(reasonOrCb) ==
reason =
callback = reasonOrCb
reason = reasonOrCb
callback = callbackOrNil
toggleObj
wrapped = (active)
active
_, other (funGroup)
other ~= toggleObj
(() other:() )
callback (active)
toggleObj = (self, label, reason, wrapped)
toggleObj .(funGroup, toggleObj)
toggleObj
_, fname ({, , , , , , , , , })
init = ( .. fname .. )
(init) == (() (funTab, UI) )
tricksTab = ((), )
_, fname ({, , , , , })
init = ( .. fname .. )
(init) == (() (tricksTab, UI) )
nameOfTab ==
(title, icon)
openFunc = ()
openFunc tab
openTab = (tab, title, icon)
els = {, , , , , , , , , , , , , }
_, el (els)
openTab[ .. el] = (self, ...)
f = (el)
f (self, ...)
openTab
(tab, data.Folder, {, , , , , , , , , })
buildTab = ((), )
buildInit = ()
(buildInit) == (() (buildTab, UI) )
tab:()
(tab, data.Folder, data.Files)
, tabData, CurrentTab, tabId)
()
.(()
CheckInbox = ()
(CheckInbox) ==
(Cryptic.Config)
)
()
()
isGAG2 =
GAG2_PLACEIDS = { [] = }
GAG2_GAMEIDS = { [] = }
GAG2_PATTERNS = { , , }
GAG2_PLACEIDS[.PlaceId] GAG2_GAMEIDS[.GameId]
isGAG2 =
(()
name = .(:():(.PlaceId).Name )
_, p (GAG2_PATTERNS)
name:(p, , ) isGAG2 =
)
isGAG2
.(()
(() () )
)
.(()
(() () )
)
i18n
()
i18n.()
()
Picker = ()
Picker
()
Picker.(i18n, (code)
code i18n.(code)
()
, { closable = })
().CrypticHub_Loaded
Bindable = .()
Bindable.OnInvoke = (buttonText)
buttonText == () ()
(()
StarterGui:(, {
Title = () .. ,
Text = (),
Duration = ,
Button1 = (),
Button2 = (),
Callback = Bindable
})
)
().CrypticHub_Loaded =
()
Loads code from the internet. It downloads more code when it runs (loadstring + HttpGet), which can change after it was posted. From: discord.gg, raw.githubusercontent.com, games.roblox.com.
β οΈ I do not own any rights to cryptichub. Original credits go to https://scriptblox.com/script/Universal-Script-Cryptic-204798 β οΈ Cryptic hub was heavily obfuscated and i had to deobfuscate stuff all of the time, eventually i got everything deobfuscated. Nothing wrong in the source code but after i deobfuscated this link: https://raw.githubusercontent.com/OnlyCryptic/Cryptic/hm/UI/Core.lua i found 4 links with a discord webhook link protected by cloudfare: β οΈ local v3 = { OnExecute = "https://cryptic-analytics.bossekasiri2.workers.dev", OnFeature = "https://man.ahmedkasiri6.workers.dev", OnError = "https://cryptic-errors.bossekasiri2.workers.dev", OnSuggestion = "https://cryptic-suggestions.bossekasiri2.workers.dev", } β οΈ These are personal Cloudflare Workers (two accounts: bossekasiri2 and ahmedkasiri6), almost certainly relays to a Discord webhook. The data is formatted as a Discord embed with an Arabic-labeled footer ("Cryptic Hub Analytics | Version V9 Premium"), so the workers just forward your data to the dev's Discord channel. This is the standard trick to hide the actual webhook URL. This is the format used: "**Player Name:** " + username "**Player ID:** " + us

Universal