> 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/customization/ide-settings.md).

# IDE Settings

{% hint style="danger" %}
Some options are limited to <mark style="color:red;">PayloadStudio Pro</mark>. These will be indicated with the <img src="/files/tlP9AaWgm2GpuqsRgbag" alt="Pro" data-size="line">label
{% endhint %}

{% hint style="success" %}
Even though each setting is named to be self explanatory - every setting in PayloadStudio contains an description / explanation tool-tip available **on hover**
{% endhint %}

<figure><img src="/files/hrrJybppLWknfd9tEav3" alt=""><figcaption><p>Setting description tool-tip</p></figcaption></figure>

## IDE Settings

### `Theme`

The Theme option will change both the main editor and the overall appearance of PayloadStudio

### `Console Theme`

The Console Theme will change the appearance of the console and other editors (like the Language Editor) within PayloadStudio

{% hint style="info" %}
See the [Appearance](/payload-studio/customization/appearance.md) page
{% endhint %}

### `Auto Save PayloadStudio Session`

Checking this will store the editor session in your browser's local storage.

{% hint style="info" %}
Auto save status is indicated at the top right of the editor\
![Unsaved Session Indicator](/files/M5RHPpGMXW2N1jbZlQVd) <mark style="color:red;">Unsaved</mark> ![Saved Session Indicator](/files/hHst2dxXNo2grMvLJHLN) <mark style="color:green;">Saved</mark>
{% endhint %}

You can always manually save your session from **File > Save Session**

<figure><img src="/files/OmQZi1voWPrUdekHwLBL" alt=""><figcaption><p>File > Save Session</p></figcaption></figure>

### `Auto Save Console Session`

With this option enabled, the contents of the Console will not persist across refreshes

### `Timestamp Console Messages`

With this option enabled, messages that are added to the console by PayloadStudio will be timestamped

<figure><img src="/files/bTvAr8KXbz0ENFLgrSac" alt=""><figcaption><p>Timestamp console messages enabled</p></figcaption></figure>

### `Open console automatically`

With this option enabled, the Console will open when new text is written to it by PayloadStudio or the DuckyScript Compiler.

### `Enable Live Autocompletion`

Checking this enables live payload autocomplete. Start typing for filtered suggestions to automatically display below the cursor. ESC: close the popup. ARROW-KEYS: navigate dropdown. ENTER: select highlighted suggestion. CTRL-SPACE: open without typing anything.

<figure><img src="https://cdn.shopify.com/s/files/1/0068/2142/files/AUTOCOMPLETE3_600x.gif?v=1659640513" alt=""><figcaption><p>Live Autocompletion Demo</p></figcaption></figure>

### `Live Extension Validation`

Checking this enables live validation of extensions used in the current payload. This will help you ensure you're on the latest official version, and notify you if it is modified. This is helpful for payload sharing and version management. It is not recommended you disable this feature.

{% hint style="info" %}
Click the annotation in the gutter of the first line of the EXTENSION to reveal  one click shortcuts for:\
\- Upgrading current version\
\- Removing modifications or unofficial extensions
{% endhint %}

<figure><img src="/files/9cKZ3flauprTSdGTSVA4" alt=""><figcaption><p>Official Up-to-date Extension</p></figcaption></figure>

<figure><img src="/files/tbYqfPyIm3FvDOrKNl0i" alt=""><figcaption><p>Modified Official Extension</p></figcaption></figure>

<figure><img src="/files/MKMUFaTiyZ7F93h8rD0p" alt=""><figcaption><p>Unofficial Extension</p></figcaption></figure>

<figure><img src="/files/MlzqYA9NS7vkDEXU6K5G" alt=""><figcaption><p>Out-of-date Official Extension</p></figcaption></figure>

### `Automatically add documentation template`

Automatically add comment documentation template to new payloads

<figure><img src="/files/OrOS6vqpLqtilteMbcUj" alt=""><figcaption><p>USB Rubber Ducky Documentation Template </p></figcaption></figure>

### `Live DuckyScript Tips as inline Annotations` <img src="/files/tlP9AaWgm2GpuqsRgbag" alt="" data-size="line">

Checking this enables tips curated from a decade of feedback, development and testing - this option should save you some headache explaining best practices or edge cases as live annotations

<figure><img src="/files/1SD8Q2fwpI9aMbnsBViQ" alt=""><figcaption><p>Live DuckyScript Tips Demo</p></figcaption></figure>

##

### `Live DuckyScript Error Checking`<img src="/files/tlP9AaWgm2GpuqsRgbag" alt="" data-size="line">

Checking this enables error checking in real time. After making changes to your payload and 1s of inactivity has passed PayloadStudio will automatically check the current payload for compile errors.

<figure><img src="/files/ULixKcsnCxWVhPzyJlhu" alt=""><figcaption><p>Live DuckyScript Error Checking Demo</p></figcaption></figure>

##

### `Display Quick Action Toolbar In Editor`<img src="/files/tlP9AaWgm2GpuqsRgbag" alt="" data-size="line">

Checking this will pin Edit shortcuts to the top of the Editor.

### `Display Sublime Scroller` <img src="/files/tlP9AaWgm2GpuqsRgbag" alt="" data-size="line">

Checking this will enable a sublime inspired code navigation scroller in the Editor.

<figure><img src="/files/vRuuoz5i7hKDGrMivJ3s" alt=""><figcaption><p>Sublime Scroller Enabled Demo</p></figcaption></figure>

### `Enable Additional Language support` <img src="/files/tlP9AaWgm2GpuqsRgbag" alt="" data-size="line">

Checking this will enable file extension based language support<br>

<figure><img src="/files/xlQmGUL4QrpB0WHzrzLO" alt=""><figcaption><p>Edit the file name using the desired file extension</p></figcaption></figure>

<figure><img src="/files/EfoQVEUpO1mQjpOks9wk" alt=""><figcaption><p>Change modes prompt</p></figcaption></figure>

<figure><img src="/files/M6G9ubsI9umUxm4C05Nl" alt=""><figcaption><p>PayloadStudio in C/C++ mode</p></figcaption></figure>

Features per language mode may vary. Additional languages include:&#x20;

Certainly! Here is the list of labels without the numbers:

* ABAP
* ABC
* ActionScript
* ADA
* Alda
* Apache Conf
* Apex
* AQL
* AsciiDoc
* ASL
* Assembly x86
* AutoHotkey / AutoIt
* BatchFile
* C and C++
* C9Search
* Cirru
* Clojure
* Cobol
* CoffeeScript
* ColdFusion
* Crystal
* C#
* Csound Document
* Csound
* Csound Score
* CSS
* Curly
* D
* Dart
* Diff
* Dockerfile
* Dot
* Drools
* Edifact
* Eiffel
* EJS
* Elixir
* Elm
* Erlang
* Forth
* Fortran
* FSharp
* FSL
* FreeMarker
* Gcode
* Gherkin
* Gitignore
* Glsl
* Gobstones
* Go
* GraphQLSchema
* Groovy
* HAML
* Handlebars
* Haskell
* Haskell Cabal
* haXe
* Hjson
* HTML
* HTML (Elixir)
* HTML (Ruby)
* INI
* Io
* Jack
* Jade
* Java
* JavaScript
* JSON
* JSON5
* JSONiq
* JSP
* JSSM
* JSX
* Julia
* Kotlin
* LaTeX
* Latte
* LESS
* Liquid
* Lisp
* LiveScript
* LogiQL
* LSL
* Lua
* LuaPage
* Lucene
* Makefile
* Markdown
* Mask
* MATLAB
* Maze
* MediaWiki
* MEL
* MIPS
* MIXAL
* MUSHCode
* MySQL
* Nginx
* Nim
* Nix
* NSIS
* Nunjucks
* Objective-C
* OCaml
* Pascal
* Perl
* pgSQL
* PHP
* PHP (Blade Template)
* Pig
* Powershell
* Praat
* Prisma
* Prolog
* Properties
* Protobuf
* Puppet
* Python
* QML
* R
* Raku
* Razor
* RDoc
* Red
* RHTML
* RST
* Ruby
* Rust
* SASS
* SCAD
* Scala
* Scheme
* Scrypt
* SCSS
* SH
* SJS
* Slim
* Smarty
* Smithy
* snippets
* Soy Template
* Space
* SQL
* SQLServer
* Stylus
* SVG
* Swift
* Tcl
* Terraform
* Tex
* Text
* Textile
* Toml
* TSX
* Twig
* Typescript
* Vala
* VBScript
* Velocity
* Verilog
* VHDL
* Visualforce
* Wollok
* XML
* XQuery
* YAML
* Zeek
* Django

### `PayloadStudio Debugging Mode`

Recommended Setting: Disabled (unchecked) - For use in bug reporting - may cause unstable performance. Enable this to enable PayloadStudio Debug logging in the browser console.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## 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, and the optional `goal` query parameter:

```
GET https://documentation.hak5.org/payload-studio/customization/ide-settings.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

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.
