The in-game hub is a ready-made Roblox place that sells your store's products in game, in a full-screen store that looks like your store on Enviglo. Your store's secret hub key is already inside it, so there's nothing to paste. This guide takes you from the download to a live hub, and covers what players see and keeping the key safe.
The steps match the In-game hub card in Settings → Integrations, which ticks each one off as Enviglo sees it happen.
Before you start
You need the permission. Owners and admins have it; staff need it given to them. See .
You need Roblox Studio, signed in with an account that can publish to the experience you'll sell in.
Paid products need a developer product each before they show in the hub. Step 4 covers this.
1. Download your hub game
In your store's dashboard, open Settings → Integrations.
In the In-game hub card, press Download hub game.
Your browser saves a Roblox place file named after your store's address, like enviglo-hub-your-store.rbxlx. Inside it:
EnvigloHub, a script in ServerScriptService that runs the hub: loading your store, taking purchases and talking to Enviglo;
EnvigloHub, a folder in ReplicatedStorage with the parts the server and players' screens share;
EnvigloHubClient, a script in StarterPlayerScripts that draws the store screen;
EnvigloSettings, a module in ServerStorage that holds your store's secret hub key (see Settings);
HTTP requests, already switched on.
The store screen is the whole game: there's no world to walk around, so players don't spawn an avatar.
Leave the scripts, the folder and the settings module where they are. The hub's code is all inside the place, so nothing outside your own experience can stop it working.
Once you've downloaded it, the button reads Download again. Every download makes a new key and switches off the one in the previous file, so only press it when you mean to replace the key. See Replace a leaked key.
If your store came from myPod, your existing hub keeps working: its key isn't switched off by downloading this one. See Coming from myPod.
2. Publish it to Roblox
Open the file in Roblox Studio: double-click it, or use File → Open from File.
Choose File → Publish to Roblox.
Create a new experience, or choose the place you want to replace.
Open Game Settings → Security, switch on Allow Third Party Teleports, and save. The hub sends players who haven't linked their account to Enviglo's verification game, and Roblox only lets a game send players to another experience with this on.
Publish into the experience your store sells in. Once the hub connects (step 3), the place it runs in becomes your store's place: Buy on Roblox sends buyers there, and once your Roblox experience is connected, Enviglo creates developer products in that place's experience. The card shows the experience it finds, with a link to the place.
3. Join it once
Play your published game, or start a server in Studio. The hub connects to Enviglo as soon as it loads, and the card shows the place it connected from and when it was last seen.
Publish first. Until the game is published, Studio has no place ID to report.
The place the hub connects from becomes your store's place, so Buy on Roblox starts working. If you publish the hub somewhere else later, the store's place, and your Roblox experience connection, follow it the next time it connects.
To make Enviglo forget the place, select Start again on the card. Buy on Roblox stops working until a hub connects again, so publish the hub where you want it and join it once.
Make the experience public in Creator Hub when you want players in.
The hub opens on the product someone came for: Buy on Roblox on a product page opens your place on that product's page, and the purchase prompt appears once they've loaded in.
4. Make your products buyable in game
The hub lists your published products that have a developer product or a game pass, plus free ones, and drops taking pre-orders. Paid products with neither stay on your Enviglo store only. The card counts how many of your paid products have one, and See the ones that can't be bought yet lists the rest.
There are two ways to give a product its developer product:
Let Enviglo create it. Connect your experience in the Roblox experience card on the same page. After that, saving a Price in Robux on a product's Pricing page creates the developer product, and later price changes follow it to Roblox.
Add your own. Create a developer product for your experience on Roblox, paste its ID into Developer product ID on the product's Delivery page, and press Save delivery.
The store fills the screen for everyone as they join, and stays: there's nothing to open or close. It's laid out like your store on the website, in Enviglo's blue:
The top bar: your store's icon and name, with its verified tick if it has one, a search box, the Products and Your products tabs, and the player's avatar, which says whether their Roblox account is linked to Enviglo.
Categories: a tab for each of your store categories with its count (or for the kinds of thing you sell, when you have none), and the sort: Popular, Newest and price.
Your store's header: a banner of your products' pictures, your icon and name, and your numbers: rating, products, sales (when your store shows them) and the year you opened.
Featured: big cards for a few of your products, pictures first.
Product cards: picture, category, price, name, and the version and how many bought it, with Enviglo's New, Popular or Trending label on the picture. A product on sale shows its old price struck through and the saving.
Product pages: the picture and a table of its details beside the price and button, then its description and a few recent reviews. The button says Buy now, Get it free or Pre-order, and changes to Owned or Pre-ordered once the player has it. A drop taking pre-orders counts down to its release.
Your products: everything the player has from your store.
Roblox's own buttons stay in the top corners; the rest of Roblox's UI (the player list, backpack and chat) is hidden while the store is up. It fits phones, tablets, computers and consoles.
How products show in the hub
For each product, Enviglo sends the hub its name, summary, description, Robux price, stock and star rating, and Enviglo's own New, Popular or Trending label, the same as on the website. Reviews go through Roblox's text filter before players see them.
Games can only draw images uploaded to Roblox, so a product's picture in the hub comes from, in order:
In-game hub image on the product's Delivery page, when you've set one. Products that came from myPod kept theirs.
The game pass's own icon, for a product sold as a game pass.
The developer product's icon. Once your Roblox experience is connected, Enviglo sets it from the product's main picture for you, and updates it when that picture changes. An icon you set yourself on Roblox is left alone. Roblox checks each image first, so a new one takes a few minutes to show.
When there's none of those, a cover in Enviglo blue with the product's category and name, like the website's cover art.
Your store categories, under Settings → Selling → Store categories, go to the hub too. Changes you make can take a minute to show in game.
The hub also tells Enviglo the Robux prices of your developer products, and Enviglo updates your products to match, so your store shows what players actually pay.
Buyers link their account first
The hub won't sell to a player whose Roblox account isn't linked to an Enviglo account, free products included. The first time they press Buy, the hub offers Link my account, which takes them to Enviglo's verification game. That game gives them a code to type in at enviglo.com/link, signed in or signing up, then asks them to confirm it's their Enviglo account, and sends them straight back to your game with the purchase prompt up for what they were buying.
Linking happens in Enviglo's own game because only it can prove which Roblox account a player is: your game's word, or anyone else's, isn't enough to hand a Roblox account's purchases to an Enviglo account. The only thing for you to set up is Allow Third Party Teleports (step 2).
It costs a buyer about a minute the first time, and never again. What they are paying for is a license and a file to download, and both live on an Enviglo account: held for a Roblox ID alone, a purchase does them no good until they come back for it, and many never do. You get a customer who can reach what they bought, ask you for support and buy again.
How purchases are recorded
When a player buys in the hub, the hub reports the purchase to Enviglo with your store's key before Roblox finishes it. Enviglo records it and puts the license on the player's Enviglo account. If Enviglo can't be reached at that moment, Roblox offers the purchase again later, and Enviglo counts it once however often it arrives. The purchase shows under Orders → Purchases, and the product is in the buyer's library straight away.
Players can also buy a developer product for someone else with Buy as a gift, choosing someone in the server or anyone by their Roblox username. The gift is written down with Enviglo just before Roblox's prompt opens, so the purchase goes to the person it's for, and shows under Orders → Purchases as a gift, with who paid for it. Game passes and free products can't be gifts. Gifts need hub 4.2.0 or newer, and so does the Buy it as a gift link on your product pages.
Game passes bought on the Roblox website count too: the hub checks which of your game passes a player owns when they join. That is the one purchase the hub can't ask about first, so if they haven't linked, it waits for their Roblox account until they do. Free products taken with Get it free go on the player's account the same way as a purchase, linking included.
Testing in Studio
Purchases in Studio are pretend: Roblox charges nothing, so the hub doesn't send them to Enviglo. The store screen still shows them as bought, with a message saying it was a test, so you can try the whole flow. Nothing appears under Orders. Studio can't send anyone to another game either, so Link my account says so there; it works in your published game.
Everything that follows a sale works as usual: Discord roles and messages, and your webhooks. What buying again does depends on the product's license type: see How selling on Roblox works.
Settings
The EnvigloSettings module in ServerStorage holds your key and one setting:
OtherPurchase: only for a game that sells developer products of its own as well. The hub takes Roblox's purchases for your store's products; set this to a function that handles the rest and returns Enum.ProductPurchaseDecision.PurchaseGranted once the player has what they bought.
Update to a newer hub
When Enviglo has a newer hub than the one your game runs, the In-game hub card says A new hub is ready. Press Download the new hub and publish it over your place, as in step 2. Your current hub keeps working until you do, and your products, sales and customers carry on as they are. The download has a new key, so publish it soon after downloading.
Keep the hub key secret
The key in EnvigloSettings lets whoever has it record sales for your store.
Don't share the downloaded file.
Don't make the place copyable. Anyone who copies it gets the key.
Keep EnvigloSettings in ServerStorage, which players' devices never receive. Never move the module, or the key, into a LocalScript or ReplicatedStorage.
The hub key is separate from your API keys. It isn't listed under API keys, doesn't count towards your plan's API keys, and has no API scopes, so it can't record purchases or check licenses through the API. To do those from your own scripts, make an API key: see API keys.
Replace a leaked key
In Settings → Integrations, press Download again in the In-game hub card. This switches off the old key straight away and puts a new one in the new file.
Publish the new file over your place, as in step 2.
Your live hub stops working from step 1 until you finish step 2, so do both together.
If you've built on the place since you first published it, you don't need to start over. Only the EnvigloSettings module changes between downloads of the same hub. Open the new file in Studio, copy the source of its EnvigloSettings module into the EnvigloSettings module in your place, and publish your place.
If your store came from myPod, its old hub key is listed under API keys as myPod hub key, and downloading the hub doesn't switch it off. If that key has leaked, revoke it there. Any hub still using it stops working.
Troubleshooting
The card says Roblox doesn't know your place. Check the place is published. If the hub connected from the wrong place, publish it into the right one and join it once, or use Start again on the hub card.
The card says your hub runs in one place but Buy on Roblox sends people to another. Join your hub game once: when it connects, Buy on Roblox follows it. If buyers should go somewhere else, publish the hub into the right place and join it once, or use Start again on the hub card.
A product is missing from the hub. It has to be published, and a paid product needs a developer product. Changes can take a minute to show.
A product has no picture in game. Set its In-game hub image on the Delivery page, or connect your Roblox experience so Enviglo can set the developer product's icon. A new image can take a few minutes, while Roblox checks it.
The store screen says "This game's store key isn't valid any more." The key in your place has been switched off, usually by a newer download. Publish the latest download, or copy its EnvigloSettings across.
The store screen says "Enviglo couldn't be reached." In Studio, check Allow HTTP Requests is still on under Game Settings → Security. It's on in the downloaded file.
Players see "This game can't send you there." Switch on Allow Third Party Teleports under Game Settings → Security and save. Until then they can find Enviglo's verification game on Roblox themselves.
A purchase in Studio isn't under Orders. That's expected: Studio purchases are tests. See Testing in Studio.
You can't see the In-game hub card. You need the Integrations permission.
The download is refused. A suspended or closed store can't download its hub: "Enviglo has suspended this store, so its hub can't be downloaded." or "This store is closed, so its hub can't be downloaded."