Starling Client Android Guide & Shaders

Starling (starling-client/starling) is the unified Android Vulkan client formed when @JuanLuci and @Vasysik merged JuanLuci/starling with Vasysik/horizon-android after v0.7.8. With over 399,500 cumulative GitHub asset downloads, it eliminates PC setup completely, translates Iris/OptiFine shaderpacks to mobile Vulkan, and compiles native Rust .hnmod mods right on your phone.

79 SecondsOn-phone 26.3 asset prep (Snapdragon 8 Gen 2)
59-87 FPSTranslated Iris shaders at 12 chunks on Adreno 740
4 ABIsarm64-v8a, armeabi-v7a, x86_64 & x86 builds
Samsung Galaxy S24 Ultra smartphone hardware used for mobile Vulkan shader translation testing
Starling writes worlds, shaderpacks, and mods to /storage/emulated/0/Starling by default so you can manage packs in any standard Android file app without ADB.

From Vasysik Horizon Android to Starling v0.8.0

Why older tutorials mention horizon-android-0.7.8 and how v0.8.0 + StarlingPreview fit together.

Project Merger

Unified Under starling-client

Through release v0.7.8 (horizon-android-0.7.8-arm64-v8a.apk), Vasysik's Android Vulkan port and JuanLuci's Starling shader/UI work evolved in parallel. On 2026-11-10, both maintainers joined forces on v0.8.0 under github.com/starling-client/starling under the MIT license.

Zero-PC Preparation

79-Second Pond Mini-Screen

Instead of asking for a PC-generated horizon-derived.zip, Starling downloads a temporary headless Java runtime on first boot, extracts and converts vanilla 26.3 data in ~79 seconds on a POCO F6 Pro (Snapdragon 8 Gen 2, 12 GB RAM) while you play an interactive fishing pond screen, and deletes the temporary JVM afterward.

Stable vs Preview

v0.8.0 vs test-0.8.1-2

starling-0.8.0-arm64-v8a.apk (32,855,428 B) is the main release. starling-preview-0.8.1-test2-arm64-v8a.apk (48,166,276 B, 2026-11-13) installs alongside stable using StarlingPreview/ and fixes Mali-G57 app-switch crashes plus PowerVR GE8320/BXM Vulkan shader limits.

Iris & OptiFine shader translation benchmarks

Measured upstream on a POCO F6 Pro (Snapdragon 8 Gen 2, Adreno 740, 12 GB RAM) at 12-chunk render distance using Starling's GLSL-to-SPIR-V Vulkan shader translator.

ShaderpackMeasured FPS (SD 8 Gen 2)Test ProfileNotes & Tuning
MakeUp - Ultra Fast87 FPSAuto profile, 12 chunksHighest frame rate; crisp shadows and water waves suitable for mid-range Snapdragon and Mali GPUs.
Complementary Shaders (Voxel)59 FPSAuto profile, 12 chunksBalanced voxel-style reflections and atmospheric fog near locked 60 Hz.
BSL Shaders54 FPSAuto profile, 12 chunksWarm bloom and soft volumetric light shafts; drop render scale to 85% for locked 60 FPS.
Complementary Unbound39 FPSAuto profile, 12 chunksRealistic water normals and heavier cloud passes; best capped at 30-45 FPS on mobile thermals.
Photon Shaders27-39 FPSAuto profile, 12 chunksDemanding volumetric clouds and colored lighting; recommended only on flagship Adreno 740/750/830.
StarlingVisuals.zipHigh / Native18,138 B companion packPublished directly on the Starling v0.8.0 release page for lightweight vibrant visuals.

Installing shaderpacks & StarlingVisuals.zip

  1. Download StarlingVisuals.zip (18,138 B) or a compatible Iris/OptiFine .zip shaderpack.
  2. Copy the unextracted .zip into /storage/emulated/0/Starling/shaderpacks/ (keep storage permissions enabled if using root storage).
  3. Open Options -> Video Settings -> Shader Packs inside Starling, select the pack, and leave Shader Profile on Auto for balanced mobile precision.

Compiling .hnmod mods right on your phone

Starling v0.8.0 includes an offline ARM64 Rust mod builder. Place a mod source folder into /storage/emulated/0/Starling/mods-src/ (or import via UI) and tap Options -> Mods -> Compile. Pre-packaged .hmod content mods go straight into /storage/emulated/0/Starling/mods/.

Account switcher supports Microsoft OAuth, Ely.by skin/auth servers, and local offline profiles.

Verify your Starling APK checksum

Avoid fake repackaged APK sites. Drop starling-0.8.0-arm64-v8a.apk or StarlingVisuals.zip below to verify against the starling-client/starling release digest.

Drop local .exe, .dmg, .AppImage, .tar.gz, .zip, .apk, or .hnmod file here (or click to browse; hashed locally via WebCrypto with zero upload)
Waiting for a local Horizon / Starling binary or 64-character SHA-256 digest.

Gamepads for desktop and Android ports

Horizon desktop, Starling v0.8.0, and Rayan-XOO 0.3.7+ support Bluetooth and USB X-Input/D-Input controllers, automatically hiding touch buttons while you play.

8BitDo Ultimate 2C Wireless Controller

Hall-effect sticks and triggers with low-latency 2.4G dongle and Bluetooth for desktop Horizon and Android phones.

View on Amazon

GameSir Super Nova Hall-Effect Gamepad

Drift-free Hall sensors, swappable ABXY layout, and quiet face buttons tested across Windows, Linux, and Android.

View on Amazon

8BitDo Pro 2 Bluetooth Gamepad

Symmetrical dual-stick layout with X-Input, D-Input, and Android modes plus programmable rear hotbar paddles.

View on Amazon

GuliKit KK3 Max Wireless Controller

TMR electromagnetic sticks and 1000 Hz polling rate for high-refresh chunk exploration on desktop and mobile.

View on Amazon

Affiliate disclosure: As an Amazon Associate, horizonrust.wiki earns from qualifying purchases at no added cost to you.

Starling Client FAQ: safety, shaders & fixes

Verified answers from starling-client/starling docs and issue reports.

Is Starling Client safe to install on Android?

Starling is MIT-licensed open-source software hosted at github.com/starling-client/starling with full public source code and build workflows. As long as you download from GitHub Releases and confirm the SHA-256 hash (aa20fe6a5fdf6f1eb861a13d9c173d017ea09feab9bb1010b24e3ed848672563 for v0.8.0 arm64-v8a), the binary matches the public repository.

Starling crashes when I minimize the app and return on a MediaTek Helio / Mali-G57 phone. How do I fix it?

That exact bug ('underlying handle is not available' when recreating the Vulkan surface on Mali-G57) was fixed in Starling Preview test-0.8.1-2 (2026-11-13). Install starling-preview-0.8.1-test2-arm64-v8a.apk until v0.8.1 stable lands.

Starling gets stuck during first-time 26.3 file preparation. What should I check?

Verify you have at least 2.5 GB of free internal storage and an active Wi-Fi connection so the temporary JVM and vanilla 26.3 manifests finish downloading. Do not lock the screen during the ~79-second pond preparation step; if interrupted, clear incomplete cache via Options -> Diagnostics and retry.

How do I export crash logs when Starling is not working?

Open the launcher screen, tap Options -> Diagnostics, and export the diagnostic .zip bundle. It packages device GPU strings, Vulkan extension flags, and latest.log without exposing account tokens so you can attach it to a GitHub issue.

Can Starling join older 1.20.4 or 1.21.4 servers?

Starling v0.8.0 targets Minecraft: Java Edition 26.3 protocol natively (or servers running ViaVersion/Meridian that accept 26.3 clients). If you need client-side protocol translation to join 1.20.2-26.2 servers directly, use Rayan-XOO/horizon 0.4.7 with ViaHorizon.

Where are my Starling worlds saved if I want to back them up?

By default, worlds live in /storage/emulated/0/Starling/saves/ (or /storage/emulated/0/StarlingPreview/saves/ on Preview builds). Copy each world subfolder to back it up or transfer it to desktop Horizon.