株式会社オブライト
Software Dev2026-04-13

Luau開発者ツールチェーン完全ガイド — Rojo・Selene・StyLua・Wallyで実現するプロ品質ワークフロー【2026年版】

Luau開発者ツールチェーン完全ガイド。Rojo(Studio同期)、Selene(リンター)、StyLua(フォーマッター)、Wally(パッケージ管理)、Rokit(ツール管理)、luau-lsp(言語サーバー)、TestEZ(テスト)、Lune(スタンドアロンランタイム)を使ったプロ品質ワークフローを解説。


Roblox Studio単体では大規模開発に限界があり、外部ツールチェーンが必須

Roblox Studioは優れたIDEですが、Git管理・静的解析・パッケージ管理といったプロ品質の開発に必要な機能が不足しています。Rojo・Selene・StyLua・Wallyを組み合わせることで、現代的なソフトウェア開発と同等のワークフローが実現できます。

ツールチェーンが重要な理由

Roblox Studio単体での開発が抱える主な課題は以下の通りです。 - バージョン管理: Studioのファイル形式(.rbxl)はGitでの差分管理が困難 - コード品質: バグや非推奨APIの使用をリアルタイムで検出する仕組みがない - チーム開発: 複数人での同時編集・コードレビューが困難 - 依存関係管理: 外部ライブラリの導入・更新が手動作業 外部ツールチェーンはこれらすべての課題を解決し、チーム開発のスケーラビリティを大幅に向上させます。

Loading diagram...

Rojo:VSCode↔Roblox Studio同期の中核

Rojoはファイルシステム上の`.luau`ファイルをRoblox Studioのオブジェクトツリーにリアルタイム同期するツールです。 主な特徴: - Luauファイルをそのままの階層構造でGit管理できる - `rojo serve`コマンドで起動し、Studioプラグインが自動同期 - `.project.json`でファイルツリーとRobloxツリーのマッピングを定義

bash
# Rojoプロジェクト初期化
rojo init my-game
cd my-game
rojo serve

StudioのRojoプラグインから`Connect`を押すだけで、以降はファイルを保存するたびにStudioが自動更新されます。

Selene:Luau専用静的リンター

SeleneはRust製の高速静的解析ツールで、Roblox APIルールをネイティブでサポートしています。 主な機能: - 未使用変数・シャドウイング・非推奨APIの検出 - Roblox標準ライブラリ定義ファイル(`roblox.toml`)内蔵 - カスタムルールの定義が可能

bash
# selene設定ファイル
# selene.toml
[lints]
global_usage = "allow"
roblox = true

VSCode拡張と組み合わせると、コード編集中にリアルタイムで警告が表示されます。

StyLua:Prettierに相当するコードフォーマッター

StyLuaはLua/Luau専用のコードフォーマッターで、チーム全体のコードスタイルを自動統一します。

toml
# stylua.toml
column_width = 120
indent_type = "Spaces"
indent_width = 4
quote_style = "AutoPreferDouble"
call_parentheses = "Always"
bash
# フォーマット実行
stylua src/

# Git pre-commitフックに組み込み
stylua --check src/

CI/CDパイプラインに`--check`オプションで組み込むことで、フォーマット違反のコードがマージされるのを防げます。

Wally:Luauエコシステムのパッケージマネージャー

Wallyは`wally.run`で公開されているパッケージマネージャーで、npmやCargoに相当します。

toml
# wally.toml
[package]
name = "myorg/my-game"
version = "0.1.0"
registry = "https://github.com/UpliftGames/wally-index"

[dependencies]
Promise = "evaera/promise@4.0.0"
ProfileService = "madstudioroblox/profileservice@1.0.0"
Signal = "sleitnick/signal@1.5.0"
bash
wally install

`wally install`を実行するとPackagesフォルダが生成され、`require(Packages.Promise)`で利用できます。

Rokit:ツールチェーンマネージャー

Rokitは`rokit.toml`一つでRojo・Selene・StyLua・Wallyのバージョンを統一管理するツールです。

toml
# rokit.toml
[tools]
rojo = "rojo-rbx/rojo@7.4.4"
wally = "UpliftGames/wally@0.3.2"
selene = "Kampfkarren/selene@0.27.1"
stylua = "JohnnyMorganz/StyLua@0.20.0"
bash
rokit install

チームメンバーは`rokit install`一発で全ツールを同一バージョンでセットアップできます。

luau-lsp:VSCode/Neovim用言語サーバー

luau-lspはLSP(Language Server Protocol)実装で、以下を提供します。 - オートコンプリート: Roblox API・自作クラスのメソッド補完 - 型チェック: `--!strict`モードの静的型エラー表示 - 定義ジャンプ: `F12`でModuleScriptの定義元にジャンプ - ホバー情報: 関数シグネチャ・ドキュメントのインライン表示 VSCode拡張「Luau Language Server」を入れるだけで自動起動します。

TestEZ:ユニットテストフレームワーク

TestEZはRoblox公式のユニットテストフレームワークで、Jest風のAPIを提供します。

luau
-- AnimalSpec.luau
return function()
    describe("Animal", function()
        it("should have correct name", function()
            local animal = Animal.new("Rex", "Woof")
            expect(animal:getName()).to.equal("Rex")
        end)
    end)
end

Luneと組み合わせることでRoblox Studio外からも実行でき、CI/CDパイプラインへの組み込みが可能です。

Lune:Rust製スタンドアロンLuauランタイム

LuneはRoblox Studioなしでも動作するLuauランタイムです。ビルドスクリプト・ファイル操作・HTTP通信などをLuauで記述でき、CI/CDツーリングに最適です。

lua
-- build.luau
local fs = require("@lune/fs")
local process = require("@lune/process")

local result = process.spawn("rojo", {"build", "--output", "game.rbxl"})
if result.ok then
    print("Build succeeded")
else
    error(result.stderr)
end

セットアップ手順:ゼロから始めるプロ品質環境

bash
# 1. Rokitのインストール(ツール管理)
curl -sSf https://raw.githubusercontent.com/rojo-rbx/rokit/main/scripts/install.sh | sh

# 2. rokit.tomlを作成してツールをインストール
rokit init
rokit add rojo-rbx/rojo
rokit add UpliftGames/wally
rokit add Kampfkarren/selene
rokit add JohnnyMorganz/StyLua
rokit install

# 3. Rojoプロジェクト初期化
rojo init

# 4. Wallyの初期化とパッケージインストール
wally init
wally install

# 5. Seleneの設定
selene generate-roblox-std

# 6. 開発開始
rojo serve

ツール比較テーブル

ツールカテゴリ主な役割必須度
Rojoファイル同期VSCode↔Studio間のリアルタイム同期必須
Selene静的解析バグ・非推奨API・スタイル検出強く推奨
StyLuaフォーマットコードスタイルの自動統一強く推奨
Wallyパッケージ管理外部ライブラリの導入・更新中〜大規模で必須
Rokitツール管理全ツールのバージョン統一チーム開発で必須
luau-lsp言語サーバーオートコンプリート・型チェック必須
TestEZテストユニットテスト実行品質重視プロジェクトで必須
LuneランタイムCIツーリング・ビルドスクリプト高度なCI/CDで有用

よくある質問(FAQ)

Q1. Roblox Studio単体で十分ではないですか? A. 個人の小規模プロジェクトであれば十分な場合もあります。しかしチーム開発・長期保守・コードレビューが必要な場合は、外部ツールチェーンの導入が開発速度と品質の両面で大きく有利です。 Q2. チーム開発で最低限必要なツールはどれですか? A. Rojo(Git管理)とluau-lsp(コード補完)の2つが最優先です。次にRokit(バージョン統一)とSelene(コード品質)を追加することを推奨します。 Q3. WallyとnpmやCargoと比べて成熟度はどうですか? A. パッケージ数はnpmほど多くありませんが、Roblox開発で必要な主要ライブラリ(Promise、Signal、ProfileService等)は揃っています。2026年現在も活発にメンテナンスされています。 Q4. SeleneとluauLSPの型チェックは重複しますか? A. 役割が異なります。Seleneはコードスタイル・非推奨API・ロジックパターンを検出し、luau-lspは型システムに基づく型エラーを検出します。両方使うことが推奨です。 Q5. Luneはどんな場合に使いますか? A. CI/CDパイプラインでの自動ビルド、テスト実行スクリプト、ファイル生成ツールなど、Roblox外でLuauコードを実行したい場面で活躍します。 Q6. このツールチェーンはRoblox以外のLuauプロジェクトにも使えますか? A. はい。Selene・StyLua・Luneは純粋なLuau/Luaツールであり、Roblox非依存です。RojoとWallyはRoblox専用です。

Oflightによる開発支援

Robloxゲーム開発のツールチェーン導入やCI/CD構築、チーム体制の整備でお困りの際はOflightにご相談ください。プロ品質の開発環境構築から長期保守まで、専門チームが支援します。詳細はソフトウェア開発サービスをご覧ください。

お気軽にご相談ください

お問い合わせ