Toolchain, not compiler
KartzRbx/CLPP owns syntax, IntelliSense (clpp setup), and Luau codegen. This CLI finds sources, runs clpp api compile, and maps libraries.
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); });}local ReplicatedStorage = game:GetService("ReplicatedStorage")local Players = game:GetService("Players")
function HelloServer:Greet(player: Player) print("Player name: " .. player.Name)end
local function init() local hello = HelloServer local players: Players = game:GetService("Players") for _, player in players:GetPlayers() do hello:Greet(player) end local sweep = require(ReplicatedStorage.CluauppLibs.Sweep).new() sweep:Add(players.PlayerAdded:Connect(function(playerEntered: Player) hello:Greet(playerEntered) end))end
init()Install clpp 0.3.2, then cluaupp init my-game. Next: Getting started · CLI · @this.