Animating Keyframes > Advanced Animation: About Expressions > Defining Your Own Functions >

# The Functions File

There are two text files in which you can enter user-defined functions:

- Project-specific file: /usr/discreet/project/<user_name>/expressions/userfun.expressions
- Template file: /usr/discreet/<product_name>/expressions/userfun.expressions

To define a function for your current project, add it to the project-specific file. Modifying this file will affect only that project and not any other existing or future projects.

If you decide that you want to use the function in future projects, copy it from the project-specific file to the template file. When you create a project, the template file is copied to your project directory as the project-specific file for that new project. This functionality allows you to modify user-defined functions in new projects without affecting the behaviour of your animations in older projects.

To edit the functions file:

1. Open a command window.
2. Use the mouse to position the cursor in the shell and type one of the following commands, depending on which file you want to edit.

   Enter: | To:
   --- | ---
   nedit /usr/discreet/project/<user_name>/expressions/userfun.expressions | Edit the project-specific file.
   nedit /usr/discreet/<product_name>/expressions/userfun.expressions | Edit the template file.

   The functions file opens in a shell and you can edit it as you would any other text file.