> For the complete documentation index, see [llms.txt](https://docs.idew.org/code-chatbot/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.idew.org/code-chatbot/code-mods/placing-js-functions-in-a-separate-file.md).

# Placing JS Functions in your Main JS File

**For your chatbot we recommend that you place the bulk of your Javascript work in a proper Javascript file and keep your Rivescript "objects" very simple.**

## An Example...

Your *Rivescript* file could simply call a Javascript function like below.

{% code title="Rivescript" %}

```javascript
> object getRandomTerm javascript
  return getRandomTerm();
< object

+ random
- Finding a random term... <call>getRandomTerm</call>
```

{% endcode %}

Notice how this will run the `getRandomTerm()` function, like the one below, that can be in your *code.js* file.

{% code title="Javascript" %}

```javascript
function getRandomTerm() {
  var randomIndex = Math.floor(Math.random() * chatbot.db.length);
  currentItem = chatbot.db[randomIndex]
  return currentItem.term;
}
```

{% endcode %}

**The chain of returns:** The Javascript function will *return* the "term" (in this case) to the Rivescript object, which will then return that value to your script file

{% hint style="info" %}
**Placing JavaScript in a proper `.js` file produces the familiar code highlighting that makes your code much easier to write, edit, and debug.**
{% endhint %}
