# Other engines

Bring any engine, framework, or language that runs in a browser to Wavedash.

Source: https://docs.wavedash.com/engines/custom

Don't see your engine or language listed? If your game can produce output that runs in a browser, it works on Wavedash.

## What Wavedash needs

The only requirements are:

1. A folder of static files with an HTML entry point
2. You call `Wavedash.updateLoadProgressZeroToOne(value)` while assets load
3. You call `Wavedash.init(config)` when your game is ready to run (this also signals load-complete)

That's it. Wavedash injects `Wavedash` into the page before your code runs, so there's nothing to install.

## Minimal example

<Urgent>
**Calling `Wavedash.init()` is required.** Your game stays hidden behind the Wavedash loading screen until you do. Call it once your game is ready to play.
</Urgent>

```javascript
(async function () {
  // Set up your game however you need to
  const canvas = document.createElement("canvas");
  canvas.style.width = "100%";
  canvas.style.height = "100%";
  document.body.appendChild(canvas);

  Wavedash.updateLoadProgressZeroToOne(0.5);
  await startYourGame(canvas);
  Wavedash.init({ debug: false });
})();
```

## wavedash.toml

`entrypoint` is the first file Wavedash loads inside `upload_dir`. For most browser builds, this should be `index.html`, and that page can load whatever scripts, styles, and assets your game needs.

```toml
game_id = "YOUR_GAME_ID_HERE"
upload_dir = "./build/web"
entrypoint = "index.html"
```

## Need help?

If you're having trouble getting your engine to work with Wavedash, check the guides for [C](/engines/c), [C++](/engines/cpp), [Rust](/engines/rust), [Go](/engines/go), [Zig](/engines/zig), or [JavaScript](/engines/javascript) — one of them likely covers your toolchain. Otherwise, reach out on [Discord](https://discord.com/invite/7HJDmfeRev).
