[ad_1]
Created by brianops16
Features:
--Game: https://www.roblox.com/games/1689414409/Roblox-Uno
--https://detourious.gitbook.io/project-finity/docs
if game:GetService("CoreGui"):FindFirstChild("FinityUI") then
game.CoreGui.FinityUI:Destroy()
end
local desc = [[
This auto will do everything for you, including making a lobbynToDo: Make an option for AI matches
]]
local plr = game.Players.LocalPlayer
local Finity = loadstring(game:HttpGet("https://pastebin.com/raw/x5p1kPw1"))()
local FinityWindow = Finity.new(true)
FinityWindow.ChangeToggleKey(Enum.KeyCode.Semicolon)
local CreditsCategory = FinityWindow:Category("Credits/Info")
local CreditsCreator = CreditsCategory:Sector("Finity Library Creator:")
local ScriptCredit = CreditsCategory:Sector("Cheat Credit:")
local Description = CreditsCategory:Sector("Description:")
local OC = CreditsCategory:Sector("Open Close Button:")
CreditsCreator:Cheat("Label", "detourious @ v3rmillion.net")
ScriptCredit:Cheat("Label", "brianops16 @ v3rmillion.net")
Description:Cheat("Label", desc)
local Cheats = FinityWindow:Category("Cheats")
local S1 = Cheats:Sector("Main Cheats")
local EnumKeys = {'Semicolon','Tab','Equals','Comma','Minus','Period','F1',"F2","F3","F4",'F5',"F6","F7",
"F8","F9","F10","F11","F12",'Q', 'W', 'E', 'R', 'T', 'Y', 'U', 'I', 'O', 'P', 'A', 'S', 'D', 'F', 'G', 'H',
'J', 'K', 'L', 'Z', 'X', 'C', 'V', 'B', 'N', 'M','Slash','One','Two','Three',"Four","Five","Six","Seven","Eight",
"Nine","Zero",'BackSlash','RightBracket','LeftBracket'}
OC:Cheat("Dropdown", "(Default ';')", function(Option) --Dropdowns
print('Current key: '..Option)
FinityWindow.ChangeToggleKey(Enum.KeyCode[Option])
end, {
options = EnumKeys
})
local PlayedCard = false
local Cam = game.Workspace.CurrentCamera
local ui = plr.PlayerGui.MatchMaker.MainFrame
local MinAmt = 2
S1:Cheat("Textbox", "Min amt of players needed", function(Value) --Textbox
if not pcall(function()
local Val = tonumber(Value)
if Val > 4 or Val < 2 then
MinAmt = 2
else
MinAmt = Val
end
end) then
MinAmt = 2
end
end, {
placeholder = "2 (Max 4 | Min 2)"
})
S1:Cheat("Checkbox","Auto",
function(State)
if not State then
_G.on = 0
else
_G.on = 1
while _G.on == 1 do
local g,b = pcall(function()
if #Cam.PlrData:GetChildren() == 0 then
wait(1)
game:GetService("ReplicatedStorage").MatchMaker:FireServer(false, false)
wait(1)
game:GetService("ReplicatedStorage").MatchMaker:FireServer(true, "3", "Light Blue", nil, "None", "7", {[1] = "+4 Mania",[2] = "Reverse Reverse",[3] = "Stacking",[4] = "Draw To Match"})
wait(1)
repeat wait(2) until #game.ReplicatedStorage.Matches[plr.Name].Players:GetChildren() >= MinAmt
game:GetService("ReplicatedStorage").MatchMaker:FireServer(false, false, "Start")
wait(3)
end
local Message = PlayACard()
if PlayedCard then PlayedCard = false end
if Message then
print(Message)
end
wait(1)
repeat wait(.1) until ui.YourData.Nam.PlrImage.Timer.Text ~= "" or #Cam.PlrData:GetChildren() == 0
end)
if b then print(b) end
wait()
end
end
end
)
function PlayACard()
ui = plr.PlayerGui.MatchMaker.MainFrame
local g,b = pcall(function()
local Data = Cam.PlrData
local Deck = ui.YourDeck
local Playable = {}
for i,v in pairs(Deck:GetChildren()) do
if v.SelBut.Text ~= "Can't Play" then
table.insert(Playable,v)
end
end
if #Playable < 1 then
game:GetService("ReplicatedStorage").MatchMaker:FireServer(false, "PlayCard", {[1] = "Draw",[2] = ""})
wait(.5)
repeat wait() until ui.YourData.Nam.PlrImage.Timer.Text ~= ""
game:GetService("ReplicatedStorage").MatchMaker:FireServer(false, "PlayCard", {[1] = "Play"})
wait()
local Highest = FindHighest()
local ColorNumber = {["Red"] = 1,["Yellow"] = 2,["Green"] = 3,["Blue"] = 4,["Wild"] = math.random(1,4)}
game:GetService("ReplicatedStorage").MatchMaker:FireServer(false, "PlayCard", {[1] = "ColorPick",[2] = ColorNumber[Highest]})
return
end
local CloseToUno = false
for i,v in pairs(Data:GetChildren()) do
if v.Name ~= plr.Name and v.Name ~= "Deck" then
local Counter = 0
for a,b in pairs(v:GetChildren()) do
if b:IsA("Part") then
Counter = Counter + 1
end
end
if Counter <= 4 then
CloseToUno = true
break
end
end
end
--12 = +2
--11 = skip
--13 = reverse
if not CloseToUno then
local NewPlayable = {}
for i,v in pairs(Playable) do
local Num = v.Tag.Tag
pcall(function()
if Num.Value ~= "" and tonumber(Num.Value) and tonumber(Num.Value) >= 0 and tonumber(Num.Value) <= 13 then
table.insert(NewPlayable,v)
end
end)
end
if #NewPlayable > 0 then
Playable = NewPlayable
local Highest = FindHighest()
local WillPlay = {[1] = {},[2] = {},[3] = {}} --Priority System
for i,v in pairs(Playable) do
local Color = v.Tag.Value
local Num = v.Tag.Tag.Value
local Similar = FindSimilar(Num,Color)
if Similar then
table.insert(WillPlay[3],v) --Has a similar card, will play last
elseif Num and tonumber(Num) < 10 then
table.insert(WillPlay[1],v) --Just a random 0-9 card, will play first
else
table.insert(WillPlay[2],v) --A special card, will play if there are no 0-9 cards
end
end
for i,v in pairs(WillPlay) do
if #v > 0 then
for a,b in pairs(v) do
if b.Tag.Value == Highest then
Play(b)
break
end
end
Play(v[1])
break
end
end
else
Play(Playable[1])
end
else
local WillPlay = {[1] = {},[2] = {},[3] = {},[4] = {}}
for i,v in pairs(Playable) do
local Color = v.Tag.Value
local Num = v.Tag.Tag.Value
if v then
if Color == "+4" then
table.insert(WillPlay[1],v)
break
elseif Num and Num ~= "" and tonumber(Num) == 12 then
table.insert(WillPlay[2],v)
elseif Num and Num ~= "" and tonumber(Num) > 10 then
table.insert(WillPlay[3],v)
else
table.insert(WillPlay[4],v)
end
end
end
for i,v in pairs(WillPlay) do
if #v > 0 then
Play(v[1])
end
end
end
end)
if b then
return b
end
return nil
end
function Play(Card)
if PlayedCard then return end
wait(.5)
Uno = false
if ui.Uno.Position == UDim2.new(0,0,0,0) then
Uno = true
end
if not Card then
print("Card passed through function Play was nil for some reason??? Please fix :(")
local Data = Cam.PlrData
local Deck = ui.YourDeck
local Playable = {}
for i,v in pairs(Deck:GetChildren()) do
if v.SelBut.Text ~= "Can't Play" then
table.insert(Playable,v)
end
end
Card = Playable[1]
end
PlayedCard = true
local Num = Card.Tag.Tag.Value
local Color = Card.Tag.Value
local Highest = FindHighest()
local ColorNumber = {["Red"] = 1,["Yellow"] = 2,["Green"] = 3,["Blue"] = 4,["Wild"] = math.random(1,4)}
if Color == "+4" then
game:GetService("ReplicatedStorage").MatchMaker:FireServer(false, "PlayCard", {[1] = "+4",[2] = "",[3] = Uno})
wait()
game:GetService("ReplicatedStorage").MatchMaker:FireServer(false, "PlayCard", {[1] = "ColorPick",[2] = ColorNumber[Highest]})
elseif Color == "wild" then
game:GetService("ReplicatedStorage").MatchMaker:FireServer(false, "PlayCard", {[1] = "wild",[2] = "",[3] = Uno})
wait()
game:GetService("ReplicatedStorage").MatchMaker:FireServer(false, "PlayCard", {[1] = "ColorPick",[2] = ColorNumber[Highest]})
else
if type(Num) == "number" then
Num = tostring(Num)
end
game:GetService("ReplicatedStorage").MatchMaker:FireServer(false, "PlayCard", {[1] = Color,[2] = Num,[3] = Uno})
end
end
function FindSimilar(Num,Color)
for i,v in pairs(ui.YourDeck:GetChildren()) do
if v.Tag.Value ~= Color and (v.Tag.Value == "Red" or v.Tag.Value == "Green" or v.Tag.Value == "Blue" or v.Tag.Value == "Yellow") and v.Tag.Tag.Value == Num then
return v
end
end
return nil
end
function FindHighest()
--This is done to find what the most amount of a color you would have
--This is because we want to be playing with the most amount of cards when possible
local R,G,B,Y = 0,0,0,0
local Highest,High = 0,nil
for i,v in pairs(ui.YourDeck:GetChildren()) do
if v.Tag.Value == "Red" then
R = R + 1
if R > Highest then Highest = R High = "Red" end
elseif v.Tag.Value == "Green" then
G = G + 1
if G > Highest then Highest = G High = "Green" end
elseif v.Tag.Value == "Blue" then
B = B + 1
if B > Highest then Highest = B High = "Blue" end
elseif v.Tag.Value == "Yellow" then
Y = Y + 1
if Y > Highest then Highest = Y High = "Yellow" end
end
end
if (R+G+B+Y) == 0 then
return "Wild"
else
return High
end
end
ENJOY!
Warning: DO NOT DOWNLOAD anything from this page, you’re only here to copy the script!
[ad_2]