WiFi Duck vs. White Ducky II, S3, and Ultra: Understanding DuckyScript 1.0 vs. 3.0

Choosing between the DSTIKE WiFi Duck, White Ducky II, White Ducky S3, and White Ducky Ultra can be confusing. Their names are similar, but they offer different scripting capabilities and different ways to manage and run your automation.

The differences are not limited to processors, screens, or storage capacity. The more useful questions are: Which scripting language does the device support? How do you manage your scripts? And how do you select and start a task?

One distinction is particularly important: with the supplied firmware covered in this guide, WiFi Duck and White Ducky II support DuckyScript 1.0, while White Ducky S3 and White Ducky Ultra support DuckyScript 3.0 core language features.

Start with the capabilities your scripts require, then choose the interface that fits your workflow.

1. The Most Important Difference: DuckyScript 1.0 vs. DuckyScript 3.0

DuckyScript 1.0: Sequential Keyboard Automation

DuckyScript 1.0 is primarily designed around sequential keyboard actions: enter text, send a keyboard shortcut, wait for a specified time, and continue to the next instruction.

This works well for predefined tasks such as entering standard text, performing fixed shortcut sequences, or demonstrating repeatable workflows. The scripts are generally direct and readable, without requiring complex program structures.

The supplied firmware for WiFi Duck and White Ducky II falls into this category. Although their script-management methods differ, they do not provide the DuckyScript 3.0 variables, conditional branches, structured loops, and basic functions discussed here for the S3 models.

Simple repetition should not be confused with structured program logic. For example, WiFi Duck supports REPEAT to repeat the previous command, but this is not equivalent to using a variable to control a loop containing several instructions.

DuckyScript 3.0: More Structured Script Logic

The core interpreters in White Ducky S3 and White Ducky Ultra support variables, conditions, loops, and basic functions. These features let you store and update values, branch according to expressions, repeat blocks of instructions, and organize reusable sequences.

For example, a counter and loop can repeat a group of actions a specified number of times, rather than requiring the same block to be copied throughout the file.

When your scripts depend on these supported DuckyScript 3.0 core features, focus on White Ducky S3 or White Ducky Ultra.

“DuckyScript 3.0 support” here means the core language features implemented in the supplied firmware. It does not mean complete compatibility with every extension, every Hak5 hardware-specific feature, or compiled inject.bin files.

2. The Main Differences at a Glance

Standard hardware and supplied firmware comparison
Feature WiFi Duck White Ducky II White Ducky S3 White Ducky Ultra
Scripting support DuckyScript 1.0 DuckyScript 1.0 DuckyScript 3.0 core features DuckyScript 3.0 core features
Main platform ESP8266 + ATmega32U4 ATmega32U4 ESP32-S3 N16R8 ESP32-S3 N16R8
Wi-Fi browser management Yes No Yes Yes
Script storage Internal ESP8266 Flash TF/microSD card Internal Flash using LittleFS SD card + internal LittleFS
Main management method Create, edit, and manage scripts in a browser Modify files using a card reader Upload or replace payload.txt in a browser Manage named SD scripts and the onboard script in a browser
Script selection Browser interface Six-position DIP switch; up to 64 positions One active script in the supplied manager OLED or browser; browse up to 256 SD scripts
OLED display No No No Yes
DIP-switch purpose Operating and programming connections Script selection UART / USB mode selection No DIP-switch mode selection; separate interfaces
Power USB USB USB Built-in rechargeable battery and USB

Storage behavior, controls, and script limits reflect the corresponding hardware and supplied firmware. Firmware updates or custom development may change these features.

3. WiFi Duck: Browser-Based Script Editing and Management

WiFi Duck combines an ESP8266 for local Wi-Fi, the web interface, and script storage with an ATmega32U4 for USB keyboard input. It is based on SpacehuhnTech’s open-source WiFi Duck project.

You can create, edit, save, and run compatible scripts in a browser without removing a memory card. Its eight-position DIP switch handles operating and programming connections—it is not a script selector.

This is worth considering when your routine involves frequently adjusting text or delays and testing the result immediately.

Choose WiFi Duck for its browser-centered editing workflow and project ecosystem, rather than for DuckyScript 3.0 capabilities.

4. White Ducky II: Prepare Scripts in Advance and Select Them Offline

White Ducky II stores scripts on a TF/microSD card and provides up to 64 selection positions through six DIP switches. Files are typically updated using a card reader, without Wi-Fi configuration.

The infrared version adds remote triggering, but infrared is not Wi-Fi, and the standard version does not automatically include IR functionality.

This suits a workflow built around preparing DuckyScript 1.0 scripts in advance and reusing them, rather than editing them frequently in a browser.

For fixed teaching exercises or test procedures, a reference sheet can match switch positions to script purposes. The 64 positions come from six binary switches; they do not mean the card can physically hold only 64 text files.

Choose White Ducky II for offline storage and physical selection, rather than for more complex scripting logic.

5. White Ducky S3: A Compact Platform for DuckyScript 3.0 Core Features

White Ducky S3 uses an ESP32-S3 N16R8 module with 16 MB Flash and 8 MB OPI PSRAM. Its hardware includes a USB-A connector, an RGB status indicator, and a white enclosure with a removable connector cap.

The typical workflow is to connect to the device’s local Wi-Fi hotspot, upload payload.txt through a browser, and select Run Manually. The file is stored in internal Flash and survives normal power cycles. With the default settings, powering on or uploading a file does not automatically execute the script.

Six DIP Switches Select the Mode, Not the Script

White Ducky S3’s switches serve a different purpose from those on White Ducky II.

001111 selects UART mode for firmware uploads, while 110010 selects USB mode for keyboard operation. Disconnect USB power before changing the settings.

16 MB Flash Does Not Mean Unlimited Active Scripts

The supplied browser manager handles one active payload.txt at a time. The current interpreter limits each payload file to 128 KiB.

Total Flash capacity, available file-system space, and the script-management functions implemented in firmware are separate things. The 8 MB PSRAM is working memory, not permanent file storage.

Choose White Ducky S3 when you want supported DuckyScript 3.0 core features in a compact USB device, with Wi-Fi uploads and browser-based execution.

6. White Ducky Ultra: Multiple Scripts and Controls on the Device

White Ducky Ultra uses the same ESP32-S3 N16R8 platform as S3 and supports the DuckyScript 3.0 core features described above. Its main additions are the interface, storage options, and portable operation—not another step up in scripting-language version.

Browse Filenames and Select Scripts on Screen

Ultra includes an SH1106 OLED and a three-way navigation switch. Move left or right to select a file, press to open the confirmation screen, and press again to run it.

The current firmware can browse up to 256 scripts in the SD card’s /payloads/ folder and display execution state and the current script line. Once your files are prepared, you can select and start scripts without opening the manager on your phone.

SD Multi-Script Storage and an Onboard Alternative

Ultra’s browser manager supports multiple named scripts on the SD card and a single payload.txt in internal Flash.

The onboard single-script option remains available when no SD card is installed.

Battery-Powered Preparation and Separate USB Interfaces

The built-in rechargeable battery and charging circuit allow script browsing and file management without relying on USB power. Sending keyboard input to a computer still requires the native USB connection.

Ultra separates the UART programming interface from native USB operation, so changing between these functions does not require DIP-switch mode selection.

Choose White Ducky Ultra when you want supported DuckyScript 3.0 core features together with convenient multi-script selection, visible feedback, and controls directly on the device.

7. Compatibility Questions to Understand Before Buying

Does Wi-Fi Mean Wireless Control of Nearby Computers?

No. In the relevant supplied firmware, Wi-Fi provides access to the management interface, while USB delivers keyboard input to the physically connected computer.

Wireless script management is not wireless keyboard input to arbitrary computers. Ultra’s battery does not change this requirement.

Can the Same Script Run on All Four Models?

Do not assume that it can.

Scripts using shared basic commands may be relatively straightforward to adapt, but syntax, keyboard layout, and timing still need checking. A script that relies on DuckyScript 3.0 variables, conditions, structured loops, or functions will not run unchanged on the supplied DuckyScript 1.0 firmware.

Likewise, a downloaded script labeled “DuckyScript 3.0” may use extensions not implemented by S3 or Ultra. Check the commands the script actually uses—not just its version label.

Does USB Keyboard Support Guarantee Compatibility with Every System?

No. Being recognized as a keyboard and successfully completing a scripted task are different things.

The current supplied S3 and Ultra firmware uses a US English keyboard layout. Scripts also need to match the operating system, input method, window focus, and application timing. The WiFi Duck project offers multiple keyboard layouts, but you should check the firmware installed on your device.

Does “Finished” Mean Every Action Succeeded?

Not necessarily. On Ultra, Finished means the interpreter completed normally; it does not mean every intended result was verified on the computer.

Stopping execution prevents further device keystrokes, but it does not undo actions already performed. Always observe and validate new scripts in a non-critical test environment.

8. How to Choose the Right Model

Think of the decision in two steps.

First, identify your scripting requirements. For fixed keyboard sequences, a DuckyScript 1.0 device may meet your needs. For scripts that depend on supported variables, conditions, loops, or functions, choose S3 or Ultra.

Second, choose your preferred interface. Consider WiFi Duck for browser-based editing, White Ducky II for offline DIP-switch selection, White Ducky S3 for a compact ESP32-S3 device with wireless script management, or White Ducky Ultra for filename browsing, multiple-script selection, and on-device controls.

The right model should match both your scripting requirements and your day-to-day workflow. A newer processor, more storage, or additional controls only adds value when those features support the way you actually work.


Use these devices only on systems you own or have explicit permission to test. Features described in this guide depend on the hardware and supplied firmware. Refer to the documentation for your specific model and firmware version for actual command support and operating instructions.