Repository navigation
Releases: gmoddev/CarbonLuau
Release list
CarbonLuau v0.5.0 — Experimental
CarbonLuau v0.5.0 — Experimental
This prerelease adds local durable persistence and bounded structured Query to
CarbonLuau's server-side Luau API. It is an experimental release, not a stable
production-support promise. Install the Windows x64 or glibc Linux x64 archive
matching your Rust/Carbon server; do not mix versions of the plugin, native
runtime, compiler worker, or private storage worker.
Persistence
local DataStoreService = game:GetService("DataStoreService")
local Store = DataStoreService:GetDataStore("Players", {
Indexes = {"Coins", "Level"}, -- optional preparation hints
})
task.defer(function()
local Ok, SubmissionError = pcall(function()
Store:SetAsync("123", {Coins = 10, Level = 2}, function(Saved, ErrorCode)
if ErrorCode then
print(`[CarbonLuau:PersistenceExample] Save outcome: {ErrorCode}`)
return
end
print(`[CarbonLuau:PersistenceExample] Saved: {Saved}`)
end)
end)
if not Ok then
print(`[CarbonLuau:PersistenceExample] Submission rejected: {SubmissionError}`)
end
end)GetAsync, SetAsync, and RemoveAsync submit non-yielding bounded requests.
Submission is not durable success: handle the later callback. Values are copied
at submission; returned tables are fresh snapshots. Stores are private to the
operator root or owning addon. The same store/key text in two namespaces does
not share data. Durable namespaces survive replacement and restart; old facade
and callback authority does not.
DataStore:Query accepts one exact top-level field and either Equals or an
inclusive Min/Max range, with bounded ordering and result limits. CarbonLuau
prepares indexes automatically; Indexes = {"Coins", "Level"} only asks for
earlier preparation. A first-use Query may return IndexPreparing or
QueryUnavailable under the documented bounds. Query never falls back to an
unbounded primary-store scan. Results are current per page, not one frozen
multi-page snapshot. Opaque keyset cursors can become invalid after generation,
session, worker, or domain changes; reacquire rather than assuming they retarget.
The backend is one local SQLite database using the qualified PERSIST + EXTRA
durability profile. Successful writes follow that profile; an acknowledgement
lost around COMMIT can be indeterminate. CarbonLuau does not automatically
replay uncertain mutations or callbacks. Corruption/unavailable storage fails
controlledly rather than pretending a key is missing. The 16-MiB-per-namespace
and 256-MiB-global logical quotas are hard admission ceilings, but unused
logical quota does not guarantee physical admission. Database and journal file
extents have separate hard ceilings; the 2,560-MiB filesystem-allocation figure
is a qualified operational budget, not a never-exceeded allocated-block
guarantee. Files are not preallocated to those ceilings.
See the author guide,
DataStore reference,
Query request,
Query result,
and installation/storage guidance.
Foundation 1's combined qualification
and Foundation 2's combined qualification record the platform,
crash, lifecycle and live Carbon evidence.
Other API continuity
The v0.4.0 gameplay, provider-owned addons, and retained GUI APIs remain in
this package with their historical introduction identities. Player mutations
still use the published committed-only and exact-identity rules. The official
v0.4.0 VS Code extension is pinned to the older runtime/API and is not a
qualified matching v0.5.0 artifact; no VSIX or editor-store simulation is
included with this release.
Identities
| Identity | Value |
|---|---|
| Package / tag | 0.5.0 / v0.5.0 |
| Scripting API | CarbonLuau 0.5.0-experimental |
| Native ABI | 1.5 |
| Provider protocol | CarbonLuau.Addons / 1.2 |
| Addon package schema | 1 |
| Pinned Luau | c6b830185af962c82003f86784e2fe036357c830 |
| Private SQLite | 3.53.4 |
Qualification and limits
Foundation 2D passed exact-source hosted Windows, Linux, ASan/UBSan/leak,
tooling/API, package and clean-install checks. Controlled live Carbon/Rust
server tests exercised persistence and Query on Windows and Linux, including
plugin reload/unload; Linux additionally demonstrated a fresh Rust process
restart and durable readback. The unchanged Foundation 1C Windows restart
qualification remains separate historical evidence. These are server-side
tests; no authenticated Rust client/UI receipt is claimed. Shockbyte
full-runtime, macOS server/runtime and every future Rust/Carbon build remain
unqualified. Sudden-power-loss behavior outside the recorded durability
envelope is not claimed. Consult Compatibility before
deployment.
There is no Roblox cloud DataStore compatibility, cross-server replication,
arbitrary SQL, key enumeration, UpdateAsync, multikey transactions, author
schema/migration/index lifecycle, automatic mutation replay, or primary-scan
Query. Entity APIs remain host-primitive-gated. GUI TextBox is not implemented;
authenticated-client visual and click behavior remains unqualified.
CarbonLuau v0.4.0 — Experimental
CarbonLuau v0.4.0
Experimental server-side Luau scripting for Carbon-modded Rust servers. Scripting API: CarbonLuau 0.4.0-experimental.
This release includes provider-owned addon packages, declared dependencies and public modules; GUI Foundations 1-3 with retained controls, list/grid layouts, images, clipping, fonts and scrolling intent; and Player Interaction Foundation 1 with Vector3, Position, Health, MaxHealth, Items, CountItem, HasItem, Teleport, TakeItem and InventoryOnly GiveItem.
Official VS Code tooling provides canonical API information, project/package diagnostics and supervised language analysis. GUI preview displays canonical geometry, hierarchy, inspector and resource usage. Identical retained state projects deterministically; script repeatability applies to deterministic scripts. Restricted Mode retains static tooling; executable analysis and preview require Workspace Trust.
Installation and provenance
Download the matching Windows x64 or Linux x64 runtime ZIP and follow installation. Install the matching VSIX manually for editor tooling; macOS arm64 is static-only. Extension version remains 0.0.1, with tooling pack 0.4.0-rc.1. Marketplace and Open VSX publication are not included.
The five distributable artifacts have their qualified .sha256 and .provenance.json companions attached. These are the tested bits, without a publication rebuild. Artifacts are unsigned; checksums establish integrity, not publisher signing or attestation.
- Runtime:
2ada473399e752e8d178cce089cc9a7d442f32cf. - Extension:
a4ca6d635819f95b249d17a8a978906b6f188485. - Native ABI
1.4; provider protocolCarbonLuau.Addons/1.2; package schema1. - Runtime Luau:
c6b830185af962c82003f86784e2fe036357c830.
See the qualified detailed release notes, API reference, compatibility, and extension guide. Frozen qualification documents retain their pre-publication candidate wording.
Known limitations
Authenticated-client GUI visuals/clicks, clipping/font/scroll observations and Teleport convergence remain unqualified. Historical Windows live/local and Foundation G deferrals remain as recorded. Shockbyte/full-provider qualification is not included in the current qualification envelope. macOS tooling remains static-only.
InventoryOnly is the supported GiveItem behavior. False means rejection before COMMIT; true requires verification; indeterminate post-COMMIT errors may follow mutation. There is no universal rollback or isolation from trusted in-process plugins. DropRemainder, raw inventory objects, health mutation, TextBox and CanvasPosition are not included.
Preview images/fonts are approximations; callbacks, gameplay simulation and live debugging are not provided. Process supervision and Luau VM limits are not OS filesystem/network sandboxing. Workspace executable configuration and plugins are excluded; trusted type analysis and preview execute outside the extension host.
CarbonLuau v0.3.0 — Experimental Pre-release
CarbonLuau 0.3.0
First qualified experimental release.
CarbonLuau adds bounded, server-side Luau scripting to Carbon-modded Rust
servers. It ships a Carbon source package plus a platform-specific native library
containing the pinned Luau compiler and VM.
Highlights
- Sandboxed scripts, controlled modules and transactional reloads.
- Bounded VM memory, cooperative deadlines and callback queues.
task.spawn,task.deferandtask.delay.- Experimental Players, Player, Signals/Connections and Commands facade.
- Carbon permission enforcement and status/reload administration.
- Controlled-worker qualification on Windows x64 and glibc Linux x64.
Install
Download the archive matching the server OS. Copy CarbonLuau.cszip to
carbon/plugins, place the one matching native library under
carbon/data/CarbonLuau/native/<rid>, and put init.luau under
carbon/data/CarbonLuau/scripts. See the complete
installation guide.
local Players = game:GetService("Players")
Players.PlayerAdded:Connect(function(Player)
Player:SendMessage(`Welcome, {Player.Name}`)
end)Compatibility and limitations
The scripting API is CarbonLuau 0.3.0-experimental; it is not a stable 1.0 API
or a production-readiness claim. Qualification used Carbon 2.0.259.0 and Rust
2633 / Steam build 25230300. Other host versions require affected checks.
Authenticated Steam/network establishment, visible client message receipt,
network-driven player lifecycle events and real same-account reconnect were not
qualified. Shockbyte full-runtime behavior is also unqualified. Cooperative
deadlines are not hard real-time guarantees, and the VM cap is not whole-process
containment. Items, Player:GiveItem and the Items service are not shipped.
See the public API,
API limits and
detailed Phase 5 evidence.