@ldgerrits/rogen 1.4.4 → 2.0.0-beta.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/LICENSE.md CHANGED
@@ -1,7 +1,7 @@
1
- Copyright © 2026 Loek Gerrits
2
-
3
- Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
4
-
5
- The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
6
-
1
+ Copyright © 2026 Loek Gerrits
2
+
3
+ Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
4
+
5
+ The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
6
+
7
7
  THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
package/README.md CHANGED
@@ -1,33 +1,109 @@
1
- <div>&nbsp;</div>
2
-
3
- <div align="center">
4
- <img src="https://raw.githubusercontent.com/LDGerrits/rogen/main/docs/public/icon.png" alt="Rogen" width="100" />
5
- </div>
6
-
7
- <div align="center">
8
- <a href="https://rogen-playfully.vercel.app"><strong>documentation</strong></a>
9
- </div>
10
-
11
- ---
12
-
13
- <div align="center">
14
- A CLI tool that enables feature-based architecture for Roblox
15
- </div>
16
-
17
- ## Features
18
-
19
- - **Feature Folders:** Keep related client, server, and shared code inside a single folder.
20
- - **Auto-Routing:** Map files to Roblox services automatically using Rojo or Argon.
21
- - **Multi-Place Support:** Merge multiple source directories to share core systems across different places.
22
- - **Environment Tags:** Filter test files and inject mock dependencies at build time using tags.
23
- - **Granular Control:** Shape the project tree using invisible folders, hoisting, and marker files.
24
- - **Modern Tooling:** Support Luau, roblox-ts, and Darklua pipelines out of the box.
25
-
26
- ## Contributing
27
-
28
- Pull requests are welcome!
29
- Read the [contribution guidelines](CONTRIBUTING.md) to set up your local environment, run tests, and submit code changes.
30
-
31
- ## License
32
-
33
- See the [licence](LICENSE.md) for details.
1
+ <p align="center">
2
+ <a href="https://rogen-roblox.vercel.app">
3
+ <picture>
4
+ <source media="(prefers-color-scheme: dark)" srcset="docs/public/icon.png" />
5
+ <img src="docs/public/icon-dark.png" alt="Rogen logo" width="160" />
6
+ </picture>
7
+ </a>
8
+ </p>
9
+ <h1 align="center">Rogen</h1>
10
+ <p align="center">
11
+ <strong>A Rojo superset that keeps each feature's server and client code in one folder.</strong>
12
+ </p>
13
+ <p align="center">
14
+ Rogen generates the Rojo project file from your file system, and sends each file to the right place in Studio.
15
+ </p>
16
+ <p align="center">
17
+ <a href="https://www.npmjs.com/package/@ldgerrits/rogen"><img alt="Beta release" src="https://img.shields.io/npm/v/@ldgerrits/rogen/next?style=flat-square&label=beta" /></a>
18
+ <a href="https://rogen-roblox.vercel.app/docs/v2"><img alt="Documentation" src="https://img.shields.io/badge/docs-website-blueviolet?style=flat-square" /></a>
19
+ <a href="https://discord.com/channels/385151591524597761/1503801029232295996"><img alt="Discord" src="https://img.shields.io/badge/discord-chat-5865F2?style=flat-square&logo=discord&logoColor=white" /></a>
20
+ <a href="https://github.com/LDGerrits/rogen/stargazers"><img alt="GitHub stars" src="https://img.shields.io/github/stars/LDGerrits/rogen?style=flat-square&logo=github" /></a>
21
+ <a href="https://luau.org"><img alt="Luau" src="https://img.shields.io/badge/Luau-00A2FF?style=flat-square&logo=luau&logoColor=white" /></a>
22
+ <a href="https://roblox-ts.com"><img alt="roblox-ts" src="https://img.shields.io/badge/roblox--ts-3178C6?style=flat-square&logo=typescript&logoColor=white" /></a>
23
+ </p>
24
+
25
+ <p align="center">
26
+ <picture>
27
+ <source media="(prefers-color-scheme: dark)" srcset="docs/public/readme/routing-dark.png" />
28
+ <img src="docs/public/readme/routing-light.png" alt="VS Code with an Inventory feature and rogen serve in its terminal, beside the Roblox Studio Explorer with each file where Rogen sent it" width="840" />
29
+ </picture>
30
+ </p>
31
+
32
+ ## Why Rogen?
33
+
34
+ - **Organize by feature** — Group all code, UI, and assets for a specific feature in one place. This gives you high cohesion, better scalability, fewer merge conflicts, and features that are simple to maintain or delete.
35
+ - **Enforce boundaries** — Keep coupling low with a linter. Every path names its feature, so a [lint rule](https://rogen-roblox.vercel.app/docs/v2/linting) can stop one feature from requiring another.
36
+ - **Multi-place games** — Write shared code once and use it in every place. When one place needs something different, add a file with the same name to that place's folder, and it replaces the shared one there.
37
+ - **Still Rojo** — Rogen runs the Rojo commands you use, with the same flags. One tool, and nothing to relearn.
38
+
39
+ ## Built for agents
40
+
41
+ When an agent works on a feature, everything it needs is in one folder, from server to client. It spends its context on your task instead of searching the codebase.
42
+
43
+ Running several agents? Give each one a feature. A lint rule catches any agent that makes one feature require another, and there's no shared project file to conflict on. See [Working with agents](https://rogen-roblox.vercel.app/docs/v2/agents) to set them up.
44
+
45
+ ## How it works
46
+
47
+ `default.rogen.json` is a Rojo project file with `routes`. Its `tree` holds what folder names can't say, such as your packages:
48
+
49
+ <!-- prettier-ignore -->
50
+ ```json
51
+ {
52
+ "name": "my-game",
53
+ "routes": {
54
+ "Server": "ServerScriptService",
55
+ "Client": "StarterPlayer/StarterPlayerScripts",
56
+ "Shared": "ReplicatedStorage/Shared",
57
+ "*": "ReplicatedStorage/Shared"
58
+ },
59
+ "tree": {
60
+ "$className": "DataModel",
61
+ "ReplicatedStorage": {
62
+ "Packages": { "$path": "Packages" }
63
+ }
64
+ }
65
+ }
66
+ ```
67
+
68
+ A file goes where its [folder or `@` suffix](https://rogen-roblox.vercel.app/docs/v2/core-concepts/routing) says: `Server/` and `@Server` both mean ServerScriptService. Everything else goes to `*`, and a route you add, such as `"Gui": "StarterGui"`, works the same way.
69
+
70
+ ## Installation
71
+
72
+ ```bash
73
+ rokit add ldgerrits/rogen@2.0.0-beta.2
74
+ rogen init
75
+ ```
76
+
77
+ `rogen init` pins Rojo in `rokit.toml` and tells you to run `rokit install` to fetch it. New to Rojo? Also run `rogen plugin install` to add its Studio plugin. Prefer npm? Run `npm i @ldgerrits/rogen@next` and use `npx rogen`.
78
+
79
+ ## Usage
80
+
81
+ ```bash
82
+ rogen serve # Serve with Rojo and update the project file on changes
83
+ rogen build -o game.rbxl # Update the project file, then build a place with Rojo
84
+ rogen check # Print warnings and errors, and exit 1 on any
85
+ ```
86
+
87
+ `sourcemap`, `upload`, `syncback` and `plugin` take Rojo's flags too. See the [command reference](https://rogen-roblox.vercel.app/docs/v2/commands) for every command.
88
+
89
+ ## FAQ
90
+
91
+ #### Does Rogen replace Rojo?
92
+
93
+ Yes and no. You run `rogen` instead of `rojo`, but Rojo still does the syncing and building underneath. Its Studio plugin stays installed too.
94
+
95
+ #### Does Rogen work with Argon?
96
+
97
+ Yes, for syncing your files into Studio. Run `rogen write --watch` and serve with Argon. To bring Studio changes back, save the place and run `rogen syncback --input game.rbxl`. With Rojo, it's one command: `rogen serve` keeps the project file current and serves it.
98
+
99
+ #### Can I use Rogen in an existing Rojo project?
100
+
101
+ Yes. Run `rogen init` to move it to Rogen. See [Coming from Rojo](https://rogen-roblox.vercel.app/docs/v2/coming-from-rojo).
102
+
103
+ ## Contributing
104
+
105
+ Read the [contributing guide](CONTRIBUTING.md) before you open a pull request. You can also star the repo or [sponsor its development](https://github.com/sponsors/LDGerrits).
106
+
107
+ ## License
108
+
109
+ Rogen is [MIT licensed](LICENSE.md).