✅ RoVerify | Roblox Verification Badge

A simple script that adds the Roblox verification badge to your name.

As of 2024-03-18. See the latest version.

  1. // ==UserScript==
  2. // @name ✅ RoVerify | Roblox Verification Badge
  3. // @namespace https://github.com/Korsinemi
  4. // @version 2.0
  5. // @description A simple script that adds the Roblox verification badge to your name.
  6. // @icon https://en.help.roblox.com/hc/article_attachments/7997146649876/Roblox_Verified_Badge.png
  7. // @author Korsinemi
  8. // @match https://www.roblox.com/*
  9. // @match https://create.roblox.com/*
  10. // @grant GM_setValue
  11. // @license MIT
  12.  
  13. // @name:zh-CN ✅ RoVerify | Roblox 验证徽章
  14. // @description:zh-CN 一个简单的脚本,将 Roblox 验证徽章添加到您的名称中。
  15. // @name:es ✅ RoVerify | Insignia de Verificación de Roblox
  16. // @description:es Un simple script que agrega la insignia de verificación de Roblox a tu nombre.
  17. // @name:hi ✅ RoVerify | रोब्लॉक्स सत्यापन बैज
  18. // @description:hi आपके नाम में रोब्लॉक्स सत्यापन बैज जोड़ने के लिए एक सरल स्क्रिप्ट।
  19. // @name:ar ✅ RoVerify | شارة التحقق من روبلوكس
  20. // @description:ar سكريبت بسيط يضيف شارة التحقق من روبلوكس إلى اسمك.
  21. // @name:pt ✅ RoVerify | Insignia de Verificação do Roblox
  22. // @description:pt Um simples script que adiciona a insígnia de verificação do Roblox ao seu nome.
  23. // @name:ru ✅ RoVerify | Значок верификации Roblox
  24. // @description:ru Простой скрипт, который добавляет значок верификации Roblox к вашему имени.
  25. // @name:ja ✅ RoVerify | Roblox 認証バッジ
  26. // @description:ja Robloxの名前に Roblox 認証バッジを追加するシンプルなスクリプト。
  27. // @name:de ✅ RoVerify | Roblox-Verifizierungsabzeichen
  28. // @description:de Ein einfaches Skript, das das Roblox-Verifizierungsabzeichen zu Ihrem Namen hinzufügt.
  29. // @name:fr ✅ RoVerify | Badge de Vérification Roblox
  30. // @description:fr Un simple script qui ajoute le badge de vérification Roblox à votre nom.
  31. // ==/UserScript==
  32.  
  33. class Checkmark {
  34. constructor(profileSelectors) {
  35. this.profileSelectors = profileSelectors;
  36. this.badgeConfig = {
  37. spaceCharacter: ' ',
  38. src: this.encodeBadgeSVG(),
  39. title: 'Verified',
  40. alt: 'Verified Badge',
  41. style: {
  42. width: '',
  43. height: '',
  44. marginBottom: '2px'
  45. }
  46. };
  47. }
  48.  
  49. encodeBadgeSVG() {
  50. return 'data:image/svg+xml;charset=utf-8,' + encodeURIComponent(this.getBadgeSVG());
  51. }
  52.  
  53. getBadgeSVG() {
  54. return `<svg xmlns='http://www.w3.org/2000/svg' width='28' height='28' viewBox='0 0 28 28' fill='none'>
  55. <g clip-path='url(#clip0_8_46)'>
  56. <rect x='5.88818' width='22.89' height='22.89' transform='rotate(15 5.88818 0)' fill='%230066FF'/>
  57. <path fill-rule='evenodd' clip-rule='evenodd' d='M20.543 8.7508L20.549 8.7568C21.15 9.3578 21.15 10.3318 20.549 10.9328L11.817 19.6648L7.45 15.2968C6.85 14.6958 6.85 13.7218 7.45 13.1218L7.457 13.1148C8.058 12.5138 9.031 12.5138 9.633 13.1148L11.817 15.2998L18.367 8.7508C18.968 8.1498 19.942 8.1498 20.543 8.7508Z' fill='white'/>
  58. </g>
  59. </svg>`;
  60. }
  61.  
  62. createSpaceElement() {
  63. let spaceElement = document.createElement('span');
  64. spaceElement.textContent = this.badgeConfig.spaceCharacter;
  65. return spaceElement;
  66. }
  67.  
  68. createVerifiedBadge(profileElement) {
  69. let fontSize = parseFloat(window.getComputedStyle(profileElement).fontSize);
  70. let iconSize = fontSize * 0.9;
  71. let verifiedBadge = document.createElement('img');
  72. verifiedBadge.className = 'profile-verified-badge-icon';
  73. verifiedBadge.src = this.badgeConfig.src;
  74. verifiedBadge.title = this.badgeConfig.title;
  75. verifiedBadge.alt = this.badgeConfig.alt;
  76. verifiedBadge.style.width = iconSize + 'px';
  77. verifiedBadge.style.height = iconSize + 'px';
  78. return verifiedBadge;
  79. }
  80.  
  81. appendBadgeToProfile(profileElement) {
  82. profileElement.style.marginBottom = this.badgeConfig.style.marginBottom;
  83. profileElement.appendChild(this.createSpaceElement());
  84. profileElement.appendChild(this.createVerifiedBadge(profileElement));
  85. }
  86.  
  87. findAndModifyProfiles() {
  88. let profileNameElements = document.querySelectorAll(this.profileSelectors.join(', '));
  89. profileNameElements.forEach(profileElement => this.appendBadgeToProfile(profileElement));
  90. }
  91. }
  92.  
  93. class ProfileBadgeManager {
  94. constructor() {
  95. this.checkmark = new Checkmark(['.profile-name', '.age-bracket-label-username', '.user-name-container', '.user.PrimaryName']);
  96. }
  97.  
  98. init() {
  99. setTimeout(() => this.checkmark.findAndModifyProfiles(), 2300);
  100. }
  101. }
  102.  
  103. (function() {
  104. 'use strict';
  105. let profileBadgeManager = new ProfileBadgeManager();
  106. profileBadgeManager.init();
  107. })();