vii 7cf24feef6 feat(branding): rename fork to Nightcap and add AppImage release workflow
Show Nightcap as the app name in the desktop entry, window title,
dialogs, and metainfo. Binary, config paths, and desktop ID keep the
mocktail name. Publish Nightcap-x86_64.AppImage to GitHub Releases on
v* tags. README points at the fork's releases instead of upstream
packages.
2026-09-14 22:19:19 -05:00
2026-08-12 10:50:43 +03:00
2026-09-12 15:59:03 +03:00
2026-08-12 01:58:18 +03:00
2026-08-12 01:58:18 +03:00
2026-08-12 01:58:18 +03:00
2026-08-23 18:31:12 -04:00
2026-08-14 00:34:46 +03:00
2026-08-26 02:29:01 +03:00

Nightcap

CI Stars License Discord

Nightcap is Mocktail, tuned for playing on a real PC. It runs the Android x86_64 Roblox client on Linux, including a Linux userspace hosted by FreeBSD's Linuxulator. It provides the Android ABI and JNI pieces the client expects, then connects them to SDL3 and Vulkan or OpenGL on the Linux side.

Nightcap is an independent community project. It is not affiliated with Roblox Corporation or VinegarHQ and does not distribute the Roblox client.

About this fork

Nightcap is a fork of komaruworld/mocktail with extra fixes for playing on a PC. The program, config paths, and desktop entry keep the mocktail name so upstream fixes still apply cleanly.

  • Lower input lag. Frames are shown as soon as they are ready instead of waiting in a queue.
  • Sharper textures. Small textures are upscaled, and you can replace any texture with your own PNG in ~/.config/mocktail/textures.
  • ETC2 textures on any GPU. Games that use compressed mobile textures now render correctly on desktop GPUs, without stutter.
  • No more error 319 kicks. Servers no longer drop you shortly after joining.
  • Correct device info. Roblox sees your real RAM and screen size.
  • Better desktop launcher. Runs on Wayland and always finds the installed binary.

Everything else works the same as upstream.

Install

Grab the AppImage from the latest release, make it executable, and run it:

chmod +x Nightcap-x86_64.AppImage
./Nightcap-x86_64.AppImage

Or build it from source using the steps under Building. For Flatpak, AUR, DEB, and RPM packages of the unmodified upstream, see komaruworld/mocktail.

How it works

Roblox APK -> signature and ABI checks -> Bionic + JNI -> SDL3 + Vulkan/OpenGL

The APK is checked before any native code is loaded. It is downloaded on first launch and is not bundled with Mocktail. The last working copy is kept in case an update fails.

Screenshots

Roblox home in Mocktail

Roblox gameplay in Mocktail

Roblox experience in Mocktail

FFlag overrides

Put a JSON object in $XDG_CONFIG_HOME/mocktail/fflags.json (usually ~/.config/mocktail/fflags.json). Mocktail applies it on the next launch.

PC profiles use the legacy Charts page by default to avoid the blank screen caused by Color3 errors in the newer SDUI page. An explicit FFlagLuaAppChartsAppPage override takes precedence over this default.

{
  "FFlagExample": "True",
  "DFIntExample": "120"
}

Settings

Edit ~/.config/mocktail/config.yaml. Useful options:

  • graphics.frame_rate_limit: display to unlock FPS to your monitor's rate.
  • graphics.vsync: off for the lowest lag, at the cost of tearing.
  • graphics.backend: opengl if Vulkan does not work on your GPU.

Building

Linux x86_64 is supported. Experimental FreeBSD 15.1 Linuxulator support has been tested with an x86_64 Fedora 44 userspace. On FreeBSD, Mocktail runs inside Linuxulator; it is not a native FreeBSD binary. Building requires CMake 3.20+, Git, pkg-config, LLD, binutils, a C++17 compiler, SDL 3.4+, SDL3_ttf, Vulkan, EGL, libplacebo, fontconfig, libcurl, OpenSSL, libelf, libyaml, minizip, Capstone 5, utf8proc, nlohmann/json, GTK4, libadwaita 1.6+, and WebKitGTK 6.0.

See the FreeBSD Guide for setup and launch instructions.

Ubuntu 26.04+
sudo apt update
sudo apt install build-essential cmake git ninja-build pkg-config lld \
  libsdl3-dev libsdl3-ttf-dev libcurl4-openssl-dev libssl-dev \
  nlohmann-json3-dev libyaml-dev libelf-dev libminizip-dev \
  libcapstone-dev libgtk-4-dev libadwaita-1-dev libwebkitgtk-6.0-dev \
  libutf8proc-dev libfontconfig1-dev libegl-dev libvulkan-dev \
  libplacebo-dev zlib1g-dev
Arch Linux
sudo pacman -S --needed base-devel cmake git ninja pkgconf lld sdl3 sdl3_ttf \
  curl openssl nlohmann-json libyaml libelf minizip capstone gtk4 \
  libadwaita webkitgtk-6.0 libutf8proc fontconfig libglvnd \
  libplacebo vulkan-headers vulkan-icd-loader zlib
Fedora 44+
sudo dnf install gcc-c++ cmake git ninja-build pkgconf-pkg-config lld \
  SDL3-devel SDL3_ttf-devel libcurl-devel openssl-devel \
  nlohmann-json-devel libyaml-devel elfutils-libelf-devel minizip-ng-compat-devel \
  capstone-devel gtk4-devel libadwaita-devel webkitgtk6.0-devel \
  utf8proc-devel fontconfig-devel libglvnd-devel vulkan-headers \
  vulkan-loader-devel libplacebo-devel zlib-ng-compat-devel
git clone --recurse-submodules https://github.com/CoderDayton/nightcap.git
cd mocktail
make build
./build/mocktail

To run the same checks as CI before each commit and push, install lefthook and run once:

lefthook install

Known limitations

Mocktail does not currently work with hardened_malloc. Using hardened_malloc may cause Mocktail to fail to start or crash during runtime. Run Mocktail without hardened_malloc enabled.

License

Apache License 2.0. Third-party components keep their own licenses.

Support

Support this fork by giving it a star or with cryptocurrency:

  • LTC: LdABR2ELRYrUESWZWrEk1uNx38gHHMuHUU
  • SOL: tjeDnPoWeyW8zfTf8c5CVAm5QTV8vFPaPouaScAdwfT
  • BCH: qpktw5jwut9ae8e6898qt3v7rj3km44utgk2r9mj8n

Support the upstream project, which does most of the heavy lifting:

  • USDT (TON): UQCi6Yzcc9cOctoij6n_r1K90-OdVxAT0D_xo2UzGKkQaJDY
  • USDT (TRC20): TNPMG9Vig2xiuo2r1QqnXRChPH7Vu28Jmx
2026-10-16 22:00:55 +02:00
Languages
C++ 83.5%
Shell 6.1%
Python 5.1%
C 2.9%
CMake 1.4%
Other 0.8%