local Players = game:GetService("Players") local MarketplaceService = game:GetService("MarketplaceService") local UserInputService = game:GetService("UserInputService") local GroupService = game:GetService("GroupService") local player = Players.LocalPlayer --================================================== -- INFORMACIÓN DEL JUEGO --================================================== local placeId = game.PlaceId local success, info = pcall(function() return MarketplaceService:GetProductInfo(placeId) end) if not success or not info then warn("No se pudo obtener la información del juego.") return end local gameName = info.Name or "Desconocido" local creatorName = "Desconocido" local creatorId = "Desconocido" local communityName = "Desconocido" --================================================== -- DETECTAR CREADOR / COMUNIDAD --================================================== if game.CreatorType == Enum.CreatorType.Group then -- En un juego de comunidad, CreatorId es el ID de la comunidad local groupId = game.CreatorId -- Nombre de la comunidad if info.Creator then communityName = info.Creator.Name or "Desconocido" end -- Intentar obtener información de la comunidad local groupSuccess, groupInfo = pcall(function() return GroupService:GetGroupInfoAsync(groupId) end) if groupSuccess and groupInfo then -- Obtener el propietario de la comunidad if groupInfo.Owner then local ownerId = groupInfo.Owner.Id if ownerId then creatorId = tostring(ownerId) -- Obtener el nombre del propietario local nameSuccess, ownerName = pcall(function() return Players:GetNameFromUserIdAsync(ownerId) end) if nameSuccess and ownerName then creatorName = ownerName else -- Intento alternativo creatorName = groupInfo.Owner.Name or "Desconocido" end end end end elseif game.CreatorType == Enum.CreatorType.User then -- Juego creado directamente por un usuario creatorId = tostring(game.CreatorId) local nameSuccess, ownerName = pcall(function() return Players:GetNameFromUserIdAsync(game.CreatorId) end) if nameSuccess and ownerName then creatorName = ownerName elseif info.Creator then creatorName = info.Creator.Name or "Desconocido" end end --================================================== -- IDIOMAS --================================================== local languages = { { flag = "🇪🇸", name = "Español", message = [[ Hola %PLAYER% 👋 Te voy a enseñar cómo copiar el nombre del juego que está jugando y también el nombre del creador si es que lo necesitas y también los IDs. También te voy a enseñar cómo cambiarle de idioma a tu GUI. Habrá una pequeña ventana en la parte de arriba con una bandera. Le das click hasta encontrar tu idioma y listo. Y si en algunos juegos no aparece traducido es que el juego no tiene configurada una opción para traducirlo. Al terminar de leerlo solamente presiona el botón ¡Ok! :D]], ok = "¡Ok!", game = "🎮 Juego: ", creator = "👤 Creador: ", creatorId = "🆔 Creador ID: ", community = "👥 Comunidad: ", placeId = "🆔 Juego ID: ", players = "👥 Jugadores: ", title = "🎮 GAME INFO. :D", messageTitle = "Mensaje." }, { flag = "🇺🇸", name = "English", message = [[ Hello %PLAYER% 👋 I'm going to show you how to copy the name of the game you are playing and also the creator's name if you need it, as well as the IDs. I'm also going to show you how to change the language of your GUI. There will be a small window at the top with a flag. Click it until you find your language and that's it. If some games are not translated, it is because the game does not have a translation option configured. When you finish reading, just press the OK button :D]], ok = "OK!", game = "🎮 Game: ", creator = "👤 Creator: ", creatorId = "🆔 Creator ID: ", community = "👥 Community: ", placeId = "🆔 Game ID: ", players = "👥 Players: ", title = "🎮 GAME INFO. :D", messageTitle = "Message." }, { flag = "🇧🇷", name = "Português", message = [[ Olá %PLAYER% 👋 Vou mostrar como copiar o nome do jogo que você está jogando e também o nome do criador, caso você precise, além dos IDs. Também vou mostrar como mudar o idioma da sua GUI. Haverá uma pequena janela na parte superior com uma bandeira. Clique nela até encontrar seu idioma e pronto. Se alguns jogos não aparecerem traduzidos, é porque o jogo não tem uma opção de tradução configurada. Quando terminar de ler, basta pressionar o botão OK :D]], ok = "OK!", game = "🎮 Jogo: ", creator = "👤 Criador: ", creatorId = "🆔 ID do Criador: ", community = "👥 Comunidade: ", placeId = "🆔 ID do Jogo: ", players = "👥 Jogadores: ", title = "🎮 GAME INFO. :D", messageTitle = "Mensagem." }, { flag = "🇫🇷", name = "Français", message = [[ Bonjour %PLAYER% 👋 Je vais vous montrer comment copier le nom du jeu auquel vous jouez et aussi le nom du créateur si vous en avez besoin, ainsi que les IDs. Je vais également vous montrer comment changer la langue de votre GUI. Une petite fenêtre avec un drapeau se trouvera en haut. Cliquez dessus jusqu'à trouver votre langue et voilà. Si certains jeux ne sont pas traduits, c'est parce que le jeu n'a pas configuré d'option de traduction. Lorsque vous avez terminé de lire, appuyez simplement sur le bouton OK :D]], ok = "OK !", game = "🎮 Jeu : ", creator = "👤 Créateur : ", creatorId = "🆔 ID du créateur : ", community = "👥 Communauté : ", placeId = "🆔 ID du jeu : ", players = "👥 Joueurs : ", title = "🎮 GAME INFO. :D", messageTitle = "Message." }, { flag = "🇩🇪", name = "Deutsch", message = [[ Hallo %PLAYER% 👋 Ich zeige dir, wie du den Namen des Spiels, das du spielst, und bei Bedarf auch den Namen des Erstellers sowie die IDs kopieren kannst. Ich zeige dir außerdem, wie du die Sprache deiner GUI ändern kannst. Oben befindet sich ein kleines Fenster mit einer Flagge. Klicke darauf, bis du deine Sprache gefunden hast. Wenn einige Spiele nicht übersetzt werden, bedeutet das, dass das Spiel keine Übersetzungsoption eingerichtet hat. Wenn du mit dem Lesen fertig bist, drücke einfach die OK-Taste :D]], ok = "OK!", game = "🎮 Spiel: ", creator = "👤 Ersteller: ", creatorId = "🆔 Ersteller-ID: ", community = "👥 Community: ", placeId = "🆔 Spiel-ID: ", players = "👥 Spieler: ", title = "🎮 GAME INFO. :D", messageTitle = "Nachricht." } } local languageIndex = 1 --================================================== -- ESTADO DEL MENSAJE --================================================== local messageFinished = false --================================================== -- GUI --================================================== local gui = Instance.new("ScreenGui") gui.Name = "GameInfoGUI" gui.ResetOnSpawn = false gui.Parent = player:WaitForChild("PlayerGui") local frame = Instance.new("Frame") frame.Name = "Main" frame.Size = UDim2.new(0, 330, 0, 250) frame.Position = UDim2.new(0.5, -165, 0.5, -125) frame.BackgroundColor3 = Color3.fromRGB(25, 25, 25) frame.BorderSizePixel = 0 frame.Active = true frame.Parent = gui local frameCorner = Instance.new("UICorner") frameCorner.CornerRadius = UDim.new(0, 9) frameCorner.Parent = frame --================================================== -- TÍTULO --================================================== local title = Instance.new("TextLabel") title.Size = UDim2.new(1, -140, 0, 36) title.Position = UDim2.new(0, 10, 0, 3) title.BackgroundTransparency = 1 title.Text = "Mensaje." title.TextColor3 = Color3.fromRGB(255, 255, 255) title.TextSize = 17 title.Font = Enum.Font.GothamBold title.TextXAlignment = Enum.TextXAlignment.Left title.Parent = frame --================================================== -- BOTÓN DE IDIOMA --================================================== local languageButton = Instance.new("TextButton") languageButton.Size = UDim2.new(0, 32, 0, 30) languageButton.Position = UDim2.new(1, -109, 0, 6) languageButton.BackgroundColor3 = Color3.fromRGB(55, 55, 55) languageButton.Text = languages[languageIndex].flag languageButton.TextColor3 = Color3.fromRGB(255, 255, 255) languageButton.TextSize = 17 languageButton.Font = Enum.Font.GothamBold languageButton.Parent = frame local languageCorner = Instance.new("UICorner") languageCorner.CornerRadius = UDim.new(0, 6) languageCorner.Parent = languageButton --================================================== -- BOTÓN MINIMIZAR --================================================== local minimize = Instance.new("TextButton") minimize.Size = UDim2.new(0, 32, 0, 30) minimize.Position = UDim2.new(1, -73, 0, 6) minimize.BackgroundColor3 = Color3.fromRGB(190, 50, 50) minimize.Text = "➖" minimize.TextColor3 = Color3.fromRGB(255, 255, 255) minimize.TextSize = 16 minimize.Font = Enum.Font.GothamBold minimize.Parent = frame local minCorner = Instance.new("UICorner") minCorner.CornerRadius = UDim.new(0, 6) minCorner.Parent = minimize --================================================== -- BOTÓN CERRAR --================================================== local close = Instance.new("TextButton") close.Size = UDim2.new(0, 32, 0, 30) close.Position = UDim2.new(1, -37, 0, 6) close.BackgroundColor3 = Color3.fromRGB(75, 75, 75) close.Text = "✕" close.TextColor3 = Color3.fromRGB(255, 255, 255) close.TextSize = 16 close.Font = Enum.Font.GothamBold close.Parent = frame local closeCorner = Instance.new("UICorner") closeCorner.CornerRadius = UDim.new(0, 6) closeCorner.Parent = close --================================================== -- MENSAJE DESPLAZABLE --================================================== local messageBox = Instance.new("ScrollingFrame") messageBox.Name = "MessageBox" messageBox.Size = UDim2.new(1, -20, 0, 155) messageBox.Position = UDim2.new(0, 10, 0, 43) messageBox.BackgroundColor3 = Color3.fromRGB(12, 12, 12) messageBox.BorderSizePixel = 0 messageBox.CanvasSize = UDim2.new(0, 0, 0, 480) messageBox.CanvasPosition = Vector2.new(0, 0) messageBox.ScrollBarThickness = 6 messageBox.ScrollingDirection = Enum.ScrollingDirection.Y messageBox.VerticalScrollBarInset = Enum.ScrollBarInset.ScrollBar messageBox.Active = true messageBox.Selectable = true messageBox.Parent = frame local messageCorner = Instance.new("UICorner") messageCorner.CornerRadius = UDim.new(0, 6) messageCorner.Parent = messageBox --================================================== -- TEXTO DEL MENSAJE --================================================== local message = Instance.new("TextLabel") message.Name = "MessageText" message.Size = UDim2.new(1, -20, 0, 450) message.Position = UDim2.new(0, 10, 0, 10) message.BackgroundTransparency = 1 message.TextColor3 = Color3.fromRGB(235, 235, 235) message.TextTransparency = 0 message.TextSize = 14 message.Font = Enum.Font.Code message.TextXAlignment = Enum.TextXAlignment.Left message.TextYAlignment = Enum.TextYAlignment.Top message.TextWrapped = true message.Visible = true message.Parent = messageBox --================================================== -- BOTÓN OK --================================================== local okButton = Instance.new("TextButton") okButton.Size = UDim2.new(1, -20, 0, 38) okButton.Position = UDim2.new(0, 10, 1, -47) okButton.BackgroundColor3 = Color3.fromRGB(55, 150, 75) okButton.TextColor3 = Color3.fromRGB(255, 255, 255) okButton.TextSize = 15 okButton.Font = Enum.Font.GothamBold okButton.Parent = frame local okCorner = Instance.new("UICorner") okCorner.CornerRadius = UDim.new(0, 6) okCorner.Parent = okButton --================================================== -- GAME INFO --================================================== local infoBox = Instance.new("ScrollingFrame") infoBox.Name = "InfoBox" infoBox.Size = UDim2.new(1, -20, 0, 202) infoBox.Position = UDim2.new(0, 10, 0, 43) infoBox.BackgroundColor3 = Color3.fromRGB(12, 12, 12) infoBox.BorderSizePixel = 0 -- DESPLAZAMIENTO infoBox.CanvasSize = UDim2.new(0, 0, 0, 270) infoBox.CanvasPosition = Vector2.new(0, 0) infoBox.ScrollBarThickness = 6 infoBox.ScrollingDirection = Enum.ScrollingDirection.Y infoBox.VerticalScrollBarInset = Enum.ScrollBarInset.ScrollBar infoBox.Active = true infoBox.Selectable = true infoBox.Visible = false infoBox.Parent = frame local infoCorner = Instance.new("UICorner") infoCorner.CornerRadius = UDim.new(0, 6) infoCorner.Parent = infoBox --================================================== -- INFORMACIÓN --================================================== local function createInfo(text, position) local label = Instance.new("TextLabel") label.Size = UDim2.new(1, -16, 0, 34) label.Position = UDim2.new(0, 8, 0, position) label.BackgroundTransparency = 1 label.Text = text label.TextColor3 = Color3.fromRGB(235, 235, 235) label.TextSize = 14 label.Font = Enum.Font.Code label.TextXAlignment = Enum.TextXAlignment.Left label.TextYAlignment = Enum.TextYAlignment.Center label.TextWrapped = true label.Parent = infoBox return label end local function createCopyableInfo(text, position) local box = Instance.new("TextBox") box.Size = UDim2.new(1, -16, 0, 34) box.Position = UDim2.new(0, 8, 0, position) box.BackgroundTransparency = 1 box.BorderSizePixel = 0 box.Text = text box.TextColor3 = Color3.fromRGB(235, 235, 235) box.TextSize = 14 box.Font = Enum.Font.Code box.TextXAlignment = Enum.TextXAlignment.Left box.TextYAlignment = Enum.TextYAlignment.Center box.TextWrapped = true box.ClearTextOnFocus = false box.TextEditable = false box.Selectable = true box.Parent = infoBox return box end local gameLabel local creatorLabel local creatorIdLabel local communityLabel local placeIdLabel local playersLabel gameLabel = createCopyableInfo("", 5) creatorLabel = createCopyableInfo("", 43) creatorIdLabel = createCopyableInfo("", 81) communityLabel = createCopyableInfo("", 119) placeIdLabel = createCopyableInfo("", 157) playersLabel = createInfo("", 195) --================================================== -- ACTUALIZAR JUGADORES --================================================== local function updatePlayers() local currentPlayers = #Players:GetPlayers() local maxPlayers = Players.MaxPlayers playersLabel.Text = languages[languageIndex].players .. tostring(currentPlayers) .. "/" .. tostring(maxPlayers) end --================================================== -- ACTUALIZAR IDIOMA --================================================== local function updateLanguage() local lang = languages[languageIndex] languageButton.Text = lang.flag -- Título if messageFinished then title.Text = lang.title else title.Text = lang.messageTitle end -- Mensaje message.Text = lang.message:gsub("%%PLAYER%%", player.Name) -- Botón okButton.Text = lang.ok -- Game Info gameLabel.Text = lang.game .. gameName creatorLabel.Text = lang.creator .. creatorName creatorIdLabel.Text = lang.creatorId .. creatorId communityLabel.Text = lang.community .. communityName placeIdLabel.Text = lang.placeId .. tostring(placeId) updatePlayers() -- Reiniciar el desplazamiento arriba messageBox.CanvasPosition = Vector2.new(0, 0) infoBox.CanvasPosition = Vector2.new(0, 0) end updateLanguage() Players.PlayerAdded:Connect(updatePlayers) Players.PlayerRemoving:Connect(updatePlayers) --================================================== -- CAMBIAR IDIOMA --================================================== languageButton.MouseButton1Click:Connect(function() languageIndex = languageIndex + 1 if languageIndex > #languages then languageIndex = 1 end updateLanguage() end) --================================================== -- BOTÓN OK --================================================== okButton.MouseButton1Click:Connect(function() messageFinished = true messageBox.Visible = false okButton.Visible = false title.Text = languages[languageIndex].title infoBox.Visible = true end) --================================================== -- MINIMIZAR --================================================== local minimized = false minimize.MouseButton1Click:Connect(function() minimized = not minimized if minimized then messageBox.Visible = false infoBox.Visible = false okButton.Visible = false frame.Size = UDim2.new(0, 330, 0, 44) minimize.Text = "➕" else frame.Size = UDim2.new(0, 330, 0, 250) minimize.Text = "➖" if messageFinished then infoBox.Visible = true messageBox.Visible = false okButton.Visible = false title.Text = languages[languageIndex].title else messageBox.Visible = true okButton.Visible = true infoBox.Visible = false title.Text = languages[languageIndex].messageTitle end end end) --================================================== -- CERRAR --================================================== close.MouseButton1Click:Connect(function() gui:Destroy() end) --================================================== -- ARRASTRAR EN PC Y CELULAR --================================================== local dragging = false local dragStart local startPosition frame.InputBegan:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then dragging = true dragStart = input.Position startPosition = frame.Position end end) UserInputService.InputChanged:Connect(function(input) if not dragging then return end if input.UserInputType == Enum.UserInputType.MouseMovement or input.UserInputType == Enum.UserInputType.Touch then local delta = input.Position - dragStart frame.Position = UDim2.new( startPosition.X.Scale, startPosition.X.Offset + delta.X, startPosition.Y.Scale, startPosition.Y.Offset + delta.Y ) end end) UserInputService.InputEnded:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then dragging = false end end)