Multiple languages

In addtion to Block-based tutorials, MakeCode supports tutorials for JavaScript and Python.

Using JavaScript

A JavaScript only tutorial is authored in the same way as a Blocks tutorial except that the snippets are enclosed by the ```typescript tag instead of with ```blocks.

```typescript
sprites.onOverlap(SpriteKind.Player, SpriteKind.Enemy, function (sprite, otherSprite) {
    otherSprite.destroy()
})
```

Using Python

If the target supports Python, snippets can be written in JavaScript or Python directly.

Python snippets

Using python after the triple tick like this:

```python
for i in range(100):
    mobs.spawn(CHICKEN, pos(0, 10, 0))
```

Spy snippets (JavaScript to Python)

Snippets can also be written in JavaScript and automatically converted to Python at display time. Use a spy section:

```spy
basic.showString("Hello!")
```

Other languages

Note that if the target supports python, then snippets are written in the usual way like:

```typescript
basic.showString("Hello!")
```

    - or -

```blocks
basic.showString("Hello!")
```

Users will have the option of clicking the Python icon to see the snippet in Python just like they can with Blocks and Javascript/Typescript.

JavaScript and Python with a single tutorial (“Spy tutorials”)

If you are able to author your tutorial in a language agnostic way, you will be able to have a single source document for both JavaScript and Python. You can specify a single tutorial for multiple languages using the otherActions field in the tutorial code card.