This page pretends to be an operator's site. The dock at the edge is added by a
single <script> tag — click it and the game opens on top of the page.
<script src="https://demoscript.dev/lg/w.js"
data-pos="left"
data-skin="fortune"
async></script>
| attribute | values | default |
|---|---|---|
data-pos | left · right · top | set in the admin panel |
data-skin | fortune · marble · marble-light · marble-gold · dice · coin · chip · half · tab · ribbon · neon | set in the admin panel |
data-games |
slots, wheel, drop, bubble, race, race2, drill, lucky, live — comma separated, order matters | set in the admin panel |
Spell out data-pos, data-skin and
data-games together and the dock skips the settings
request entirely — measured 122 ms to first paint against 204 ms.
It still checks in the background whether one of those games has been
switched off, and drops that card if so. | ||
data-title | tooltip caption | Games |
The loader renders the dock inside a Shadow DOM, so the host page styles cannot reach it and
it cannot break the host layout. The game itself lives in an <iframe> that is
only loaded on the first click — until then the page pays just a few kilobytes for the widget.
Closing releases the iframe so no timers, WebSocket or audio context stay alive in the background.
Programmatic control: LightGame.open('wheel') and LightGame.close().
Filler text below, so you can see that the dock stays put while the page scrolls, and that the overlay locks page scrolling while a game is open.
Try a narrow screen too — there the overlay goes full-screen, which is what you want on a phone.