Lovable.dev INFINITE OVERRIDE

Hard-coded UI and API interception for credit bypass

이 스크립트를 설치하려면 Tampermonkey, Greasemonkey 또는 Violentmonkey와 같은 확장 프로그램이 필요합니다.

이 스크립트를 설치하려면 Tampermonkey와 같은 확장 프로그램을 설치해야 합니다.

이 스크립트를 설치하려면 Tampermonkey 또는 Violentmonkey와 같은 확장 프로그램이 필요합니다.

이 스크립트를 설치하려면 Tampermonkey 또는 Userscripts와 같은 확장 프로그램이 필요합니다.

이 스크립트를 설치하려면 Tampermonkey와 같은 확장 프로그램이 필요합니다.

이 스크립트를 설치하려면 유저 스크립트 관리자 확장 프로그램이 필요합니다.

(이미 유저 스크립트 관리자가 설치되어 있습니다. 설치를 진행합니다!)

이 스타일을 설치하려면 Stylus와 같은 확장 프로그램이 필요합니다.

이 스타일을 설치하려면 Stylus와 같은 확장 프로그램이 필요합니다.

이 스타일을 설치하려면 Stylus와 같은 확장 프로그램이 필요합니다.

이 스타일을 설치하려면 유저 스타일 관리자 확장 프로그램이 필요합니다.

이 스타일을 설치하려면 유저 스타일 관리자 확장 프로그램이 필요합니다.

이 스타일을 설치하려면 유저 스타일 관리자 확장 프로그램이 필요합니다.

(이미 유저 스타일 관리자가 설치되어 있습니다. 설치를 진행합니다!)

// ==UserScript==
// @name         Lovable.dev INFINITE OVERRIDE
// @namespace    NexusAI.Bypass
// @version      9.9
// @description  Hard-coded UI and API interception for credit bypass
// @author       NexusAI
// @match        *://*.lovable.dev/*
// @run-at       document-start
// @grant        none
// ==/UserScript==

(function() {
    'use strict';

    console.log("🔓 UNIVERSAL BYPASS ACTIVE...");

    // --- 1. INTERCEPT THE API (The "Brain" Hack) ---
    const nativeFetch = window.fetch;
    window.fetch = async (...args) => {
        const response = await nativeFetch(...args);
        
        // If the website asks the server "How many credits?", we lie.
        if (args[0].includes('/api/user') || args[0].includes('/billing') || args[0].includes('/usage')) {
            const clone = response.clone();
            const data = await clone.json();

            // Inject fake unlimited data into the local response
            if (data.credits !== undefined) data.credits = 999999;
            if (data.plan !== undefined) data.plan = 'pro';
            if (data.is_subscribed !== undefined) data.is_subscribed = true;

            return new Response(JSON.stringify(data), {
                status: response.status,
                statusText: response.statusText,
                headers: response.headers
            });
        }
        return response;
    };

    // --- 2. FORCE UNLOCK THE UI (The "Lock" Picker) ---
    const unlock = () => {
        // Find everything that is disabled and kill the restriction
        document.querySelectorAll('[disabled], .disabled, [class*="locked"], [class*="limit"]').forEach(el => {
            el.removeAttribute('disabled');
            el.classList.remove('disabled', 'locked', 'pointer-events-none');
            el.style.pointerEvents = 'auto';
            el.style.opacity = '1';
            el.style.display = 'block';
        });

        // Visually set credits to Infinite
        document.querySelectorAll('span, div, p').forEach(el => {
            if (el.innerText.includes('credits') || el.innerText.includes('Remaining')) {
                el.innerText = "INFINITY CREDITS ENABLED ♾️";
                el.style.color = "#39ff14";
            }
        });
    };

    // Run the unlock every half-second
    setInterval(unlock, 500);

})();