In the world of Gravity Falls, "remaking" codes isn't just a fan hobby—it's a decade-long tradition of hunting for hidden lore left by creator Alex Hirsch.
One of the most interesting recent "remake" stories involves the "This Is Not A Website Dot Com" mystery, which served as a digital "remake" or expansion of the mysteries found in The Book of Bill. The Mystery of the "Eyeball Doc"
In 2024, fans discovered a URL hidden in The Book of Bill next to a copyright notice. This led to a black login screen with a triangle icon. To "remake" the experience of being an investigator like Dipper, fans had to:
Decode a Visual Riddle: By stretching a random square graphic in the book and turning it upside down, they found the message: "Need a password? Fine, I'll talk".
The Literature Connection: Tilting the book revealed another clue: "It’s the name of the eyeball doc," referring to T.J. Eckleburg from The Great Gatsby. gravity files remake code
The Reward: Entering "T.J. Eckleburg" unlocked a countdown that eventually revealed a digital "remake" of McGucket's computer, filled with hundreds of secret codes and hidden lore. The Codes That Broke the Internet
Once inside the computer, fans entered various "remake" codes to trigger unique interactions: This Is Not A Website Dot Com/Computer
You now have the core. Here is how to take the "gravity files remake code" to a full game:
platforms array to JSON.<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no"> <title>Gravity Files Remake - Prototype Code</title> <style> body background: #0a0f1e; display: flex; justify-content: center; align-items: center; min-height: 100vh; font-family: 'Courier New', monospace; margin: 0; padding: 20px; .game-container background: #000; padding: 10px; border-radius: 12px; box-shadow: 0 0 20px rgba(0,255,255,0.2); canvas display: block; margin: 0 auto; cursor: pointer; .info text-align: center; margin-top: 15px; color: #0ff; text-shadow: 0 0 5px #0ff; font-weight: bold; button background: #1e2a3a; border: 2px solid #0ff; color: #0ff; font-family: monospace; font-size: 1.2rem; padding: 5px 15px; margin: 5px; cursor: pointer; transition: 0.2s; button:hover background: #0ff; color: #000; box-shadow: 0 0 10px #0ff; .status background: #111; padding: 8px; border-left: 4px solid #0ff; </style> </head> <body> <div> <div class="game-container"> <canvas id="gameCanvas" width="800" height="500"></canvas> </div> <div class="info"> <div class="status"> 🧑🚀 GRAVITY STATUS: <span id="gravityIndicator">NORMAL (DOWN)</span> </div> <button id="flipBtn">🌀 FLIP GRAVITY (SPACE)</button> <button id="resetBtn">⟳ RESET LEVEL</button> <p style="font-size:12px; color:#888;">← → Move | SPACE Flip | Land on green platform to win</p> </div> </div><script> (function() // ---------- CANVAS SETUP ---------- const canvas = document.getElementById('gameCanvas'); const ctx = canvas.getContext('2d'); In the world of Gravity Falls , "remaking"
// ---------- GAME STATES ---------- let player = x: 100, y: 400, // Y position (top-left based) width: 20, height: 20, velX: 0, velY: 0 ; let isGravityNormal = true; // true = down, false = up let isOnGround = false; let gameWon = false; // Physics constants (Tuned for "Gravity Files" feel) const GRAVITY_FORCE = 0.8; const GROUND_Y = 470; // Floor Y coordinate (bottom of canvas - 30) const CEILING_Y = 30; // Ceiling Y coordinate const MOVE_ACC = 0.7; const MAX_SPEED = 6; const GROUND_FRICTION = 0.92; // ---------- LEVEL DESIGN (Simple Maze) ---------- // Platforms are [x, y, width, height] const platforms = [ // Ground platform (spawn area) x: 0, y: 470, w: 200, h: 30 , // Floating platform middle x: 250, y: 400, w: 100, h: 20 , // High platform (requires gravity flip) x: 450, y: 120, w: 80, h: 20 , // Goal platform (GREEN) x: 650, y: 440, w: 120, h: 20, isGoal: true ]; // ---------- HELPER: Update Gravity UI ---------- function updateUI() const indicator = document.getElementById('gravityIndicator'); if (indicator) indicator.innerText = isGravityNormal ? "NORMAL (DOWN)" : "INVERTED (UP)"; indicator.style.color = isGravityNormal ? "#0ff" : "#f0f"; // ---------- CORE MECHANIC: FLIP GRAVITY ---------- function flipGravity() if (gameWon) return; // 1. Toggle state isGravityNormal = !isGravityNormal; // 2. CRITICAL: Reverse vertical momentum (Gravity Files signature) player.velY = -player.velY; // 3. Small tweak: If standing on a surface, unstick the player slightly to avoid clipping if (isOnGround) // Push them away from the surface they were stuck to if (isGravityNormal) // Was on ceiling, now falling down player.y += 2; else // Was on floor, now falling up player.y -= 2; isOnGround = false; updateUI(); // Visual feedback: Flash screen canvas.style.transition = "background 0.05s"; canvas.style.backgroundColor = isGravityNormal ? "#001122" : "#220022"; setTimeout(() => canvas.style.backgroundColor = "#000"; , 100); // ---------- COLLISION & PHYSICS ---------- function applyPhysicsAndCollisions() // Apply gravity based on current orientation if (isGravityNormal) player.velY += GRAVITY_FORCE; else player.velY -= GRAVITY_FORCE; // Apply horizontal movement player.x += player.velX; player.y += player.velY; // ---- Horizontal world bounds ---- if (player.x < 0) player.x = 0; if (player.x + player.width > canvas.width) player.x = canvas.width - player.width; // ---- Reset ground flag before collision check ---- isOnGround = false; // ---- Platform Collision (Sorted roughly Y axis for accuracy) ---- for (let plat of platforms) // Standard AABB collision if (player.x < plat.x + plat.w && player.x + player.width > plat.x && player.y < plat.y + plat.h && player.y + player.height > plat.y) // ---- Ceiling & Floor Death Boundaries (Classic Gravity Files spikes) ---- if (player.y + player.height < 0 // ---------- RESET FUNCTION ---------- function resetLevel() gameWon = false; isGravityNormal = true; player = x: 100, y: 400, width: 20, height: 20, velX: 0, velY: 0 ; updateUI(); // Reset screen flash canvas.style.backgroundColor = "#000"; // ---------- INPUT HANDLING ---------- const keys = ArrowLeft: false, ArrowRight: false ; function handleInput() if (gameWon) player.velX *= 0.9; // drift to stop return; // Acceleration if (keys.ArrowLeft) player.velX -= MOVE_ACC; if (player.velX < -MAX_SPEED) player.velX = -MAX_SPEED; if (keys.ArrowRight) player.velX += MOVE_ACC; if (player.velX > MAX_SPEED) player.velX = MAX_SPEED; // Friction (only if on ground/platform) if (isOnGround) player.velX *= GROUND_FRICTION; // Air control minimal drift (authentic feel) if (Math.abs(player.velX) < 0.2) player.velX = 0; // ---------- DRAWING (Retro Aesthetic) ---------- function draw() ctx.clearRect(0, 0, canvas.width, canvas.height); // Background grid (feeling of sci-fi lab) ctx.strokeStyle = "#1a3a4a"; ctx.lineWidth = 0.5; for (let i = 0; i < canvas.width; i += 40) ctx.beginPath(); ctx.moveTo(i, 0); ctx.lineTo(i, canvas.height); ctx.stroke(); ctx.beginPath(); ctx.moveTo(0, i); ctx.lineTo(canvas.width, i); ctx.stroke(); // Draw Platforms for (let plat of platforms) if (plat.isGoal) ctx.fillStyle = "#2ecc71"; ctx.shadowBlur = 10; ctx.shadowColor = "#2ecc71"; else ctx.fillStyle = "#5a6e7a"; ctx.shadowBlur = 0; ctx.fillRect(plat.x, plat.y, plat.w, plat.h); // Inner glow for platforms ctx.strokeStyle = "#aaccdd"; ctx.strokeRect(plat.x, plat.y, plat.w, plat.h); ctx.shadowBlur = 0; // Draw Player (Astronaut) ctx.fillStyle = "#f39c12"; ctx.shadowBlur = 8; ctx.shadowColor = "#f39c12"; ctx.fillRect(player.x, player.y, player.width, player.height); // Helmet visor ctx.fillStyle = "#ffffff"; ctx.fillRect(player.x + 5, player.y + 5, 10, 5); // Gravity indicator on suit if (!isGravityNormal) ctx.fillStyle = "#ff00ff"; ctx.fillRect(player.x + 2, player.y + player.height-6, 16, 3); ctx.shadowBlur = 0; // Win / UI text if (gameWon) ctx.font = "bold 30monospace"; ctx.fillStyle = "#0ff"; ctx.shadowBlur = 0; ctx.fillText("ESCAPE SUCCESSFUL", canvas.width/2-150, canvas.height/2); // Gravity particle effects ctx.fillStyle = isGravityNormal ? "rgba(0,200,255,0.3)" : "rgba(255,0,255,0.3)"; for(let i=0;i<5;i++) ctx.fillRect(10 + i*20, isGravityNormal ? canvas.height-10 : 10, 8, 8); // ---------- GAME LOOP ---------- function updateGame() if (!gameWon) handleInput(); applyPhysicsAndCollisions(); draw(); requestAnimationFrame(updateGame); // ---------- EVENT LISTENERS ---------- window.addEventListener('keydown', (e) => e.key === 'R') resetLevel(); ); window.addEventListener('keyup', (e) => if (keys.hasOwnProperty(e.key)) keys[e.key] = false; ); document.getElementById('flipBtn').addEventListener('click', flipGravity); document.getElementById('resetBtn').addEventListener('click', resetLevel); // Start the remake resetLevel(); // initial state updateUI(); updateGame(); )();
</script> </body> </html>
First, let's clarify terminology. "Gravity Files" (often mistakenly called Gravity Falls: The Lost Files) was originally built in RPG Maker 2003 or RPG Maker XP. These older engines did not allow for easy modification of core mechanics. The "remake code" refers to the community-driven attempts to:
exe and .rxdata files.public boolean simulateBall()
// Simulate ball movement
int ballX = 0;
int ballY = 0;
while (ballX < GRID_SIZE && ballY < GRID_SIZE)
// Check if ball can move to next position
if (canMoveBall(ballX, ballY))
ballX++;
ballY++;
else
return false;
return true;
Conclusion
The Gravity Files Remake Code project has successfully recreated the classic game with a modern twist. The game features improved graphics, smooth gameplay, and a user-friendly interface. The modular architecture and clean code design make it easy to maintain and extend the game.
Future Work
Recommendations