# The project template: finding your way

> Public channel — documentation of app 3.6.3. Follow the availability notices of each service.

Source: [The project template: finding your way](/en/application/studio/modele-de-projet/)

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.

## The map: which folder goes where

| 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 |

Map: src/shared to ReplicatedStorage.Common, src/server to ServerScriptService.TS, src/client to StarterPlayerScripts.TS, src/first to ReplicatedFirst.TS, Packages to ReplicatedStorage.Packages, include to ReplicatedStorage.rbxts\_include. — Your project — In Roblox — src/shared/ — ReplicatedStorage.Common — src/server/ — ServerScriptService.TS — src/client/ — StarterPlayerScripts.TS — src/first/ — ReplicatedFirst.TS — Packages/ — ReplicatedStorage.Packages — include/ — 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](/en/application/studio/synchronisation/).

Two folders, only one is yours

You write in `src/`. Compilation produces a translation in `out/`, and it is `out/` that reaches Studio. Never edit `out/`: it is rewritten on every compilation.

## Where to write what

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.

## What the template already provides

-   **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.

The save version number

Saves are stored under a versioned key, and kept separate between Studio and production. Changing this number **starts from zero**: all player profiles become empty. It is useful during development, never after publishing.

## What the template does not provide

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.

## Files not to modify

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.

Do not delete the project identity file

The `vibestarter.json` file, at the root, carries your project’s identity. It is what lets a Studio window find its project on its own. See [Link a place to your project](/en/application/studio/lier-une-place/).

## Where images, models and sounds go

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](/en/application/assets/ou-vont-tes-assets/).

## Limits

-   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.

## Frequently asked questions

**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.

## Go further

-   [Sync, explained](/en/application/studio/synchronisation/)
-   [Link a place to your project](/en/application/studio/lier-une-place/)
-   [Where your project lives](/en/application/projet/)
-   [Where your assets go](/en/application/assets/ou-vont-tes-assets/)
-   [Glossary](/en/decouvrir/glossaire/)
