FREE PREMIUM AND MYRR's CROSSHAIR
Size
9.5 KB
Version
1.4 or 1.5 (I don't remember tbh)
Created
Feb 26, 2026
Updated
about 2 months ago
1// ==UserScript==
2// @name CROSSHAIR AND FREE PREMIUM FOR VECK IO!!
3// @version 1.4 or 1.5 (I don't remember tbh)
4// @description FREE PREMIUM AND MYRR's CROSSHAIR
5// @author ceborix
6// @match *://*poxel.io/*
7// @match *://*kour.io/*
8// @match *://*cryzen.io/*
9// @match *://*veck.io/*
10// @namespace http://tampermonkey.net/
11// @downloadURL https://update.greasyfork.org/scripts/567549/CROSSHAIR%20AND%20FREE%20PREMIUM%20FOR%20VECK%20IO%21%21.user.js
12// @updateURL https://update.greasyfork.org/scripts/567549/CROSSHAIR%20AND%20FREE%20PREMIUM%20FOR%20VECK%20IO%21%21.meta.js
13// ==/UserScript==
14
15(function () {
16 'use strict';
17
18 const STORAGE_KEY = 'crosshair-settings';
19 function saveSettings(style) {
20 localStorage.setItem(STORAGE_KEY, JSON.stringify({ style }));
21 }
22 function loadSettings() {
23 return JSON.parse(localStorage.getItem(STORAGE_KEY) || '{}');
24 }
25
26 const state = {
27 currentStyle: 'ceborix',
28 ...loadSettings()
29 };
30
31 const crosshair = document.createElement('div');
32 crosshair.id = 'custom-crosshair';
33 crosshair.style.position = 'fixed';
34 crosshair.style.top = '50%';
35 crosshair.style.left = '50%';
36 crosshair.style.transform = 'translate(-50%, -50%)';
37 crosshair.style.zIndex = '9999';
38 crosshair.style.pointerEvents = 'none';
39 document.body.appendChild(crosshair);
40
41 function clearCrosshair() {
42 crosshair.innerHTML = '';
43 crosshair.style.background = '';
44 crosshair.style.border = '';
45 crosshair.style.borderRadius = '';
46 crosshair.style.filter = '';
47 crosshair.style.width = '';
48 crosshair.style.height = '';
49 crosshair.style.maskImage = '';
50 crosshair.style.webkitMaskImage = '';
51 crosshair.style.display = 'none';
52 }
53
54 function applyCrosshair(style) {
55 clearCrosshair();
56 if (!style) return;
57
58 crosshair.style.display = 'flex';
59 crosshair.style.alignItems = 'center';
60 crosshair.style.justifyContent = 'center';
61
62 switch (style) {
63 case 'myrrr':
64 crosshair.style.width = '15px';
65 crosshair.style.height = '15px';
66 crosshair.style.filter = 'drop-shadow(0 0 1px #fff) drop-shadow(0 0 2px #cc88ff)';
67 const horiz = document.createElement('div');
68 Object.assign(horiz.style, {
69 position: 'absolute',
70 width: '15px',
71 height: '3px',
72 background: 'linear-gradient(to bottom, #ffffff, #e0ccff)',
73 borderRadius: '1px',
74 });
75 const vert = document.createElement('div');
76 Object.assign(vert.style, {
77 position: 'absolute',
78 width: '3px',
79 height: '15px',
80 background: 'linear-gradient(to bottom, #ffffff, #e0ccff)',
81 borderRadius: '1px',
82 });
83 crosshair.appendChild(horiz);
84 crosshair.appendChild(vert);
85 break;
86
87 case 'dot':
88 crosshair.style.width = '6px';
89 crosshair.style.height = '6px';
90 crosshair.style.borderRadius = '50%';
91 crosshair.style.background = '#fff';
92 crosshair.style.filter = 'drop-shadow(0 0 4px #66f)';
93 break;
94
95 case 'shotgun':
96 crosshair.style.width = '40px';
97 crosshair.style.height = '40px';
98 crosshair.style.border = '4px solid #fff';
99 crosshair.style.borderRadius = '50%';
100 crosshair.style.boxSizing = 'border-box';
101 crosshair.style.background = '(#fff, 0.1)';
102 crosshair.style.filter = 'drop-shadow(0 0 8px #66f';
103 break;
104
105 case 'ceborix':
106 crosshair.style.width = '11px';
107 crosshair.style.height = '11px';
108 crosshair.style.filter = '';
109 const horizCeborix = document.createElement('div');
110 Object.assign(horizCeborix.style, {
111 position: 'absolute',
112 width: '11px',
113 height: '3px',
114 background: '#fff',
115 borderRadius: '1px',
116 });
117 const vertCeborix = document.createElement('div');
118 Object.assign(vertCeborix.style, {
119 position: 'absolute',
120 width: '3px',
121 height: '11px',
122 background: '#fff',
123 borderRadius: '1px',
124 });
125 crosshair.appendChild(horizCeborix);
126 crosshair.appendChild(vertCeborix);
127 break;
128 }
129 }
130
131 const style = document.createElement('style');
132 style.textContent = `
133 #crosshair-settings {
134 position: fixed;
135 top: 100px;
136 right: 10px;
137 z-index: 99999;
138 font-family: Arial, sans-serif;
139 background-color: #222;
140 border-radius: 20px;
141 padding: 10px;
142 width: auto;
143 height: auto;
144 box-shadow: 0 0 15px rgba(0, 0, 0, 0.4);
145 transition: opacity 0.3s ease, transform 0.3s ease;
146 }
147
148 #crosshair-settings-button {
149 background: transparent;
150 border: none;
151 font-size: 24px;
152 color: #fff;
153 cursor: pointer;
154 filter: drop-shadow(0 0 3px #000);
155 transition: transform 0.3s ease;
156 }
157
158 #crosshair-settings-button:hover {
159 transform: scale(1.1);
160 }
161
162 #crosshair-menu {
163 display: none;
164 flex-direction: column;
165 margin-top: 10px;
166 background: rgba(30, 30, 30, 0.95);
167 border-radius: 10px;
168 padding: 10px;
169 box-shadow: 0 0 10px #000;
170 transition: opacity 0.3s ease-in-out;
171 }
172
173 .crosshair-option {
174 display: flex;
175 justify-content: space-between;
176 align-items: center;
177 margin: 8px 0;
178 color: #fff;
179 font-size: 14px;
180 gap: 8px;
181 flex-wrap: nowrap
182 }
183
184 .switch {
185 position: relative;
186 display: inline-block;
187 width: 40px;
188 height: 20px;
189 }
190
191 .switch input {
192 opacity: 0;
193 width: 0;
194 height: 0;
195 }
196
197 .slider {
198 position: absolute;
199 cursor: pointer;
200 top: 0;
201 left: 0;
202 right: 0;
203 bottom: 0;
204 background-color: #ccc;
205 transition: .4s;
206 border-radius: 20px;
207 }
208
209 .slider:before {
210 position: absolute;
211 content: "";
212 height: 16px;
213 width: 16px;
214 left: 2px;
215 bottom: 2px;
216 background-color: white;
217 transition: .4s;
218 border-radius: 50%;
219 }
220
221 input:checked + .slider {
222 background-color: #4caf50;
223 }
224
225 input:checked + .slider:before {
226 transform: translateX(20px);
227 }
228 `;
229 document.head.appendChild(style);
230
231 const menuContainer = document.createElement('div');
232 menuContainer.id = 'crosshair-settings';
233
234 const settingsButton = document.createElement('button');
235 settingsButton.id = 'crosshair-settings-button';
236 settingsButton.innerHTML = '⚙️';
237
238 const menu = document.createElement('div');
239 menu.id = 'crosshair-menu';
240
241const crosshairOptions = [
242 { label: "ceborix's crosshair", key: 'ceborix' },
243 { label: "myrrr's crosshair", key: 'myrrr' },
244 { label: 'Dot', key: 'dot' },
245 { label: 'Shotgun', key: 'shotgun' }
246];
247
248 function createOption(label, styleKey) {
249 const row = document.createElement('div');
250 row.className = 'crosshair-option';
251
252 const text = document.createElement('span');
253 text.textContent = label;
254
255 const toggleContainer = document.createElement('label');
256 toggleContainer.className = 'switch';
257
258 const toggle = document.createElement('input');
259 toggle.type = 'checkbox';
260 toggle.checked = state.currentStyle === styleKey;
261
262 const slider = document.createElement('span');
263 slider.className = 'slider';
264
265 toggle.onchange = () => {
266 if (toggle.checked) {
267 state.currentStyle = styleKey;
268 saveSettings(state.currentStyle);
269 applyCrosshair(state.currentStyle);
270
271 document.querySelectorAll('#crosshair-menu input[type=checkbox]').forEach(cb => {
272 if (cb !== toggle) cb.checked = false;
273 });
274 } else {
275 state.currentStyle = null;
276 saveSettings(null);
277 clearCrosshair();
278 }
279 };
280
281 toggleContainer.appendChild(toggle);
282 toggleContainer.appendChild(slider);
283 row.appendChild(text);
284 row.appendChild(toggleContainer);
285 return row;
286 }
287
288 crosshairOptions.forEach(opt => menu.appendChild(createOption(opt.label, opt.key)));
289
290 menuContainer.onclick = (e) => {
291 if (e.target.closest('#crosshair-menu')) return;
292
293 menu.style.display = menu.style.display === 'flex' ? 'none' : 'flex';
294 };
295
296
297 menuContainer.appendChild(settingsButton);
298 menuContainer.appendChild(menu);
299 document.body.appendChild(menuContainer);
300
301 applyCrosshair(state.currentStyle);
302})();
303
304//I miss you m̈