Templates

Game Pass Shop

Roblox Game Pass Shop GUI Template

A ready-to-edit game pass shop interface with perk cards, Robux price placeholders, and primary purchase buttons.

Open in Editor

How it works

This template stores every UI object as structured JSON, renders it in the browser, and converts the same schema into Roblox Studio-friendly Luau.

  1. Open the template in the editor.
  2. Change labels, colors, positions, and sizes.
  3. Copy the generated Luau into a LocalScript in Roblox Studio.

Customization tips

  • Keep every pass benefit specific.
  • Put the most valuable offer first.
  • Test purchase buttons with placeholder logic before publishing.

roblox gamepass shop gui template is the single topic for this template detail page. The goal is to help creators understand what the Game Pass Shop GUI is for, how the visible layout works, what they should edit before export, and what Roblox Studio logic still belongs in their own project. The template gives a practical UI starting point without implying that interface code can replace secure gameplay systems.

Use case

When to use this roblox gamepass shop gui template

Use the Game Pass Shop GUI when your Roblox experience needs to compare premium perks and guide players toward a clear gamepass purchase action. It is best for VIP-pass games, simulators with multipliers, obby perk shops, and cosmetic upgrade experiences, because those games usually need a player-facing screen that is understandable in a few seconds and easy to connect to existing data. The template is deliberately shaped around one visible job, so creators are not forced to delete a pile of unrelated widgets before the UI becomes useful.

The detail page should keep that same focus. A visitor searching for roblox gamepass shop gui template wants to inspect the layout, understand whether it matches their game, and move into the editor if the fit is strong. This page therefore explains the screen purpose, the editable parts, the safe export boundary, and the related guide rather than trying to rank for every Roblox UI phrase at the same time.

Layout anatomy

What the template includes

The visible layout includes premium header, perk cards, benefit labels, price row, featured pass callout, and buy button. These pieces are ordinary Roblox UI concepts that a creator can recognize in the preview and then adjust in the editor. The important detail is that each part has a job. Decorative panels create contrast, labels explain state, buttons communicate action, and helper text prevents the player from guessing what will happen next.

Before exporting, inspect the layer names and the text that players will see. Script-friendly names make the generated Luau easier to connect later. Short labels make the page more resilient on mobile screens. A single strong action color keeps the main button from competing with every other label and panel on the screen.

Editing workflow

How to customize it before export

Start by editing copy and names before changing decoration. For this template, the most useful edits are to make one pass visually primary, write benefit copy without exaggeration, keep price labels easy to replace, and separate cosmetic perks from gameplay perks. Those changes make the UI feel specific to the game while preserving the structure that already works. If the creator changes spacing first and copy later, they often discover too late that real item names, reward names, or player stats do not fit.

After the text is realistic, adjust color and spacing in the editor. Keep one visual system across the template: one panel background family, one accent for the primary action, and one muted color for helper text. The exported code will be easier to review when the template is still organized around clear roles instead of many unrelated colors and one-off sizes.

Roblox Studio

What to connect after pasting the Luau

The exported Luau creates the interface structure, but the Roblox Studio project still owns behavior. The most likely connections for this template are MarketplaceService prompt flow, gamepass ownership checks, perk entitlement state, and purchase result messaging. Treat the generated ScreenGui as a view layer. It can show data and receive button clicks, but it should not be the authority for purchases, rewards, score changes, or ownership.

The template can display gamepass offers, but it cannot prove ownership or safely grant perks. Use Roblox platform purchase APIs and server-side entitlement checks.

Mobile review

Checks before players see it

Roblox players may see this UI on desktop, tablet, or phone. Before using the export in a real experience, review card stacking, button reach, readable perk labels, and close control visibility. Mobile checks should happen before a creator duplicates the template many times, because small spacing errors multiply quickly once every item, row, or reward card uses the same pattern.

The safest mobile review is to test the template with longer real text than the preview uses. Put in the longest item name, longest reward label, or most awkward player stat you expect. If the layout survives that stress test, the exported ScreenGui is more likely to remain readable during normal play.

Export review

What to inspect in the generated Luau

Before copying this template into a larger place, review the generated Luau as if another creator will inherit it. Confirm that the ScreenGui name is clear, each important button has a script-friendly name, labels contain real game copy, and styling helpers such as UICorner, UIStroke, and padding are attached to the expected parent objects. This review makes the roblox gamepass shop gui template page more than a preview; it becomes a handoff checklist.

The code should stay easy to delete and easy to connect. If a visible element does not support the template's purpose, remove it before export. If a button will later start a purchase, reward, selection, or settings action, name it for that action now. A clean visual export gives the Studio scripts a stable surface without pretending the UI itself is trusted game logic.

Accessibility

Naming and readability details

Readable UI starts with text that explains the current state. Replace placeholder labels with the words players will actually see, then check whether the most important label still fits. If the label needs to be shortened, shorten the copy before shrinking the font. Tiny text makes a template look complete in a preview but weak during real play. This check should happen before every export.

Object names matter too. A button named BuySpeedBoost is easier to connect than a generic Button1. A frame named QuestTrackerPanel is easier to find than Frame7. Clear names help the exported roblox gamepass shop gui template remain understandable after it leaves the browser editor and becomes part of a Roblox Studio project.

Next steps

Related pages for the same task

The most relevant internal path for this page is /editor, /how-to-make-a-gamepass-shop-gui-in-roblox, and /templates/shop-gui. Those links keep the user inside the same task family: edit this template, read the guide that explains the implementation details, or compare one closely related template. This is better for users and better for SEO than sending every template page to every article on the site.

When this template is complete, the next action should be simple: open it in the editor, make the text and names match the game, copy the Luau, and then connect the interface to trusted Studio logic. That workflow is the reason this page stays centered on roblox gamepass shop gui template.

FAQ

Common questions

What is this roblox gamepass shop gui template for?

It is for creators who need to compare premium perks and guide players toward a clear gamepass purchase action. It gives them a visible starting layout that can be edited online and exported as Roblox UI instance code.

Does the template include gameplay logic?

No. The template exports UI structure only. Purchases, rewards, inventory state, scores, quest progress, and validation should be implemented in the creator Roblox project.

Can I edit the template before copying the Luau?

Yes. Open the template in the editor, change names, text, spacing, colors, and sizing, then copy the generated Luau after the preview matches your game.

Next steps

Related next steps

Luau export

Copy the generated ScreenGui code.

local Players = game:GetService("Players")
local player = Players.LocalPlayer
local playerGui = player:WaitForChild("PlayerGui")

local screenGui = Instance.new("ScreenGui")
screenGui.Name = "GamePassShopGUIScreenGui"
screenGui.ResetOnSpawn = false
screenGui.Parent = playerGui

local gamePassShopFrame = Instance.new("Frame")
gamePassShopFrame.Name = "GamePassShopFrame"
gamePassShopFrame.Position = UDim2.new(0.5, -380, 0.5, -225)
gamePassShopFrame.Size = UDim2.new(0, 760, 0, 450)
gamePassShopFrame.AnchorPoint = Vector2.new(0, 0)
gamePassShopFrame.ZIndex = 1
gamePassShopFrame.Visible = true
gamePassShopFrame.BackgroundColor3 = Color3.fromRGB(17, 24, 39)
gamePassShopFrame.BorderSizePixel = 0
gamePassShopFrame.Parent = screenGui

local gamePassShopFrameCorner = Instance.new("UICorner")
gamePassShopFrameCorner.CornerRadius = UDim.new(0, 26)
gamePassShopFrameCorner.Parent = gamePassShopFrame

local gamePassShopFrameStroke = Instance.new("UIStroke")
gamePassShopFrameStroke.Color = Color3.fromRGB(250, 204, 21)
gamePassShopFrameStroke.Thickness = 2
gamePassShopFrameStroke.Parent = gamePassShopFrame

local gamePassShopFramePadding = Instance.new("UIPadding")
gamePassShopFramePadding.PaddingTop = UDim.new(0, 24)
gamePassShopFramePadding.PaddingRight = UDim.new(0, 24)
gamePassShopFramePadding.PaddingBottom = UDim.new(0, 24)
gamePassShopFramePadding.PaddingLeft = UDim.new(0, 24)
gamePassShopFramePadding.Parent = gamePassShopFrame

local coinsPassCard = Instance.new("Frame")
coinsPassCard.Name = "CoinsPassCard"
coinsPassCard.Position = UDim2.new(0, 275, 0, 100)
coinsPassCard.Size = UDim2.new(0, 210, 0, 270)
coinsPassCard.AnchorPoint = Vector2.new(0, 0)
coinsPassCard.ZIndex = 2
coinsPassCard.Visible = true
coinsPassCard.BackgroundColor3 = Color3.fromRGB(219, 234, 254)
coinsPassCard.BorderSizePixel = 0
coinsPassCard.Parent = gamePassShopFrame

local coinsPassCardCorner = Instance.new("UICorner")
coinsPassCardCorner.CornerRadius = UDim.new(0, 22)
coinsPassCardCorner.Parent = coinsPassCard

local coinsPassCardStroke = Instance.new("UIStroke")
coinsPassCardStroke.Color = Color3.fromRGB(96, 165, 250)
coinsPassCardStroke.Thickness = 2
coinsPassCardStroke.Parent = coinsPassCard

local coinsBody = Instance.new("TextLabel")
coinsBody.Name = "CoinsBody"
coinsBody.Position = UDim2.new(0, 20, 0, 92)
coinsBody.Size = UDim2.new(1, -40, 0, 86)
coinsBody.AnchorPoint = Vector2.new(0, 0)
coinsBody.ZIndex = 3
coinsBody.Visible = true
coinsBody.BackgroundTransparency = 1
coinsBody.Text = "Double every coin reward from quests and wins."
coinsBody.TextColor3 = Color3.fromRGB(29, 78, 216)
coinsBody.TextSize = 18
coinsBody.Font = Enum.Font.Gotham
coinsBody.TextWrapped = true
coinsBody.Parent = coinsPassCard

local coinsTitle = Instance.new("TextLabel")
coinsTitle.Name = "CoinsTitle"
coinsTitle.Position = UDim2.new(0, 20, 0, 22)
coinsTitle.Size = UDim2.new(1, -40, 0, 56)
coinsTitle.AnchorPoint = Vector2.new(0, 0)
coinsTitle.ZIndex = 3
coinsTitle.Visible = true
coinsTitle.BackgroundTransparency = 1
coinsTitle.Text = "2x Coins"
coinsTitle.TextColor3 = Color3.fromRGB(30, 58, 138)
coinsTitle.TextSize = 28
coinsTitle.Font = Enum.Font.GothamBold
coinsTitle.TextWrapped = true
coinsTitle.Parent = coinsPassCard

local coinsBuyButton = Instance.new("TextButton")
coinsBuyButton.Name = "CoinsBuyButton"
coinsBuyButton.Position = UDim2.new(0, 20, 1, -72)
coinsBuyButton.Size = UDim2.new(1, -40, 0, 48)
coinsBuyButton.AnchorPoint = Vector2.new(0, 0)
coinsBuyButton.ZIndex = 4
coinsBuyButton.Visible = true
coinsBuyButton.BackgroundColor3 = Color3.fromRGB(37, 99, 235)
coinsBuyButton.BorderSizePixel = 0
coinsBuyButton.Text = "Buy - 249"
coinsBuyButton.TextColor3 = Color3.fromRGB(255, 255, 255)
coinsBuyButton.TextSize = 18
coinsBuyButton.Font = Enum.Font.GothamBold
coinsBuyButton.Parent = coinsPassCard

local coinsBuyButtonCorner = Instance.new("UICorner")
coinsBuyButtonCorner.CornerRadius = UDim.new(0, 14)
coinsBuyButtonCorner.Parent = coinsBuyButton

local gamePassTitle = Instance.new("TextLabel")
gamePassTitle.Name = "GamePassTitle"
gamePassTitle.Position = UDim2.new(0, 30, 0, 24)
gamePassTitle.Size = UDim2.new(0, 460, 0, 48)
gamePassTitle.AnchorPoint = Vector2.new(0, 0)
gamePassTitle.ZIndex = 2
gamePassTitle.Visible = true
gamePassTitle.BackgroundTransparency = 1
gamePassTitle.Text = "Premium Passes"
gamePassTitle.TextColor3 = Color3.fromRGB(255, 255, 255)
gamePassTitle.TextSize = 34
gamePassTitle.Font = Enum.Font.GothamBold
gamePassTitle.TextWrapped = true
gamePassTitle.Parent = gamePassShopFrame

local speedPassCard = Instance.new("Frame")
speedPassCard.Name = "SpeedPassCard"
speedPassCard.Position = UDim2.new(0, 520, 0, 100)
speedPassCard.Size = UDim2.new(0, 210, 0, 270)
speedPassCard.AnchorPoint = Vector2.new(0, 0)
speedPassCard.ZIndex = 2
speedPassCard.Visible = true
speedPassCard.BackgroundColor3 = Color3.fromRGB(220, 252, 231)
speedPassCard.BorderSizePixel = 0
speedPassCard.Parent = gamePassShopFrame

local speedPassCardCorner = Instance.new("UICorner")
speedPassCardCorner.CornerRadius = UDim.new(0, 22)
speedPassCardCorner.Parent = speedPassCard

local speedPassCardStroke = Instance.new("UIStroke")
speedPassCardStroke.Color = Color3.fromRGB(34, 197, 94)
speedPassCardStroke.Thickness = 2
speedPassCardStroke.Parent = speedPassCard

local speedTitle = Instance.new("TextLabel")
speedTitle.Name = "SpeedTitle"
speedTitle.Position = UDim2.new(0, 20, 0, 22)
speedTitle.Size = UDim2.new(1, -40, 0, 56)
speedTitle.AnchorPoint = Vector2.new(0, 0)
speedTitle.ZIndex = 3
speedTitle.Visible = true
speedTitle.BackgroundTransparency = 1
speedTitle.Text = "Speed Coil"
speedTitle.TextColor3 = Color3.fromRGB(20, 83, 45)
speedTitle.TextSize = 28
speedTitle.Font = Enum.Font.GothamBold
speedTitle.TextWrapped = true
speedTitle.Parent = speedPassCard

local speedBuyButton = Instance.new("TextButton")
speedBuyButton.Name = "SpeedBuyButton"
speedBuyButton.Position = UDim2.new(0, 20, 1, -72)
speedBuyButton.Size = UDim2.new(1, -40, 0, 48)
speedBuyButton.AnchorPoint = Vector2.new(0, 0)
speedBuyButton.ZIndex = 4
speedBuyButton.Visible = true
speedBuyButton.BackgroundColor3 = Color3.fromRGB(22, 163, 74)
speedBuyButton.BorderSizePixel = 0
speedBuyButton.Text = "Buy - 199"
speedBuyButton.TextColor3 = Color3.fromRGB(255, 255, 255)
speedBuyButton.TextSize = 18
speedBuyButton.Font = Enum.Font.GothamBold
speedBuyButton.Parent = speedPassCard

local speedBuyButtonCorner = Instance.new("UICorner")
speedBuyButtonCorner.CornerRadius = UDim.new(0, 14)
speedBuyButtonCorner.Parent = speedBuyButton

local vipPassCard = Instance.new("Frame")
vipPassCard.Name = "VipPassCard"
vipPassCard.Position = UDim2.new(0, 30, 0, 100)
vipPassCard.Size = UDim2.new(0, 210, 0, 270)
vipPassCard.AnchorPoint = Vector2.new(0, 0)
vipPassCard.ZIndex = 2
vipPassCard.Visible = true
vipPassCard.BackgroundColor3 = Color3.fromRGB(254, 243, 199)
vipPassCard.BorderSizePixel = 0
vipPassCard.Parent = gamePassShopFrame

local vipPassCardCorner = Instance.new("UICorner")
vipPassCardCorner.CornerRadius = UDim.new(0, 22)
vipPassCardCorner.Parent = vipPassCard

local vipPassCardStroke = Instance.new("UIStroke")
vipPassCardStroke.Color = Color3.fromRGB(245, 158, 11)
vipPassCardStroke.Thickness = 2
vipPassCardStroke.Parent = vipPassCard

local vipBody = Instance.new("TextLabel")
vipBody.Name = "VipBody"
vipBody.Position = UDim2.new(0, 20, 0, 92)
vipBody.Size = UDim2.new(1, -40, 0, 86)
vipBody.AnchorPoint = Vector2.new(0, 0)
vipBody.ZIndex = 3
vipBody.Visible = true
vipBody.BackgroundTransparency = 1
vipBody.Text = "Chat tag, daily bonus, and VIP lounge access."
vipBody.TextColor3 = Color3.fromRGB(146, 64, 14)
vipBody.TextSize = 18
vipBody.Font = Enum.Font.Gotham
vipBody.TextWrapped = true
vipBody.Parent = vipPassCard

local vipTitle = Instance.new("TextLabel")
vipTitle.Name = "VipTitle"
vipTitle.Position = UDim2.new(0, 20, 0, 22)
vipTitle.Size = UDim2.new(1, -40, 0, 56)
vipTitle.AnchorPoint = Vector2.new(0, 0)
vipTitle.ZIndex = 3
vipTitle.Visible = true
vipTitle.BackgroundTransparency = 1
vipTitle.Text = "VIP Pass"
vipTitle.TextColor3 = Color3.fromRGB(120, 53, 15)
vipTitle.TextSize = 28
vipTitle.Font = Enum.Font.GothamBold
vipTitle.TextWrapped = true
vipTitle.Parent = vipPassCard

local vipBuyButton = Instance.new("TextButton")
vipBuyButton.Name = "VipBuyButton"
vipBuyButton.Position = UDim2.new(0, 20, 1, -72)
vipBuyButton.Size = UDim2.new(1, -40, 0, 48)
vipBuyButton.AnchorPoint = Vector2.new(0, 0)
vipBuyButton.ZIndex = 4
vipBuyButton.Visible = true
vipBuyButton.BackgroundColor3 = Color3.fromRGB(245, 158, 11)
vipBuyButton.BorderSizePixel = 0
vipBuyButton.Text = "Buy - 399"
vipBuyButton.TextColor3 = Color3.fromRGB(255, 255, 255)
vipBuyButton.TextSize = 18
vipBuyButton.Font = Enum.Font.GothamBold
vipBuyButton.Parent = vipPassCard

local vipBuyButtonCorner = Instance.new("UICorner")
vipBuyButtonCorner.CornerRadius = UDim.new(0, 14)
vipBuyButtonCorner.Parent = vipBuyButton

local closeButton = Instance.new("TextButton")
closeButton.Name = "CloseButton"
closeButton.Position = UDim2.new(1, -74, 0, 24)
closeButton.Size = UDim2.new(0, 48, 0, 48)
closeButton.AnchorPoint = Vector2.new(0, 0)
closeButton.ZIndex = 3
closeButton.Visible = true
closeButton.BackgroundColor3 = Color3.fromRGB(55, 65, 81)
closeButton.BorderSizePixel = 0
closeButton.Text = "X"
closeButton.TextColor3 = Color3.fromRGB(255, 255, 255)
closeButton.TextSize = 22
closeButton.Font = Enum.Font.GothamBold
closeButton.Parent = gamePassShopFrame

local closeButtonCorner = Instance.new("UICorner")
closeButtonCorner.CornerRadius = UDim.new(0, 14)
closeButtonCorner.Parent = closeButton

Roblox Studio import steps

  1. Create a LocalScript where your player UI setup belongs.
  2. Paste the exported Luau code.
  3. Run Play mode and confirm the ScreenGui appears in PlayerGui.
  4. Connect button events and game data in your own scripts.

FAQ

Does this template handle Roblox purchases?

No. It exports the shop UI only. Connect buttons to MarketplaceService and your own entitlement checks in Roblox Studio.

Can I change the pass names and prices?

Yes. Edit every label and button before exporting the Luau UI code.

Related templates

Try another layout.

Modern Shop GUI

View template

Inventory GUI

View template

HUD Overlay

View template