-- [[ Rscripts Risk Notice ]] -- This script is not verified by rscripts.net. Deal with caution. -- -- Stay safe: -- • Never log in on unofficial Roblox sites or lookalike domains. -- • Real Roblox links use roblox.com (check the .com ending). -- • Treat fake Roblox login / "claim reward" pages as phishing. -- [[ End Rscripts Risk Notice ]] local Players = game:GetService("Players") local ReplicatedStorage = game:GetService("ReplicatedStorage") local UserInputService = game:GetService("UserInputService") local player = Players.LocalPlayer local playerGui = player:WaitForChild("PlayerGui") local Event = ReplicatedStorage:WaitForChild("Requests"):WaitForChild("RequestPreparationToSpawn") local EquipmentEvent = ReplicatedStorage:WaitForChild("Requests"):WaitForChild("RequestEquipmentSelectionGUI") local EQUIPOS = { ["French Empire"] = "1eRdI", ["French Republic"] = "16eDBdB", ["Spanish Empire"] = "RdIC", ["Brunswick Ducal Corps"] = "1.LB", ["Kingdom of Westphalia"] = "1.IR", ["Netherlands"] = "1.BI", ["Austrian Empire"] = "IRn1", ["Russian Empire"] = "PPP", ["Duchy of Nassau"] = "1.IR", ["Kingdom of Prussia"] = "8.IR", ["Prussia"] = "8.IR", ["United Kingdom"] = "1stRoF", ["Duchy of Warsaw"] = "1.PP", ["Bavaria"] = "1.IR", } local HISTORICOS = { { nombre = "Napoleon - Revolution", team = "French Republic", faction = "Infantry", regimiento = "16eDBdB", rango = "Officer", accesorio = "Smile", tono = "SkinTone1", pelo = "Long Hair" }, { nombre = "Napoleon - French Empire", team = "French Empire", faction = "Infantry", regimiento = "MdlG", rango = "Officer", accesorio = "Scarred", tono = "SkinTone4", pelo = "Dark Haired" }, { nombre = "El Empecinado", team = "Spanish Empire", faction = "Militia", regimiento = "TV", rango = "Ranker", accesorio = "Stubble", tono = "SkinTone1", pelo = "El Empecinado" }, { nombre = "Blucher", team = "Kingdom of Prussia", faction = "Militia", regimiento = "LF", rango = "Officer", accesorio = "Old Scars", tono = "SkinTone1", pelo = "Bismarck" }, { nombre = "Major General August von Kruse", team = "Duchy of Nassau", faction = "Infantry", regimiento = "2.IR", rango = "Officer", accesorio = "One-eyed", tono = "SkinTone2", pelo = "Fu Manchu" }, { nombre = "Duke of Wellington", team = "United Kingdom", faction = "Infantry", regimiento = "57thRoF", rango = "Officer", accesorio = "Old Scars", tono = "SkinTone1", pelo = "Sharpe" }, } local COSMETICOS = { "None", "Stubble", "Black Eye", "Freckles", "Monocle", "Eyepatch", "Spectacles", "Scarred", "Old Scars", "Flower", "Earrings", "Bushy Brows", "One-eyed", "Burnt", "Smile", "Farmer", "Bandages", "Muddy" } local PELO = { "Brown Haired", "Dark Haired", "Fair Haired", "Grey Haired", "Red Haired", "Auburn Haired", "Old Man", "Long Hair", "Ponytail", "English", "Horseshoe", "Chin Puff", "Beard", "Handlebar", "Franz Josef", "French Fork", "Dali", "Full Beard", "Napoleon III", "Curly", "Dutch", "Fancy", "Pancho Villa", "Scarred", "Droopy", "Souvarov", "Professor", "Long Chin", "Ginger Beard", "Braided Beard", "Flaxen Beard", "Auburn Beard", "Mutton Chops", "Darwin", "Pencil", "Golden Stash", "Orange Stash", "Circle", "Blucher", "Poniatowski", "El Empecinado", "Sharpe", "Braid", "Black Bun", "Golden Locks", "Bald", "Curtain", "Fu Manchu", "Ney", "William II", "Bismarck", "Twirl", "George III", "Alexander I", "Anchor", "Jourdan", "Colonel", "Sparrow", "Blake y Joyes", "Walrus" } local TONOS = { "SkinTone1", "SkinTone2", "SkinTone3", "SkinTone4", "SkinTone5", "SkinTone6", "SkinTone7", "SkinTone8" } local seleccion = { accesorio = "None", pelo = "Brown Haired", tono = "SkinTone3" } local function crear(className, properties, parent) local objeto = Instance.new(className) for propiedad, valor in pairs(properties) do objeto[propiedad] = valor end objeto.Parent = parent return objeto end local function redondear(objeto, radio) crear("UICorner", { CornerRadius = UDim.new(0, radio) }, objeto) end local function boton(parent, texto, posicion, tamano) local b = crear("TextButton", { Size = tamano, Position = posicion, BackgroundColor3 = Color3.fromRGB(45, 45, 45), TextColor3 = Color3.fromRGB(255, 255, 255), Text = texto, TextScaled = true, Font = Enum.Font.GothamBold, BorderSizePixel = 0, AutoButtonColor = true }, parent) redondear(b, 8) return b end local function etiqueta(parent, texto, posicion, tamano) return crear("TextLabel", { Size = tamano, Position = posicion, BackgroundTransparency = 1, TextColor3 = Color3.fromRGB(255, 255, 255), Text = texto, TextScaled = true, Font = Enum.Font.GothamBold, TextXAlignment = Enum.TextXAlignment.Left }, parent) end local gui = crear("ScreenGui", { Name = "SelectorCosmeticos", ResetOnSpawn = false, ZIndexBehavior = Enum.ZIndexBehavior.Sibling }, playerGui) local toggle = boton( gui, "☰ APARIENCIA", UDim2.new(0, 15, 0.5, -25), UDim2.new(0, 170, 0, 45) ) -- Solo el botón principal se puede mover. local moviendo = false local entradaInicial local posicionInicial toggle.InputBegan:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then moviendo = true entradaInicial = input.Position posicionInicial = toggle.Position end end) UserInputService.InputChanged:Connect(function(input) if moviendo and ( input.UserInputType == Enum.UserInputType.MouseMovement or input.UserInputType == Enum.UserInputType.Touch ) then local delta = input.Position - entradaInicial toggle.Position = UDim2.new( posicionInicial.X.Scale, posicionInicial.X.Offset + delta.X, posicionInicial.Y.Scale, posicionInicial.Y.Offset + delta.Y ) end end) UserInputService.InputEnded:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then moviendo = false end end) -- BOTÓN DE IDIOMAS local idiomas = { {nombre = "Español", bandera = "🇪🇸"}, {nombre = "English", bandera = "🇺🇸"}, {nombre = "Português", bandera = "🇵🇹"}, {nombre = "Русский", bandera = "🇷🇺"}, {nombre = "中文", bandera = "🇨🇳"} } local idiomaActual = idiomas[1] local idiomasBoton = boton( gui, idiomaActual.bandera .. " " .. idiomaActual.nombre .. " ▼", UDim2.new(0, 15, 0.5, 30), UDim2.new(0, 170, 0, 38) ) idiomasBoton.BackgroundColor3 = Color3.fromRGB(35, 35, 35) idiomasBoton.ZIndex = 10 idiomasBoton.Draggable = true local idiomasPanel = crear("Frame", { Name = "MenuIdiomas", Size = UDim2.new(0, 200, 0, 225), Position = UDim2.new(0, 15, 0.5, 73), BackgroundColor3 = Color3.fromRGB(25, 25, 25), BorderSizePixel = 0, Visible = false, ZIndex = 10 }, gui) redondear(idiomasPanel, 10) crear("TextLabel", { Size = UDim2.new(1, -10, 0, 32), Position = UDim2.new(0, 5, 0, 3), BackgroundTransparency = 1, Text = "🌐 IDIOMAS", TextColor3 = Color3.fromRGB(255, 255, 255), TextScaled = true, Font = Enum.Font.GothamBold, ZIndex = 11 }, idiomasPanel) for i, idioma in ipairs(idiomas) do local opcion = boton( idiomasPanel, idioma.bandera .. " " .. idioma.nombre, UDim2.new(0, 8, 0, 38 + (i - 1) * 35), UDim2.new(1, -16, 0, 30) ) opcion.ZIndex = 11 opcion.MouseButton1Click:Connect(function() idiomaActual = idioma idiomasBoton.Text = idioma.bandera .. " " .. idioma.nombre .. " ▼" idiomasPanel.Visible = false end) end idiomasBoton.MouseButton1Click:Connect(function() idiomasPanel.Visible = not idiomasPanel.Visible end) -- PANEL PRINCIPAL A LA IZQUIERDA local panel = crear("Frame", { Name = "PanelPrincipal", Size = UDim2.new(0, 370, 0, 430), Position = UDim2.new(0, 195, 0.5, -215), BackgroundColor3 = Color3.fromRGB(25, 25, 25), BorderSizePixel = 0, Visible = false }, gui) redondear(panel, 12) etiqueta( panel, "SELECTOR DE APARIENCIA", UDim2.new(0, 15, 0, 10), UDim2.new(1, -60, 0, 35) ) local cerrar = boton( panel, "X", UDim2.new(1, -42, 0, 8), UDim2.new(0, 32, 0, 32) ) cerrar.BackgroundColor3 = Color3.fromRGB(140, 35, 35) local historicosBoton = boton( panel, "PERSONAJES HISTÓRICOS", UDim2.new(0, 15, 0, 55), UDim2.new(1, -30, 0, 38) ) local contenido = crear("ScrollingFrame", { Name = "Contenido", Size = UDim2.new(1, -20, 1, -155), Position = UDim2.new(0, 10, 0, 105), BackgroundColor3 = Color3.fromRGB(32, 32, 32), BorderSizePixel = 0, ScrollBarThickness = 6, CanvasSize = UDim2.new(0, 0, 0, 0), AutomaticCanvasSize = Enum.AutomaticSize.Y }, panel) redondear(contenido, 8) crear("UIListLayout", { Padding = UDim.new(0, 8), SortOrder = Enum.SortOrder.LayoutOrder }, contenido) local function crearSelector(nombre, lista, clave) local seccion = crear("Frame", { Size = UDim2.new(1, -10, 0, 100), BackgroundColor3 = Color3.fromRGB(42, 42, 42), BorderSizePixel = 0 }, contenido) redondear(seccion, 8) etiqueta( seccion, nombre .. ": " .. tostring(seleccion[clave]), UDim2.new(0, 10, 0, 5), UDim2.new(1, -20, 0, 25) ) local anterior = boton( seccion, "◀", UDim2.new(0, 8, 0, 38), UDim2.new(0, 40, 0, 35) ) local siguiente = boton( seccion, "▶", UDim2.new(1, -48, 0, 38), UDim2.new(0, 40, 0, 35) ) local valor = crear("TextLabel", { Size = UDim2.new(1, -105, 0, 35), Position = UDim2.new(0, 52, 0, 38), BackgroundTransparency = 1, Text = tostring(seleccion[clave]), TextColor3 = Color3.fromRGB(255, 255, 255), TextScaled = true, Font = Enum.Font.Gotham }, seccion) local indice = table.find(lista, seleccion[clave]) or 1 local function actualizar() seleccion[clave] = lista[indice] valor.Text = tostring(lista[indice]) seccion:FindFirstChildOfClass("TextLabel").Text = nombre .. ": " .. tostring(lista[indice]) end anterior.MouseButton1Click:Connect(function() indice -= 1 if indice < 1 then indice = #lista end actualizar() end) siguiente.MouseButton1Click:Connect(function() indice += 1 if indice > #lista then indice = 1 end actualizar() end) end crearSelector("Accesorio", COSMETICOS, "accesorio") crearSelector("Pelo / Barba", PELO, "pelo") crearSelector("Tono de piel", TONOS, "tono") local ejecutar = boton( panel, "APLICAR APARIENCIA", UDim2.new(0, 15, 1, -43), UDim2.new(1, -30, 0, 32) ) ejecutar.BackgroundColor3 = Color3.fromRGB(35, 105, 55) ejecutar.MouseButton1Click:Connect(function() local equipo = player.Team if not equipo then warn("Debes estar en un equipo.") return end local regimiento = EQUIPOS[equipo.Name] if not regimiento then warn("No hay un regimiento configurado para: " .. equipo.Name) return end Event:FireServer( "Infantry", regimiento, "Ranker", { Accessory = seleccion.accesorio, SkinTone = seleccion.tono, Hair = seleccion.pelo } ) end) -- MENÚ DE PERSONAJES HISTÓRICOS local historicosPanel = crear("Frame", { Name = "MenuHistoricos", Size = UDim2.new(0, 340, 0, 350), Position = UDim2.new(0, 195, 0.5, -175), BackgroundColor3 = Color3.fromRGB(25, 25, 25), BorderSizePixel = 0, Visible = false }, gui) redondear(historicosPanel, 12) etiqueta( historicosPanel, "PERSONAJES HISTÓRICOS", UDim2.new(0, 12, 0, 10), UDim2.new(1, -55, 0, 32) ) local cerrarHistoricos = boton( historicosPanel, "X", UDim2.new(1, -42, 0, 8), UDim2.new(0, 30, 0, 30) ) cerrarHistoricos.BackgroundColor3 = Color3.fromRGB(140, 35, 35) local listaHistoricos = crear("ScrollingFrame", { Name = "ListaHistoricos", Size = UDim2.new(1, -20, 1, -60), Position = UDim2.new(0, 10, 0, 48), BackgroundColor3 = Color3.fromRGB(32, 32, 32), BorderSizePixel = 0, ScrollBarThickness = 6, CanvasSize = UDim2.new(0, 0, 0, 0), AutomaticCanvasSize = Enum.AutomaticSize.Y }, historicosPanel) redondear(listaHistoricos, 8) crear("UIListLayout", { Padding = UDim.new(0, 7), SortOrder = Enum.SortOrder.LayoutOrder }, listaHistoricos) for _, personaje in ipairs(HISTORICOS) do local tarjeta = crear("Frame", { Name = "Tarjeta_" .. personaje.nombre, Size = UDim2.new(1, -12, 0, 58), BackgroundColor3 = Color3.fromRGB(45, 45, 45), BorderSizePixel = 0 }, listaHistoricos) redondear(tarjeta, 8) local personajeBoton = crear("TextButton", { Name = "SeleccionarPersonaje", Size = UDim2.new(1, -12, 0, 30), Position = UDim2.new(0, 6, 0, 2), BackgroundTransparency = 1, Text = personaje.nombre, TextColor3 = Color3.fromRGB(255, 255, 255), TextScaled = true, Font = Enum.Font.GothamBold, BorderSizePixel = 0, AutoButtonColor = true }, tarjeta) crear("TextLabel", { Name = "EquipoDelPersonaje", Size = UDim2.new(1, -12, 0, 20), Position = UDim2.new(0, 6, 0, 33), BackgroundTransparency = 1, Text = "Team: " .. personaje.team, TextColor3 = Color3.fromRGB(180, 210, 255), TextScaled = true, Font = Enum.Font.Gotham, TextXAlignment = Enum.TextXAlignment.Left }, tarjeta) personajeBoton.MouseButton1Click:Connect(function() if not player.Team or player.Team.Name ~= personaje.team then warn("Debes estar en el equipo: " .. personaje.team) return end Event:FireServer( personaje.faction, personaje.regimiento, personaje.rango, { Accessory = personaje.accesorio, SkinTone = personaje.tono, Hair = personaje.pelo } ) historicosPanel.Visible = false end) end -- ABRIR Y CERRAR MENÚS toggle.MouseButton1Click:Connect(function() panel.Visible = not panel.Visible if panel.Visible then historicosPanel.Visible = false idiomasPanel.Visible = false end end) cerrar.MouseButton1Click:Connect(function() panel.Visible = false idiomasPanel.Visible = false end) historicosBoton.MouseButton1Click:Connect(function() panel.Visible = false idiomasPanel.Visible = false historicosPanel.Visible = true end) cerrarHistoricos.MouseButton1Click:Connect(function() historicosPanel.Visible = false end)