Skip to content

The project template: finding your way

Every new project starts from this template. The code it contains becomes yours.

When you create a project, VibeStarter downloads a template that is ready to use: a Roblox game base that is already structured, with player saves, notifications and an admin console. This page describes what you find there, where each thing ends up in Roblox, and what you should not touch.

In your project In Roblox What goes in it
src/shared/ ReplicatedStorage.Common what the server and the client use
src/server/ ServerScriptService.TS the game logic, invisible to players
src/client/ StarterPlayerScripts.TS the interface and everything that runs on the player’s side
src/first/ ReplicatedFirst.TS what must run before everything else
Packages/ ReplicatedStorage.Packages the Roblox libraries the game uses
include/ ReplicatedStorage.rbxts_include the support the translated code needs
Your projectIn Robloxsrc/shared/ReplicatedStorage.Commonsrc/server/ServerScriptService.TSsrc/client/StarterPlayerScripts.TSsrc/first/ReplicatedFirst.TSPackages/ReplicatedStorage.Packagesinclude/ReplicatedStorage.rbxts_include
The match between the folders of your project and the locations in Roblox. The first four go through compilation; the last two are provided as they are.

Everything else in your place — the map, the lighting, the models you place in Studio — does not come from the project and is not touched by sync. See Sync, explained.

A file placed in src/server/services/ is loaded automatically on the server side; a file placed in src/client/controllers/ is loaded automatically on the client side. There is nothing to declare or register: creating the file is enough. Your agents know this convention and follow it.

  • Player saves. One profile per player, with what is needed to start: a currency, the music and sound effect volumes, the date of first and last sign-in, the tutorial step reached.
  • Server-to-client replication, with cleanup on disconnect.
  • Notifications: short-lived messages (five at most on screen, a few seconds each) and global banners (three at most), to notify one player, all players, or all players except one.
  • An admin console, opened with the F2 key, with history and auto-completion. Typing adminpanel or ap opens a visual panel. Commands included: kill a player, teleport them, change their speed, kick them, show help, send a message to one player or to everyone, reset or inspect their data.
  • The administrator list, written when the project is created with your Roblox ID when your Roblox account is already linked. Anyone present in Studio and the game’s creator are administrators in practice.
  • An interface base: a central theme (colors, spacing, typography), a scale calculated from a reference screen that adjusts when the camera changes, animations that do not depend on the frame rate, sound playback and number formatting.
  • A backpack and a top bar, ready to use.
  • A tutorial skeleton: an overlay, highlights, beams in the scene and remembering the step.

To be frank, so you are not disappointed: there is no leaderboard, no shop, no library of reusable interface components, no tutorial path ready to play, no currency to earn, no tests. The tutorial skeleton is a foundation: no path is provided, and it is not connected to anything.

It is a game base, not a game. What is missing is what your agents build with you.

Three files are made read-only in your project, because a single bad change to them breaks both compilation and sync with Studio at once:

File What it does
default.project.json the plan that says which folder goes where in Roblox
tsconfig.json the rules of compilation
scripts/dev.mjs the start of the compiler

Other files belong to the app and are updated each time the project is opened, including the template’s README.md. Two files are merged rather than replaced: your personal lines in .gitignore are kept, and in package.json only the startup entries are reconciled.

Everything else — starting with src/ — is written once when the project is created and never touched again: this code is yours.

The Cloud saves and shares the code. Images, 3D models and sounds live on Roblox once published: your game calls them by their ID. Storing them twice in the project history makes it heavy enough to slow down sync — that is why they are excluded by default. In any case, the project’s plan only uploads the translated code and the libraries.

See Where your assets go.

  • The compiler already runs, started by the app. Do not start it a second time: it will refuse and tell you that a compiler is already running.
  • out/ is rewritten constantly: any change made there is lost.
  • The template evolves with the app, but only for the files that belong to it. Your code does not move.

Can I rename or move the folders in src/? No. The project’s plan expects them at these locations, and it cannot be modified.

Why is my code in TypeScript and not Luau? Because it is the template’s language: you write TypeScript, a compiler translates it into Luau, and it is this translation that Studio receives.

Can I add a Roblox library? Yes: ask an agent, and it adds it to the project’s dependencies. It will then appear in ReplicatedStorage.Packages.

How do I become an administrator in my own game? Your Roblox ID is already there if your Roblox account was linked when the project was created. In Studio, you are an administrator anyway.