Skip to content
Cluaupp

The Roblox toolchain for CL++

You write CL++ (.clpp / .clp / .clh). Cluaupp calls clpp 0.3.2, rewrites ClppLibs into ReplicatedStorage.CluauppLibs, and writes out/ for Rojo. Studio runs Luau — never CL++.

Toolchain, not compiler

KartzRbx/CLPP owns syntax, IntelliSense (clpp setup), and Luau codegen. This CLI finds sources, runs clpp api compile, and maps libraries.

Filename tags

*.server.clpp is a Script. *.client.clpp is a LocalScript. .clp / .clh are ModuleScripts. Entry is void init().

CL++ 0.3.2

Player player — never Player*. Default listen is ~>Connect. Fire with .Fire. @this only inside Class::Method.

Rojo-ready out/

cluaupp init, build, and watch write Luau next to a Rojo project. CluauppLibs land in ReplicatedStorage.

This is valid CL++ 0.3.2. Fences use language id clpp.

#include <clpp/roblox.clh>
struct HelloServer {
void Greet(Player player);
};
void HelloServer::Greet(Player player) {
post("Player name: " .: player.Name);
}
void init() {
HelloServer hello;
Players players = GetService<Players>();
for (Player player in players.GetPlayers()) {
hello.Greet(player);
}
players.PlayerAdded~>Connect(func (Player playerEntered) {
hello.Greet(playerEntered);
});
}

Install clpp 0.3.2, then cluaupp init my-game. Next: Getting started · CLI · @this.