Spaces:
Running
Running
| <html lang="en"> | |
| <head> | |
| <meta charset="UTF-8"> | |
| <meta name="viewport" content="width=device-width, initial-scale=1.0"> | |
| <title>Roblox Executor Studio</title> | |
| <script src="https://cdn.tailwindcss.com"></script> | |
| <link href="https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@400;700&family=Inter:wght@300;400;600;800&display=swap" rel="stylesheet"> | |
| <script src="https://unpkg.com/lucide@latest"></script> | |
| <style> | |
| :root { | |
| --neon-cyan: #00f3ff; | |
| --neon-purple: #bc13fe; | |
| --neon-green: #0aff0a; | |
| --bg-dark: #0a0a0f; | |
| --panel-bg: #13131f; | |
| --border-color: #2a2a3a; | |
| } | |
| * { | |
| margin: 0; | |
| padding: 0; | |
| box-sizing: border-box; | |
| } | |
| body { | |
| font-family: 'Inter', sans-serif; | |
| background-color: var(--bg-dark); | |
| color: #e2e8f0; | |
| overflow-x: hidden; | |
| min-height: 100vh; | |
| } | |
| .font-mono { | |
| font-family: 'JetBrains Mono', monospace; | |
| } | |
| /* Animated Background */ | |
| .bg-grid { | |
| position: fixed; | |
| top: 0; | |
| left: 0; | |
| width: 100%; | |
| height: 100%; | |
| background-image: | |
| linear-gradient(rgba(0, 243, 255, 0.03) 1px, transparent 1px), | |
| linear-gradient(90deg, rgba(0, 243, 255, 0.03) 1px, transparent 1px); | |
| background-size: 50px 50px; | |
| pointer-events: none; | |
| z-index: 0; | |
| } | |
| .glow-orb { | |
| position: fixed; | |
| border-radius: 50%; | |
| filter: blur(100px); | |
| opacity: 0.15; | |
| pointer-events: none; | |
| z-index: 0; | |
| animation: float 20s ease-in-out infinite; | |
| } | |
| @keyframes float { | |
| 0%, 100% { transform: translate(0, 0); } | |
| 25% { transform: translate(50px, -30px); } | |
| 50% { transform: translate(-30px, 50px); } | |
| 75% { transform: translate(40px, 40px); } | |
| } | |
| /* Glass Panel */ | |
| .glass-panel { | |
| background: rgba(19, 19, 31, 0.7); | |
| backdrop-filter: blur(20px); | |
| border: 1px solid var(--border-color); | |
| box-shadow: 0 8px 32px rgba(0, 0, 0, 0.3); | |
| } | |
| .glass-panel:hover { | |
| border-color: rgba(0, 243, 255, 0.3); | |
| } | |
| /* Custom Scrollbar */ | |
| ::-webkit-scrollbar { | |
| width: 8px; | |
| height: 8px; | |
| } | |
| ::-webkit-scrollbar-track { | |
| background: var(--bg-dark); | |
| } | |
| ::-webkit-scrollbar-thumb { | |
| background: #2a2a3a; | |
| border-radius: 4px; | |
| } | |
| ::-webkit-scrollbar-thumb:hover { | |
| background: var(--neon-cyan); | |
| } | |
| /* Input Styling */ | |
| .input-field { | |
| background: rgba(10, 10, 15, 0.6); | |
| border: 1px solid var(--border-color); | |
| color: #fff; | |
| transition: all 0.3s ease; | |
| } | |
| .input-field:focus { | |
| outline: none; | |
| border-color: var(--neon-cyan); | |
| box-shadow: 0 0 20px rgba(0, 243, 255, 0.1); | |
| } | |
| /* Toggle Switch */ | |
| .toggle-switch { | |
| position: relative; | |
| width: 44px; | |
| height: 24px; | |
| background: #1a1a2e; | |
| border-radius: 12px; | |
| cursor: pointer; | |
| transition: all 0.3s ease; | |
| border: 1px solid var(--border-color); | |
| } | |
| .toggle-switch.active { | |
| background: linear-gradient(135deg, var(--neon-cyan), var(--neon-purple)); | |
| border-color: transparent; | |
| } | |
| .toggle-switch::after { | |
| content: ''; | |
| position: absolute; | |
| top: 2px; | |
| left: 2px; | |
| width: 18px; | |
| height: 18px; | |
| background: #fff; | |
| border-radius: 50%; | |
| transition: all 0.3s ease; | |
| box-shadow: 0 2px 4px rgba(0,0,0,0.3); | |
| } | |
| .toggle-switch.active::after { | |
| transform: translateX(20px); | |
| } | |
| /* Code Preview */ | |
| .code-preview { | |
| background: #0d0d14; | |
| border: 1px solid var(--border-color); | |
| font-family: 'JetBrains Mono', monospace; | |
| font-size: 13px; | |
| line-height: 1.6; | |
| overflow: auto; | |
| position: relative; | |
| } | |
| .code-preview::before { | |
| content: ''; | |
| position: absolute; | |
| top: 0; | |
| left: 0; | |
| right: 0; | |
| height: 1px; | |
| background: linear-gradient(90deg, transparent, var(--neon-cyan), transparent); | |
| opacity: 0.5; | |
| } | |
| /* Syntax Highlighting */ | |
| .syntax-keyword { color: #ff79c6; } | |
| .syntax-type { color: #8be9fd; } | |
| .syntax-string { color: #f1fa8c; } | |
| .syntax-comment { color: #6272a4; } | |
| .syntax-function { color: #50fa7b; } | |
| .syntax-number { color: #bd93f9; } | |
| /* Button Glow */ | |
| .btn-glow { | |
| position: relative; | |
| overflow: hidden; | |
| } | |
| .btn-glow::before { | |
| content: ''; | |
| position: absolute; | |
| top: 0; | |
| left: -100%; | |
| width: 100%; | |
| height: 100%; | |
| background: linear-gradient(90deg, transparent, rgba(255,255,255,0.2), transparent); | |
| transition: left 0.5s ease; | |
| } | |
| .btn-glow:hover::before { | |
| left: 100%; | |
| } | |
| /* Terminal Output */ | |
| .terminal-line { | |
| animation: typeIn 0.05s ease forwards; | |
| opacity: 0; | |
| } | |
| @keyframes typeIn { | |
| to { opacity: 1; } | |
| } | |
| /* Progress Bar */ | |
| .progress-fill { | |
| transition: width 0.5s cubic-bezier(0.4, 0, 0.2, 1); | |
| } | |
| /* Checkbox Custom */ | |
| .custom-checkbox { | |
| appearance: none; | |
| width: 18px; | |
| height: 18px; | |
| border: 2px solid var(--border-color); | |
| border-radius: 4px; | |
| background: rgba(10, 10, 15, 0.6); | |
| cursor: pointer; | |
| transition: all 0.2s ease; | |
| position: relative; | |
| } | |
| .custom-checkbox:checked { | |
| background: linear-gradient(135deg, var(--neon-cyan), var(--neon-purple)); | |
| border-color: transparent; | |
| } | |
| .custom-checkbox:checked::after { | |
| content: ''; | |
| position: absolute; | |
| left: 5px; | |
| top: 1px; | |
| width: 5px; | |
| height: 10px; | |
| border: solid white; | |
| border-width: 0 2px 2px 0; | |
| transform: rotate(45deg); | |
| } | |
| /* Toast */ | |
| .toast { | |
| animation: slideInUp 0.4s cubic-bezier(0.16, 1, 0.3, 1) forwards; | |
| } | |
| @keyframes slideInUp { | |
| from { transform: translateY(100%); opacity: 0; } | |
| to { transform: translateY(0); opacity: 1; } | |
| } | |
| .toast.hide { | |
| animation: slideOutDown 0.3s ease forwards; | |
| } | |
| @keyframes slideOutDown { | |
| to { transform: translateY(100%); opacity: 0; } | |
| } | |
| /* Tab Active */ | |
| .tab-active { | |
| background: linear-gradient(135deg, rgba(0, 243, 255, 0.15), rgba(188, 19, 254, 0.15)); | |
| border-color: var(--neon-cyan); | |
| color: var(--neon-cyan); | |
| } | |
| /* Range Slider */ | |
| input[type="range"] { | |
| -webkit-appearance: none; | |
| appearance: none; | |
| height: 6px; | |
| background: #1a1a2e; | |
| border-radius: 3px; | |
| outline: none; | |
| } | |
| input[type="range"]::-webkit-slider-thumb { | |
| -webkit-appearance: none; | |
| appearance: none; | |
| width: 18px; | |
| height: 18px; | |
| border-radius: 50%; | |
| background: linear-gradient(135deg, var(--neon-cyan), var(--neon-purple)); | |
| cursor: pointer; | |
| box-shadow: 0 0 10px rgba(0, 243, 255, 0.4); | |
| } | |
| </style> | |
| </head> | |
| <body class="antialiased"> | |
| <!-- Background --> | |
| <div class="bg-grid"></div> | |
| <div class="glow-orb" style="width: 400px; height: 400px; background: var(--neon-cyan); top: -100px; left: -100px;"></div> | |
| <div class="glow-orb" style="width: 300px; height: 300px; background: var(--neon-purple); bottom: -50px; right: -50px; animation-delay: -5s;"></div> | |
| <div class="glow-orb" style="width: 250px; height: 250px; background: var(--neon-green); top: 50%; left: 50%; animation-delay: -10s;"></div> | |
| <!-- Header --> | |
| <header class="relative z-10 border-b border-white/5 glass-panel"> | |
| <div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 py-4 flex items-center justify-between"> | |
| <div class="flex items-center gap-3"> | |
| <div class="w-10 h-10 rounded-xl bg-gradient-to-br from-cyan-400 to-purple-600 flex items-center justify-center shadow-lg shadow-cyan-500/20"> | |
| <i data-lucide="terminal" class="w-5 h-5 text-white"></i> | |
| </div> | |
| <div> | |
| <h1 class="text-xl font-bold tracking-tight">Roblox Executor <span class="bg-gradient-to-r from-cyan-400 to-purple-500 bg-clip-text text-transparent">Studio</span></h1> | |
| <p class="text-xs text-gray-500">Advanced Lua Script Execution Builder</p> | |
| </div> | |
| </div> | |
| <a href="https://huggingface.co/spaces/akhaliq/anycoder" target="_blank" class="text-xs text-gray-500 hover:text-cyan-400 transition-colors cursor-pointer"> | |
| Built with anycoder | |
| </a> | |
| <div class="flex items-center gap-4"> | |
| <div class="hidden md:flex items-center gap-2 text-xs text-gray-500"> | |
| <span class="w-2 h-2 rounded-full bg-green-500 animate-pulse"></span> | |
| System Ready | |
| </div> | |
| <button id="resetBtn" class="p-2 rounded-lg hover:bg-white/5 transition-colors text-gray-400 hover:text-white" title="Reset All"> | |
| <i data-lucide="rotate-ccw" class="w-4 h-4"></i> | |
| </button> | |
| </div> | |
| </div> | |
| </header> | |
| <!-- Main Content --> | |
| <main class="relative z-10 max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 py-6"> | |
| <div class="grid grid-cols-1 lg:grid-cols-12 gap-6"> | |
| <!-- Left Panel - Configuration --> | |
| <div class="lg:col-span-5 space-y-4"> | |
| <!-- Basic Settings --> | |
| <div class="glass-panel rounded-2xl p-5"> | |
| <div class="flex items-center gap-2 mb-4"> | |
| <i data-lucide="settings" class="w-4 h-4 text-cyan-400"></i> | |
| <h2 class="font-semibold text-sm uppercase tracking-wider text-gray-300">Basic Configuration</h2> | |
| </div> | |
| <div class="space-y-4"> | |
| <div> | |
| <label class="block text-xs text-gray-500 mb-1.5">Executor Name</label> | |
| <input type="text" id="execName" value="Axonity" class="input-field w-full px-3 py-2.5 rounded-xl text-sm font-mono" placeholder="MyExecutor"> | |
| </div> | |
| <div class="grid grid-cols-2 gap-3"> | |
| <div> | |
| <label class="block text-xs text-gray-500 mb-1.5">Version</label> | |
| <input type="text" id="execVersion" value="1.0.0" class="input-field w-full px-3 py-2.5 rounded-xl text-sm font-mono" placeholder="1.0.0"> | |
| </div> | |
| <div> | |
| <label class="block text-xs text-gray-500 mb-1.5">API Endpoint</label> | |
| <input type="text" id="apiEndpoint" value="https://api.example.com/v1" class="input-field w-full px-3 py-2.5 rounded-xl text-sm font-mono" placeholder="https://..."> | |
| </div> | |
| </div> | |
| <div> | |
| <label class="block text-xs text-gray-500 mb-1.5">Theme Color</label> | |
| <div class="flex gap-2"> | |
| <button class="color-btn w-8 h-8 rounded-lg border-2 border-cyan-400 bg-cyan-400/20" data-color="cyan"></button> | |
| <button class="color-btn w-8 h-8 rounded-lg border-2 border-transparent hover:border-purple-400 bg-purple-400/20" data-color="purple"></button> | |
| <button class="color-btn w-8 h-8 rounded-lg border-2 border-transparent hover:border-green-400 bg-green-400/20" data-color="green"></button> | |
| <button class="color-btn w-8 h-8 rounded-lg border-2 border-transparent hover:border-pink-400 bg-pink-400/20" data-color="pink"></button> | |
| <button class="color-btn w-8 h-8 rounded-lg border-2 border-transparent hover:border-yellow-400 bg-yellow-400/20" data-color="yellow"></button> | |
| </div> | |
| </div> | |
| </div> | |
| </div> | |
| <!-- Features --> | |
| <div class="glass-panel rounded-2xl p-5"> | |
| <div class="flex items-center gap-2 mb-4"> | |
| <i data-lucide="layers" class="w-4 h-4 text-purple-400"></i> | |
| <h2 class="font-semibold text-sm uppercase tracking-wider text-gray-300">Features & Modules</h2> | |
| </div> | |
| <div class="space-y-3"> | |
| <div class="flex items-center justify-between p-3 rounded-xl bg-white/5 hover:bg-white/10 transition-colors cursor-pointer" onclick="toggleFeature('obfuscation')"> | |
| <div class="flex items-center gap-3"> | |
| <input type="checkbox" id="featObfuscation" class="custom-checkbox"> | |
| <div> | |
| <div class="text-sm font-medium">Script Obfuscation</div> | |
| <div class="text-xs text-gray-500">Encrypt and protect scripts</div> | |
| </div> | |
| </div> | |
| <div class="toggle-switch" id="toggleObfuscation"></div> | |
| </div> | |
| <div class="flex items-center justify-between p-3 rounded-xl bg-white/5 hover:bg-white/10 transition-colors cursor-pointer" onclick="toggleFeature('autoUpdate')"> | |
| <div class="flex items-center gap-3"> | |
| <input type="checkbox" id="featAutoUpdate" class="custom-checkbox" checked> | |
| <div> | |
| <div class="text-sm font-medium">Auto-Update System</div> | |
| <div class="text-xs text-gray-500">Check for updates on launch</div> | |
| </div> | |
| </div> | |
| <div class="toggle-switch active" id="toggleAutoUpdate"></div> | |
| </div> | |
| <div class="flex items-center justify-between p-3 rounded-xl bg-white/5 hover:bg-white/10 transition-colors cursor-pointer" onclick="toggleFeature('customIcon')"> | |
| <div class="flex items-center gap-3"> | |
| <input type="checkbox" id="featCustomIcon" class="custom-checkbox"> | |
| <div> | |
| <div class="text-sm font-medium">Custom Icon</div> | |
| <div class="text-xs text-gray-500">Use your own application icon</div> | |
| </div> | |
| </div> | |
| <div class="toggle-switch" id="toggleCustomIcon"></div> | |
| </div> | |
| <div class="flex items-center justify-between p-3 rounded-xl bg-white/5 hover:bg-white/10 transition-colors cursor-pointer" onclick="toggleFeature('apiIntegration')"> | |
| <div class="flex items-center gap-3"> | |
| <input type="checkbox" id="featApiIntegration" class="custom-checkbox" checked> | |
| <div> | |
| <div class="text-sm font-medium">API Integration</div> | |
| <div class="text-xs text-gray-500">Connect to external APIs</div> | |
| </div> | |
| </div> | |
| <div class="toggle-switch active" id="toggleApiIntegration"></div> | |
| </div> | |
| <div class="flex items-center justify-between p-3 rounded-xl bg-white/5 hover:bg-white/10 transition-colors cursor-pointer" onclick="toggleFeature('antiBan')"> | |
| <div class="flex items-center gap-3"> | |
| <input type="checkbox" id="featAntiBan" class="custom-checkbox"> | |
| <div> | |
| <div class="text-sm font-medium">Anti-Detection</div> | |
| <div class="text-xs text-gray-500">Bypass common detection methods</div> | |
| </div> | |
| </div> | |
| <div class="toggle-switch" id="toggleAntiBan"></div> | |
| </div> | |
| </div> | |
| </div> | |
| <!-- Advanced Options --> | |
| <div class="glass-panel rounded-2xl p-5"> | |
| <div class="flex items-center gap-2 mb-4"> | |
| <i data-lucide="cpu" class="w-4 h-4 text-green-400"></i> | |
| <h2 class="font-semibold text-sm uppercase tracking-wider text-gray-300">Advanced Options</h2> | |
| </div> | |
| <div class="space-y-4"> | |
| <div> | |
| <label class="block text-xs text-gray-500 mb-2">Injection Method</label> | |
| <div class="grid grid-cols-3 gap-2"> | |
| <button class="injection-btn tab-active px-3 py-2 rounded-xl text-xs font-medium border border-transparent transition-all" data-method="dll">DLL Injection</button> | |
| <button class="injection-btn px-3 py-2 rounded-xl text-xs font-medium border border-white/10 hover:border-white/20 transition-all" data-method="memory">Memory Write</button> | |
| <button class="injection-btn px-3 py-2 rounded-xl text-xs font-medium border border-white/10 hover:border-white/20 transition-all" data-method="api">API Hook</button> | |
| </div> | |
| </div> | |
| <div> | |
| <label class="block text-xs text-gray-500 mb-2">Obfuscation Level</label> | |
| <input type="range" id="obfuscationLevel" min="1" max="5" value="3" class="w-full"> | |
| <div class="flex justify-between text-xs text-gray-600 mt-1"> | |
| <span>Light</span> | |
| <span id="obfuscationLabel" class="text-cyan-400">Standard</span> | |
| <span>Extreme</span> | |
| </div> | |
| </div> | |
| <div> | |
| <label class="block text-xs text-gray-500 mb-1.5">Custom DLL Path (Optional)</label> | |
| <div class="flex gap-2"> | |
| <input type="text" id="dllPath" class="input-field flex-1 px-3 py-2.5 rounded-xl text-sm font-mono" placeholder="C:\...\custom.dll"> | |
| <button class="px-3 py-2.5 rounded-xl bg-white/5 hover:bg-white/10 border border-white/10 transition-colors" onclick="showToast('Browse dialog would open here', 'info')"> | |
| <i data-lucide="folder-open" class="w-4 h-4"></i> | |
| </button> | |
| </div> | |
| </div> | |
| </div> | |
| </div> | |
| </div> | |
| <!-- Right Panel - Preview & Output --> | |
| <div class="lg:col-span-7 space-y-4"> | |
| <!-- Code Preview --> | |
| <div class="glass-panel rounded-2xl overflow-hidden"> | |
| <div class="flex items-center justify-between px-5 py-3 border-b border-white/5"> | |
| <div class="flex items-center gap-2"> | |
| <i data-lucide="code-2" class="w-4 h-4 text-cyan-400"></i> | |
| <span class="text-sm font-medium">Generated Source</span> | |
| <span class="text-xs text-gray-500 font-mono">main.cpp</span> | |
| </div> | |
| <div class="flex items-center gap-2"> | |
| <button onclick="copyCode()" class="p-1.5 rounded-lg hover:bg-white/10 transition-colors text-gray-400 hover:text-white" title="Copy"> | |
| <i data-lucide="copy" class="w-4 h-4"></i> | |
| </button> | |
| <button onclick="downloadCode()" class="p-1.5 rounded-lg hover:bg-white/10 transition-colors text-gray-400 hover:text-white" title="Download"> | |
| <i data-lucide="download" class="w-4 h-4"></i> | |
| </button> | |
| </div> | |
| </div> | |
| <div class="code-preview h-96 p-4 overflow-auto" id="codePreview"> | |
| <!-- Code will be generated here --> | |
| </div> | |
| </div> | |
| <!-- Build Console --> | |
| <div class="glass-panel rounded-2xl overflow-hidden"> | |
| <div class="flex items-center justify-between px-5 py-3 border-b border-white/5"> | |
| <div class="flex items-center gap-2"> | |
| <i data-lucide="terminal" class="w-4 h-4 text-green-400"></i> | |
| <span class="text-sm font-medium">Build Console</span> | |
| </div> | |
| <div class="flex items-center gap-2"> | |
| <button onclick="clearConsole()" class="text-xs text-gray-500 hover:text-white transition-colors">Clear</button> | |
| </div> | |
| </div> | |
| <div class="h-48 p-4 overflow-auto font-mono text-xs" id="consoleOutput"> | |
| <div class="text-gray-500">Waiting for build command...</div> | |
| </div> | |
| </div> | |
| <!-- Build Progress --> | |
| <div class="glass-panel rounded-2xl p-5" id="buildProgressSection" style="display: none;"> | |
| <div class="flex items-center justify-between mb-3"> | |
| <span class="text-sm font-medium" id="buildStatus">Compiling...</span> | |
| <span class="text-xs font-mono text-cyan-400" id="buildPercent">0%</span> | |
| </div> | |
| <div class="w-full h-2 bg-white/5 rounded-full overflow-hidden"> | |
| <div class="progress-fill h-full bg-gradient-to-r from-cyan-400 to-purple-500 rounded-full" id="progressBar" style="width: 0%"></div> | |
| </div> | |
| </div> | |
| <!-- Action Buttons --> | |
| <div class="flex gap-3"> | |
| <button onclick="generateCode()" class="btn-glow flex-1 py-3.5 rounded-xl bg-gradient-to-r from-cyan-500 to-cyan-600 hover:from-cyan-400 hover:to-cyan-500 text-white font-semibold text-sm shadow-lg shadow-cyan-500/25 transition-all flex items-center justify-center gap-2"> | |
| <i data-lucide="refresh-cw" class="w-4 h-4"></i> | |
| Generate Code | |
| </button> | |
| <button onclick="buildExecutor()" class="btn-glow flex-1 py-3.5 rounded-xl bg-gradient-to-r from-purple-500 to-purple-600 hover:from-purple-400 hover:to-purple-500 text-white font-semibold text-sm shadow-lg shadow-purple-500/25 transition-all flex items-center justify-center gap-2"> | |
| <i data-lucide="hammer" class="w-4 h-4"></i> | |
| Build Executor | |
| </button> | |
| <button onclick="exportProject()" class="py-3.5 px-5 rounded-xl bg-white/5 hover:bg-white/10 border border-white/10 text-white font-semibold text-sm transition-all flex items-center justify-center gap-2"> | |
| <i data-lucide="package" class="w-4 h-4"></i> | |
| Export | |
| </button> | |
| </div> | |
| </div> | |
| </div> | |
| </main> | |
| <!-- Toast Container --> | |
| <div id="toastContainer" class="fixed bottom-6 right-6 z-50 space-y-2"></div> | |
| <script> | |