You can use Instance in tables and connect events to them and it’ll perform just fine. The only location where it won’t do anything is in modules as I remember. @Deadwoodx specifies that Table1 and Table2 are the same thing, which is not correct. Your variable Kills may be IntValue (an Instance), which you can connect your events to. But if you introduce a number to that table (say Kills.Value), it’ll cause errors, since it’s not an instance.
The best way to try these things is through trial and errors. The problem that the script wouldn’t run is because there were no players at the execution of the script, at which you need to connect an event when the player joins and do everything you need with him. Connect events, create folders, or everything else.
Yep, but it won’t matter to declare a variable to this connection, at it’ll remain valid until the server closes, and you don’t need to return anything in this function, you just need to do anything you want with the new player you received. There is a code above which I wrote that does this.
EDIT: Just try anything you can possible think of in Roblox Studio, the worst possible thing is a crash.
Some data may need tables, but in this case you save your data through an IntValue, which you can get later on. But connections are working only in Scripts, not Modules.