# Functions

The *Functions* integration allows for scripts to be discoverable through autocomplete while authoring scripts. Functions can be "disabled" by disabling the containing module.

1. Begin by adding a script library called "Functions" to a module. This can be created by the new module wizard.
2. Add a script to the "Functions" script library with a name that represents the purpose.
3. Use the command `Import-Function` to discover the available functions.

![Module Creation](https://165468320-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LA37Eh9vuWwQHUTc2NT%2Fuploads%2Fgit-blob-88dea2b458ba6bb2b0c9262245c383955a535b30%2Fmodule-sharedfunctions.png?alt=media)

**Note:** It's best practice to create function scripts that follow the `Verb-Noun` pattern as outlined by Microsoft.

![Shared Functions Library](https://165468320-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LA37Eh9vuWwQHUTc2NT%2Fuploads%2Fgit-blob-7bc10eb2b45a8a56e3bbd7f82e538f16e6e5d3a4%2Fscriptlibrary-sharedfunctions.png?alt=media)

![Autocomplete in ISE](https://165468320-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LA37Eh9vuWwQHUTc2NT%2Fuploads%2Fgit-blob-3f79c9632a6dce9fd649c48910d28690436a2c5e%2Fscript-importfunction.png?alt=media)

Here's a short video on authoring custom functions.

![Creating Functions](https://img.youtube.com/vi/bn4LSDF8p4g/0.jpg)

[Click for a demo](https://www.youtube.com/watch?v=bn4LSDF8p4g)
