document.addEventListener('DOMContentLoaded', () => { const inputArea = document.getElementById('input-code'); const outputArea = document.getElementById('output-code'); const protectBtn = document.getElementById('protect-btn'); const terminal = document.getElementById('terminal'); const copyBtn = document.getElementById('copy-btn'); function log(message, type = 'info') { const entry = document.createElement('div'); entry.className = `log-entry log-${type}`; const time = new Date().toLocaleTimeString([], { hour12: false }); entry.textContent = `[${time}] ${message}`; terminal.appendChild(entry); terminal.scrollTop = terminal.scrollHeight; } async function sleep(ms) { return new Promise(resolve => setTimeout(resolve, ms)); } protectBtn.addEventListener('click', async () => { const code = inputArea.value.trim(); if (!code) { log('FAILED: No source input detected.', 'warn'); return; } protectBtn.disabled = true; protectBtn.style.opacity = '0.5'; terminal.innerHTML = ''; log(`INITIALIZING LUARTEX EXTREME KERNEL v3.5-DELTA`, 'info'); await sleep(300); log(`TARGET: ROBLOX / LUAU ENVIRONMENT`, 'info'); await sleep(400); log(`MAPPING: Randomized Opcode IDs (100-255)...`, 'info'); await sleep(400); log(`ENCRYPTION: 4-Key XOR Rotation on Constants...`, 'info'); await sleep(400); log(`VIRTUALIZATION: Register-based Dispatcher...`, 'info'); await sleep(300); log(`VIRTUALIZATION: Dot-Syntax Global Resolver...`, 'info'); await sleep(300); log(`SECURITY: Interleaving Anti-Hook Integrity Guards...`, 'info'); await sleep(400); log(`SECURITY: Real-time tick() Timing Verification...`, 'info'); await sleep(300); log(`SECURITY: debug.info Native Source Checks...`, 'info'); await sleep(200); log(`SECURITY: Anti-Tamper State Synchronization...`, 'info'); await sleep(200); log(`STRENGTHENING: Injecting Junk Opcodes...`, 'info'); await sleep(100); try { const response = await fetch('process.php', { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ code }) }); const data = await response.json(); if (data.success) { await sleep(500); outputArea.value = data.protected_code; log(`SUCCESS: VM Locked. Final Size: ${data.stats.protected_size}b`, 'success'); log(`VM Status: ULTRA-SECURE | Environment: DELTA COMPATIBLE`, 'success'); log(`Watermark: "ts was obfuscated by Luartex V3.2" injected.`, 'info'); } else { log(`CRITICAL ERROR: ${data.error}`, 'warn'); } } catch (err) { log(`ENGINE FAILURE: ${err.message}`, 'warn'); } finally { protectBtn.disabled = false; protectBtn.style.opacity = '1'; } }); copyBtn.addEventListener('click', () => { if (!outputArea.value) return; navigator.clipboard.writeText(outputArea.value); const originalText = copyBtn.textContent; copyBtn.textContent = 'LOCKED & COPIED'; setTimeout(() => copyBtn.textContent = originalText, 2000); }); });