# roblox-project-template An opinionated template for Roblox projects. # Usage ## Forgejo Create a secret on the repository called `githubtoken` and set it to a GitHub PAT which can read all public repositories. This is necessary so that actions pulling releases from GitHub can do it without ratelimits. Available on [my Forgejo instance](https://git.devmarked.win/marked/roblox-project-template). ## GitHub Rename `.forgejo` to `.github` and change all instances of `${{ secrets.githubtoken }}` to `${{ secrets.GITHUB_TOKEN }}`. You may also migrate all steps to `ubuntu-latest` from `ghcr.io/catthehacker/ubuntu:act-22-04` running on docker. Available as a [read-only fork](https://github.com/Mark-Marks/roblox-project-template). # Features - Forgejo actions, compatible with GitHub actions with a few changes. - [CI](/.forgejo/workflows/ci.yml) to analyze, lint and style check your code. - [rokit](https://github.com/rojo-rbx/rokit), a toolchain manager. - [darklua](https://github.com/seaofvoices/darklua), a Lua(u) code transformer, here used to provide string requires. - [Rojo](https://github.com/rojo-rbx/rojo), a code syncing tool. - [Lune](https://github.com/lune-org/lune), a Luau runtime and a multitude of scripts for it. - [dev.luau](/.lune/dev.luau) to generate the sourcemap, transform the code with darklua, serve it with Rojo, automatically install packages, compile your networking and provide an easy way to commit & push code. - [analyze.luau](/.lune/analyze.luau) to analyze your code with luau-lsp. - [build.luau](/.lune/build.luau) to transform your code with darklua and build it with Rojo. - [check.luau](/.lune/check.luau) to run StyLua, selene and luau-lsp on your code at once. - [install-packages.luau](/.lune/install-packages.luau) to install packages. Kept in case of needing to switch to wally. - [StyLua](https://github.com/JohnnyMorganz/stylua), an opinionated Luau formatter. - [selene](https://github.com/kampfkarren/selene), a Lua(u) linter. - [pesde](https://github.com/daimond113/pesde), a modern package manager for Luau and Roblox. - [luau-lsp](https://github.com/JohnnyMorganz/luau-lsp), a language server implementation for Luau. - [blink](https://github.com/1Axen/blink), an IDL compiler for Roblox buffer networking. - [zed](https://github.com/zed-industries/zed) configuration for optimal experience during development. - [sapphire](https://github.com/Mark-Marks/sapphire), a Roblox framework. - [sapphire-data](https://github.com/Mark-Marks/sapphire/tree/main/crates/sapphire-data), providing a datastore wrapper. - [sapphire-jecs](https://github.com/Mark-Marks/sapphire/tree/main/crates/sapphire-jecs), providing a jecs scheduler and utilities. - [sapphire-lifecycles](https://github.com/Mark-Marks/sapphire/tree/main/crates/sapphire-lifecycles), providing extra lifecycles. - [sapphire-logging](https://github.com/Mark-Marks/sapphire/tree/main/crates/sapphire-logging), providing a logger.