ModuleScripts allow you to reuse code written in them and are extremely useful if you need to do something such as call a function more than once but you don’t want to have to write it out each time. They usually return a table with functions inside but there are other use cases too. They are very useful when developing games as they allow code to be run again and again, across different scripts. They prevent you from having to write the same code over and over, and allow you to call functions as many times as you want, either from one script or from multiple scripts in the game.
Multiple people helped, thanks to all. I will just mark the one that helped the most.