Basic Game Setup
Set up Network Storage in your s&box game from scratch. Install the library, create a project, configure collections, and implement basic data operations.
1
Install Network Storage Library
2
Create a Project & Configure Credentials
3
Create Collections
4
Sync with Network Storage
5
Set Up s&box Auth (Optional but Recommended)
6
Basic Data Operations
Step 2 of 6
2
Create a Project & Configure Credentials
Every game needs a Network Storage project. The Setup panel handles all configuration for you -- no code required.
## Create Your Project
1. Go to the [Network Storage dashboard](/tools/network-storage)
2. Click **New Project**
3. Enter a name for your project (e.g., "My RPG Game")
4. Click **Create**
You will see your **Project ID**, **Public API Key** (`sbox_ns_...`), and **Secret Key** (`sbox_sk_...`).
These three values do different jobs:
| Item | Used For |
|------|----------|
| **Project ID** | Identifies your project in API URLs and library config |
| **Public API Key** | Used with the Project ID by your game or dedicated server for endpoints and game values |
| **Secret Key** | Used only by the Sync Tool / Management API to push collections, endpoints, workflows, and settings |
## Open the Setup Panel
In the s&box editor menu bar, click **Network Storage > Setup**:

## Enter Your Credentials
Fill in the fields:
| Field | Value | Notes |
|-------|-------|-------|
| **Project ID** | Your project ID from the dashboard | e.g., `2db44af465f4498d` |
| **Public API Key** | `sbox_ns_...` | Used by the game client at runtime |
| **Secret Key** | `sbox_sk_...` | Editor-only, never exported with your game |
Leave **Base URL** and **Editor Data Folder** at their defaults unless you have a custom setup.
Click **Save Configuration**, then **Test Connection** to verify everything works. You should see green checkmarks for Project ID, Secret Key, and Public Key.
## What Happens Behind the Scenes
The Setup panel keeps runtime and editor-only data separate:
- **`config/public/projectConfig.json`** -- project ID, public key, base URL (safe to commit, ships with your game)
- **`config/secret/secret_key.json`** -- secret key only (gitignored, editor-only, never published)
The library also generates the runtime config it needs to auto-configure on startup. **You do not need to write any configuration code**. Your game uses the Project ID + Public Key at runtime, while the Secret Key stays editor-only.
## Manual Configuration (Alternative)
If you prefer to configure in code instead of using the Setup panel, you can call `Configure()` once at startup:
```csharp
// Only needed if you are NOT using the Setup panel
NetworkStorage.Configure( "YOUR_PROJECT_ID", "sbox_ns_YOUR_KEY" );
```
This is not recommended for most users. The Setup panel is safer because it keeps the secret key out of your code and handles the runtime/editor credential split automatically.
Tips & Troubleshooting
> **Troubleshooting:** If Test Connection shows red marks, double check that you copied the full key including the `sbox_ns_` or `sbox_sk_` prefix. Secret keys are 128+ characters long -- make sure you copied the entire string.