# File Build Tools

### Introduction

File Build Tools are runnable files (.exe or .bat) which take command line arguments and are used to convert files from one format into another format. Usually the conversion is made from a file format that is native to a particular 3rd party application (such as a .psd in Photoshop) to either a standard file format or a format understood by the FlatRedBall Game Engine (such as a .png or a .scnx).

### How to add a new File Build Tool

To add a new File Build Tool:

1. Click the Settings->File Build Tools menu item

   ![](/files/z1ulb5J9FpjXK5ukcrLk)
2. Click "Add new build tool"<br>

   <figure><img src="/files/m91FYhWlhbsXla5nBrPc" alt=""><figcaption></figcaption></figure>
3. Add the source and destination extensions of whatever your file build tool supports. For example, the source might be "psd" and the destination might be "png".

   <figure><img src="/files/d5wPCunr0O6unWkG8vM4" alt=""><figcaption></figcaption></figure>
4. Click the BuildTool text field, then click the browse button

   <figure><img src="/files/2y2b2iRbN8FHdcL0jPO6" alt=""><figcaption></figcaption></figure>
5. Select your build tool in the file window
6. Click OK

### File Build Tool Details

File build tools are command-line applications which can convert a file from one format to another. File build tools require at least one parameter - the source file (the file to be converted). To help understand how file build tools are used by Glue, consider a simple with the following values:

* BuildTool = "BuildTool.exe"
* IsBuildToolAbsolute = false
* SourceFileType = "source"
* DestinationFileType = "dest"
* IncludeDestination = true
* SourceFileArgumentPrefix = ""
* DestinationFileArgumentPrefix = ""
* ExternalArguments = ""

The values above specify that the build tool accepts a file with a "dest" extension, and it produces a file with a "source" extension. For this example, also consider a Glue file with the absolute path of "c:/folder/file.source". Building this file with the above variables would produce the following command:

```
BuildTool.exe "c:/folder/file.source" "c:/gameproject/content/file.dest"
```


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.flatredball.com/flatredball/glue-reference/menu/settings/glue-reference-menu-file-build-tools.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
