Metatable

Introduction
Metatables are commonly used to make a table act like something else. Say you wanted a table that had a number in it and you wanted all the math functions (sin, cos, abs, random) to be in it but didn't want the actual table to change. That's where metatables come in!

Userdatas, on the other hand, are basically either C objects hard-coded in Roblox to serve a purpose as a part, model etc, or lua-side soft-coded tables that have a mind of their own.

Metamethods
Metamethods are methods that are called when something tries doing something to a table. There are a good selection that enable easy table manipulation: