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 card dueling game online with friends via room codes, plus tools to test and balance card rules
AI summary · revised during review
GamesJavaScript · CSSGitHub @mynamejeff625-pngOnlineOwner 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.
Multiplayer mode is additive and activates only when the player interacts with the Online Match panel or the page has a roomId query parameter, for example /?roomId=manual-test-room. The browser initializes the Firebase compat SDK and signs the player in anonymously before enabling Create/Join. Single-player startup remains unchanged.Read the full README ↗Multiplayer mode is additive and activates only when the player interacts with the Online Match panel or the page has a roomId query parameter, for example /?roomId=manual-test-room. The browser initializes the Firebase compat SDK and signs the player in anonymously before enabling Create/Join. Single-player startup remains unchanged.
The deployment must define the public Firebase Web configuration variables FIREBASE_WEB_API_KEY and FIREBASE_PROJECT_ID. Optional values are FIREBASE_AUTH_DOMAIN, FIREBASE_STORAGE_BUCKET, FIREBASE_MESSAGING_SENDER_ID, and FIREBASE_APP_ID. The /api/firebase-config endpoint exposes only these public client settings; Admin credentials remain server-only. Anonymous Authentication must also be enabled in Firebase Console under Authentication → Sign-in method.
Server endpoints also require FIREBASE_PROJECT_ID, FIREBASE_CLIENT_EMAIL, and a Firebase Admin private key. Prefer the single-line FIREBASE_PRIVATE_KEY_B64 setting in Vercel; generate it from a downloaded service-account JSON file with jq -jr '.private_key' service-account.json | base64 | tr -d '\n'. The legacy FIREBASE_PRIVATE_KEY setting remains supported for raw PEM values and values containing escaped \\n newlines.
Test hosts may instead define window.EB_MULTIPLAYER_DEPS before js/game.js loads with {user, db, fetchImpl?}. The user must expose uid and getIdToken(), while db must expose the Firestore compat collection().doc().onSnapshot() interface.
In multiplayer mode, moves are posted to /api/submit-move and the board is rendered only from rooms/{roomId}/views/{uid} snapshots. Without a roomId, the existing single-player startup and local game loop are unchanged.
Authenticated players can create a direct-invite room from the home screen after choosing a deck. The creator receives a ?join=ROOMID share link; the invited player chooses their own deck and joins, after which both clients transition to the existing ?roomId=ROOMID live-view flow. A playable authoritative state is created only when both deck selections are known.