You don't really need a struct here; I just like to group my module functions by naming them "Module.Command()", and you need to make them struct members for that.
You can do this instead:
// header
import void DoSomething(int param); // make function accessible by other scripts
// main module script
void DoSomething(int param) {
Display("The parameter is: %d", param);
}
The * is needed because instead of a datatype like int or String which holds a discrete value like 5 or "Hello", I'm declaring a so-called pointer, a variable pointing to a script object (in this case a GUIButton).
I started counting at 2 as an example; ID's 0 and 1 could've been used by a label and a close-gui button for instance.
You can see the ID of the GUI elements in the dropdown menu where you can select them in order to edit them.
Also, computers usually start counting at 0, not 1. Whenever you're creating a GUI with several similar GUIControls (save slots, telephone keys, etc.) you should plan the numbering from the beginning.