// ==UserScript==
// @name Red Nova Client
// @namespace http://tampermonkey.net/
// @version 1.0
// @description A red color theme based on the Black Sun theme. Has lowercase name built-in
// @author plxyer-x
// @match https://starblast.io/
// @grant none
// @license haha, wat?
// ==/UserScript==
(function () {
'use strict';
var styleItem = document.createElement("style");
styleItem.type = "text/css";
styleItem.appendChild(document.createTextNode(`
@import url('https://fonts.googleapis.com/css2?family=Exo:wght@300;400;500&display=swap');
:root {
/* --- MODIFIED: RED NOVA COLOR SCHEME --- */
--Light-color: #FF0000;
--Dark-color: #3D0000;
--sec-Light-color: rgba(255, 0, 0, .5);
--sec-Dark-color: rgba(61, 0, 0, 0.5);
--Background-Dark-color: rgba(61, 0, 0, 0.25);
/* Removed the original Black Sun custom logo URL variable */
}
* {
font-family: 'Exo', sans-serif;
user-select: none;
}
/* --- FIX: Ensures the default Starblast logo is visible --- */
#logo {
/* Clears the custom logo background image from the Black Sun theme */
background-image: none !important;
animation: show-logo;
animation-duration: 2s;
animation-fill-mode: forwards;
}
#logo img {
/* Ensures the image element (the actual logo) is visible */
opacity: 1 !important;
height: auto !important;
width: auto !important;
}
@keyframes show-logo {
from {
opacity: 0;
}
to {
opacity: 1;
}
}
/* --- LOWERCASE NAME INPUT FIX (CSS Version) --- */
.inputwrapper input[type="text"],
.inputwrapper input[name="nick"],
.inputwrapper .nickname-input {
text-transform: none !important;
}
/* --- Emote Layout CSS (Simple, non-intrusive) --- */
#emotes, .emotes {
margin: 0 auto !important;
display: flex !important;
justify-content: center !important;
overflow: visible !important;
}
.emote {
flex-shrink: 0 !important;
padding: 0 2px !important;
}
/* ---------------------------------------------------------------------- */
.MuiGrid-container,
#cgbottom,
#cgpreroll {
display: none !important;
}
.changelog-new,
.extrabutton {
position: relative;
top: 0;
right: 250px;
background: var(--sec-Dark-color);
border-radius: 0 12px 12px 0;
border: 1px solid var(--Light-color);
color: var(--Light-color);
margin-top: 15px;
text-align: center;
overflow: hidden;
box-shadow: none;
transition: .5s;
}
.changelog-new:focus,
.extrabutton:focus,
.changelog-new:hover,
.extrabutton:hover {
right: 15px;
box-shadow: 0 0 12px var(--Light-color);
}
.changelog-new h2 {
text-shadow: 0 0 5px var(--Light-color);
border-bottom: 2px solid var(--Light-color);
border-radius: 20px;
}
.modal-header a,
.changelog-new p a {
background: transparent !important;
color: var(--Light-color) !important;
text-decoration: none !important;
border: none !important;
}
.modal-header a:hover,
.changelog-new p a:hover {
text-decoration: underline !important;
color: var(--Light-color) !important;
background: transparent !important;
box-shadow: none !important;
}
.full-changelog {
border-left: none !important;
border-bottom: none !important;
border-right: none !important;
}
.changelog-new a,
.full-changelog {
background: transparent !important;
border: 2px solid var(--Light-color);
color: var(--Light-color) !important;
text-align: center !important;
overflow: hidden !important;
transition: .5s !important;
}
.full-changelog:focus,
.full-changelog:hover,
.changelog-new a:focus,
.changelog-new a:hover {
color: var(--Dark-color) !important;
background: var(--Light-color) !important;
box-shadow: 0 0 10px var(--Light-color);
}
input::placeholder {
text-shadow: none !important;
color: var(--sec-Light-color) !important;
}
.inputwrapper {
background: var(--sec-Dark-color) !important;
color: var(--Light-color) !important;
border: 1px solid var(--Light-color) !important;
border-radius: 15px !important;
box-shadow: 0 0 10px var(--Light-color) !important;
transition: 0.5s !important;
}
.inputwrapper img {
left: 5px !important;
}
#colors span,
.colorchosen {
border-radius: 12px !important;
}
#colors .selected {
transform: scale(1.2) !important;
box-shadow: none !important;
}
#play {
background: var(--sec-Dark-color) !important;
border-radius: 20px !important;
border: 1px solid var(--Light-color) !important;
color: var(--Light-color) !important;
overflow: hidden !important;
box-shadow: none !important;
transition: 0.5s;
}
#play:before {
content: '';
position: absolute;
top: 20px;
left: -100%;
width: 100%;
height: 0%;
background: var(--Light-color);
border-radius: 10px;
transform: rotate(-45deg);
box-shadow: 0 0 20px 20px var(--Light-color);
animation: shine 2s infinite;
}
@keyframes shine {
0% {
left: -100%;
}
100% {
left: 400%;
}
}
#play:focus,
#play:hover {
transform: scale(1.05);
}
#play>span {
text-shadow: 0 0 30px var(--Light-color);
}
#game_modes {
background: var(--sec-Dark-color) !important;
color: var(--Light-color) !important;
border-top: 1px solid var(--Light-color);
text-shadow: none !important;
}
.fa.fa-caret-left,
#prevMode {
position: relative;
top: 0;
right: 0;
color: var(--Light-color) !important;
transition: .5s !important;
text-shadow: none;
}
.fa.fa-caret-left:hover,
#prevMode:hover {
right: 8px;
text-shadow: 0 0 10px var(--Light-color) !important;
}
.fa.fa-caret-right,
#nextMode {
position: relative;
top: 0;
left: 0;
color: var(--Light-color) !important;
transition: .5s !important;
text-shadow: none;
}
.fa.fa-caret-right:hover,
#nextMode:hover {
left: 8px;
text-shadow: 0 0 10px var(--Light-color) !important;
}
.social i,
.mobile-social i,
.mobile-tools i,
.stats i {
background: var(--sec-Dark-color) !important;
color: var(--Light-color) !important;
border: 1px solid var(--Light-color) !important;
border-radius: 15px !important;
box-shadow: none !important;
text-shadow: none !important;
transition: 0.5s !important;
}
.social i:focus,
.mobile-social i:focus,
.mobile-tools i:focus,
.stats i:focus,
.social i:hover,
.mobile-social i:hover,
.mobile-tools i:hover,
.stats i:hover {
background: var(--Light-color) !important;
color: var(--Dark-color) !important;
transform: scale(1.1) !important;
}
.sbg-diamond,
.sbg-twitter:focus .sbg-diamond,
.sbg-facebook:focus .sbg-diamond,
.sbg-twitter:hover .sbg-diamond,
.sbg-facebook:hover .sbg-diamond {
color: var(--Light-color) !important;
transition: 0.5s !important;
}
#training {
background: var(--sec-Dark-color) !important;
border-radius: 15px !important;
border: 1px solid var(--Light-color) !important;
color: var(--Light-color) !important;
font-weight: 500 !important;
box-shadow: none !important;
text-shadow: none !important;
transition: 0.5s !important;
}
#training:focus,
#training:hover {
background: var(--Light-color) !important;
color: var(--Dark-color) !important;
box-shadow: 0 0 5px var(--Light-color) !important;
}
#training>span {
position: relative;
bottom: 18px;
transition: 0.5s;
font-weight: 500;
font-size: 20px
}
#training:hover span {
bottom: -2px;
}
.sbg-fw {
position: relative;
top: 100px;
color: var(--Dark-color);
transition: 0.5s;
}
#training:hover .sbg-fw {
top: -2px;
}
#moddingspace,
#donate,
#rankings {
background: var(--sec-Dark-color);
border-radius: 15px;
border: 1px solid var(--Light-color);
color: var(--Light-color);
box-shadow: none;
text-shadow: none !important;
font-weight: 500 !important;
transition: 0.5s;
overflow: hidden;
}
#moddingspace:focus,
#moddingspace:hover,
#donate:focus,
#donate:hover,
#rankings:focus,
#rankings:hover {
background: var(--Light-color);
color: var(--Dark-color);
box-shadow: 0 0 5px var(--Light-color);
}
#moddingspace>span {
position: relative;
bottom: 20px;
transition: 0.5s;
font-size: 15px
}
#donate>span {
position: relative;
bottom: 22px;
transition: 0.5s;
font-size: 15px
}
#rankings>span {
position: relative;
bottom: 20px;
transition: 0.5s;
font-size: 15px
}
.sbg-modding,
.fa.fa-fw.fa-trophy,
.fa.ecplogo img {
position: relative;
bottom: 100px;
transition: 0.5s;
}
.fa.fa-fw.fa-trophy {
color: var(--Dark-color) !important;
}
.sbg.sbg-modding.fa-2x,
.changelog-new a .sbg.sbg-modding {
bottom: 0;
}
#moddingspace:focus .sbg-modding,
#moddingspace:hover .sbg-modding,
#moddingspace:focus span,
#moddingspace:hover span,
#rankings:focus .fa.fa-fw.fa-trophy,
#rankings:hover .fa.fa-fw.fa-trophy,
#rankings:focus span,
#rankings:hover span,
#donate:focus .fa.ecplogo img,
#donate:hover .fa.ecplogo img,
#donate:focus span,
#donate:hover span {
bottom: -2px;
}
.modal {
background: var(--Dark-color) !important;
border: 1px solid var(--Light-color) !important;
color: var(--Light-color) !important;
box-shadow: none !important;
text-shadow: none !important;
font-weight: 500 !important;
transition: 0.5s !important;
}
.modal .header {
background: var(--sec-Dark-color) !important;
color: var(--Light-color);
border-bottom: 5px solid var(--Light-color);
}
.modal .close-modal {
font-family: sans-serif !important;
text-shadow: 0 0 10px var(--Light-color) !important;
transition: 0.5s !important;
}
.modal .close-modal:hover {
color: red !important;
text-shadow: 0 0 10px red !important;
background: transparent !important;
text-shadow: none !important;
transform: rotate(90deg) !important;
}
*::-webkit-scrollbar-thumb {
border-radius: 20px !important;
box-shadow: none !important;
background: var(--Light-color) !important;
}
*::-webkit-scrollbar {
width: 10px !important;
}
*::-webkit-scrollbar-track {
box-shadow: none !important;
border-radius: 0 !important;
background-color: transparent !important;
}
.gmodes a,
#infologo {
display: none !important;
}
.infos h2 {
text-align: center !important;
border-bottom: 3px solid var(--Light-color) !important;
}
.modwrap {
border-bottom: 3px solid var(--Light-color) !important;
}
.blue,
.infos p a {
padding: 10px 10px !important;
color: var(--Light-color) !important;
font-weight: 600 !important;
}
.infos p a:focus,
.infos p a:hover {
text-decoration: underline !important;
}
.modwrap img {
filter: none !important;
}
.mod .title {
position: relative;
bottom: 10px;
font-size: 12px !important;
background: #fff !important;
color: #000 !important;
border-radius: 0 0 10px 10px !important;
}
.slider {
border: 1px solid var(--Light-color);
background: var(--sec-Dark-color);
transition: .8s !important;
border-radius: 20px;
}
.slider:before {
content: '';
position: absolute;
left: 3px;
bottom: 3px;
height: 26px;
width: 26px;
background: var(--Light-color);
transition: .8s !important;
border-radius: 100%;
}
input:checked+.slider {
box-shadow: 0 0 12px var(--Light-color);
border: 1px solid var(--Light-color);
background-color: var(--Light-color);
}
input:checked+.slider:before,
.option input:checked+.slider:before {
background: var(--Dark-color) !important;
}
.range {
border: 1px solid var(--Light-color) !important;
color: var(--Light-color) !important;
background: var(--sec-Dark-color) !important;
border-radius: 10px !important;
}
input[type="range"] {
-webkit-appearance: none;
appearance: none;
width: 100%;
height: 10px;
background: transparent;
border-radius: 10px;
outline: none;
}
input[type="range"]::-webkit-slider-runnable-track {
width: 100%;
height: 10px;
background: var(--sec-Light-color);
border-radius: 5px;
}
input[type="range"]:focus::-webkit-slider-runnable-track,
input[type="range"]:hover::-webkit-slider-runnable-track {
background: var(--sec-Light-color);
}
input[type="range"]::-webkit-slider-thumb {
-webkit-appearance: none;
appearance: none;
width: 15px;
height: 25px;
border-radius: 10px;
background: var(--Light-color);
cursor: pointer;
}
input[type="range"]:focus::-webkit-slider-thumb,
input[type="range"]:hover::-webkit-slider-thumb {
background: var(--Light-color);
}
input[type="range"]:active::-webkit-slider-thumb {
background: var(--Light-color);
}
select {
appearance: none;
-webkit-appearance: none;
-moz-appearance: none;
padding: 10px;
font-size: 16px;
text-align: center;
border: 1px solid var(--Light-color) !important;
border-radius: 10px;
color: var(--Light-color) !important;
background: var(--Dark-color) !important;
cursor: pointer;
outline: none;
transition: 0.5s;
}
select::-ms-expand {
display: none;
}
select option {
padding: 10px;
}
select option:checked {
background-color: var(--Light-color);
color: var(--Dark-color);
}
select:hover,
select:focus {
box-shadow: 0 0 8px var(--Light-color);
}
input:disabled,
select:disabled {
opacity: 30%;
box-shadow: none !important;
transition: 0.5s;
}
#ECPKey,
#licenceKey,
.stats input,
input[type="number"],
.modal input[type="text"] {
background: var(--Dark-color) !important;
color: var(--Light-color) !important;
border: 1px solid var(--Light-color) !important;
border-radius: 10px !important;
text-shadow: none !important;
box-shadow: none;
outline: none !important;
transition: 0.5s !important;
}
.stats input:focus,
.stats input:hover,
#ECPKey:focus,
#ECPKey:hover,
#licenceKey:focus,
#licenceKey:hover,
input[type="number"]:focus,
input[type="number"]:hover,
.modal input[type="text"]:focus,
.modal input[type="text"]:hover {
box-shadow: 0 0 8px var(--Light-color);
}
input[type="color"] {
width: 40px !important;
height: 35px !important;
border: none !important;
border-radius: 10px !important;
outline: none !important;
cursor: pointer !important;
}
input[type="color"]::-webkit-color-swatch {
border: 1px solid var(--Light-color) !important;
border-radius: 10px !important;
}
input[type="color"]::-webkit-color-swatch-wrapper {
padding: 0 !important;
}
.stats small {
border: 1px solid var(--Light-color) !important;
background: var(--sec-Dark-color) !important;
}
#ECPKey {
text-shadow: 0 0 5px var(--Light-color);
}
hr {
border-color: transparent !important;
}
.title.frozenbg,
.ecpverifiedlogo.frozenbg,
.shippreview.frozenbg {
color: var(--Light-color) !important;
background: var(--sec-Dark-color) !important;
border: 1px solid var(--Light-color) !important;
border-radius: 10px !important;
box-shadow: none !important;
outline: none !important;
text-shadow: none !important;
}
#continue_btn,
#respawn_btn,
.stats,
#licenceKeyBtn,
.pricechoice span,
.buy-on.frozenbg,
.gmodes span,
.region.frozenbg,
.donate-btn,
.ecpinput.ecpbtn,
#viewEcp,
#removeEcp,
#removeEcpFake,
.modecp a,
#reset-crystals-color {
background: var(--sec-Dark-color) !important;
color: var(--Light-color) !important;
border: 1px solid var(--Light-color) !important;
border-radius: 10px !important;
transition: 0.5s !important;
box-shadow: none !important;
outline: none !important;
text-shadow: none !important;
}
#continue_btn:focus,
#respawn_btn:hover,
#continue_btn:hover,
#respawn_btn:hover,
#licenceKeyBtn:focus,
#licenceKeyBtn:hover,
.pricechoice .active,
.pricechoice span:focus,
.pricechoice span:hover,
.buy-on.frozenbg:focus,
.buy-on.frozenbg:hover,
.gmodes span:focus,
.gmodes span:hover,
.region.frozenbg.active,
.region.frozenbg:focus,
.region.frozenbg:hover,
.donate-btn:focus,
.donate-btn:hover,
.ecpinput.ecpbtn:hover,
#viewEcp:hover,
#removeEcp:hover,
#removeEcpFake:hover,
.modecp a:focus,
.modecp a:hover,
#reset-crystals-color:focus,
#reset-crystals-color:hover {
transform: scale(1.1) !important;
background: var(--Light-color) !important;
color: var(--Dark-color) !important;
box-shadow: 0 0 10px var(--Light-color) !important;
}
#refresh_btn {
background: rgba(60, 0, 0, 0.5) !important;
color: #FF0000 !important;
border: 1px solid #FF0000 !important;
border-radius: 10px !important;
transition: 0.5s !important;
box-shadow: none !important;
outline: none !important;
text-shadow: none !important;
}
#refresh_btn:focus,
#refresh_btn:hover {
transform: scale(1.1) !important;
background: #FF0000 !important;
color: rgba(60, 0, 0, 1) !important;
box-shadow: 0 0 10px #FF0000 !important;
}
.modal .modecp {
position: relative !important;
bottom: 0 !important;
left: 0 !important;
right: 0 !important;
background: transparent !important;
color: var(--Light-color);
}
.modal-header {
position: relative !important;
top: 0 !important;
left: 0 !important;
right: 0 !important;
background: transparent !important;
color: var(--Light-color);
}
thead {
background: var(--Dark-color) !important;
}
#ranks .rankings tbody tr:nth-child(odd) {
background: var(--sec-Dark-color);
}
th,
td {
border-color: var(--Light-color) !important;
}
.fa.fa-long-arrow-down {
color: #FF0000 !important;
text-shadow: 0 0 5px #FF0000 !important;
}
.fa.fa-long-arrow-up {
color: #00FF00 !important;
text-shadow: 0 0 5px #00FF00 !important;
}
.regions {
background: transparent !important;
border-bottom: 3px solid var(--Light-color) !important;
}
td img {
box-shadow: none !important;
border: 2px solid var(--Light-color) !important;
}
.download-apps a img {
border: none !important;
box-shadow: none !important;
transition: 0.5s !important;
border-radius: 12px !important;
}
.download-apps a img:focus,
.download-apps a img:hover {
transform: scale(1.1) !important;
}
tr:nth-child(1) .fa.fa-trophy {
color: gold !important;
}
tr:nth-child(2) .fa.fa-trophy {
color: silver !important;
}
tr:nth-child(3) .fa.fa-trophy {
color: #cd7f32 !important;
}
tr .fa.fa-trophy {
color: transparent;
}
#mappreview {
background: var(--Dark-color) !important;
border-radius: 10px !important;
border: none !important;
transition: 0.5s !important;
}
#overlay {
background: var(--Background-Dark-color);
}
.mouse-right,
.mouse-left,
.mouse-top {
border-color: var(--Dark-color) !important;
}
.kb-z,
.kb-ctrl,
.mouse-container {
background: var(--Light-color) !important;
color: var(--Dark-color) !important;
border: none !important;
}
.desktop table {
background: var(--Dark-color) !important;
color: var(--Light-color) !important;
}
.loaderprogress {
background: var(--Light-color) !important;
border-radius: 0 10px 10px 0 !important;
box-shadow: 0 0 10px var(--Light-color) !important;
text-shadow: none !important;
outline: none !important;
}
#content,
.textprogress,
#respawn {
color: var(--Light-color) !important;
text-shadow: 0 0 20px var(--Light-color) !important;
}
.gameloaderwrapper {
background: var(--Dark-color) !important;
border-radius: 10px !important;
border: 2px solid var(--Light-color);
box-shadow: 0 0 10px var(--Light-color) !important;
text-shadow: none !important;
overflow: hidden !important;
outline: none !important;
}
.statinfo {
border-bottom: 1px solid var(--Light-color);
}
.top-right {
background: transparent;
color: var(--Light-color) !important;
text-shadow: 0 0 15px var(--Light-color);
}
.acw-new:nth-child(2) img {
height: 38vh;
border: 1px solid var(--Light-color) !important;
border-radius: 12px;
box-shadow: 0 0 10px var(--Light-color) !important;
}
#calendar_event {
border-bottom: none !important;
}
#customEventable {
background: var(--sec-Dark-color);
border-radius: 12px;
border: 1px solid var(--Light-color);
color: var(--Light-color);
box-shadow: none;
transition: 0.5s;
}
#customEventable:focus,
#customEventable:hover {
box-shadow: 0 0 12px var(--Light-color);
}
`));
document.head.appendChild(styleItem);
function LN() {
const nickInput = document.querySelector('input[name="nick"]');
if (nickInput) {
nickInput.value = nickInput.value.toLowerCase();
nickInput.addEventListener('input', function() {
this.value = this.value.toLowerCase();
});
if (window._lowercaseInterval) {
clearInterval(window._lowercaseInterval);
}
window._lowercaseInterval = setInterval(() => {
if (nickInput.value !== nickInput.value.toLowerCase()) {
nickInput.value = nickInput.value.toLowerCase();
}
}, 50);
if (window._lowercaseElementCheckInterval) {
clearInterval(window._lowercaseElementCheckInterval);
}
} else {
if (!window._lowercaseElementCheckInterval) {
window._lowercaseElementCheckInterval = setTimeout(LN, 500);
}
}
}
LN();
})();