yorb

Banjo-Tooie Lua Randomizer

by kaptainkohl

This is a Lua script that is run through an emulator. It is not a ROM hack, it is a RAM hack.

I have no expertise in unpacking and repacking n64 roms so the only way I could make a randomizer was to do it through a RAM hack. This rando works by reading memory flags in the ram to see if you collect something and then give you something accordingly. Once the script is running, you will be able to enjoy a unique playthrough everytime!



Features

Ability randomizer.

To change the logic and pace of the playthrough, all moves given by Jamjars, all glowbos for Mumbo and Wumba, are randomized into jiggy locations around the world. This means all the game's silos and glowbos are gone, and the only way to get them is to pick up a jiggy! This means you might get late game moves early or early game moves very late, drastically changing how you have to play and progress through worlds.

Level Progression

Instead of just going straight to Hag 1 or having to collect 70 jiggies, all levels are open at the start. All you need are the moves that let you progress through Isle o' Hags and the 2 required for Hag 1, Breegull Blaster and Clockworks. This allows more options for abilities to be, and more paths the randomizer can take you!

Logic

Things in the randomizer are not entirely random, there is a logical path you can follow to beat the game. Every ability added checks to see if the seed is beatable so you do not have to worry. This logic is then displayed in a spoiler log that is made when you begin the rando, which you can view if you get stuck or finish the seed in order to see how the rando wants you to beat it. This Logic is writen as Glitchless, meaning the path is set having you need all the intended moves to get everything.

Boss Attack

So since all levels are open, all you need are a few moves and you can beat it right? This is like a 50 minute  rando, that's lame. Well, you are right about that, you could potentially get a real fast seed because of it. So to give more variation and more goals that need to be done, you must complete a set amount of bosses to beat a seed. The bosses required are random, and once you get the moves for them and beat them all, you will be rewarded with Clockwork Kazooie Eggs. Why Clockworks? Clockworks very much break the logic of the game even casually, so to prevent logic breaks and force you to use more of the other moves clockworks were chosen. So bea the required amount of bosses and you will gain access to Hag 1 to beat her.

Quality of Life

Quite a few flags are set right as you start, such as silos for wooded hollow and plateau. This allows you to have access to more things right away, giving more options. Along with that, the fire egg gate is also open allowing WitchyWorld access also! Along with more access, many first time texts are also flagged so you will not get interrupted as you are playing! Finally the biggest one is that both warp pads are in Cauldron Keep so you can skip Klungo 3 and Tower of Tragedy!

Hints

Moves can be hidden behind other moves, and those then hide other moves. Sometimes it can be hard to find specifc things you are looking for! Luckly there is a hint system that will give you some direction through the logical flow of the seed. Hints are given to a player if they read a Signpost. It will give a specific hint for that signpost, so if you want more you need to find other signs! There are hints for 3 of the main items that are hard required for the seed, along with some guiding hints that give locations where abilites from Jamjars are located that are needed to beat the seed. Some Jiggies are just hinted directly, since they can be super long to perform like Scrotty Jiggy.

More Options!

There are lots more options that are selectable to allow you to add or take away extra features in your rando. There are more to come, but here are the few you can select currently:

How to Use

On Generate, a Spoiler log will be created and saved in the same folder as the LUA Script. You can look at this to seed where items are and how the logical progression occurs.

If the script crashes, do not worry, just re open it and select the same settings and you can continue where you left off!

Download

Alpha Builds might not be stable or might have logic errors, Just report the error and it can be fixed.
GitHub Page with Releases



Change Log

Alpha Version 0.4
-- Added Jinjo Randomization as a Toggle
-- Changed how singposts interact
Alpha Version 0.3
-- Revamped Goal logic to make future rando options easier to implement
-- Fixed some sphere generation issues (still not at 100% correct though)
Alpha Version 0.2
-- Fixed Rewards and some goal logic



Discord

You can discuss any rando things here in Yorb's Discord



Credits

Isotarge and authors of bt.lua ScriptHawk module for flags and memory addresses, along with some ram methods. Hyperresonance for planning ideas. MumboToken for motivation to build the script with his Spreadsheet Rando.