Skip to main content

What you can do now

  • The profile switcher is in the header bar. The button at the top left shows the profile you are on; its menu switches profile, and holds New Profile… and Delete Profile…. The window itself is just the Roblox button. A line under it appears only when something is unusual: the profile does not exist yet, another window has it open, or it is pinned to a Roblox version.
  • Plugins ask once, when it matters. Opening Settings no longer stacks a permission dialog per built-in plugin. The question is asked on the Plugins page, in one dialog that names every plugin waiting on an answer, and a plugin that ships switched off asks when you switch it on. Not now grants nothing; to allow only some, answer Not now and use each plugin’s switches. Nothing is granted just because it ships with Cordial.
  • Shift lock on Hyprland holds the cursor, the camera turns and clicks reach the game, and a held mouse button is no longer dropped when the pointer changes hands. Thanks to eklofsivert-dot. Measured on Hyprland 0.56.2 by the contributor; repeated launches were not.
  • For developers: cordial-protocol 0.1.0, a Rust crate for the protocol a launcher and a runtime speak to each other: message types, a bounded line codec, version negotiation, and a conformance suite either side can run. It is licensed MIT OR Apache-2.0 so other projects can depend on it; the rest of Cordial stays GPL-3.0-or-later. Cordial’s own launcher uses it for live settings, with the bytes on the wire unchanged. See the runtime spec. The protocol itself is a proposal (ADR-055) and nothing yet launches a third-party runtime.

Also

  • When Roblox builds an error message for a system error, it no longer aborts. Cordial handed it the GNU variant of strerror_r where it expects the POSIX one. Pinned by tests; not reproduced against a running game.

What is still broken

The signed-in startup freeze. Roblox can stop drawing on the loading screen after sign-in. The launcher restarts a client stuck that way, up to twice (0.24.1); a client started any other way stays stuck. Movement keys can be dead after joining a game. W/A/S/D do nothing until the character respawns. It happens when no input reaches the game while the place loads; moving the mouse while it loads avoided it in every test so far. A fix that does this automatically is written and has not yet passed its test. #29 The touchscreen crash and the rest of the list in the 0.24.0 notes still apply. Not tried: importing a split APK through the Flatpak’s file chooser, which may hand Cordial only the file you picked and not the split beside it. Copy Sober’s build instead.