999 Ring Challenge

999 Ring Challenge v1.1

What permissions do you give others to modify and/or maintain your submission?
Modify: ASK ME - Maintain: IN MY ABSENCE - Others must ask me for permission before modifying my submission or use it in their own work, and I reserve the right to say no for any reason. However, if I can no longer be contacted, I give permission for my entire submission to be maintained by others.
I made sure my file(s) follow the Submissions Guidelines
  1. Yes
I named my file(s) correctly (see Filename Conventions)
  1. Yes
Welcome to the
999
RING CHALLENGE

OVERVIEW​

If you've seen the similarly-named challenge in Alistair's Magic Box, you know what this is.
  • Gather 999 Rings through all of the game's levels to win! Your count is preserved between them, so you can keep track of your progress in the in-game HUD.
  • Levels are never in the same order by default. You never know just what you'll get, but if you REALLY don't like where you were taken...
  • You can warp out at any Star Post or Emerald Token! Star Posts will give you the familiar circlets from Sonic 2.
  • Don't worry too much about getting hit, as any Rings you have at a warp are stored in the Ring Bank! Still worry, though, as it WILL deplete in batches with each hit.
  • Featuring a unique HUD and menu system to help you through the process, and a handy-dandy end-of-run tally to share your run with your friends quickly!
  • For speedrunners, there's a constant total run time displayed at the bottom of the screen. Have fun, aim for the best time!
  • Speaking of speedrunners, this has been tested and verified to work on v2.2.13 (just barely) by Scottish Sonic Speedrunner Extraordinaire Argick! See the vod here.
    The recommended version is still v2.2.15. v2.2.14 should still work flawlessly, just with a different Pipe Towers.

COMPATIBILITY STUFF​

Here's a small list of things this mod is not compatible with:
  • The game's built-in multiplayer modes. Even Splitscreen. Due to level swap shenanigans, of course.
  • Boss stages, for the same reason Alistair's version skips them.
  • NiGHTS... or any Special Stage, really. Tough cookie, that.
  • Save file data WILL be corrupted if you enter the Challenge with one. Soooo don't do that.
Here's an equally sized list of things it IS compatible with:
  • Characters other than Sonic! Feel free to choose whomever - even the Sonic & Tails combo is good!
  • Custom stages! You'll have to add them to the Level Whitelist yourself, though.
  • Infinite lives means a Ring bonus for extra lives in this game! Toggleable, of course.
  • Full customization via the in-game menu and commands! See below.

MENU AND CONSOLE STUFF​

Type 999_MENU into the game's console to boot up the dedicated menu for the Challenge. Feel free to look around yourself - as everything's explained there - but here's a spoiler tag explaining it anyway:
  • The number at the top (Command: 999_RINGREQ) <1-9999> - How many Rings are needed to win. Press Jump to enter the value manually!

  • Start (Command: 999_START) - Start the Challenge!
  • How to Play - Read through the instructions! Remind yourself of the goal, etc.

  • Level Order (Command: 999_LEVELORDER) <ORDER/RANDOM> - Whether or not to randomize the levels on each warp. "Order" means it'll throw levels at you in the same order as they are in the Whitelist; see 999_WHITELIST.
  • Star Post Warps (Command: 999_STARPOSTWARPS) <ON/OFF> - Whether or not Warp Rings - the star circlets - will appear at Star Posts and allow you to warp out to the next level.
  • Death Warps (Command: 999_DEATHWARPS) <ON/OFF> - Whether or not dying will warp you to the next level. If it doesn't, that counts as a hit (but will NEVER deplete the Ring Bank).
  • Emerald Tokens (Command: 999_TOKENBEHAVIOR) <OFF/WARP/RINGS> - What Emerald Tokens will do on pick-up. If set to "Rings", they will award 50 Rings.
  • Extra Life Gives Rings (Command: 999_1UPRINGS) <ON/OFF> - Whether or not circumstances that would usually award an Extra Life (usually the Monitor) will award 100 Rings.
  • Ring Bank (Command: 999_BANK) <????????/OFF/ON/PERMANENT> - Whether or not the Ring Bank will be available in the Challenge.
  • Ring Bank Visual Theme (Command: 999_BANKTHEME) <DEFAULT/ABRIDGED> - Purely visual, how the Ring Bank will be displayed in the HUD. "Abridged" makes it look like it's part of the usual SRB2 HUD.

  • (NEW in v1.1) Save Preset: Save your current configuration as a preset into your luafiles folder. This is executable as a normal .CFG file after loading the add-on (so use the exec command or Add-ons menu!).

Console-exclusive things
  • 999_ABORT - Stop a currently ongoing 999 Ring Challenge early. No results will be shown.
  • 999_WHITELIST- Check or modify the Level Whitelist.
    • Just typing it alone will display the current state of the Whitelist. Use your PgUp/PgDn keys to scroll through it. It will also explain all of the below:
    • Pass ADD as the first argument to add the remaining arguments as entries. Pass REMOVE to remove the remaining arguments instead.
      Both of these take the same keywords as the in-game MAP command - so "greenflower", "greenf" and "gfz1" will all be converted to Greenflower Zone Act 1.
    • Pass DEFAULT as the argument to reset the whitelist to its original state for vanilla SRB2 (that being all main non-boss levels, Frozen Hillside, Pipe Towers and Forest Fortress).
    • Pass CLEAR as the argument to entirely clear the Whitelist. Make sure to add something to it, or the game won't allow you to start the Challenge.


MODDING SUPPORT!?​

Yep
Functions:
  • Nines_WarpToNextLevel()- Warp the player to the next level, accounting for the Level Order.
    • No arguments.
    • Make sure a run is actually in progress first! (See below)
  • Nines_BuildCurPresetName() - Returns the current configuration as a string. These tend to be a mouthful if a lot of settings are off their defaults - be ready for word salads like "999 Ring Challenge Perma-Bank Ordered No Starpost Warps No 1up Reward No Tokens".
Variables:
  • Nines_InProgress - number - Whether or not a run is in progress.
    • 0 = free gameplay
    • 1 = run in progress
    • 2 = run finished; player is viewing run end tally
  • Nines_RunTimer- number - The current run timer, in tics.
    • Use the in-game G_TicsTo... functions to convert this to seconds, etc.
  • Nines_RunEnd - number - Ticker for the run end tally.
  • Nines_LevelWhitelist- table - The current Level Whitelist.
    • Each value is a string, usually a level's corresponding keyword.
    • This value is NOT used in gameplay to determine which maps have been visited. I might expose that, but not right now. However, it IS used to reset the Whitelist once the list of maps has been exhausted, as well as if the Level Order is set to Whitelist Order.
The rest correspond to options in the menu:
  • Nines_RandomLevels- boolean - Level Order
    • true = Random
    • false = Whitelist Order
  • Nines_RingRequirement - number - Ring Requirement
  • Nines_StarpostWarps - boolean - Star Post Warps
  • Nines_DeathWarps - boolean - Death Warps
  • Nines_1upRings - boolean - Extra Life Rewards Rings
  • Nines_TokenBehavior- number - Emerald Tokens
    • 0 = Do Nothing
    • 1 = Warp
    • 2 = Give 50 Rings
  • Nines_BankBehavior- number - Ring Bank
    • 0 = Off
    • 1 = On; can deplete
    • 2 = On; permanent
    • -1 = Iron Ring mode
To make this blend in a little better with your custom HUD, you can replace the title graphic in the menu and tally screens by adding yours under the name M_RCTITL (M_IRTITL for the Iron Ring variant).
Additionally, the Abridged Bank theme allows you to change the in-game BANK text graphic. This one is named STTBANKA (STTIRONA for the Iron Ring variant).

I give full permission to use the aforementioned graphics from the file itself as a base, too! Because I'm certain people will be asking about that for HUD add-ons that just edit the base graphics to e.g. make them all shiny ^.^"
I might also try to find a way to allow for custom Bank themes in the future, but I'm not feeling up to it right now.


SPECIAL THANKS​

I just want to highlight these names again:
  • Alistair Aitcheson - Original challenge for the Magic Box
  • Argick - Playtesting! Seriously, I'm so glad I got Arg to play this. Especially because he's also the inspiration for a certain extra mode.
  • And you - for considering downloading this in the first place! I hope you have as much of a blast tearing this Challenge apart as I had putting it together.
  • Cool!
Reactions: kriby
Author
CloneFighter
Downloads
76
Views
329
Extension type
pk3
File size
32.3 KB
MD5 Hash
961dfe48a690ad5254a95ac061436e44
First release
Last update

More resources from CloneFighter

Share this resource

Latest updates

  1. v1.1 ~ Release, Proper

    I decided to work on this a little more between submission and release time, to bring y'all a...
Back
Top