local Players = game:GetService("Players") local UserInputService = game:GetService("UserInputService") local player = Players.LocalPlayer local playerGui = player:WaitForChild("PlayerGui") local countries = { "Afghanistan","Albania","Algeria","Andorra","Angola","Antigua and Barbuda","Argentina","Armenia","Australia","Austria","Azerbaijan", "Bahamas","Bahrain","Bangladesh","Barbados","Belarus","Belgium","Belize","Benin","Bhutan","Bolivia","Bosnia and Herzegovina","Botswana","Brazil","Brunei Darussalam","Bulgaria","Burkina Faso","Burundi","Cabo Verde","Cambodia","Cameroon","Canada","Central African Republic","Chad","Chile","China","Colombia","Comoros","Congo","Costa Rica","Cote d'Ivoire","Croatia","Cuba","Cyprus","Czechia","Democratic People's Republic of Korea","Democratic Republic of the Congo","Denmark","Djibouti","Dominica","Dominican Republic","Ecuador","Egypt","El Salvador","Equatorial Guinea","Eritrea","Estonia","Eswatini","Ethiopia","Fiji","Finland","France","Gabon","Gambia","Georgia","Germany","Ghana","Greece","Grenada","Guatemala","Guinea","Guinea-Bissau","Guyana","Haiti","Honduras","Hungary","Iceland","India","Indonesia","Iran","Iraq","Ireland","Israel","Italy","Jamaica","Japan","Jordan","Kazakhstan","Kenya","Kiribati","Kuwait","Kyrgyzstan","Lao People's Democratic Republic","Latvia","Lebanon","Lesotho","Liberia","Libya","Liechtenstein","Lithuania","Luxembourg","Madagascar","Malawi","Malaysia","Maldives","Mali","Malta","Marshall Islands","Mauritania","Mauritius","Mexico","Micronesia","Moldova","Monaco","Mongolia","Montenegro","Morocco","Mozambique","Myanmar","Namibia","Nauru","Nepal","Netherlands","New Zealand","Nicaragua","Niger","Nigeria","North Macedonia","Norway","Oman","Pakistan","Palau","Panama","Papua New Guinea","Paraguay","Peru","Philippines","Poland","Portugal","Qatar","Republic of Korea","Romania","Russian Federation","Rwanda","Saint Kitts and Nevis","Saint Lucia","Saint Vincent and the Grenadines","Samoa","San Marino","Sao Tome and Principe","Saudi Arabia","Senegal","Serbia","Seychelles","Sierra Leone","Singapore","Slovakia","Slovenia","Solomon Islands","Somalia","South Africa","South Sudan","Spain","Sri Lanka","Sudan","Suriname","Sweden","Switzerland","Syrian Arab Republic","Tajikistan","Thailand","Timor-Leste","Togo","Tonga","Trinidad and Tobago","Tunisia","Turkiye","Turkmenistan","Tuvalu","Uganda","Ukraine","United Arab Emirates","United Kingdom","United Republic of Tanzania","United States of America","Uruguay","Uzbekistan","Vanuatu","Venezuela","Viet Nam","Yemen","Zambia","Zimbabwe" } table.sort(countries) local gui = Instance.new("ScreenGui") gui.Name = "AdvancedCountryFilterGui" gui.ResetOnSpawn = false gui.IgnoreGuiInset = true gui.Parent = playerGui local main = Instance.new("Frame") main.Size = UDim2.new(0, 320, 0, 410) main.Position = UDim2.new(0.5, -160, 0.5, -205) main.BackgroundColor3 = Color3.fromRGB(28,28,32) main.BorderSizePixel = 0 main.Parent = gui Instance.new("UICorner", main).CornerRadius = UDim.new(0,14) local stroke = Instance.new("UIStroke") stroke.Thickness = 1 stroke.Color = Color3.fromRGB(70,70,80) stroke.Parent = main local header = Instance.new("Frame") header.Size = UDim2.new(1,0,0,48) header.BackgroundColor3 = Color3.fromRGB(35,35,40) header.BorderSizePixel = 0 header.Parent = main Instance.new("UICorner", header).CornerRadius = UDim.new(0,14) local fix = Instance.new("Frame") fix.Size = UDim2.new(1,0,0,14) fix.Position = UDim2.new(0,0,1,-14) fix.BackgroundColor3 = header.BackgroundColor3 fix.BorderSizePixel = 0 fix.Parent = header local title = Instance.new("TextLabel") title.Size = UDim2.new(1,-120,0,18) title.Position = UDim2.new(0,12,0,4) title.BackgroundTransparency = 1 title.Font = Enum.Font.GothamBold title.Text = "Country Filter" title.TextSize = 16 title.TextColor3 = Color3.new(1,1,1) title.TextXAlignment = Enum.TextXAlignment.Left title.Parent = header local madeBy = Instance.new("TextLabel") madeBy.Size = UDim2.new(1,-120,0,14) madeBy.Position = UDim2.new(0,12,0,24) madeBy.BackgroundTransparency = 1 madeBy.Font = Enum.Font.Gotham madeBy.Text = "made by exblaze12" madeBy.TextSize = 10 madeBy.TextColor3 = Color3.fromRGB(170,170,170) madeBy.TextXAlignment = Enum.TextXAlignment.Left madeBy.Parent = header local minimize = Instance.new("TextButton") minimize.Size = UDim2.new(0,36,0,28) minimize.Position = UDim2.new(1,-80,0,10) minimize.BackgroundColor3 = Color3.fromRGB(50,50,58) minimize.Text = "—" minimize.Font = Enum.Font.GothamBold minimize.TextSize = 18 minimize.TextColor3 = Color3.new(1,1,1) minimize.BorderSizePixel = 0 minimize.Parent = header Instance.new("UICorner", minimize).CornerRadius = UDim.new(0,8) local close = Instance.new("TextButton") close.Size = UDim2.new(0,36,0,28) close.Position = UDim2.new(1,-40,0,10) close.BackgroundColor3 = Color3.fromRGB(90,40,40) close.Text = "X" close.Font = Enum.Font.GothamBold close.TextSize = 16 close.TextColor3 = Color3.new(1,1,1) close.BorderSizePixel = 0 close.Parent = header Instance.new("UICorner", close).CornerRadius = UDim.new(0,8) local body = Instance.new("Frame") body.Size = UDim2.new(1,0,1,-48) body.Position = UDim2.new(0,0,0,48) body.BackgroundTransparency = 1 body.Parent = main local function createLabel(text,y) local lbl = Instance.new("TextLabel") lbl.Size = UDim2.new(1,-24,0,18) lbl.Position = UDim2.new(0,12,0,y) lbl.BackgroundTransparency = 1 lbl.Font = Enum.Font.Gotham lbl.TextSize = 13 lbl.TextXAlignment = Enum.TextXAlignment.Left lbl.TextColor3 = Color3.fromRGB(210,210,210) lbl.Text = text lbl.Parent = body end local function createBox(placeholder,y) local box = Instance.new("TextBox") box.Size = UDim2.new(1,-24,0,34) box.Position = UDim2.new(0,12,0,y) box.BackgroundColor3 = Color3.fromRGB(42,42,48) box.BorderSizePixel = 0 box.ClearTextOnFocus = false box.Font = Enum.Font.Gotham box.PlaceholderText = placeholder box.PlaceholderColor3 = Color3.fromRGB(170,170,170) box.Text = "" box.TextSize = 14 box.TextColor3 = Color3.new(1,1,1) box.Parent = body Instance.new("UICorner", box).CornerRadius = UDim.new(0,10) return box end createLabel("Include letters",8) local includeBox = createBox("Example: uxl",26) createLabel("Exclude letters",66) local excludeBox = createBox("Example: a",84) createLabel("Letter count",124) local lengthBox = createBox("Example: 4",142) local info = Instance.new("TextLabel") info.Size = UDim2.new(1,-24,0,20) info.Position = UDim2.new(0,12,0,180) info.BackgroundTransparency = 1 info.Font = Enum.Font.Gotham info.TextSize = 12 info.TextXAlignment = Enum.TextXAlignment.Left info.TextColor3 = Color3.fromRGB(200,200,200) info.Text = "Showing all countries" info.Parent = body local listFrame = Instance.new("ScrollingFrame") listFrame.Size = UDim2.new(1,-24,1,-204) listFrame.Position = UDim2.new(0,12,0,200) listFrame.BackgroundColor3 = Color3.fromRGB(22,22,26) listFrame.BorderSizePixel = 0 listFrame.ScrollBarThickness = 6 listFrame.CanvasSize = UDim2.new(0,0,0,0) listFrame.Parent = body Instance.new("UICorner", listFrame).CornerRadius = UDim.new(0,10) local layout = Instance.new("UIListLayout") layout.Padding = UDim.new(0,6) layout.Parent = listFrame local padding = Instance.new("UIPadding") padding.PaddingTop = UDim.new(0,10) padding.PaddingBottom = UDim.new(0,10) padding.PaddingLeft = UDim.new(0,10) padding.PaddingRight = UDim.new(0,10) padding.Parent = listFrame local function normalize(str) str = string.lower(str or "") local result = "" for i = 1,#str do local c = str:sub(i,i) if c:match("%a") then result ..= c end end return result end local function counts(str) local t = {} str = normalize(str) for i = 1,#str do local c = str:sub(i,i) t[c] = (t[c] or 0) + 1 end return t end local function letterCount(str) return #normalize(str) end local function render() for _,v in ipairs(listFrame:GetChildren()) do if v:IsA("TextLabel") then v:Destroy() end end local include = counts(includeBox.Text) local exclude = counts(excludeBox.Text) local wantedLength = tonumber(lengthBox.Text) local results = {} for _,country in ipairs(countries) do local valid = true local cCounts = counts(country) for l,n in pairs(include) do if (cCounts[l] or 0) < n then valid = false end end for l in pairs(exclude) do if (cCounts[l] or 0) > 0 then valid = false end end if wantedLength and letterCount(country) ~= wantedLength then valid = false end if valid then table.insert(results,country) end end info.Text = "Showing "..#results.." countries" for _,country in ipairs(results) do local lbl = Instance.new("TextLabel") lbl.Size = UDim2.new(1,0,0,24) lbl.BackgroundTransparency = 1 lbl.Font = Enum.Font.Gotham lbl.TextSize = 14 lbl.TextColor3 = Color3.new(1,1,1) lbl.TextXAlignment = Enum.TextXAlignment.Left lbl.Text = "• "..country lbl.Parent = listFrame end task.wait() listFrame.CanvasSize = UDim2.new(0,0,0,layout.AbsoluteContentSize.Y + 20) end includeBox:GetPropertyChangedSignal("Text"):Connect(render) excludeBox:GetPropertyChangedSignal("Text"):Connect(render) lengthBox:GetPropertyChangedSignal("Text"):Connect(render) local minimized = false minimize.MouseButton1Click:Connect(function() minimized = not minimized body.Visible = not minimized main.Size = minimized and UDim2.new(0,320,0,48) or UDim2.new(0,320,0,410) end) close.MouseButton1Click:Connect(function() gui:Destroy() end) local dragging = false local dragStart local startPos local function update(input) local delta = input.Position - dragStart main.Position = UDim2.new( startPos.X.Scale, startPos.X.Offset + delta.X, startPos.Y.Scale, startPos.Y.Offset + delta.Y ) end header.InputBegan:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then dragging = true dragStart = input.Position startPos = main.Position input.Changed:Connect(function() if input.UserInputState == Enum.UserInputState.End then dragging = false end end) end end) UserInputService.InputChanged:Connect(function(input) if dragging and (input.UserInputType == Enum.UserInputType.MouseMovement or input.UserInputType == Enum.UserInputType.Touch) then update(input) end end) render()