Skip to main content

Place

This examples shows a working game project that:

  • uses recommended file structure
  • takes advantage of various file types
  • utilizes Wally packages

Project

default.project.json located in the root directory.

{
"name": "example",
"tree": {
"$className": "DataModel",
"ReplicatedStorage": {
"$path": "src/Shared",
"Packages": {
"$path": "Packages"
}
},
"ServerScriptService": {
"$path": "src/Server"
},
"StarterPlayer": {
"StarterPlayerScripts": {
"$path": "src/Client"
}
}
}
}

Filesystem

This is how the game looks like in the filesystem.

root

├── Packages
├── src
│ ├── Client
│ │ ├── Loader.client.luau
│ │ └── Controller
│ │ ├── .src.client.luau
│ │ ├── Camera.luau
│ │ └── Input.luau
│ │
│ ├── Server
│ │ ├── Main.server.lua
│ │ └── Test.server.lua
│ │
│ └── Shared
│ ├── Models
│ │ ├── Clickable
│ │ │ ├── .data.json
│ │ │ └── Handler.server.lua
│ │ │
│ │ └── Car.model.json
│ │
│ ├── Assets.json
│ ├── Keybinds.toml
│ └── Utils.lua

├── .gitignore
├── README.md
├── default.project.json
└── wally.toml

Roblox

And this is how the game looks like in Roblox Studio after Argon processing.

game

├── StarterPlayer
│ └── StarterPlayerScripts
│ ├── Loader (LocalScript)
│ └── Controller (LocalScript)
│ ├── Camera (ModuleScript)
│ └── Input (ModuleScript)

├── ServerScriptService
│ ├── Main (Script)
│ └── Test (Script)

└── ReplicatedStorage
├── Models (Folder)
│ ├── Clickable (ClickDetector)
│ │ └── Handler (Script)
│ │
│ └── Car (Part)
│ └── Spray (Highlight)

├── Packages (Folder)
├── Assets (ModuleScript)
├── Keybinds (ModuleScript)
└── Utils (ModuleScript)

Source Code

See this example with all source files in this repository.