Ambient Launcher

Official release now available. A dedicated utility environment for Minecraft Bedrock on Android.

The last hope for potato phones running Minecraft. Zero memory leaks. Zero input delay on mobile. Just Minecraft, the way it should run.
Download App

Ambient Feature Set

CategoryFeatureCapabilities
File ManagementDirect .mcpack SupportAmbient maps itself to .mcpack files; open them directly from your browser/downloads to import without a file manager.
CoreNative Mod LoaderSeamlessly load native .so modules.
ToolsWorld Structure ExtractorExport structures directly from your save files.
ConfigurationExternal Game Config EditorModify engine-level settings without opening the game.
ConfigurationCustomization Options NewExtended customization controls for launcher behavior and game environment.
GraphicsShader LoaderAmbient patches the renderer engine to allow the loading of shaders and material.bin files.
DataWorld ManagerComprehensive backup and level editing tools.
InputKeymap Button Lock NewLock keymapper button positions to prevent accidental repositioning during gameplay.
PerformanceNo Memory LeaksConfirmed stable memory management — no runaway RAM usage over long sessions.
PerformanceNo Input DelayConfirmed zero input delay on mobile, even on lower-end hardware.

Storage & Expectations

Storage is pre-defined for stability. Users are unable to toggle from Internal (App) to External storage. This is expected. However, all game files remain accessible for manual backup or modding.

/Android/media/io.kitsuri.mayape/games

*Note: You may need a file manager that can access the Android/media directory (like Shizuku + ZArchiver or similar tools on modern Android versions).

Known Bugs

  • Persistence: Settings reset when toggling between AmbientUI and OreUI.

Changelog

V1.0.4 Hotfix

Ambient: Pocket Edition

Bug Fixes

  • Fixed Marketplace issues
  • Fixed Dressing Room / Skins not working
  • Fixed servers not loading
  • Fixed key mapper crash
  • Fixed shader loader for version 1.26.10.4

Features & Improvements

  • Added more customization options
  • Added keymap button lock
  • Improved overall performance

API Changes

  • Added RenderAPI::Register(cb fun ptr)
  • Added RenderAPI::Unregister(cb fun ptr)
  • Added TouchAPI::RegisterCallback(cb)
  • Added TouchAPI::UnregisterCallback(cb)
  • Added KeyApi::RegisterHandler(handler)
  • Added KeyApi::UnregisterHandler(handler)
  • Added TouchEvent->action
  • Added TouchEvent->pointerId
  • Added TouchEvent->x
  • Added TouchEvent->y

Removals / Breaking Changes

  • Removed Shader auto-fixer — removed to align with YSS changes.

API Documentation

JS API and Native API overview for Ambient mod development. Primary template: Lodingglue/nise-api

JS: Logging

log(message)

Routes messages through the client logger (tag: "JS").

log("Script initialized successfully.");

JS: Utility Functions

readFile(path)

const data = readFile("/sdcard/MyMod/patch.bin");

writeFile(path, data)

writeFile("/sdcard/MyMod/log.txt", "hello world");

JS: Virtual Assets

VirtualAssets.addFile(path, data)

VirtualAssets.addFile("textures/terrain/grass.webp", buf);

JS: Hooking

Hook.hookAddr(name, targetAddr, hookFunc, originalFunc, hookType, priority)

Installs an inline hook at targetAddr.

const tramp = Hook.hookAddr("myHook", target, myReplacementFn, origPtr, Hook.Type.INLINE, Hook.Priority.HIGH);

Hook.patchNop(name, addr, size = 4)

Hook.patchNop("disableCheck", Hook.getBaseAddr() + 0xDEAD, 8);

JS: Render API V1.0.4

RenderAPI::Register(cb fun ptr)

Registers a callback to be invoked each render frame.

RenderAPI::Register(myRenderCallback);

RenderAPI::Unregister(cb fun ptr)

Unregisters a previously registered render callback.

RenderAPI::Unregister(myRenderCallback);

JS: Touch API V1.0.4

TouchAPI::RegisterCallback(cb)

Registers a callback to receive touch events. Each event provides action, pointerId, x, and y.

TouchAPI::RegisterCallback(function(event) {
    log("Touch at " + event.x + ", " + event.y + " | pointer: " + event.pointerId + " | action: " + event.action);
});

TouchAPI::UnregisterCallback(cb)

Unregisters a touch callback.

TouchAPI::UnregisterCallback(myTouchCallback);

TouchEvent fields

FieldTypeDescription
actionintTouch action type (down, move, up, etc.)
pointerIdintUnique ID for each active touch pointer
xfloatX coordinate of the touch point
yfloatY coordinate of the touch point

JS: Key API V1.0.4

KeyApi::RegisterHandler(handler)

Registers a handler to receive key input events.

KeyApi::RegisterHandler(myKeyHandler);

KeyApi::UnregisterHandler(handler)

Unregisters a key input handler.

KeyApi::UnregisterHandler(myKeyHandler);