Put ESKEES works on your site
Alpha (September 2026). Details may change without notice.
Works made with ESKEES (.eskx / .emg) can be played outside the showcase, in three ways:
- Embed a showcase work — paste one iframe. Official samples and posted works both work.
- Host your own
.eskx— load ESKEES Player from the CDN and point an<eskees-player>tag at your file. Works you have not posted to the showcase work too. - Export a web page from Studio — one HTML file with the work inside. Upload it and it plays.
All three run on the same engine as the showcase: scripts, UI, masks, stages, physics, sound and camera all work.
Demo
This is “Kasanete 2048” placed on this page with <eskees-player>. Click to start (arrow keys or swipe).
1. Embed a showcase work
Press Embed on a work’s showcase page to get the code. For a work at https://showcase.eskees.com/w/ID:
<iframe src="https://showcase.eskees.com/embed/ID"
style="width: 100%; aspect-ratio: 16 / 9; border: 0"
allow="autoplay; fullscreen; gamepad" loading="lazy"></iframe>
- Nothing is downloaded until the player is clicked.
- Scores can be added to the ranking right there (only when the player presses the button).
- Works that are no longer public show “This work is not available.”
2. Host your own .eskx (ESKEES Player)
Export a .eskx from ESKEES (“Export ▾”), put it on your server, and write:
<script type="module" src="https://showcase.eskees.com/player/1/eskees-player.js"></script>
<eskees-player src="/games/my-game.eskx" style="width: 800px; aspect-ratio: 16 / 9"></eskees-player>
Attributes
src | URL of the work (.eskx / .emg). Required |
|---|---|
autoplay | Start without a click. Sound starts at the first click (browser rule) |
lang | Language of the button text (ja / en). Defaults to the browser language |
saves | Save data: local (default; kept in the visitor’s browser for your site) or memory (cleared on close) |
Your page decides the size. Without one, it fills the width at 16:9. Match the work’s canvas ratio with aspect-ratio to avoid margins.
Events
eskees-ready | The work opened |
|---|---|
eskees-error | It could not be opened (detail.message) |
eskees-score | The script produced a score (detail is { board, value, lower }). Not sent to the showcase ranking |
document.querySelector('eskees-player').addEventListener('eskees-score', (e) => {
console.log(e.detail.board, e.detail.value);
});
From JavaScript
<script type="module">
import { mount } from 'https://showcase.eskees.com/player/1/eskees-player.js';
const game = await mount(document.getElementById('game'), '/games/my-game.eskx', { autoplay: true });
// game.restart(), game.togglePause(), game.destroy()
</script>
3. Export a web page from Studio
In ESKEES Studio, Export ▾ → Export as a web page (HTML) produces one HTML file with the work inside.
- Upload that HTML and it plays. No separate
.eskxand no CORS setup. - It runs on ESKEES Player (CDN); visitors’ browsers load the player from
showcase.eskees.com. - The work is embedded, so the file is about 4/3 the size of the work. For large works, method 2 (host the
.eskxand use<eskees-player src>) is lighter.
Where it works
- Works: anywhere you can write your own HTML and JavaScript (your server, shared hosting, GitHub Pages, Netlify, Vercel, Cloudflare Pages…). On self-hosted WordPress, use a Custom HTML block.
- Does not work: services that strip
<script>from posts (most blog and article platforms). If they allow iframes, use embed method 1. - Sites with a Content-Security-Policy need
https://showcase.eskees.cominscript-src.
Notes
- If the
.eskxis on another domain, that server must allow CORS (ESKEES Player fetches it). No setup is needed on the same site. - You can place several players on one page. Only the last one clicked receives key presses.
- Works that use physics also load the physics library (planck.js), only when needed.
- Under
/player/1/, attributes, events andmount()stay the same. Fixes ship without notice; breaking changes get/player/2/. - If you only need the EMG part (images and animation), the public EMG CDN player also works. It does not run
.eskxextensions such as scripts.