BeamNG.Earth
A 1:1 scale streamed Earth for BeamNG.drive: real elevation and satellite imagery, floating origin, LOD streaming from a companion server
Play a virtual slot machine demo with 10-letter reels and progressive jackpots without real money
AI summary · website and README
GamesJavaScript · HTMLGitHub @leoxoxanaOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
Loading the full README. The saved excerpt is shown below.
A fair, transparent virtual slots demo with 10-letter reels, 5 paylines, and progressive jackpot missions. No real money involved.Read the full README ↗A fair, transparent virtual slots demo with 10-letter reels, 5 paylines, and progressive jackpot missions. No real money involved.
cd LXAV1
npm install
npm test
npm start
Visit http://localhost:8080 in your browser.
# Run once
npm test
# Watch mode
npm run test:watch
# Coverage report
npm run test:coverage
npm run lint
| Match | Payout |
|---|---|
| 3/10 | 0.50€ |
| 4/10 | 0.75€ |
| 5/10 | 1.00€ |
| 6/10 | 1.50€ |
| 7/10 | 2.00€ |
| 8/10 | 3.00€ |
| 9/10 | 5.00€ |
| 10/10 | 8.00€ |
Base RTP per difficulty is admin-adjustable at runtime (see Admin Panel below) and stored centrally in Firebase, not hardcoded - the values above are defaults, not fixed constants.
Upgrade your wild level to increase bonus symbol frequency:
| Key | Action |
|---|---|
ENTER | Start spin |
↑ / ↓ | Adjust bet |
SHIFT+ENTER | Toggle auto-spin |
M | Toggle mute |
? | Show help |
Accounts with role: "admin" in Firebase (set manually via the Firebase Console - never hardcoded by id) see a 👑 ADMIN entry inside the ID menu, opening a panel to retune each difficulty's target RTP. Changes are stored in Firebase (rtpSettings), not localStorage, so they apply globally to every player immediately, including guests.
npm test
Expected output:
PASS game-engine.test.js
✓ Configuration (4 tests)
✓ Paytable (2 tests)
✓ Difficulty Distribution (2 tests)
✓ Wild Mechanics (6 tests)
✓ Recommended Bet (1 test)
✓ Jackpot Logic (2 tests)
✓ Spin Results (4 tests)
✓ State Persistence (2 tests)
Tests: 23 passed, 23 total
Coverage: game-engine.js 98%, overall 94%
-webkit-overflow-scrollingclamp()All actions logged with:
Flags:
Use these tools:
Supported languages:
Switch in-game via flag picker in header.
| Browser | Version | Status |
|---|---|---|
| Chrome | 90+ | ✅ Full support |
| Firefox | 88+ | ✅ Full support |
| Safari | 14+ | ✅ Full support |
| Edge | 90+ | ✅ Full support |
| IE 11 | N/A | ❌ Not supported |
vercel --prod
No build step is required for the static site - index.html/style.css/etc. at the project root are served as-is. The account/game API lives at api/lxa-account.js, a thin Vercel Serverless Function adapter around functions/lxa-account.js (the actual business logic - auth, rate limiting, idempotency, spin resolution - is unchanged from before the Vercel migration and has no Vercel-specific code in it).
middleware.js blocks public access to files that must never be served (functions/, package.json/package-lock.json, *.test.js, dev-only scripts, *.md) - the project root has no separate "public" output directory, so without this they'd otherwise be fetchable like any other static file.
Required environment variables (Vercel dashboard → Project Settings → Environment Variables): FIREBASE_SERVICE_ACCOUNT, FIREBASE_DATABASE_URL, LXA_PEPPER (optional, has a default).
No cron jobs / no demo bots: vercel.json defines none - Vercel's Hobby (free) plan only runs cron jobs once per day and rejects the deploy for sub-daily schedules, and a keep-alive is not needed on Vercel.
Unofficial demo, no real-money or gambling function. No LICENSE file is present in this repo yet.
No. This is a demo with virtual credits only.
No. All credits are for demonstration only.
Yes. Game engine is transparent, open-source, and audited.
Yes, the game works offline. Leaderboard and account sync require internet.
Made with ❤️ by Leo
Accounts live under accounts/<id> : <name> (e.g. 25 : ANA). The server looks accounts up by their id field, so a hand-edited node is still found; the node key is refreshed on every save and after an admin edit of the ID or name. Opening the admin PLAYERS list renames any leftover legacy account:N nodes once. Note: the Firebase console sorts keys as text, so 100 : X is listed before 25 : ANA.
The stake can never exceed half of the price of the next WILD level (game.maxBetForWildLevel, e.g. 1.250.000 at level 0, 1.750.000 at level 1, 25.000.000 at level 49; at the top level 50 the ladder simply continues with 25.500.000; it follows the admin WILD cost multiplier). Enforced in the engine ( esolveSpin), on the server (spin returns 400) and in the UI (+/- and the 50% button are clamped; a short message shows the cap). The 50% button still means half of the balance, but never more than the cap. Rationale: jackpot tiers pay a multiple of the stake, so an uncapped stake would act as a money multiplier.