I'm not very good at explaining things, but here we go.
First, I'll give some examples
03 | function Hello(arg 1 , arg 2 ) |
05 | arg 2. CanCollide = false |
08 | o = math.floor( 0.6666666666666666666 ) |
10 | Hello( "HELLO WORLD!" , game.Workspace.Part) |
This is a script with three examples.
First one, math.random(). The arguments are inside the parenthesis, what this means is the script doesn't exactly know what to do until it "settles" an argument. In fun terms, lets say you put in math.random(num1, num2), what this is doing is it is asking for a random number from num1 to num2, let's say those numbers are 3 and 15. However, the computer isn't exactly sure what you mean yet, so it argues with itself until you give it the arguments. If there are none, then the computer is practically stuck and returns an error.
Second one, function Hello(arg1, arg2). This time, the arguments are necessary, they are optional, but very handy. If you fire the function using the right values, it can be run easily. When I used
Hello("HELLO WORLD!", game.Workspace.Part), it made the first argument "HELLO WORLD!", a string so that the function could print that text to the output, and the second argument was an object, game.Workspace.Part, so the function could make the part Non Collide-able.
Third example is basically like math.random(), except it only has a single argument which can ONLY be a number.
Was that a good explanation?