I Suck At High Voltage Ring

scopica

"Time to rev the engine!"
I'm sure I can figure out the rest of the game's features with enough trial and error, but when it comes to playtesting, I physically cannot. I either get "bad level name warp" when using the default WADNAME, or "map cannot be remotely found" for any other map name.

Someone in another discord said I need a level header and whatnot, but I'm not sure where to find anything relating to those are.
 
You need an editor like SLADE to add a level header via SOC (Sonic Object Configuration). If you want the full details on what a level header is, this is a link to the wiki page, but as for Ring Racers specifically...

After you download SLADE, open it up and make a New Archive. Then, go to Archive > New Directory, and name that directory/folder "SOC". Then, go to Archive > New Entry, name it whatever you want your Headers name to be (I just use "SOC_Headers") and make its Type "Text". From here, edit the file and put in its header. I don't think there is a list of all the level header stuff outside of maybe the Discord or something, but a quick way to learn is to, in your Ring Racers folder, go Data > maps.pk3 (Open in SLADE) > SOC > HEADERS_[Whatever you wanna look at]. If you cant see anything, remember to click "View as Text"!

1721522136698.png


I'll show you one of mine!

Level DR_NGHZ
LevelName = Neo Green Hill
NoVisitNeeded = True
TypeOfLevel = Race
NumLaps = 3
Music = NGHZ
PositionMusic = ADVCSL
SkyTexture = EOSKYBG
MobjScale = FRACUNIT/4
SkyboxScaleX = 32
SkyboxScaleY = 32
SkyboxScaleZ = 64
Followers = Flicky,Red Flicky,Pink Flicky,Green Flicky

Level should be your wad's name. Don't use the "RR_" prefix, those are for official maps only! Anything else is fine! NoVisitNeeded is so it can be picked in level selection without needing to visit it in a cup first, so keep that on or else people can't see it! LevelName/TypeOfLevel/NumLaps/Skytexture are all self explanatory, and Music is the filename of the music track you want to play, minus the prefix. You can replace the Position timer music too, but leave it out to use the default track. Skybox scale is actually for determining how much the skybox moves (if you use one), and Followers are what appear when an Egg Prison is opened, which you probably wont need for a race, but you will need them for Battle maps.

Mobjscale is pretty important though! Most maps in the game use Mobjscale to shrink all sprite-based objects down, including players. SRB2 can't handle rendering maps that are too large, but Ring Racers uses Mobjscale to allow for much larger open maps without slowing the engine down. FRACUNIT is the normal size of the object, so "FRACUNIT/4" means you're 1/4th of your size! Most maps use FRACUNIT/4 by default, so if you don't know what to do, just use that! You'll be very thankful you did.

There's a LOT more level header entries, but like I said, I don't know of a full list, so poke around the official level headers to learn about stuff like Weather and Directional Lighting. There's plenty of options!

For now, save your archive, and where it says "Save as type", pick PK3. Then, in High Voltage Ring, as you are opening your map, or pressing F2 when its loaded, go Add Resource > PK3 > [Your Archive's Name]. Now, when you test your map, it should be loaded with a level header and be properly usable!

But while this is good for testing, its not really something you can share yet, so you'll need to add your map to the archive. To do that, open your archive in SLADE, then go Archive > New Directory, and name it Maps. Place your map wad inside, and now you can play it with just one easily sharable file! Keep your map wad around though, as HVR cant open maps in PK3s. If you playtest with this arcive, HVR will replace the archive's copy of the map with the one you're playtesting with, so you only need to replace the map in the archive whenever you need to share it.

You don't need a cup for your level to be seen; You can use this to playtest right away, and ingame it'll be in the Lost and Found section of the level select and turn up in map voting. But, if you're planning on making a Cup in the future, you can either make a new entry, or go into your level headers, and add a cup like this!

Cup DR_Coconut_Cup
Realname = Coconut
Icon = CUP_DRCC
LevelList = DR_3CD,DR_NGHZ,DR_GALF,DR_MMMM,
BonusGame = DR_CHAORUINS,DR_SHOPPE
SpecialStage = RR_SealedStarBalconies
Monitor = X

Like with filenames, dont use RR_ for a prefix, but otherwise, call it whatever you like. Realname is what displays in game (the word Cup is always added), and then put in the list of your Race maps for the Level List section, and your battle maps in the Bonus Game section. You can make your own special stage too, but the SpecialStage entry can actually load any map you wanted, so if you wanted to get a little creative...

...Anyway, I think that's everything you need to know, at least for now! Maybe I should polish this into a full guide for the forum...
 
1.png

Asssuming this is fine, gonna take a deep dive into this.
There is nowhere to go but up from here.
Post automatically merged:

Alright, cool! I've got the bare essentials to work. The only problem is that when I try to put in a fence/arrow indicator (that isn't Lost Colony's), I get this error.
2.png

Post automatically merged:

...Anyway, I think that's everything you need to know, at least for now! Maybe I should polish this into a full guide for the forum...
Also, if you ever do get around to making a guide, maybe you can also cover underwater sections, as that's also a bit complicated to figure out.
 
Last edited:
Those are not meant for walls, those are meant as midtextures. Fences and grass edges are also made with this!

Make a linedef and give it a midtexture like you would a wall texture. Then, on the Properties tab, click Peg Midtexture to make it start from the ground (otherwise, it'll start from the ceiling), and if you want players to be blocked by it, click Solid Midtexture. In order to make an arrow face the way you want, remember that the front of the linedef is the side with the stick coming out of it, so if you wanted an arrow pointing left, the front side needs a left arrow, and optionally, the back side would have a right arrow.

1721579602161.png
1721579629348.png
 
Alright, I think I've got all the... you know, basics figured out. (after this video I added a shortcut tripwire, and i'm in the midst of figuring out the starting line positioning/beam/fault thingy)
Here's progress.
 
This could be helpful for me too, I'm trying to understand this too so I can make tracks myself for my characters. I've done some digging myself in the official stuff themself as well to see what I need. Wonder if the link'll answer some of my nagging questions like what does Darkness do, or the Palette variable. I did see some notable differences for Weather though:
1PRECIP_RAIN
2PRECIP_SNOW
3PRECIP_BLIZZARDHeavy Snowfall
4PRECIP_STORM
5PRECIP_STORM_NORAIN
6PRECIP_STORM_NOSTRIKE
7PRECIP_POLLENPollen doesn't appear until you move
8PRECIP_MONSOONStorm Rig's rain without the Thunder
9PRECIP_STORMRIGLight Rain with Thunder
10PRECIP_CONFETTI
11PRECIP_CONFETTIBIGFloating Confetti, wonder what it's for.
12PRECIP_HGPBFalling Pink Petals
13PRECIP_LSPTFalling Lavender Petals
14PRECIP_NDZLight Rain
15PRECIP_EMBERS
16PRECIP_SUNDAEDRIVEGentle Snowfall
17PRECIP_FIREFLIES
18PRECIP_ELECTRICITYSmall sparks appear in the sky
19PRECIP_SPARKLES

Found CONFETTIBIG and EMBERS in the WEATHER file under maps.pk3. The other two, STORM_NORAIN and STORM_NOSTRIKE was from the link, so thanks.

The Numbering, I took a Copy of Robotnik Coaster, made 16 copies then added "Weather = n" to them to see how the number order works. Leading to this table. (I ended up with 20 with 20 doing nothing).
 
Last edited:
Never mind, got it to work! Under the converted picture preview, just select Sonic Robo Blast 2. (not legacy)
upload.jpg
 
I return, with everyone's arch nemsis, SIGSEGV. Pretty sure I'm using the same methods as my first map, so not really sure where I'm going wrong here. Also attaching the map (literally just a straight line so far) just in case.
hatred.png
newmap.png
 
I return, with everyone's arch nemsis, SIGSEGV. Pretty sure I'm using the same methods as my first map, so not really sure where I'm going wrong here. Also attaching the map (literally just a straight line so far) just in case.
View attachment 146128View attachment 146129
This happens when you try to load a map with only one sector. I have no idea why, but we just can't make a map with only one sector. This also happens on SRB2 and Kart, not just Ring Racers.
 
Back
Top