when using a ModuleScript, you have to define where the function will be, so if you want it to be part of the table, you say table.modulefunction instead of just modulefunction, because when the you are requiring the ModuleScript, it is returning the table that was inside the ModuleScript, hence the return module at the bottom of every ModuleScript, if its not defined in this table, it wont be sent to the Script.
There are two operators you can use. A Period . and a Colon :
Despite them doing the exact same thing to add the function to the table, they have completely different purposes, and involve what is known as OOP, Object Oriented Programming.