--reminder that this is reusable so you can mess with it or add it in your mods! just, avoid copypasting the whole script, and please, give credits, i spent time on this :P freeslot( "SKINCOLOR_SUPER_CYPER_1", "SKINCOLOR_SUPER_CYPER_2", "SKINCOLOR_SUPER_CYPER_3", "SKINCOLOR_SUPER_CYPER_4", "SKINCOLOR_SUPER_CYPER_5", "SKINCOLOR_SUPER_CYPER_6", "SKINCOLOR_SUPER_CYPER_7", "SKINCOLOR_SUPERJOEMAMA", "SKINCOLOR_SILVERSUPER", "SKINCOLOR_SUPER_DYPER_1", "SKINCOLOR_SUPER_DYPER_2", "SKINCOLOR_SUPER_DYPER_3", "SKINCOLOR_SUPER_DYPER_4", "SKINCOLOR_SUPER_DYPER_5", "SKINCOLOR_HYOUP" ) skincolors[SKINCOLOR_SUPER_DYPER_1] = { name = "Super BYPER 1", ramp = {0,1,252,208,208,200,209,209,210,210,32,33,34,34,35,35 }, invcolor = SKINCOLOR_ORANGE, invshade = 9, chatcolor = V_BLUEMAP, accessible = false } skincolors[SKINCOLOR_SUPER_DYPER_2] = { name = "Super BYPER 2", ramp = {0,0,1,144,144,128,128,128,129,129,130,132,133,134,134,135 }, invcolor = SKINCOLOR_ORANGE, invshade = 9, chatcolor = V_BLUEMAP, accessible = false } skincolors[SKINCOLOR_SUPER_DYPER_3] = { name = "Super BYPER 3", ramp = {0,0,1,80,80,80,80,81,81,82,83,72,72,72,74,73 }, invcolor = SKINCOLOR_ORANGE, invshade = 9, chatcolor = V_BLUEMAP, accessible = false } skincolors[SKINCOLOR_SUPER_DYPER_4] = { name = "Super BYPER 4", ramp = {0,1,2,88,88,89,89,89,96,96,97,98,99,100,113,113 }, invcolor = SKINCOLOR_ORANGE, invshade = 9, chatcolor = V_BLUEMAP, accessible = false } skincolors[SKINCOLOR_SUPER_DYPER_5] = { name = "Super BYPER 5", ramp = {0,1,252,252,176,176,177,177,177,178,178,178,179,179,182,183 }, invcolor = SKINCOLOR_ORANGE, invshade = 9, chatcolor = V_BLUEMAP, accessible = false } --thanks a lot to clone fighter on the srb2 os for helping (making the script for me) out! local colorTabl = { -- Insert your colors here. Make sure to loop it properly. SKINCOLOR_SUPER_DYPER_1, SKINCOLOR_SUPER_DYPER_2, SKINCOLOR_SUPER_DYPER_3, SKINCOLOR_SUPER_DYPER_4, SKINCOLOR_SUPER_DYPER_5 -- The last one doesn't need a comma. In fact, putting a comma here would break it. } local itr = 1 addHook("ThinkFrame", do -- ThinkFrame hok, so it runs on every leveltime frame regardless of where you are if leveltime % 4 == 0 then -- This is your period. Modify the number after the % symbol to change the value of tics it takes for a color to last. itr = $+1 -- Add one if itr > #colorTabl then -- Has it overflown? itr = 1 -- Loop back to 1 end end -- Time to change the ramplayer skincolors[SKINCOLOR_HYOUP].ramp = skincolors[colorTabl[itr]].ramp end) skincolors[SKINCOLOR_SILVERSUPER] = { name = "Super_Silver", ramp = {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, invcolor = SKINCOLOR_BLUE, invshade = 6, chatcolor = V_YELLOWMAP, accessible = true } addHook("ThinkFrame", do skincolors[SKINCOLOR_SILVERSUPER].ramp = skincolors[SKINCOLOR_SUPERSILVER1 + abs( ( (leveltime >> 1) % 9) - 4)].ramp end) skincolors[SKINCOLOR_SUPER_CYPER_1] = { name = "Super BYPER 1", ramp = {0,2,88,89,96,98,99,99,100,101,102,115,115,116,116,117 }, invcolor = SKINCOLOR_ORANGE, invshade = 9, chatcolor = V_BLUEMAP, accessible = true } skincolors[SKINCOLOR_SUPER_CYPER_2] = { name = "Super BYPER 2", ramp = {0,144,144,160,160,161,147,162,162,163,163,164,165,165,171,8 }, invcolor = SKINCOLOR_ORANGE, invshade = 9, chatcolor = V_BLUEMAP, accessible = true } skincolors[SKINCOLOR_SUPER_CYPER_3] = { name = "Super BYPER 3", ramp = {0,80,81,82,72,72,73,73,74,74,75,75,75,76,76,77 }, invcolor = SKINCOLOR_ORANGE, invshade = 9, chatcolor = V_BLUEMAP, accessible = true } skincolors[SKINCOLOR_SUPER_CYPER_4] = { name = "Super BYPER 4", ramp = {0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8 }, invcolor = SKINCOLOR_ORANGE, invshade = 9, chatcolor = V_BLUEMAP, accessible = true } skincolors[SKINCOLOR_SUPER_CYPER_5] = { name = "Super BYPER 5", ramp = {128,128,128,129,129,129,129,145,146,146,170,170,171,172,172,173 }, invcolor = SKINCOLOR_ORANGE, invshade = 9, chatcolor = V_BLUEMAP, accessible = true } skincolors[SKINCOLOR_SUPER_CYPER_6] = { name = "Super BYPER 6", ramp = {0,252,176,177,177,178,179,180,180,181,181,182,183,185,186,198 }, invcolor = SKINCOLOR_ORANGE, invshade = 9, chatcolor = V_BLUEMAP, accessible = true } skincolors[SKINCOLOR_SUPER_CYPER_7] = { name = "Super BYPER 7", ramp = {0,252,208,209,209,210,32,32,33,34,34,34,35,35,41,198 }, invcolor = SKINCOLOR_ORANGE, invshade = 9, chatcolor = V_BLUEMAP, accessible = true } --thanks a lot to clone fighter on the srb2 os for helping (making the script for me) out! local colorTable = { -- Insert your colors here. Make sure to loop it properly. SKINCOLOR_SUPER_CYPER_1, SKINCOLOR_SUPER_CYPER_2, SKINCOLOR_SUPER_CYPER_3, SKINCOLOR_SUPER_CYPER_4, SKINCOLOR_SUPER_CYPER_5, SKINCOLOR_SUPER_CYPER_6, SKINCOLOR_SUPER_CYPER_7 -- The last one doesn't need a comma. In fact, putting a comma here would break it. } local iter = 1 addHook("ThinkFrame", do -- ThinkFrame hok, so it runs on every leveltime frame regardless of where you are if leveltime % 3 == 0 then -- This is your period. Modify the number after the % symbol to change the value of tics it takes for a color to last. iter = $+1 -- Add one if iter > #colorTable then -- Has it overflown? iter = 1 -- Loop back to 1 end end -- Time to change the ramplayer skincolors[SKINCOLOR_SUPERJOEMAMA].ramp = skincolors[colorTable[iter]].ramp end) -- local function flashyes(player) if player.mo player.mo.flashing = true end end COM_AddCommand("flashon", flashyes) local function noflash(player) if player.mo player.mo.flashing = false end end COM_AddCommand("flashoff", noflash) local acolor = SKINCOLOR_SUPERJOEMAMA local bcolor = SKINCOLOR_SILVERSUPER --thanks a lot to golden on the srb2 os for helping me out here addHook("PlayerThink", function(player) if player.mo.flashing == false acolor = SKINCOLOR_SUPERJOEMAMA bcolor = SKINCOLOR_WHITE player.mo.flashing = false end if player.mo.flashing == true bcolor = SKINCOLOR_HYOUP acolor = SKINCOLOR_SILVERSUPER player.mo.flashing = true end if player.mo.flashing == nil player.mo.flashing = false end end) -- addHook("PostThinkFrame", function() for player in players.iterate if player.mo.flashing == false and player.customsuper == true local ghost = P_SpawnGhostMobj(player.mo) ghost.colorized = false ghost.fuse = 1 P_TeleportMove(ghost, player.mo.x, player.mo.y, player.mo.z) ghost.frame = $|FF_TRANS30 ghost.color = SKINCOLOR_HYOUP if ghost.tracer ghost.tracer.fuse = ghost.fuse end end end end) addHook("PlayerSpawn", function(player) if player.mo player.customsuper = false COM_BufInsertText(player, 'bind 9 "flashon"') COM_BufInsertText(player, 'bind 0 "flashoff"') end end) addHook("JumpSpinSpecial", function(player) if player.mo.skin == "adventuresonic" then return end--go unlock it you bozo if player.mo and player.customsuper == false and (player.rings > 100) and player.powers[pw_super] player.mo.state = S_PLAY_SUPER_TRANS1 S_StartSound(player.mo, sfx_kc47) S_StartSound(player.mo, sfx_supert) P_NukeEnemies(player.mo, player.mo, 1)P_NukeEnemies(player.mo, player.mo, 1) P_StartQuake(20*FRACUNIT, 4) player.customsuper = true end end) addHook("PlayerThink", function(player) if player.mo and player.customsuper == true local pablo = P_SpawnMobjFromMobj(player.realmo, P_RandomRange(-20, 20) * FRACUNIT, P_RandomRange(-20, 20) * FRACUNIT, P_RandomRange(0, 50) * FRACUNIT, MT_WATERZAP) pablo.color = bcolor pablo.colorized = true local treil3 = P_SpawnMobjFromMobj(player.realmo, P_RandomRange(-20, 20) * FRACUNIT, P_RandomRange(-20, 20) * FRACUNIT, P_RandomRange(0, 50) * FRACUNIT, MT_FIREBALLTRAIL) treil3.color = acolor treil3.colorized = true treil3.scale = 1*FRACUNIT/4 treil3.destscale = 1*FRACUNIT/6 treil3.momz = 2*FRACUNIT treil3.frame = $|FF_FULLBRIGHT|FF_ADD|FF_TRANS30 local treil4 = P_SpawnMobjFromMobj(player.realmo, P_RandomRange(-20, 20) * FRACUNIT, P_RandomRange(-20, 20) * FRACUNIT, P_RandomRange(0, 50) * FRACUNIT, MT_PUMATRAIL) treil4.color = bcolor treil4.colorized = true treil4.scale = 1*FRACUNIT/4 treil4.destscale = 1*FRACUNIT/6 treil4.momz = 2*FRACUNIT treil4.frame = $|FF_FULLBRIGHT|FF_ADD|FF_TRANS30 --S_SetMusicPosition(S_GetMusicPosition()+1/2) player.jumpfactor = skins[player.realmo.skin].jumpfactor + skins[player.realmo.skin].jumpfactor /4 player.normalspeed = skins[player.realmo.skin].normalspeed + skins[player.realmo.skin].normalspeed /3 player.acceleration = skins[player.realmo.skin].acceleration + skins[player.realmo.skin].acceleration/4 player.actionspd = skins[player.realmo.skin].actionspd + skins[player.realmo.skin].actionspd/2 player.mo.color = bcolor end if (player.rings == 0) and (player.customsuper == true or (player.pflags & PF_FINISHED) or not player.powers[pw_super]) player.customsuper = false end if player.customsuper == false player.jumpfactor = skins[player.realmo.skin].jumpfactor player.normalspeed = skins[player.realmo.skin].normalspeed player.acceleration = skins[player.realmo.skin].acceleration player.actionspd = skins[player.realmo.skin].actionspd end end) addHook("AbilitySpecial", function(player) if (player.mo.skin == "sonic" or player.mo.skin == "metalsonic") and player.customsuper == true and not (player.pflags & PF_THOKKED) P_NukeEnemies(player.mo, player.mo, 1000*FRACUNIT) S_StartSound(player.mo, sfx_zoom) P_SetObjectMomZ(player.mo, 3*FRACUNIT) P_InstaThrust(player.mo, player.mo.angle, 70*FRACUNIT) player.pflags = $|PF_THOKKED end end) addHook("JumpSpinSpecial", function(player) if (player.mo.skin == "sonic" or player.mo.skin == "metalsonic") and player.customsuper == true and not (player.pflags & PF_THOKKED) and (player.cmd.buttons & BT_JUMP) P_NukeEnemies(player.mo, player.mo, 1000*FRACUNIT) S_StartSound(player.mo, sfx_zoom) P_SetObjectMomZ(player.mo, 30*FRACUNIT) player.pflags = $|PF_THOKKED player.mo.state = S_PLAY_SPRING end end) addHook("PlayerThink", function(player) if player.mo and player.customsuper == false and player.powers[pw_super] and player.mo.skin == "modernsonic" and (player.cmd.buttons & BT_CUSTOM2) P_TeleportMove(player.mo, player.mo.x, player.mo.y, player.mo.z+90*FRACUNIT) player.mo.state = S_PLAY_SUPER_TRANS1 S_StartSound(player.mo, sfx_kc47) P_NukeEnemies(player.mo, player.mo, 2000*FRACUNIT) P_StartQuake(20*FRACUNIT, 30) player.customsuper = true end if player.powers[pw_super] player.supsup = true end if not player.powers[pw_super] and player.supsup == true player.mo.color = skins[player.realmo.skin].prefcolor player.supsup = false end end) addHook("PlayerThink", function(player) if player.mo and player.customsuper == true and player.powers[pw_super] and not player.mo.skin == "metalsonic" and player.mo.state == S_PLAY_SUPER_TRANS5 local ghost = P_SpawnGhostMobj(player.mo) ghost.destscale = 2*FRACUNIT ghost.colorized = true ghost.frame = $|FF_ADD end if player.mo and player.customsuper == true and player.powers[pw_super] and player.mo.skin == "metalsonic" and player.mo.state == S_PLAY_SUPER_TRANS5 local ghost = P_SpawnGhostMobj(player.mo) ghost.destscale = 4*FRACUNIT ghost.colorized = true ghost.frame = $|FF_ADD ghost.color = SKINCOLOR_YELLOW end end)