Greasy Fork is available in English.

Roblox Action Searcher

Good tool for roblox!

// ==UserScript==
// @name         Roblox Action Searcher
// @namespace    http://tampermonkey.net/
// @version      0.2
// @description  Good tool for roblox!
// @author       YT_Xaos
// @match        https://www.roblox.com/home
// @include      https://www.roblox.com/*
// @homepage     https://flounder.epizy.com/
// @icon         https://images.rbxcdn.com/23421382939a9f4ae8bbe60dbe2a3e7e.ico.gzip
// @grant        none
// ==/UserScript==

(function() {
    'use strict';
    // New scrollbar :)
    let scrollbar = document.createElement('style');
    scrollbar.innerHTML = `
::-webkit-scrollbar {
  width: 15px;
}
::-webkit-scrollbar-track {
  display: none;
}
::-webkit-scrollbar-thumb {
  background: #888;
  border-radius: 5px;
}
::-webkit-scrollbar-thumb:hover {
  background: #555;
}
    `
    document.head.appendChild(scrollbar);
    // Snackbar for errors
    let snackbar = document.createElement('style');
    snackbar.innerHTML = `
 #snackbar {
  visibility: hidden;
  min-width: 250px;
  margin-left: -125px;
  background-color: #333;
  color: #fff;
  text-align: center;
  border-radius: 2px;
  padding: 16px;
  position: fixed;
  z-index: 1;
  left: 50%;
  bottom: 30px;
  font-size: 17px;
  border-radius: 10px;
}

#snackbar.show {
  visibility: visible;
  -webkit-animation: snackin 0.5s, snackout 0.5s 2.5s;
  animation: snackin 0.5s, snackout 0.5s 2.5s;
}

@-webkit-keyframes snackin {
  from {bottom: 0; opacity: 0;}
  to {bottom: 30px; opacity: 1;}
}

@keyframes snackin {
  from {bottom: 0; opacity: 0;}
  to {bottom: 30px; opacity: 1;}
}

@-webkit-keyframes snackout {
  from {bottom: 30px; opacity: 1;}
  to {bottom: 0; opacity: 0;}
}

@keyframes snackout {
  from {bottom: 30px; opacity: 1;}
  to {bottom: 0; opacity: 0;}
}
 #snackbar2{
  visibility: hidden;
  min-width: 250px;
  margin-left: -125px;
  background-color: #333;
  color: #fff;
  text-align: center;
  border-radius: 2px;
  padding: 16px;
  position: fixed;
  z-index: 1;
  left: 50%;
  bottom: 30px;
  font-size: 17px;
  border-radius: 10px;
}

#snackbar2.show {
  visibility: visible;
  -webkit-animation: snackin 0.5s, snackout 0.5s 2.5s;
  animation: snackin 0.5s, snackout 0.5s 2.5s;
}
`
    document.head.appendChild(snackbar);
    // The actual snackbar
    let ssnackbar = document.createElement('div');
    ssnackbar.setAttribute('id', 'snackbar');
    ssnackbar.innerHTML = 'We can\'t search for nothing'
    document.querySelector('.content').appendChild(ssnackbar);
    let snackbar2 = document.createElement('div');
    snackbar2.setAttribute('id', 'snackbar2');
    snackbar2.innerHTML = 'Made by YT_Xaos';
    document.querySelector('.content').appendChild(snackbar2);
    let x = document.getElementById("snackbar2");
    x.className = "show";
    setTimeout(function(){ x.className = x.className.replace("show", ""); }, 3000);
    // Set a timeout to load everything
    setTimeout(() => {
        // Create the button
        let actions = document.createElement('button');

        // Attributes
        actions.setAttribute('title', 'Search Actions');
        actions.setAttribute('style', 'color: black; margin: 4px; outline: none; border: none; background: transparent; position: absolute; right: 334px;');
        actions.innerHTML = "<span class='icon-nav-search'></span>";

        // Add an onclick event for the search
        actions.addEventListener('click', () => {
            let list = document.createElement('datalist');
            list.setAttribute('id', 'new-data');
            list.innerHTML = `
<option value="reload">
<option value="close/x">
<option value="home/dashboard">
<option value="url/href/link">
<option value="/on hashchange alert">
<option value="/on windowclick close">
`
            document.querySelector('.content').appendChild(list);
            actions.style.pointerEvents = 'none';
            actions.style.opacity = '0.7';
            let input = document.createElement('input');
            input.setAttribute('id', 'navbar-search');
            input.setAttribute('placeholder', 'Search');
            input.setAttribute('maxlenght', '120');
            input.setAttribute('list', 'new-data');
            input.setAttribute('autocomplete', 'off');
            input.setAttribute('style', 'position: absolute; top: 5px; left: 450px; width: 25%; border: 1px solid lightgrey; outline: none; z-index: 9999;');
            input.className = "form control input-field";
            document.querySelector('.content').appendChild(input);
            let searchbtn = document.createElement('input');
            searchbtn.setAttribute('type', 'submit');
            searchbtn.setAttribute('style', 'outline: none; background: transparent; position: absolute; right: 380px; top: 9px; border: none; z-index: 9999;');
            searchbtn.value = "Go";
            searchbtn.addEventListener('click', () => {
                let search = document.getElementById('navbar-search').value;
                console.log(search)
                // Actions:
                if (search === 'reload') {
                    window.location.reload();
                }
                if (search.length === 0) {
                    let x = document.getElementById("snackbar");
                    x.className = "show";
                    setTimeout(function(){ x.className = x.className.replace("show", ""); }, 3000);
                }
                if (search === 'x' || search === 'close') {
                    input.remove();
                    searchbtn.remove();
                    actions.style.pointerEvents = 'auto';
                    actions.style.opacity = '1';
                }
                if (search === 'home' || search === 'dashboard') {
                    window.location = 'https://www.roblox.com/home';
                }
                if (search === 'url' || search === 'href' || search === 'link') {
                    alert(window.location.href);
                }
                if (search === 'path' || search == '/') {
                    alert(window.location.pathname);
                }
                // Commands:
                if (search === '/on hashchange alert') {
                    document.addEventListener('hashchange', () => {
                    alert(location.hash)
                    });
                }
                if (search === '/on windowclick close') {
                  window.onclick = () => {
                    input.remove();
                    searchbtn.remove();
                    actions.style.pointerEvents = 'auto';
                    actions.style.opacity = '1';
                  }
                }
            });
            document.querySelector('.content').appendChild(searchbtn);
        });

        // Make it appear in the right place
        document.querySelector('.navbar-right').appendChild(actions);
    }, 500);
})();