Fillout Premium Field Unlocker

Bypass paywall restrictions for premium fields on Fillout

Size

5.0 KB

Version

1.1.1

Created

Jan 9, 2026

Updated

26 days ago

1// ==UserScript==
2// @name		Fillout Premium Field Unlocker
3// @description		Bypass paywall restrictions for premium fields on Fillout
4// @version		1.1.1
5// @match		https://*.build.fillout.com/*
6// @icon		https://build.fillout.com/favicon.ico
7// ==/UserScript==
8(function() {
9    'use strict';
10
11    console.log('Fillout Premium Field Unlocker - Starting...');
12
13    // Function to remove premium field warnings
14    function removePremiumWarnings() {
15        // Find and remove the premium field warning banner
16        const premiumWarnings = document.querySelectorAll('div.bg-blue-50\\/90.border-blue-400');
17        premiumWarnings.forEach(warning => {
18            const text = warning.textContent;
19            if (text.includes('Premium field') || text.includes('upgrade your plan')) {
20                console.log('Removing premium field warning');
21                warning.closest('div.mb-24')?.remove();
22                warning.remove();
23            }
24        });
25
26        // Remove any upgrade prompts
27        const upgradePrompts = document.querySelectorAll('div, span');
28        upgradePrompts.forEach(element => {
29            if (element.textContent.includes('upgrade your plan') || 
30                element.textContent.includes('Premium field')) {
31                const parent = element.closest('div.border-t-\\[0\\.5px\\]');
32                if (parent) {
33                    console.log('Removing upgrade prompt');
34                    parent.remove();
35                }
36            }
37        });
38    }
39
40    // Function to close blocking modals
41    function closeBlockingModals() {
42        // Find and close the "Your form includes paid features" modal
43        const modals = document.querySelectorAll('.ReactModalPortal, .ReactModal__Overlay');
44        modals.forEach(modal => {
45            const modalText = modal.textContent;
46            if (modalText.includes('Your form includes paid features') || 
47                modalText.includes('Upgrade your plan or remove these features') ||
48                modalText.includes('paid features')) {
49                console.log('Closing blocking modal');
50                modal.remove();
51            }
52        });
53
54        // Also check for modal content directly
55        const modalContents = document.querySelectorAll('[role="dialog"]');
56        modalContents.forEach(content => {
57            const text = content.textContent;
58            if (text.includes('Your form includes paid features') || 
59                text.includes('Upgrade your plan or remove these features')) {
60                console.log('Removing modal dialog');
61                content.closest('.ReactModalPortal')?.remove();
62                content.remove();
63            }
64        });
65
66        // Remove modal overlays
67        const overlays = document.querySelectorAll('.ReactModal__Overlay--after-open');
68        overlays.forEach(overlay => {
69            console.log('Removing modal overlay');
70            overlay.remove();
71        });
72    }
73
74    // Function to unlock premium features
75    function unlockPremiumFeatures() {
76        console.log('Unlocking premium features...');
77        
78        // Remove premium warnings
79        removePremiumWarnings();
80
81        // Close blocking modals
82        closeBlockingModals();
83
84        // Enable all disabled premium buttons
85        const disabledButtons = document.querySelectorAll('button[disabled]');
86        disabledButtons.forEach(button => {
87            button.removeAttribute('disabled');
88            console.log('Enabled button:', button.textContent.trim());
89        });
90
91        // Remove any overlay or blocking elements
92        const overlays = document.querySelectorAll('[class*="overlay"], [class*="paywall"], [class*="premium-lock"]');
93        overlays.forEach(overlay => {
94            overlay.remove();
95            console.log('Removed overlay element');
96        });
97
98        // Re-enable body scrolling if it was disabled by modal
99        document.body.style.overflow = '';
100    }
101
102    // Debounce function to prevent excessive calls
103    function debounce(func, wait) {
104        let timeout;
105        return function executedFunction(...args) {
106            const later = () => {
107                clearTimeout(timeout);
108                func(...args);
109            };
110            clearTimeout(timeout);
111            timeout = setTimeout(later, wait);
112        };
113    }
114
115    // Initialize when DOM is ready
116    function init() {
117        console.log('Initializing Premium Field Unlocker...');
118        
119        // Run immediately
120        unlockPremiumFeatures();
121
122        // Watch for DOM changes to catch dynamically added premium warnings
123        const observer = new MutationObserver(debounce(() => {
124            unlockPremiumFeatures();
125        }, 500));
126
127        // Start observing
128        observer.observe(document.body, {
129            childList: true,
130            subtree: true
131        });
132
133        console.log('Premium Field Unlocker - Active and monitoring');
134    }
135
136    // Wait for page to be ready
137    if (document.readyState === 'loading') {
138        document.addEventListener('DOMContentLoaded', init);
139    } else {
140        init();
141    }
142
143})();
Fillout Premium Field Unlocker | Robomonkey