> For the complete documentation index, see [llms.txt](https://docs.yarnspinner.dev/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.yarnspinner.dev/api/csharp/yarn.unity/yarn.unity.actionregistrationextension/yarn.unity.actionregistrationextension.addfunction-11.md).

# AddFunction\<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, TResult>(IActionRegistration,string,System.Func\<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, TResult>)

Method in [ActionRegistrationExtension](/api/csharp/yarn.unity/yarn.unity.actionregistrationextension.md)

## Summary

Add a new function that returns a value, so that it can be called from Yarn scripts.

```csharp
public static void AddFunction<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, TResult>(this IActionRegistration registration, string name, System.Func<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, TResult> implementation);
```

## Remarks

When this function has been registered, it can be called from your Yarn scripts like so:

```
<<if myFunction(1, 2) == true>>
myFunction returned true!
<<endif>>
```

The `call` command can also be used to invoke the function:

```
<<call myFunction(1, 2)>>
```

## Parameters

| Name                                                                                                    | Description                                                                |
| ------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------- |
| `string` name                                                                                           | The name of the function to add.                                           |
| `Func<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, TResult>` implementation                                 | The `System.Delegate` that should be invoked when this function is called. |
| [Yarn.Unity.IActionRegistration](/api/csharp/yarn.unity/yarn.unity.iactionregistration.md) registration |                                                                            |

## Type Parameters

| Name    | Description                 |
| ------- | --------------------------- |
| TResult | The result of the function. |

## See Also

* [Library](/api/csharp/yarn/yarn.library.md): A collection of functions that can be called from Yarn programs.
