BeamNG.Earth
A 1:1 scale streamed Earth for BeamNG.drive: real elevation and satellite imagery, floating origin, LOD streaming from a companion server
翻譯準備中
尚未偵測到更新。GitHub 發布版本後會顯示在這裡。
個人 GitHub 帳號下公開儲存庫的擁有者可以登入並驗證所有權,自行管理介紹,無需管理員核准。
登入並產生驗證檔案,在 30 分鐘內將其提交至此儲存庫的預設分支。其他分支或分叉儲存庫中的檔案無效。然後在下方檢查檔案,即可無需管理員核准直接管理專案。請保留檔案以維持管理權限。
如需登入,將前往登入頁面。登入後請回到此處,再次點擊所選的驗證按鈕。
在專案資料夾中執行 /nomorevibe verify,即可驗證所有權並自行管理介紹。
一分鐘完成驗證正在載入完整 README。 以下為已儲存的摘錄。
A fair, transparent virtual slots demo with 10-letter reels, 5 paylines, and progressive jackpot missions. No real money involved.檢視完整 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.