I only discovered this today. What is ModuleScript and what can it do?
A module script is a script that can be used by other scripts using the require() function. When the module script is require()d, whatever the module script returns at the end can be stored in the script that require()s it. An example:
--ModuleScript (for simplicity, named ModuleScript, in Workspace) local stuff = {} stuff.value = 5 return stuff
--Main Script local stuff = require(game.Workspace.ModuleScript) print(stuff.value) --> 5
Like bindable functions, they're useful for sharing functionality between scripts, like if you had a set of functions a bunch of scripts used, you could put them in a module script instead of copy-pasting the function to every script.