Advertisement
julienpierre

Anti-Cheating Script

Jun 8th, 2025 (edited)
47
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
JavaScript 2.26 KB | Source Code | 0 0
  1. <!-- INLINE CSS -->
  2. <style>
  3.   /* fully disable selection & touch callouts everywhere except form controls */
  4.   html, body, .quiz-content, .quiz-content * {
  5.     -webkit-touch-callout: none !important;  /* iOS long-press */
  6.     -webkit-user-select: none !important;    /* Chrome/Safari */
  7.     -moz-user-select: none !important;       /* Firefox */
  8.     -ms-user-select: none !important;        /* IE/Edge */
  9.     user-select: none !important;            /* standard */
  10.     touch-action: manipulation !important;   /* prevent double-tap select */
  11.   }
  12.  
  13.   /* allow selection & interaction in form controls */
  14.   input, textarea, select, button {
  15.     -webkit-touch-callout: initial !important;
  16.     -webkit-user-select: text !important;
  17.     -moz-user-select: text !important;
  18.     -ms-user-select: text !important;
  19.     user-select: text !important;
  20.     touch-action: auto !important;
  21.   }
  22.  
  23.   /* remove any highlight color if it still flashes */
  24.   ::selection {
  25.     background: transparent !important;
  26.   }
  27. </style>
  28.  
  29. <!-- INLINE JS ANTI-CHEAT -->
  30. <script type="text/javascript">
  31. (function(){
  32.   // mark page no-translate
  33.   document.body.classList.add('notranslate');
  34.  
  35.   // show image if you have one (example)
  36.   var img = document.getElementById('quiz-image');
  37.   if(img) img.style.display = 'block';
  38.  
  39.   // common anti-cheat locks
  40.   document.addEventListener('contextmenu', e => e.preventDefault(), false);
  41.   document.addEventListener('dragstart',    e => e.preventDefault(), false);
  42.   document.addEventListener('copy',         e => e.preventDefault(), false);
  43.   document.addEventListener('paste',        e => e.preventDefault(), false);
  44.  
  45.   document.addEventListener('keydown', function(e){
  46.     var mod = e.ctrlKey || e.metaKey;
  47.     if(mod && /[csfu]/i.test(e.key)) e.preventDefault();
  48.     if(mod && e.shiftKey && /[ICJ]/.test(e.key)) e.preventDefault();
  49.     if(e.keyCode === 123) e.preventDefault(); // F12
  50.   }, false);
  51.  
  52.   // clear *any* selection immediately
  53.   document.addEventListener('selectionchange', function(){
  54.     var sel = document.getSelection();
  55.     if(sel) sel.removeAllRanges();
  56.   }, false);
  57.  
  58.   // block text-selection start on touch devices
  59.   document.addEventListener('selectstart', function(e){
  60.     e.preventDefault();
  61.   }, false);
  62. })();
  63. </script>
  64.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement