Contributing modules in [GO](https://golang.org/) can be achieved in a few simple steps as outlined below. As for supported GO version, we have tested with 1.11.2, no promised for version 2. #### 1. Location * Select the appropriate [module](https://github.com/rapid7/metasploit-framework/tree/master/modules) path based on the type of module you are trying to contribute * Be sure to include appropriate module documentation under [here](https://github.com/rapid7/metasploit-framework/tree/master/documentation/modules) * Test your documentation is correct by executing `info -d` #### 2. Execution * Include this line at the top of your module: `//usr/bin/env go run "$0" "$@"; exit "$?"` * Ensure your file **is** an executable file #### 3. Setup * Initialize your module with the module metadata: ```go import "metasploit/module" func main() { metadata := &module.Metadata{ Name: "", Authors: []string{"", ""}, Date: "", Privileged: , References: []module.Reference{}, Options: map[string]module.Option{ "