Plugin Installation Guide

This guide is aligned with the latest implementation in E:/code/qexed_doc_pr (f57af391ad79823aac42b78399cefdc381ed31fc).

Prerequisites

  • Completed Install
  • A runnable Qexed server directory
  • Rust toolchain installed (only needed when building plugins from source)

Directory Layout

Qexed scans plugins/*.wasm on startup:

server/
  qexed.exe
  config/
  plugins/
    hello_world.wasm
    player_audit.wasm

Build Example Plugins

rustup target add wasm32-unknown-unknown
cargo build --manifest-path "plugins/examples/Cargo.toml" --target wasm32-unknown-unknown --release

Build outputs are under plugins/examples/target/wasm32-unknown-unknown/release/.

Installation Steps

  1. Ensure plugins exists in server root.
  2. Copy .wasm files into plugins/ (flat directory).
  3. Restart Qexed and verify plugin load logs.

Example:

Copy-Item "plugins/examples/target/wasm32-unknown-unknown/release/hello_world.wasm" "plugins/"
Copy-Item "plugins/examples/target/wasm32-unknown-unknown/release/player_audit.wasm" "plugins/"

Quick Verification

  • Startup logs should show plugin loading.
  • chunk_trace is noisy and should be used only for ABI debugging.
  • slime_jump and double_jump are useful for event callback validation.

Common Issues

Plugin Not Discovered

  • File extension must be .wasm.
  • Files must be in plugins/ root, not nested directories.

ABI/Symbol Errors

  • Build target must be wasm32-unknown-unknown.
  • Export memory and qexed_plugin_alloc(len: i32) -> i32.