local Players = game:GetService("Players") local MarketplaceService = game:GetService("MarketplaceService") local UserInputService = game:GetService("UserInputService") local GroupService = game:GetService("GroupService") local player = Players.LocalPlayer --================================================== -- CONVERTIR CODIGOS UNICODE --================================================== local function decode(text) return (text:gsub("{(%x+)}", function(hex) return utf8.char(tonumber(hex, 16)) end)) end --================================================== -- INFORMACION 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 informacion 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 local groupId = game.CreatorId -- Nombre de la comunidad if info.Creator then communityName = info.Creator.Name or "Desconocido" end -- Obtener informacion de la comunidad local groupSuccess, groupInfo = pcall(function() return GroupService:GetGroupInfoAsync(groupId) end) if groupSuccess and groupInfo then if groupInfo.Owner then local ownerId = groupInfo.Owner.Id if ownerId then creatorId = tostring(ownerId) -- Obtener nombre del propietario local nameSuccess, ownerName = pcall(function() return Players:GetNameFromUserIdAsync(ownerId) end) if nameSuccess and ownerName then creatorName = ownerName else creatorName = groupInfo.Owner.Name or "Desconocido" end end end end elseif game.CreatorType == Enum.CreatorType.User then 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 = "{1F1EA}{1F1F8}", name = "Espa{00F1}ol", message = [[ Hola %PLAYER% {1F44B} Te voy a ense{00F1}ar c{00F3}mo copiar el nombre del juego que est{00E1} jugando y tambi{00E9}n el nombre del creador si es que lo necesitas y tambi{00E9}n los IDs. Tambi{00E9}n te voy a ense{00F1}ar c{00F3}mo cambiarle de idioma a tu GUI. Habr{00E1} una peque{00F1}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{00F3}n para traducirlo. Al terminar de leerlo solamente presiona el bot{00F3}n {00A1}Ok! :D]], ok = "{00A1}Ok!", game = "{1F3AE} Juego: ", creator = "{1F464} Creador: ", creatorId = "{1F194} Creador ID: ", community = "{1F465} Comunidad: ", placeId = "{1F194} Juego ID: ", players = "{1F465} Jugadores: ", title = "{1F3AE} GAME INFO. :D", messageTitle = "Mensaje." }, { flag = "{1F1FA}{1F1F8}", name = "English", message = [[ Hello %PLAYER% {1F44B} 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 = "{1F3AE} Game: ", creator = "{1F464} Creator: ", creatorId = "{1F194} Creator ID: ", community = "{1F465} Community: ", placeId = "{1F194} Game ID: ", players = "{1F465} Players: ", title = "{1F3AE} GAME INFO. :D", messageTitle = "Message." }, { flag = "{1F1E7}{1F1F7}", name = "Portugu{00EA}s", message = [[ Ol{00E1} %PLAYER% {1F44B} Vou mostrar como copiar o nome do jogo que voc{00EA} est{00E1} jogando e tamb{00E9}m o nome do criador, caso voc{00EA} precise, al{00E9}m dos IDs. Tamb{00E9}m vou mostrar como mudar o idioma da sua GUI. Haver{00E1} uma pequena janela na parte superior com uma bandeira. Clique nela at{00E9} encontrar seu idioma e pronto. Se alguns jogos n{00E3}o aparecerem traduzidos, {00E9} porque o jogo n{00E3}o tem uma op{00E7}{00E3}o de tradu{00E7}{00E3}o configurada. Quando terminar de ler, basta pressionar o bot{00E3}o OK :D]], ok = "OK!", game = "{1F3AE} Jogo: ", creator = "{1F464} Criador: ", creatorId = "{1F194} ID do Criador: ", community = "{1F465} Comunidade: ", placeId = "{1F194} ID do Jogo: ", players = "{1F465} Jogadores: ", title = "{1F3AE} GAME INFO. :D", messageTitle = "Mensagem." }, { flag = "{1F1EB}{1F1F7}", name = "Fran{00E7}ais", message = [[ Bonjour %PLAYER% {1F44B} Je vais vous montrer comment copier le nom du jeu auquel vous jouez et aussi le nom du cr{00E9}ateur si vous en avez besoin, ainsi que les IDs. Je vais {00E9}galement vous montrer comment changer la langue de votre GUI. Une petite fen{00EA}tre avec un drapeau se trouvera en haut. Cliquez dessus jusqu'{00E0} trouver votre langue et voil{00E0}. Si certains jeux ne sont pas traduits, c'est parce que le jeu n'a pas configur{00E9} d'option de traduction. Lorsque vous avez termin{00E9} de lire, appuyez simplement sur le bouton OK :D]], ok = "OK !", game = "{1F3AE} Jeu : ", creator = "{1F464} Cr{00E9}ateur : ", creatorId = "{1F194} ID du cr{00E9}ateur : ", community = "{1F465} Communaut{00E9} : ", placeId = "{1F194} ID du jeu : ", players = "{1F465} Joueurs : ", title = "{1F3AE} GAME INFO. :D", messageTitle = "Message." }, { flag = "{1F1E9}{1F1EA}", name = "Deutsch", message = [[ Hallo %PLAYER% {1F44B} 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{00DF}erdem, wie du die Sprache deiner GUI {00E4}ndern kannst. Oben befindet sich ein kleines Fenster mit einer Flagge. Klicke darauf, bis du deine Sprache gefunden hast. Wenn einige Spiele nicht {00FC}bersetzt werden, bedeutet das, dass das Spiel keine {00DC}bersetzungsoption eingerichtet hat. Wenn du mit dem Lesen fertig bist, dr{00FC}cke einfach die OK-Taste :D]], ok = "OK!", game = "{1F3AE} Spiel: ", creator = "{1F464} Ersteller: ", creatorId = "{1F194} Ersteller-ID: ", community = "{1F465} Community: ", placeId = "{1F194} Spiel-ID: ", players = "{1F465} Spieler: ", title = "{1F3AE} 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 --================================================== -- TITULO --================================================== 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 --================================================== -- BOTON 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 = decode(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 --================================================== -- BOTON 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 = decode("{2796}") 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 --================================================== -- BOTON 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 = decode("{2715}") 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 --================================================== -- BOTON 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 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 --================================================== -- INFORMACION --================================================== 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 = decode(languages[languageIndex].players) .. tostring(currentPlayers) .. "/" .. tostring(maxPlayers) end --================================================== -- ACTUALIZAR IDIOMA --================================================== local function updateLanguage() local lang = languages[languageIndex] languageButton.Text = decode(lang.flag) if messageFinished then title.Text = decode(lang.title) else title.Text = decode(lang.messageTitle) end message.Text = decode(lang.message):gsub("%%PLAYER%%", player.Name) okButton.Text = decode(lang.ok) gameLabel.Text = decode(lang.game) .. gameName creatorLabel.Text = decode(lang.creator) .. creatorName creatorIdLabel.Text = decode(lang.creatorId) .. creatorId communityLabel.Text = decode(lang.community) .. communityName placeIdLabel.Text = decode(lang.placeId) .. tostring(placeId) updatePlayers() 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) --================================================== -- BOTON OK --================================================== okButton.MouseButton1Click:Connect(function() messageFinished = true messageBox.Visible = false okButton.Visible = false title.Text = decode(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 = decode("{2795}") else frame.Size = UDim2.new(0, 330, 0, 250) minimize.Text = decode("{2796}") if messageFinished then infoBox.Visible = true messageBox.Visible = false okButton.Visible = false title.Text = decode(languages[languageIndex].title) else messageBox.Visible = true okButton.Visible = true infoBox.Visible = false title.Text = decode(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)