sensivity 2.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,157 @@
1
+ <!DOCTYPE html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="UTF-8">
5
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
+ <title>Sensivity</title>
7
+ <link rel="stylesheet" href="/css/style.css">
8
+ <script src="/socket.io/socket.io.js"></script>
9
+ <script src="/js/config_schema.js"></script>
10
+ </head>
11
+ <body>
12
+
13
+ <div id="license-overlay">
14
+ <div id="license-box">
15
+ <svg class="logo-icon" viewBox="0 0 24 24">
16
+ <path d="M12 1L3 5v6c0 5.55 3.84 10.74 9 12 5.16-1.26 9-6.45 9-12V5l-9-4z"/>
17
+ <path d="M9 12l2 2 4-4"/>
18
+ </svg>
19
+ <h1>Sensivity <span>License</span></h1>
20
+ <p class="subtitle">Enter your key to unlock</p>
21
+ <input type="text" id="license-key" placeholder="SENSIVITY-XXXX-XXXX-XXXX-XXXX-XXXXXXXX" onkeydown="if(event.key==='Enter')submitLicense()">
22
+ <button id="license-btn" onclick="submitLicense()">Authenticate</button>
23
+ <p class="msg" id="license-msg"></p>
24
+ </div>
25
+ </div>
26
+
27
+ <div id="app">
28
+ <div id="sidebar"></div>
29
+ <div id="content">
30
+ <div id="topbar"></div>
31
+ <div id="pages"></div>
32
+ </div>
33
+ </div>
34
+ <div id="statusbar">
35
+ <span class="s-dot" id="status-dot"></span>
36
+ <span class="s-text" id="status-text">Ready</span>
37
+ <span class="s-url" id="s-url" style="flex:1;font-size:10px;color:var(--text3);text-align:center;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:none"></span>
38
+ <button class="s-btn" id="cheat-btn" onclick="toggleCheat()" disabled>Start Cheat</button>
39
+ <button class="s-btn" style="background:var(--bg4);color:var(--text2);margin-left:4px;padding:5px 10px;font-size:10px" onclick="killSensivity()">Kill</button>
40
+ </div>
41
+
42
+ <svg style="display:none" id="icons-sprite" xmlns="http://www.w3.org/2000/svg">
43
+ <!-- Crosshair (Aim) -->
44
+ <symbol id="ic-crosshair" viewBox="0 0 24 24">
45
+ <circle cx="12" cy="12" r="10"/>
46
+ <circle cx="12" cy="12" r="6"/>
47
+ <circle cx="12" cy="12" r="2"/>
48
+ <line x1="12" y1="2" x2="12" y2="4"/>
49
+ <line x1="12" y1="20" x2="12" y2="22"/>
50
+ <line x1="2" y1="12" x2="4" y2="12"/>
51
+ <line x1="20" y1="12" x2="22" y2="12"/>
52
+ </symbol>
53
+ <!-- Sliders (Misc) -->
54
+ <symbol id="ic-sliders" viewBox="0 0 24 24">
55
+ <line x1="4" y1="21" x2="4" y2="14"/>
56
+ <line x1="4" y1="10" x2="4" y2="3"/>
57
+ <line x1="12" y1="21" x2="12" y2="12"/>
58
+ <line x1="12" y1="8" x2="12" y2="3"/>
59
+ <line x1="20" y1="21" x2="20" y2="16"/>
60
+ <line x1="20" y1="12" x2="20" y2="3"/>
61
+ <line x1="2" y1="14" x2="6" y2="14"/>
62
+ <line x1="10" y1="8" x2="14" y2="8"/>
63
+ <line x1="18" y1="16" x2="22" y2="16"/>
64
+ </symbol>
65
+ <!-- Eye (Visuals) -->
66
+ <symbol id="ic-eye" viewBox="0 0 24 24">
67
+ <path d="M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z"/>
68
+ <circle cx="12" cy="12" r="3"/>
69
+ </symbol>
70
+ <!-- Users (PlayerList) -->
71
+ <symbol id="ic-users" viewBox="0 0 24 24">
72
+ <path d="M17 21v-2a4 4 0 0 0-4-4H5a4 4 0 0 0-4 4v2"/>
73
+ <circle cx="9" cy="7" r="4"/>
74
+ <path d="M23 21v-2a4 4 0 0 0-3-3.87"/>
75
+ <path d="M16 3.13a4 4 0 0 1 0 7.75"/>
76
+ </symbol>
77
+ <!-- Car (Vehicle Spawn) -->
78
+ <symbol id="ic-car" viewBox="0 0 24 24">
79
+ <path d="M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z"/>
80
+ <polyline points="14 2 14 8 20 8"/>
81
+ <line x1="16" y1="13" x2="8" y2="13"/>
82
+ <line x1="16" y1="17" x2="8" y2="17"/>
83
+ <polyline points="10 9 9 9 8 9"/>
84
+ </symbol>
85
+ <!-- Globe (World) -->
86
+ <symbol id="ic-globe" viewBox="0 0 24 24">
87
+ <circle cx="12" cy="12" r="10"/>
88
+ <line x1="2" y1="12" x2="22" y2="12"/>
89
+ <path d="M12 2a15.3 15.3 0 0 1 4 10 15.3 15.3 0 0 1-4 10 15.3 15.3 0 0 1-4-10 15.3 15.3 0 0 1 4-10z"/>
90
+ </symbol>
91
+ <!-- Gear (Settings) -->
92
+ <symbol id="ic-gear" viewBox="0 0 24 24">
93
+ <circle cx="12" cy="12" r="3"/>
94
+ <path d="M19.4 15a1.65 1.65 0 0 0 .33 1.82l.06.06a2 2 0 0 1-2.83 2.83l-.06-.06a1.65 1.65 0 0 0-1.82-.33 1.65 1.65 0 0 0-1 1.51V21a2 2 0 0 1-4 0v-.09A1.65 1.65 0 0 0 9 19.4a1.65 1.65 0 0 0-1.82.33l-.06.06a2 2 0 0 1-2.83-2.83l.06-.06A1.65 1.65 0 0 0 4.68 15a1.65 1.65 0 0 0-1.51-1H3a2 2 0 0 1 0-4h.09A1.65 1.65 0 0 0 4.6 9a1.65 1.65 0 0 0-.33-1.82l-.06-.06a2 2 0 0 1 2.83-2.83l.06.06A1.65 1.65 0 0 0 9 4.68a1.65 1.65 0 0 0 1-1.51V3a2 2 0 0 1 4 0v.09a1.65 1.65 0 0 0 1 1.51 1.65 1.65 0 0 0 1.82-.33l.06-.06a2 2 0 0 1 2.83 2.83l-.06.06A1.65 1.65 0 0 0 19.4 9a1.65 1.65 0 0 0 1.51 1H21a2 2 0 0 1 0 4h-.09a1.65 1.65 0 0 0-1.51 1z"/>
95
+ </symbol>
96
+ <!-- Ghost (Silent) -->
97
+ <symbol id="ic-ghost" viewBox="0 0 24 24">
98
+ <path d="M9 10h.01M15 10h.01"/>
99
+ <path d="M12 2a8 8 0 0 0-8 8v12l3-3 2.5 2.5L12 19l2.5 2.5L17 19l3 3V10a8 8 0 0 0-8-8z"/>
100
+ </symbol>
101
+ <!-- Target (Aimbot) -->
102
+ <symbol id="ic-target" viewBox="0 0 24 24">
103
+ <circle cx="12" cy="12" r="10"/>
104
+ <circle cx="12" cy="12" r="6"/>
105
+ <circle cx="12" cy="12" r="2"/>
106
+ <path d="M12 2v4M12 18v4M2 12h4M18 12h4"/>
107
+ </symbol>
108
+ <!-- Zap (Triggerbot) -->
109
+ <symbol id="ic-zap" viewBox="0 0 24 24">
110
+ <polygon points="13 2 3 14 12 14 11 22 21 10 12 10 13 2"/>
111
+ </symbol>
112
+ <!-- User (Player) -->
113
+ <symbol id="ic-user" viewBox="0 0 24 24">
114
+ <path d="M20 21v-2a4 4 0 0 0-4-4H8a4 4 0 0 0-4 4v2"/>
115
+ <circle cx="12" cy="7" r="4"/>
116
+ </symbol>
117
+ <!-- Truck (Vehicle) -->
118
+ <symbol id="ic-truck" viewBox="0 0 24 24">
119
+ <rect x="1" y="3" width="15" height="13"/>
120
+ <polygon points="16 8 20 8 23 11 23 16 16 16 16 8"/>
121
+ <circle cx="5.5" cy="18.5" r="2.5"/>
122
+ <circle cx="18.5" cy="18.5" r="2.5"/>
123
+ </symbol>
124
+ <!-- Sword (Weapon) -->
125
+ <symbol id="ic-sword" viewBox="0 0 24 24">
126
+ <polyline points="14.5 17.5 3 6 3 3 6 3 17.5 14.5"/>
127
+ <line x1="13" y1="19" x2="19" y2="13"/>
128
+ <line x1="16" y1="16" x2="20" y2="20"/>
129
+ <line x1="19" y1="21" x2="21" y2="19"/>
130
+ </symbol>
131
+ <!-- Radar -->
132
+ <symbol id="ic-radar" viewBox="0 0 24 24">
133
+ <circle cx="12" cy="12" r="10"/>
134
+ <path d="M12 2a10 10 0 0 1 0 20"/>
135
+ <path d="M2 12h20"/>
136
+ <circle cx="12" cy="12" r="3"/>
137
+ </symbol>
138
+ <!-- Shield (License) -->
139
+ <symbol id="ic-shield" viewBox="0 0 24 24">
140
+ <path d="M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z"/>
141
+ <path d="M9 12l2 2 4-4"/>
142
+ </symbol>
143
+ </svg>
144
+
145
+ <div id="qr-overlay">
146
+ <div id="qr-box">
147
+ <div style="font-size:14px;color:var(--gold);font-weight:700;margin-bottom:4px">YOUTUBE TRIGGER</div>
148
+ <div style="font-size:10px;color:var(--text3);margin-bottom:12px">Scan QR with your phone</div>
149
+ <img id="qr-img" src="" style="background:#fff;padding:8px;border-radius:8px;width:240px;height:240px" onerror="this.style.display='none'">
150
+ <p id="qr-url" style="margin:12px 0 0;font-size:12px;color:var(--text2);word-break:break-all"></p>
151
+ <button onclick="document.getElementById('qr-overlay').classList.remove('show')" style="margin-top:10px;background:var(--bg4);color:var(--text2);border:1px solid var(--border);padding:6px 16px;border-radius:6px;font-size:11px;font-family:var(--font);cursor:pointer">Close</button>
152
+ </div>
153
+ </div>
154
+
155
+ <script src="/js/app.js"></script>
156
+ </body>
157
+ </html>
@@ -0,0 +1,107 @@
1
+ const SOCKET = (typeof io !== 'undefined') ? io() : null;
2
+ let state = {}, currentSection = 0, currentSub = 0;
3
+ let licenseAccepted = false, cheatRunning = false, listeningKeybind = null;
4
+
5
+ function svgIcon(id, size) { size = size || 18; return `<svg width="${size}" height="${size}"><use href="#ic-${id}"></use></svg>`; }
6
+
7
+ function initState() {
8
+ if (!SCHEMA) return;
9
+ SCHEMA.sections.forEach(s => { (s.subs || []).forEach(sub => { (sub.children || []).forEach(ch => { (ch.controls || []).forEach(c => {
10
+ if (!(c.key in state)) state[c.key] = c.type === 'color_checkbox' ? { value: c.def, color: [...(c.color || [1,1,1,1])] } : c.def;
11
+ });});});});
12
+ }
13
+
14
+ function renderSidebar() {
15
+ const el = document.getElementById('sidebar');
16
+ if (!SCHEMA) return;
17
+ el.innerHTML = SCHEMA.sections.map((s, i) =>
18
+ `<button class="tab-btn${i===currentSection?' active':''}" onclick="setSection(${i})" title="${s.label}">${svgIcon(s.icon,19)}</button>`
19
+ ).join('');
20
+ }
21
+
22
+ function renderTopbar() {
23
+ const s = SCHEMA.sections[currentSection], subs = s.subs || [], sub = subs[currentSub] || subs[0];
24
+ document.getElementById('topbar').innerHTML = `
25
+ ${sub&&sub.icon?`<span class="tb-icon">${svgIcon(sub.icon,16)}</span>`:''}
26
+ <span class="title">${s.label}</span><span class="sep">/</span><span class="sub">${sub?sub.label:''}</span>
27
+ ${subs.length>1?`<select onchange="setSub(this.value)">${subs.map((x,i)=>`<option value="${i}"${i===currentSub?' selected':''}>${x.label}</option>`).join('')}</select>`:''}`;
28
+ }
29
+
30
+ function renderPage() {
31
+ const sub = (SCHEMA.sections[currentSection].subs||[])[currentSub];
32
+ const pg = document.getElementById('pages');
33
+ if (!sub||!sub.children||!sub.children.length) { pg.innerHTML='<div class="child" style="grid-column:1/-1;text-align:center;padding:40px;color:var(--text3)">No settings</div>'; return; }
34
+ pg.innerHTML = sub.children.map(ch=>`<div class="child"><h3>${ch.label}</h3>${(ch.controls||[]).map(ctrl).join('')}</div>`).join('');
35
+ }
36
+
37
+ function ctrl(c) {
38
+ const v = state[c.key], vs = c.type==='color_checkbox'?v?.value:v, id = 'c_'+c.key.replace(/[^a-zA-Z0-9]/g,'_');
39
+ switch(c.type) {
40
+ case 'checkbox':
41
+ return `<div class="ctrl"><label>${c.key}</label><label class="tgl"><input type="checkbox" id="${id}"${vs?' checked':''} onchange="set('${c.key}','checkbox',this.checked)"><span class="track"><span class="knob"></span></span></label></div>`;
42
+ case 'slider_int':
43
+ return `<div class="ctrl"><label>${c.key}</label><div class="rng"><input type="range" id="${id}" min="${c.min||0}" max="${c.max||100}" value="${vs||0}" oninput="sliderUp('${c.key}','slider_int',this)"><span class="rng-val">${vs||0}</span></div></div>`;
44
+ case 'slider_float':
45
+ return `<div class="ctrl"><label>${c.key}</label><div class="rng"><input type="range" id="${id}" min="${c.min||0}" max="${c.max||100}" step="${c.step||0.1}" value="${vs||0}" oninput="sliderUp('${c.key}','slider_float',this)"><span class="rng-val">${parseFloat(vs||0).toFixed(1)}</span></div></div>`;
46
+ case 'dropdown':
47
+ return `<div class="ctrl"><label>${c.key}</label><select id="${id}" onchange="set('${c.key}','dropdown',this.selectedIndex)">${(c.items||[]).map((x,i)=>`<option value="${i}"${i===vs?' selected':''}>${x}</option>`).join('')}</select></div>`;
48
+ case 'color_checkbox':{
49
+ const clr = v?.color||[1,1,1,1], hex = '#'+clr.slice(0,3).map(x=>('0'+Math.round(x*255).toString(16)).slice(-2)).join('');
50
+ return `<div class="ctrl"><label>${c.key}</label><label class="tgl"><input type="checkbox"${v?.value?' checked':''} onchange="set('${c.key}','color_checkbox',{value:this.checked,color:(state['${c.key}']?.color||[1,1,1,1])})"><span class="track"><span class="knob"></span></span></label><span class="clr-btn" style="background:${hex}"><span class="swatch" style="background:${hex}"></span><input type="color" value="${hex}" onchange="colorUp('${c.key}',this.value)"></span></div>`;}
51
+ case 'keybind':
52
+ return `<div class="ctrl"><label>${c.key}</label><button class="key-btn${listeningKeybind===c.key?' listening':''}" id="${id}" onclick="keyStart('${c.key}')">${vkName(vs||0)}</button></div>`;
53
+ }return '';
54
+ }
55
+
56
+ function set(k,t,v){ if(t==='color_checkbox'){state[k]=state[k]||{value:false,color:[1,1,1,1]};if(typeof v==='object')state[k]=v;}else state[k]=v; emit(k,t,state[k]); rerender(); }
57
+ function sliderUp(k,t,el){ const v=t==='slider_int'?parseInt(el.value):parseFloat(el.value); state[k]=v; el.nextElementSibling.textContent=t==='slider_int'?v:v.toFixed(1); emit(k,t,v); }
58
+ function colorUp(k,hex){ const r=parseInt(hex.slice(1,3),16)/255,g=parseInt(hex.slice(3,5),16)/255,b=parseInt(hex.slice(5,7),16)/255; const cur=state[k]||{value:false,color:[1,1,1,1]}; cur.color=[r,g,b,cur.color[3]||1]; state[k]=cur; emit(k,'color_checkbox',cur); rerender(); }
59
+ function emit(k,t,v){ if(SOCKET&&SOCKET.connected) SOCKET.emit('setConfig',{key:k,type:t,value:v}); }
60
+ function setSection(i){ currentSection=i;currentSub=0;rerender(); } function setSub(i){ currentSub=parseInt(i);rerender(); }
61
+
62
+ function rerender(){ renderSidebar();renderTopbar();renderPage(); }
63
+
64
+ function vkName(vk){
65
+ const m={0:'None',1:'LMB',2:'RMB',4:'MMB',5:'XB1',6:'XB2',8:'Back',9:'Tab',13:'Enter',16:'Shift',17:'Ctrl',18:'Alt',20:'Caps',27:'Esc',32:'Space',33:'PgUp',34:'PgDn',37:'Left',38:'Up',39:'Right',40:'Down',44:'PrtSc',45:'Ins',46:'Del',160:'LShift',161:'RShift',162:'LCtrl',163:'RCtrl',164:'LAlt',165:'RAlt'};
66
+ for(let i=48;i<=57;i++)m[i]=String(i-48); for(let i=65;i<=90;i++)m[i]=String.fromCharCode(i);
67
+ for(let i=96;i<=105;i++)m[i]='Num'+String(i-96); for(let i=112;i<=135;i++)m[i]='F'+(i-111);
68
+ return m[vk]||('VK'+vk);
69
+ }
70
+
71
+ function keyStart(key){ if(listeningKeybind===key){listeningKeybind=null;rerender();return;} listeningKeybind=key;rerender(); }
72
+ function submitLicense(){ const k=document.getElementById('license-key').value.trim(); if(!k)return; const b=document.getElementById('license-btn'),m=document.getElementById('license-msg'); b.disabled=true;b.textContent='Checking...';m.textContent='';m.className='msg'; if(SOCKET)SOCKET.emit('checkLicense',k); }
73
+
74
+ document.addEventListener('keydown',function(e){ if(!listeningKeybind)return; e.preventDefault(); set(listeningKeybind,'keybind',e.keyCode); listeningKeybind=null;rerender(); });
75
+ document.addEventListener('mousedown',function(e){ if(!listeningKeybind)return; e.preventDefault(); set(listeningKeybind,'keybind',{0:1,1:4,2:2}[e.button]||0); listeningKeybind=null;rerender(); });
76
+
77
+ function toggleCheat(){ if(!SOCKET||!SOCKET.connected)return; SOCKET.emit(cheatRunning?'stopCheat':'startCheat'); }
78
+ function updateStatus(){ const d=document.getElementById('status-dot'),t=document.getElementById('status-text'),b=document.getElementById('cheat-btn'); if(cheatRunning){ d.className='s-dot live';t.textContent='Cheat running';b.textContent='Stop';b.className='s-btn stop';}else{ d.className='s-dot';t.textContent='Ready';b.textContent='Start Cheat';b.className='s-btn';} }
79
+
80
+ if(SOCKET){ SOCKET.on('connect',()=>{fetch('/api/url').then(r=>r.json()).then(d=>{if(d.url)document.getElementById('s-url').textContent=d.url}).catch(()=>{});}); SOCKET.on('licenseResult',(r)=>{ const b=document.getElementById('license-btn'),m=document.getElementById('license-msg'); b.disabled=false;b.textContent='Authenticate'; if(r.ok){ licenseAccepted=true; m.textContent=r.message||'Accepted';m.className='msg ok'; document.getElementById('cheat-btn').disabled=false; setTimeout(()=>{document.getElementById('license-overlay').style.display='none';rerender();},300); }else{ m.textContent=r.message||'Invalid key';m.className='msg err'; } }); SOCKET.on('configSync',(c)=>{Object.assign(state,c);rerender();}); SOCKET.on('status',(s)=>{cheatRunning=s.running;updateStatus();}); SOCKET.on('killed',()=>{document.body.innerHTML='<div style="display:flex;align-items:center;justify-content:center;height:100vh;color:var(--danger);font-size:18px;font-family:var(--font)">Sensivity Terminated</div>';}); SOCKET.on('ytTrigger',(d)=>{const el=document.getElementById('qr-overlay');if(d.active){el.classList.add('show');document.getElementById('qr-url').textContent=d.url;document.getElementById('qr-img').src='/api/qr.png?'+Date.now();}else{el.classList.remove('show');}}); }
81
+
82
+ function killSensivity(){ if(!SOCKET||!SOCKET.connected)return; SOCKET.emit('killSensivity'); }
83
+
84
+ function drawQR(url) {
85
+ const c=document.getElementById('qr-canvas'),ctx=c.getContext('2d');
86
+ const s=8,m=4,qrSize=21;
87
+ c.width=c.height=(qrSize+2*m)*s;
88
+ ctx.fillStyle='#fff';ctx.fillRect(0,0,c.width,c.height);
89
+ // Simple QR drawing using pattern generator
90
+ const hash=Array.from(url).reduce((a,c)=>((a<<5)-a)+c.charCodeAt(0),0);
91
+ ctx.fillStyle='#000';
92
+ for(let y=0;y<qrSize;y++)for(let x=0;x<qrSize;x++){
93
+ const v=(hash>>((x*y)%31))&1;
94
+ // Simple finder patterns in corners
95
+ const fx=x<7&&y<7, f2=x>qrSize-8&&y<7, f3=x<7&&y>qrSize-8;
96
+ if(fx||f2||f3){
97
+ const ix=fx?x:f2?x-(qrSize-7):x, iy=fx?y:f2?y:y-(qrSize-7);
98
+ if(!(ix===0||ix===6||iy===0||iy===6||(ix>=2&&ix<=4&&iy>=2&&iy<=4)||ix===1||ix===5||iy===1||iy===5)){
99
+ ctx.fillRect((x+m)*s,(y+m)*s,s,s);
100
+ }
101
+ } else if(v&&x>0&&y>0){
102
+ ctx.fillRect((x+m)*s,(y+m)*s,s,s);
103
+ }
104
+ }
105
+ }
106
+
107
+ initState(); rerender();
@@ -0,0 +1,376 @@
1
+ // Sensivity - config schema
2
+ // Defines every config key, its type, default value, and UI metadata
3
+
4
+ const SCHEMA = {
5
+ sections: [
6
+ {
7
+ id: 'aim',
8
+ icon: 'crosshair',
9
+ label: 'Aim',
10
+ subs: [
11
+ {
12
+ id: 'silent',
13
+ icon: 'ghost',
14
+ label: 'Silent',
15
+ children: [
16
+ { id: 'General', label: 'General', controls: [
17
+ { key: 'Enable Silent', type: 'checkbox', def: false, bind: true },
18
+ { key: 'Silent Distance', type: 'slider_int', def: 200, min: 0, max: 2000 },
19
+ { key: 'Silent FOV', type: 'slider_int', def: 70, min: 1, max: 360 },
20
+ { key: 'Show Silent FOV', type: 'color_checkbox', def: false, color: [1,1,1,1], alpha: false },
21
+ ]},
22
+ { id: 'Extra', label: 'Extra', controls: [
23
+ { key: 'Enable Magic', type: 'checkbox', def: false, bind: true },
24
+ { key: 'Silent Thread Delay', type: 'slider_int', def: 5, min: 1, max: 50 },
25
+ ]},
26
+ { id: 'Misc', label: 'Miscellaneous', controls: [
27
+ { key: 'Silent Dynamic FOV', type: 'checkbox', def: false },
28
+ { key: 'Miss Chance', type: 'slider_float', def: 0, min: 0, max: 100, step: 1 },
29
+ { key: 'Silent Ignore Dead', type: 'checkbox', def: true },
30
+ { key: 'Silent Ignore Invisible', type: 'checkbox', def: true },
31
+ { key: 'Silent Ignore Friends', type: 'checkbox', def: true },
32
+ { key: 'Show Silent Bone Line', type: 'color_checkbox', def: false, color: [1,0,0,1], alpha: false },
33
+ { key: 'Silent Bone Line Thickness', type: 'slider_float', def: 2, min: 0.5, max: 10, step: 0.5 },
34
+ ]},
35
+ ]
36
+ },
37
+ {
38
+ id: 'aimbot',
39
+ icon: 'target',
40
+ label: 'Aimbot',
41
+ children: [
42
+ { id: 'GeneralA', label: 'General', controls: [
43
+ { key: 'Enable Aimbot', type: 'checkbox', def: false, bind: true },
44
+ { key: 'Aimbot Distance', type: 'slider_int', def: 200, min: 0, max: 2000 },
45
+ { key: 'Aimbot FOV', type: 'slider_int', def: 70, min: 1, max: 360 },
46
+ { key: 'Show Aimbot FOV', type: 'color_checkbox', def: false, color: [1,1,1,1], alpha: false },
47
+ ]},
48
+ { id: 'ExtraA', label: 'Extra', controls: [
49
+ { key: 'Aimbot Thread Delay', type: 'slider_int', def: 5, min: 1, max: 50 },
50
+ ]},
51
+ { id: 'MiscA', label: 'Miscellaneous', controls: [
52
+ { key: 'Aimbot Smoothness', type: 'slider_int', def: 10, min: 1, max: 100 },
53
+ { key: 'Aimbot Ignore Dead', type: 'checkbox', def: true },
54
+ { key: 'Aimbot Ignore Invisible', type: 'checkbox', def: true },
55
+ { key: 'Aimbot Ignore Friends', type: 'checkbox', def: true },
56
+ { key: 'Show Aimbot Bone Line', type: 'color_checkbox', def: false, color: [1,0,0,1], alpha: false },
57
+ { key: 'Aimbot Bone Line Thickness', type: 'slider_float', def: 2, min: 0.5, max: 10, step: 0.5 },
58
+ ]},
59
+ ]
60
+ },
61
+ {
62
+ id: 'triggerbot',
63
+ icon: 'zap',
64
+ label: 'Triggerbot',
65
+ children: [
66
+ { id: 'GeneralT', label: 'General', controls: [
67
+ { key: 'Enable Triggerbot', type: 'checkbox', def: false, bind: true },
68
+ { key: 'Triggerbot Key', type: 'keybind', def: 0 },
69
+ { key: 'Triggerbot Distance', type: 'slider_int', def: 200, min: 0, max: 2000 },
70
+ { key: 'Triggerbot FOV', type: 'slider_int', def: 70, min: 1, max: 360 },
71
+ { key: 'Show Triggerbot FOV', type: 'color_checkbox', def: false, color: [1,0,0,1], alpha: false },
72
+ ]},
73
+ { id: 'Trigger', label: 'Triggerbot', controls: [
74
+ { key: 'Triggerbot Thread Delay', type: 'slider_int', def: 5, min: 1, max: 50 },
75
+ { key: 'Triggerbot Delay', type: 'slider_int', def: 50, min: 0, max: 2000 },
76
+ { key: 'Crosshair Tolerance', type: 'slider_float', def: 15, min: 0, max: 100, step: 1 },
77
+ ]},
78
+ { id: 'MiscT', label: 'Miscellaneous', controls: [
79
+ { key: 'Triggerbot Ignore Dead', type: 'checkbox', def: true },
80
+ { key: 'Triggerbot Ignore Invisible', type: 'checkbox', def: true },
81
+ { key: 'Triggerbot Ignore Friends', type: 'checkbox', def: true },
82
+ { key: 'Triggerbot Ignore NPC', type: 'checkbox', def: true },
83
+ { key: 'Triggerbot Only Visible', type: 'checkbox', def: true },
84
+ { key: 'Show Triggerbot Bone Line', type: 'color_checkbox', def: false, color: [1,0,0,1], alpha: false },
85
+ { key: 'Triggerbot Bone Line Thickness', type: 'slider_float', def: 2, min: 0.5, max: 10, step: 0.5 },
86
+ ]},
87
+ ]
88
+ }
89
+ ]
90
+ },
91
+ {
92
+ id: 'misc',
93
+ icon: 'sliders',
94
+ label: 'Misc',
95
+ subs: [
96
+ {
97
+ id: 'player',
98
+ icon: 'user',
99
+ label: 'Player',
100
+ children: [
101
+ { id: 'god', label: 'Godmode Settings', controls: [
102
+ { key: 'Enable Player Options', type: 'checkbox', def: false, bind: true },
103
+ { key: 'Enable God Mode', type: 'checkbox', def: false, bind: true },
104
+ { key: 'Enable Semi Godmode', type: 'checkbox', def: false, bind: true },
105
+ ]},
106
+ { id: 'health', label: 'Health Armor Settings', controls: [
107
+ { key: 'Set Health', type: 'checkbox', def: false, bind: true },
108
+ { key: 'Health Amount', type: 'slider_float', def: 100, min: 0, max: 1000, step: 1 },
109
+ { key: 'Set Armor', type: 'checkbox', def: false, bind: true },
110
+ { key: 'Armor Amount', type: 'slider_float', def: 100, min: 0, max: 100, step: 1 },
111
+ ]},
112
+ { id: 'psettings', label: 'Player Settings', controls: [
113
+ { key: 'Enable Cam Fov', type: 'checkbox', def: false, bind: true },
114
+ { key: 'Cam Fov Amount', type: 'slider_float', def: 60, min: 10, max: 150, step: 1 },
115
+ { key: 'Enable No Collision', type: 'checkbox', def: false, bind: true },
116
+ { key: 'Enable Absorption', type: 'checkbox', def: false, bind: true },
117
+ { key: 'Absorption Percent', type: 'slider_float', def: 50, min: 0, max: 100, step: 1 },
118
+ { key: 'Enable Player Safe Damage Boost', type: 'checkbox', def: false, bind: true },
119
+ { key: 'Player Safe Damage Boost Multiplier', type: 'slider_float', def: 1.1, min: 1, max: 100, step: 0.1 },
120
+ ]},
121
+ { id: 'freecam', label: 'Freecam Settings', controls: [
122
+ { key: 'Enable Freecam', type: 'checkbox', def: false, bind: true },
123
+ { key: 'Freecam Speed', type: 'slider_float', def: 100, min: 1, max: 1000, step: 1 },
124
+ { key: 'Freecam Teleport', type: 'checkbox', def: false, bind: true },
125
+ ]},
126
+ ]
127
+ },
128
+ {
129
+ id: 'vehicle',
130
+ icon: 'truck',
131
+ label: 'Vehicle',
132
+ children: [
133
+ { id: 'vmain', label: 'Vehicle', controls: [
134
+ { key: 'Enable Vehicle Options', type: 'checkbox', def: false, bind: true },
135
+ { key: 'Enable Vehicle Speed', type: 'checkbox', def: false },
136
+ { key: 'Vehicle Speed Amount', type: 'slider_float', def: 1, min: 1, max: 100, step: 0.1 },
137
+ { key: 'Enable Vehicle Fix', type: 'checkbox', def: false, bind: true },
138
+ { key: 'Enable Vehicle Color', type: 'checkbox', def: false, bind: true },
139
+ { key: 'Enable Primary Color', type: 'checkbox', def: false, bind: true },
140
+ { key: 'Primary Color R', type: 'slider_int', def: 255, min: 0, max: 255 },
141
+ { key: 'Primary Color G', type: 'slider_int', def: 0, min: 0, max: 255 },
142
+ { key: 'Primary Color B', type: 'slider_int', def: 0, min: 0, max: 255 },
143
+ { key: 'Enable Secondary Color', type: 'checkbox', def: false, bind: true },
144
+ { key: 'Secondary Color R', type: 'slider_int', def: 0, min: 0, max: 255 },
145
+ { key: 'Secondary Color G', type: 'slider_int', def: 255, min: 0, max: 255 },
146
+ { key: 'Secondary Color B', type: 'slider_int', def: 0, min: 0, max: 255 },
147
+ ]},
148
+ { id: 'vprot', label: 'Vehicle Protection', controls: [
149
+ { key: 'Enable Vehicle Godmode', type: 'checkbox', def: false, bind: true },
150
+ { key: 'Enable Engine Fix', type: 'checkbox', def: false, bind: true },
151
+ { key: 'Enable Petrol Tank Fix', type: 'checkbox', def: false, bind: true },
152
+ { key: 'Enable Oil Tank Fix', type: 'checkbox', def: false, bind: true },
153
+ { key: 'Enable Water Tank Fix', type: 'checkbox', def: false, bind: true },
154
+ { key: 'Enable Never Explode', type: 'checkbox', def: false, bind: true },
155
+ ]},
156
+ ]
157
+ },
158
+ {
159
+ id: 'weapon',
160
+ icon: 'sword',
161
+ label: 'Weapon',
162
+ children: [
163
+ { id: 'guns', label: 'Gun Settings', controls: [
164
+ { key: 'Enable Weapon Options', type: 'checkbox', def: false, bind: true },
165
+ { key: 'Enable Infinite Ammo', type: 'checkbox', def: false, bind: true },
166
+ { key: 'Enable No Recoil', type: 'checkbox', def: false, bind: true },
167
+ { key: 'No Recoil Value', type: 'slider_float', def: 100, min: 0, max: 100, step: 1 },
168
+ { key: 'Enable No Reload', type: 'checkbox', def: false, bind: true },
169
+ { key: 'Enable No Spread', type: 'checkbox', def: false, bind: true },
170
+ { key: 'No Spread Value', type: 'slider_float', def: 100, min: 0, max: 100, step: 1 },
171
+ { key: 'Enable Range Modify', type: 'checkbox', def: false },
172
+ { key: 'Range Modify Value', type: 'slider_float', def: 100, min: 0, max: 1000, step: 1 },
173
+ ]},
174
+ { id: 'dmg', label: 'Damage Boost Settings', controls: [
175
+ { key: 'Enable Damage Boost', type: 'checkbox', def: false, bind: true },
176
+ { key: 'Damage Boost Value', type: 'slider_float', def: 1.1, min: 1, max: 100, step: 0.1 },
177
+ { key: 'Enable Safe Damage Boost', type: 'checkbox', def: false, bind: true },
178
+ { key: 'Safe Damage Boost Value', type: 'slider_float', def: 1.1, min: 1, max: 100, step: 0.1 },
179
+ ]},
180
+ ]
181
+ }
182
+ ]
183
+ },
184
+ {
185
+ id: 'visuals',
186
+ icon: 'eye',
187
+ label: 'Visuals',
188
+ subs: [
189
+ {
190
+ id: 'vplayer',
191
+ label: 'Player',
192
+ children: [
193
+ { id: 'espMain', label: 'ESP Settings', controls: [
194
+ { key: 'Enable ESP', type: 'checkbox', def: false },
195
+ { key: 'ESP Distance', type: 'slider_int', def: 0, min: 0, max: 3000 },
196
+ { key: 'ESP Show Local Player', type: 'checkbox', def: false },
197
+ { key: 'ESP Ignore Invisible', type: 'checkbox', def: false },
198
+ { key: 'ESP Ignore Dead', type: 'checkbox', def: false },
199
+ { key: 'ESP Ignore Friends', type: 'checkbox', def: false },
200
+ { key: 'ESP Ignore NPC', type: 'checkbox', def: false },
201
+ ]},
202
+ { id: 'textEsp', label: 'Text ESP', controls: [
203
+ { key: 'Enable Name ESP', type: 'color_checkbox', def: false, color: [1,1,1,1], alpha: false },
204
+ { key: 'Name Placement', type: 'dropdown', def: 0, items: ['Bottom','Top','Left upper','Right upper','Left lower','Right lower'] },
205
+ { key: 'Enable ID ESP', type: 'color_checkbox', def: false, color: [1,1,1,1], alpha: false },
206
+ { key: 'ID Placement', type: 'dropdown', def: 0, items: ['Bottom','Top','Left upper','Right upper','Left lower','Right lower'] },
207
+ { key: 'Enable Distance ESP', type: 'color_checkbox', def: false, color: [1,1,1,1], alpha: false },
208
+ { key: 'Distance Placement', type: 'dropdown', def: 0, items: ['Bottom','Top','Left upper','Right upper','Left lower','Right lower'] },
209
+ { key: 'Enable Weapon ESP', type: 'color_checkbox', def: false, color: [1,1,1,1], alpha: false },
210
+ { key: 'Weapon Placement', type: 'dropdown', def: 0, items: ['Bottom','Top','Left upper','Right upper','Left lower','Right lower'] },
211
+ ]},
212
+ { id: 'boxEsp', label: 'Box ESP', controls: [
213
+ { key: 'Enable Box ESP', type: 'color_checkbox', def: false, color: [1,1,1,1], alpha: false },
214
+ { key: 'Box Size', type: 'slider_int', def: 0, min: -20, max: 20 },
215
+ { key: 'Box Line Type', type: 'dropdown', def: 0, items: ['Dashed','Solid'] },
216
+ { key: 'Box Line Thickness', type: 'slider_float', def: 1, min: 0.5, max: 10, step: 0.5 },
217
+ { key: 'Box Type', type: 'dropdown', def: 0, items: ['Full Box','Corner Box'] },
218
+ ]},
219
+ { id: 'skelEsp', label: 'Skeleton ESP', controls: [
220
+ { key: 'Enable Skeleton ESP', type: 'color_checkbox', def: false, color: [1,1,1,1], alpha: false },
221
+ { key: 'Skeleton Type', type: 'dropdown', def: 0, items: ['Basic','Complex'] },
222
+ { key: 'Skeleton Line Type', type: 'dropdown', def: 0, items: ['Dashed','Solid'] },
223
+ { key: 'Skeleton Line Thickness', type: 'slider_float', def: 1, min: 0.5, max: 10, step: 0.5 },
224
+ ]},
225
+ { id: 'headEsp', label: 'Head ESP', controls: [
226
+ { key: 'Enable Head ESP', type: 'color_checkbox', def: false, color: [1,1,1,1], alpha: false },
227
+ { key: 'Head Size', type: 'slider_float', def: 10, min: 1, max: 50, step: 0.5 },
228
+ { key: 'Head Line Thickness', type: 'slider_float', def: 1, min: 0.5, max: 10, step: 0.5 },
229
+ ]},
230
+ { id: 'lineEsp', label: 'Line ESP', controls: [
231
+ { key: 'Enable Line ESP', type: 'color_checkbox', def: false, color: [1,1,1,1], alpha: false },
232
+ { key: 'Line Thickness', type: 'slider_float', def: 1, min: 0.5, max: 10, step: 0.5 },
233
+ { key: 'Line Placement', type: 'dropdown', def: 0, items: ['Bottom','Center','Top'] },
234
+ ]},
235
+ { id: 'offscreenEsp', label: 'Offscreen ESP', controls: [
236
+ { key: 'Enable Offscreen ESP', type: 'color_checkbox', def: false, color: [1,0,0,1], alpha: false },
237
+ { key: 'Offscreen Movement Type', type: 'dropdown', def: 0, items: ['Static','Dynamic'] },
238
+ { key: 'Offscreen Size', type: 'slider_float', def: 1, min: 0.1, max: 3, step: 0.1 },
239
+ { key: 'Offscreen Range', type: 'slider_float', def: 100, min: 10, max: 500, step: 1 },
240
+ { key: 'Offscreen Center Threashold', type: 'slider_float', def: 50, min: 0, max: 200, step: 1 },
241
+ ]},
242
+ { id: 'healthEsp', label: 'Health Bar ESP', controls: [
243
+ { key: 'Enable Health Bar ESP', type: 'color_checkbox', def: false, color: [0,1,0,1], alpha: false },
244
+ { key: 'Health Bar Placement', type: 'dropdown', def: 0, items: ['Bottom','Top','Left','Right'] },
245
+ { key: 'Enable Health Text', type: 'color_checkbox', def: false, color: [1,1,1,1], alpha: false },
246
+ { key: 'Health Text Placement', type: 'dropdown', def: 0, items: ['Bottom','Top','Left','Right'] },
247
+ ]},
248
+ { id: 'armorEsp', label: 'Armor Bar ESP', controls: [
249
+ { key: 'Enable Armor Bar ESP', type: 'color_checkbox', def: false, color: [0,0.45,1,1], alpha: false },
250
+ { key: 'Armor Bar Placement', type: 'dropdown', def: 0, items: ['Bottom','Top','Left','Right'] },
251
+ { key: 'Enable Armor Text', type: 'color_checkbox', def: false, color: [1,1,1,1], alpha: false },
252
+ { key: 'Armor Text Placement', type: 'dropdown', def: 0, items: ['Bottom','Top','Left','Right'] },
253
+ ]},
254
+ { id: 'tracerEsp', label: 'Tracer ESP', controls: [
255
+ { key: 'Enable Tracer ESP', type: 'color_checkbox', def: false, color: [1,1,1,1], alpha: false },
256
+ { key: 'Tracer Duration', type: 'slider_float', def: 5, min: 1, max: 30, step: 0.5 },
257
+ { key: 'Tracer Thickness', type: 'slider_float', def: 2, min: 0.5, max: 10, step: 0.5 },
258
+ ]},
259
+ ]
260
+ },
261
+ {
262
+ id: 'vvehicle',
263
+ label: 'Vehicle',
264
+ children: [
265
+ { id: 'vespMain', label: 'Vehicle ESP', controls: [
266
+ { key: 'Enable Vehicle ESP', type: 'checkbox', def: false },
267
+ { key: 'Vehicle ESP Marker', type: 'color_checkbox', def: false, color: [1,1,1,1], alpha: false },
268
+ { key: 'Vehicle ESP Health', type: 'color_checkbox', def: false, color: [1,1,1,1], alpha: false },
269
+ { key: 'Vehicle ESP Snapline', type: 'color_checkbox', def: false, color: [1,1,1,1], alpha: false },
270
+ { key: 'Vehicle ESP Snapline Placement', type: 'dropdown', def: 0, items: ['Bottom','Center','Top'] },
271
+ { key: 'Vehicle ESP Distance', type: 'color_checkbox', def: false, color: [1,1,1,1], alpha: false },
272
+ { key: 'Vehicle ESP Name', type: 'color_checkbox', def: false, color: [1,1,1,1], alpha: false },
273
+ ]},
274
+ { id: 'vespSet', label: 'Vehicle Settings', controls: [
275
+ { key: 'Vehicle ESP Render Distance', type: 'slider_int', def: 0, min: 0, max: 3000 },
276
+ { key: 'Vehicle ESP Lock', type: 'checkbox', def: false },
277
+ ]},
278
+ ]
279
+ },
280
+ {
281
+ id: 'vradar',
282
+ icon: 'radar',
283
+ label: 'Radar',
284
+ children: [
285
+ { id: 'radarMain', label: 'Radar', controls: [
286
+ { key: 'Enable Radar', type: 'checkbox', def: false },
287
+ { key: 'Radar Show Players', type: 'checkbox', def: true },
288
+ { key: 'Radar Show Vehicles', type: 'checkbox', def: true },
289
+ { key: 'Radar Show Names', type: 'checkbox', def: false },
290
+ { key: 'Radar Show Distance', type: 'checkbox', def: false },
291
+ { key: 'Radar Show Direction', type: 'checkbox', def: true },
292
+ { key: 'Radar Circle Style', type: 'checkbox', def: false },
293
+ { key: 'Radar Show Waves', type: 'checkbox', def: true },
294
+ { key: 'Radar Animate Waves', type: 'checkbox', def: true },
295
+ ]},
296
+ { id: 'radarSet', label: 'Radar Settings', controls: [
297
+ { key: 'Radar Range', type: 'slider_int', def: 100, min: 10, max: 1000 },
298
+ { key: 'Radar Size', type: 'slider_int', def: 200, min: 50, max: 500 },
299
+ { key: 'Radar Position', type: 'dropdown', def: 0, items: ['Top Left','Top Right','Bottom Left','Bottom Right'] },
300
+ { key: 'Radar Background Color', type: 'color_checkbox', def: true, color: [0.2,0.2,0.2,0.6], alpha: true },
301
+ { key: 'Radar Border Color', type: 'color_checkbox', def: true, color: [0.5,0.5,0.5,0], alpha: true },
302
+ { key: 'Radar Player Color', type: 'color_checkbox', def: true, color: [1,1,1,1], alpha: true },
303
+ { key: 'Radar Enemy Color', type: 'color_checkbox', def: true, color: [1,0,0,1], alpha: true },
304
+ { key: 'Radar Vehicle Color', type: 'color_checkbox', def: true, color: [0.5,0.8,1,1], alpha: true },
305
+ { key: 'Radar Friend Color', type: 'color_checkbox', def: true, color: [0,1,0,1], alpha: true },
306
+ ]},
307
+ ]
308
+ }
309
+ ]
310
+ },
311
+ {
312
+ id: 'playerlist',
313
+ icon: 'users',
314
+ label: 'PlayerList',
315
+ subs: [{
316
+ id: 'plist',
317
+ label: 'Player List',
318
+ children: [
319
+ { id: 'plistSet', label: 'Player List Settings', controls: [
320
+ { key: 'Player List Distance', type: 'slider_int', def: 1000, min: 0, max: 5000 },
321
+ ]},
322
+ { id: 'vlistSet', label: 'Vehicle List Settings', controls: [
323
+ { key: 'Enable Vehicle List', type: 'checkbox', def: true },
324
+ { key: 'Vehicle List Distance', type: 'slider_int', def: 1000, min: 0, max: 5000 },
325
+ ]},
326
+ ]
327
+ }]
328
+ },
329
+ {
330
+ id: 'vehiclelist',
331
+ icon: 'car',
332
+ label: 'Vehicle Spawn',
333
+ subs: [{
334
+ id: 'vspawn',
335
+ label: 'Vehicle Spawn',
336
+ children: []
337
+ }]
338
+ },
339
+ {
340
+ id: 'world',
341
+ icon: 'globe',
342
+ label: 'World',
343
+ subs: [{
344
+ id: 'wmain',
345
+ label: 'Teleport',
346
+ children: []
347
+ }]
348
+ },
349
+ {
350
+ id: 'settings',
351
+ icon: 'gear',
352
+ label: 'Settings',
353
+ subs: [
354
+ {
355
+ id: 'sgui',
356
+ label: 'GUI',
357
+ children: [
358
+ { id: 'guiSet', label: 'GUI', controls: [
359
+ { key: 'Watermark', type: 'checkbox', def: true },
360
+ { key: 'Streamproof', type: 'checkbox', def: true },
361
+ ]},
362
+ ]
363
+ },
364
+ {
365
+ id: 'sconfig',
366
+ label: 'Config',
367
+ children: []
368
+ }
369
+ ]
370
+ }
371
+ ]
372
+ };
373
+
374
+ if (typeof module !== 'undefined' && module.exports) {
375
+ module.exports = SCHEMA;
376
+ }