> For the complete documentation index, see [llms.txt](https://documentation.hak5.org/payload-studio/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://documentation.hak5.org/payload-studio/getting-started/editing-basics.md).

# Editing Basics

{% hint style="info" %}
**Don't worry**, you can always change the device mode while editing a payload!
{% endhint %}

## Changing Device / Editing mode

Changing editor modes is as easy as two clicks!&#x20;

1. Click the current device from the top left of the editor
2. Choose a new device mode from the Device Picker Menu

<figure><img src="/files/mo14sPd5fjKjk4eIUuAE" alt=""><figcaption><p>Change editor mode</p></figcaption></figure>

<figure><img src="/files/Al23hMfJOauih8cPgKPn" alt=""><figcaption><p>Changing devices from the Device Picker</p></figcaption></figure>

Payload Studio supports the full line of Hak5 DuckyScript compatible devices:

## [USB Rubber Ducky](https://hak5.org/products/usb-rubber-ducky)

<figure><img src="/files/1M6JNQM7LQqc6iOezGv7" alt=""><figcaption></figcaption></figure>

The **NEW** USB Rubber Ducky supports DuckyScript 3.0 (and DuckyScript 1.0) with full features and compiled payloads!

[USB Rubber Ducky Documentation](https://docs.hak5.org/hak5-usb-rubber-ducky/)

{% hint style="info" %}

#### USB Rubber Ducky Original

The original USB Rubber Ducky continues to work with DuckyScript 1.0 features!
{% endhint %}

<figure><img src="/files/pRn0ncapegs0WdrwxabX" alt=""><figcaption><p>USB Rubber Ducky Mode</p></figcaption></figure>

### Ducky Payload Deployment

When you're read to test or deploy your payload:

click ![Generate Payload button](/files/5iXQ7cjFqXmdY7FmW816) \
\
PayloadStudio will then take the `DuckyScript Source code` in the Editor and compile it into an `inject.bin`<br>

<figure><img src="/files/Oe3lSHPmpkG9rEeUnTA4" alt=""><figcaption><p>Compiling Notification</p></figcaption></figure>

PayloadStudio will automatically open the console. This is where the compiler will output any information regarding the compilation process and the resulting `inject.bin`

<figure><img src="/files/8upJrI7BEaqo0NGzwOUS" alt=""><figcaption><p>PayloadStudio Compiler output in the Console</p></figcaption></figure>

Below the console, if your payload compiled successfully, you'll find the **Result**

<figure><img src="/files/VQlRr3ABCdsqyeSf5IxD" alt=""><figcaption><p>Generate Payload Result</p></figcaption></figure>

Here you can download the `inject.bin`

Download `inject.bin` ![Download button](/files/KIwnRaPZicRuHvQwx3Sq)![Download Button on hover](/files/mznF6akJowelHHQ9lAuq)

This dialog also provides the option to download **the source that generated** the `inject.bin` -- This *may differ from whats currently in the editor if you've made changes in the editor since compiling*

Download Source: ![Download Submenu](/files/tooscK2PI6L0j08kNCWT)![Download submenu > Download Source button](/files/W7UmvDCwq3jrYgZawJuk)

From this sub-menu you may also discard the `inject.bin`

If you've made changes in the editor after clicking **Generate Payload** - PayloadStudio will notify you that the current editing session differs from the `inject.bin` and `payload.txt` available for download:

<figure><img src="/files/hzvi8AUlROBctXCkLZSv" alt=""><figcaption><p>Uncompiled Changes display in the breadcrumbs</p></figcaption></figure>

<figure><img src="/files/j0pHeYICJaeC3NY5Ckgv" alt=""><figcaption><p>Editor differs from available download</p></figcaption></figure>

{% hint style="info" %}
You can always download a copy of the current editor from **File >** **Save** ![](/files/5Ak055IdsQQ73L5xCbKy)
{% endhint %}

## [Bash Bunny](https://hak5.org/products/bash-bunny)

<figure><img src="/files/YyfdhxdbCJlOUDFRRYOr" alt=""><figcaption></figcaption></figure>

The Bash Bunny supports DuckyScript 2.0 + bash scripting

[Bash Bunny Documentation](https://docs.hak5.org/bash-bunny/)

<figure><img src="/files/Hz1PLMb1KvVMFplrS0pI" alt=""><figcaption><p>Bash Bunny Mode</p></figcaption></figure>

### Bunny Payload Deployment

Click ![](/files/NbU8XFrbri2m5wQp7pzZ) or ![](/files/EM3jp3HIX94rQMQFt8PY)

Next, arm and transfer to the device - for more info see [Bash Bunny Documentation](https://docs.hak5.org/bash-bunny/)

## [Key Croc](https://hak5.org/products/key-croc)

<figure><img src="/files/ON7sfxFngDBqSqDovEfk" alt=""><figcaption></figcaption></figure>

The Key Croc supports DuckyScript 2.0 + bash scripting

[Key Croc Documentation](https://docs.hak5.org/key-croc/)

<figure><img src="/files/FI51K0rdMqsxK2AVQBww" alt=""><figcaption><p>Key Croc Mode</p></figcaption></figure>

### Croc Payload Deployment

Click ![](/files/NbU8XFrbri2m5wQp7pzZ) or ![](/files/J0BzdSDqeVOlE1eoVw33)

Next, arm and transfer to the device - for more info see [Key Croc Documentation](https://docs.hak5.org/key-croc/)

## [Shark Jack](https://hak5.org/products/shark-jack)

<figure><img src="/files/fhGaaVyyvxAE6gndRfYO" alt=""><figcaption></figcaption></figure>

The Shark Jack supports DuckyScript 2.0 + bash scripting

[Shark Jack Documentation](https://docs.hak5.org/shark-jack/)

<figure><img src="/files/zjAhTxjw3Qx4oj7VQfDV" alt=""><figcaption><p>Shark Jack Mode</p></figcaption></figure>

### Shark Payload Deployment

Click ![](/files/NbU8XFrbri2m5wQp7pzZ) or ![](/files/4mJ8n3IrdoWzYixhQSDY)

Next, arm and transfer to the device - for more info see [Shark Jack Documentation](https://docs.hak5.org/shark-jack/)

## [Packet Squirrel](https://hak5.org/products/packet-squirrel)

<figure><img src="/files/oLCiZoBCIK3PfDgAjRN4" alt=""><figcaption></figcaption></figure>

The Packet Squirrel supports DuckyScript 2.0 + bash scripting

[Packet Squirrel Documentation](https://docs.hak5.org/packet-squirrel/)

<figure><img src="/files/ggFyNDfx6CEuuoeP4FAr" alt=""><figcaption><p>Packet Squirrel Mode</p></figcaption></figure>

### Squirrel Payload Deployment

Click ![](/files/NbU8XFrbri2m5wQp7pzZ) or ![](/files/kI5Hc6yZ5iLXLqeRbGy2)

Next, arm and transfer to the device - for more info see [Packet Squirrel Documentation](https://docs.hak5.org/packet-squirrel/)

## [LAN Turtle](https://hak5.org/products/lan-turtle)

<figure><img src="/files/PIlGX7dwctiyu9eM1K4e" alt=""><figcaption></figcaption></figure>

The LAN Turtle supports DuckyScript 2.0 + bash scripting

[LAN Turtle Documentation](https://docs.hak5.org/lan-turtle/)

<figure><img src="/files/Uane9uAxSshZyMnPpEZT" alt=""><figcaption><p>LAN Turtle Mode</p></figcaption></figure>

### Turtle Payload Deployment

Click ![](/files/NbU8XFrbri2m5wQp7pzZ) or ![](/files/SWtIxwjXgIaWClGgLiTf)

Next, arm and transfer to the device - for more info see [LAN Turtle Documentation](https://docs.hak5.org/lan-turtle/)
