From zx
ZX fantasy console FFI bindings reference. Documents 250+ functions for rendering, input, audio, camera, transforms, textures, materials, and debug. Includes init-only vs render-only call rules and the coordinate system. Use when writing or debugging ZX FFI calls in game code.
npx claudepluginhub nethercore-systems/nethercore-ai-plugins --plugin zxThis skill uses the workspace's default tool permissions.
The ZX console provides 250+ FFI functions. **Always read `nethercore/include/zx.rs` for accurate signatures.**
Generates design tokens/docs from CSS/Tailwind/styled-components codebases, audits visual consistency across 10 dimensions, detects AI slop in UI.
Records polished WebM UI demo videos of web apps using Playwright with cursor overlay, natural pacing, and three-phase scripting. Activates for demo, walkthrough, screen recording, or tutorial requests.
Delivers idiomatic Kotlin patterns for null safety, immutability, sealed classes, coroutines, Flows, extensions, DSL builders, and Gradle DSL. Use when writing, reviewing, refactoring, or designing Kotlin code.
The ZX console provides 250+ FFI functions. Always read nethercore/include/zx.rs for accurate signatures.
| Category | Key Functions | Find In zx.rs |
|---|---|---|
| System | delta_time, tick_count, log | Lines 1-100 |
| Random | random, random_range, random_f32 | Search "random" |
| Input | button_held, button_pressed, left_stick_x | Search "button" |
| Camera | camera_set, camera_fov | Search "camera" |
| Transforms | push_translate, push_rotate_y, push_scale | Search "push_" |
| Meshes | load_mesh, draw_mesh, cube, sphere | Search "mesh" |
| Textures | load_texture, texture_bind | Search "texture" |
| Materials | material_albedo, material_mre, material_normal | Search "material" |
| Audio | load_sound, play_sound, music_play | Search "sound" |
| 2D Drawing | draw_sprite, draw_text, draw_rect | Search "draw_" |
| Environment | draw_env, env_gradient | Search "env_" |
| Debug | debug_register_*, debug_watch_*, debug_group_* | Search "debug_" |
Must call only during init():
set_tick_rate(rate) - 0=24fps, 1=30fps, 2=60fps, 3=120fpsset_clear_color(color) - 0xRRGGBBAArender_mode(mode) - 0=Lambert, 1=Matcap, 2=PBR, 3=Hybridrom_*(), load_*(), procedural mesh functionsCall only during render():
draw_* functionscamera_set(), camera_fov()push_translate(), push_rotate_y(), push_scale()texture_bind(), font_bind()begin_pass(), begin_pass_stencil_write()// In init()
let tex = rom_texture_str("player");
let mesh = rom_mesh_str("character");
let sfx = rom_sound_str("jump");
let music = rom_music_str("theme");
// In render()
push_translate(x, y, z);
push_rotate_y(angle_degrees);
push_scale_uniform(scale);
draw_mesh(MESH);
push_identity(); // Reset