how to use rbxts-build in a multi-placed project

https://github.com/osyrisrblx/rbxts-build I want to use rbxts-build in a multi-place project. What settings should I write in project.json? Or is it not possible? Currently, there are main and lobby places like this.
{
"name": "im-roblox-template",
"version": "1.0.0",
"description": "",
"license": "ISC",
"author": "",
"type": "commonjs",
"main": "index.js",
"scripts": {
"eslint": "eslint \"places/**/*.{ts,tsx}\" --max-warnings=0",
"lint": "eslint \"places/**/*.{ts,tsx}\"",
"fix": "eslint --fix \"places/**/*.{ts,tsx}\"",
"prepare": "husky",
"clean": "node -e \"process.platform === 'win32' ? process.exit(0) : process.exit(1)\" && (if exist out (rmdir /s /q out) & for /d /r . %d in (out) do @if exist \"%d\" rmdir /s /q \"%d\") || (rm -rf out && find places -type d -name 'out' -exec rm -rf {} +)",
"compile:lobby": "cd places/lobby && rbxtsc --verbose && darklua process out dist --verbose",
"build:lobby": "rojo build -o places/lobby/build.rbxl places/lobby && lune run sync-models places/lobby/build.rbxl lobby",
"watch:lobby": "cd places/lobby && rbxtsc -w --verbose",
"serve:lobby": "cd places/lobby && rojo serve",
"dev:lobby": "cd places/lobby && start rbxtsc -w --verbose & rojo serve",
"open:lobby": "node -e \"require('os').platform() === 'win32' ? require('child_process').execSync('start places/lobby/build.rbxl') : require('child_process').execSync('open places/lobby/build.rbxl')\"",
"prod:lobby": "rojo build -o places/lobby/build.rbxl places/lobby/production.project.json && lune run sync-models places/lobby/build.rbxl lobby",
"compile:main": "cd places/main && rbxtsc --verbose && darklua process out dist --verbose",
"build:main": "rojo build -o places/main/build.rbxl places/main && lune run sync-models places/main/build.rbxl main",
"watch:main": "cd places/main && rbxtsc -w --verbose",
"serve:main": "cd places/main && rojo serve",
"dev:main": "cd places/main && start rbxtsc -w --verbose & rojo serve",
"open:main": "node -e \"require('os').platform() === 'win32' ? require('child_process').execSync('start places/main/build.rbxl') : require('child_process').execSync('xdg-open places/main/build.rbxl')\"",
"prod:main": "rojo build -o places/main/build.rbxl places/main/production.project.json && lune run sync-models places/main/build.rbxl main"
},
"devDependencies": {
"@commitlint/cli": "^19.8.1",
"@commitlint/config-conventional": "^19.8.1",
"@eslint/js": "^9.34.0",
"@rbxts/compiler-types": "3.0.0-types.0",
"@rbxts/mad-replica": "^1.0.6",
"@rbxts/types": "^1.0.877",
"eslint-config-prettier": "^10.1.5",
"eslint-plugin-prettier": "^5.5.4",
"husky": "^9.1.7",
"prettier": "^3.6.2",
"roblox-ts": "3.0.0",
"typescript": "^5.9.2",
"typescript-eslint": "^8.40.0"
},
"dependencies": {
"@rbxts/charm": "^0.10.0",
"@rbxts/charm-sync": "^0.3.0",
"@rbxts/lapis": "^0.3.8",
"@rbxts/lemon-signal": "^1.2.0",
"@rbxts/remo": "^1.5.2",
"@rbxts/services": "^1.5.5",
"@rbxts/set-timeout": "^1.1.2",
"@rbxts/sift": "^0.0.11",
"@rbxts/sleitnick-signal": "^1.0.8",
"@rbxts/t": "^3.2.1",
"@rbxts/timer": "^0.0.9",
"@rbxts/vide-charm": "^0.3.0",
"@typescript-eslint/parser": "^8.41.0",
"eslint-config-prettier": "^10.1.8",
"eslint-plugin-import": "^2.32.0",
"rbxts-transform-debug": "^2.2.0"
}
}
{
"name": "im-roblox-template",
"version": "1.0.0",
"description": "",
"license": "ISC",
"author": "",
"type": "commonjs",
"main": "index.js",
"scripts": {
"eslint": "eslint \"places/**/*.{ts,tsx}\" --max-warnings=0",
"lint": "eslint \"places/**/*.{ts,tsx}\"",
"fix": "eslint --fix \"places/**/*.{ts,tsx}\"",
"prepare": "husky",
"clean": "node -e \"process.platform === 'win32' ? process.exit(0) : process.exit(1)\" && (if exist out (rmdir /s /q out) & for /d /r . %d in (out) do @if exist \"%d\" rmdir /s /q \"%d\") || (rm -rf out && find places -type d -name 'out' -exec rm -rf {} +)",
"compile:lobby": "cd places/lobby && rbxtsc --verbose && darklua process out dist --verbose",
"build:lobby": "rojo build -o places/lobby/build.rbxl places/lobby && lune run sync-models places/lobby/build.rbxl lobby",
"watch:lobby": "cd places/lobby && rbxtsc -w --verbose",
"serve:lobby": "cd places/lobby && rojo serve",
"dev:lobby": "cd places/lobby && start rbxtsc -w --verbose & rojo serve",
"open:lobby": "node -e \"require('os').platform() === 'win32' ? require('child_process').execSync('start places/lobby/build.rbxl') : require('child_process').execSync('open places/lobby/build.rbxl')\"",
"prod:lobby": "rojo build -o places/lobby/build.rbxl places/lobby/production.project.json && lune run sync-models places/lobby/build.rbxl lobby",
"compile:main": "cd places/main && rbxtsc --verbose && darklua process out dist --verbose",
"build:main": "rojo build -o places/main/build.rbxl places/main && lune run sync-models places/main/build.rbxl main",
"watch:main": "cd places/main && rbxtsc -w --verbose",
"serve:main": "cd places/main && rojo serve",
"dev:main": "cd places/main && start rbxtsc -w --verbose & rojo serve",
"open:main": "node -e \"require('os').platform() === 'win32' ? require('child_process').execSync('start places/main/build.rbxl') : require('child_process').execSync('xdg-open places/main/build.rbxl')\"",
"prod:main": "rojo build -o places/main/build.rbxl places/main/production.project.json && lune run sync-models places/main/build.rbxl main"
},
"devDependencies": {
"@commitlint/cli": "^19.8.1",
"@commitlint/config-conventional": "^19.8.1",
"@eslint/js": "^9.34.0",
"@rbxts/compiler-types": "3.0.0-types.0",
"@rbxts/mad-replica": "^1.0.6",
"@rbxts/types": "^1.0.877",
"eslint-config-prettier": "^10.1.5",
"eslint-plugin-prettier": "^5.5.4",
"husky": "^9.1.7",
"prettier": "^3.6.2",
"roblox-ts": "3.0.0",
"typescript": "^5.9.2",
"typescript-eslint": "^8.40.0"
},
"dependencies": {
"@rbxts/charm": "^0.10.0",
"@rbxts/charm-sync": "^0.3.0",
"@rbxts/lapis": "^0.3.8",
"@rbxts/lemon-signal": "^1.2.0",
"@rbxts/remo": "^1.5.2",
"@rbxts/services": "^1.5.5",
"@rbxts/set-timeout": "^1.1.2",
"@rbxts/sift": "^0.0.11",
"@rbxts/sleitnick-signal": "^1.0.8",
"@rbxts/t": "^3.2.1",
"@rbxts/timer": "^0.0.9",
"@rbxts/vide-charm": "^0.3.0",
"@typescript-eslint/parser": "^8.41.0",
"eslint-config-prettier": "^10.1.8",
"eslint-plugin-import": "^2.32.0",
"rbxts-transform-debug": "^2.2.0"
}
}
GitHub
GitHub - osyrisrblx/rbxts-build: An opinionated build orchestrator ...
An opinionated build orchestrator for roblox-ts. Contribute to osyrisrblx/rbxts-build development by creating an account on GitHub.
Solution:
"watch:lobby": "cd places/lobby && rbxts-build watch",
"watch:main": "cd places/main && rbxts-build watch"
"watch:lobby": "cd places/lobby && rbxts-build watch",
"watch:main": "cd places/main && rbxts-build watch"
...
Jump to solution
2 Replies
Solution
eisuke
eisuke3w ago
"watch:lobby": "cd places/lobby && rbxts-build watch",
"watch:main": "cd places/main && rbxts-build watch"
"watch:lobby": "cd places/lobby && rbxts-build watch",
"watch:main": "cd places/main && rbxts-build watch"
eisuke
eisukeOP3w ago
Everything worked fine. Closing now.

Did you find this page helpful?