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"!
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! Y
ou'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...