Gravity Files Remake Code _verified_ May 2026

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

Architecture & Code Structure

Expanding the Remake

You now have the core. Here is how to take the "gravity files remake code" to a full game:

index.html (The Remake Code)

<!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>

Extras for a Faithful Remake

What Exactly is "Gravity Files Remake Code"?

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:

  1. Decompile the original exe and .rxdata files.
  2. Port the assets (sprites, SFX, maps) to open-source engines like Unity, Godot, or Ren'Py.
  3. Rewrite the logic for mechanics like the "Pine Tree" sanity system and the Gnome chase sequences.

Ball Simulation

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