Advanced Level Editing

back to home page

Table Of Contents

1. Commands System
2. Custom Assets
3. Block Demos

Commands System

The Commands System is used to handle complex logic behind dialogue, triggers, and editor tools. Click the examples to copy to the clipboard.

These two groups of commands are actually interchangeable! Switch # for !msg, and vice versa. This can be used to do some very complex effects!

Dialogue Commands

These commands are used in dialogue and triggers. Useful for for world building, cut-scenes, and scripted events.

Command

Args

Example

Description

dialogue

Hello World!

Base dialogue, no #. Cannot be used in triggers.

comment

#-- print Hello World!

Its a comment, pretty self explanatory.

Editor Tool Commands

These commands are used to complete tedious tasks in the editor. They are a must have when making a large level! Use the commands in the Playdate Simulator Console.

Command

Args

Example

Description

Custom Assets

Example Project

Custom levels support many types of custom assets, this section will cover how to create your own assets! The example project can be used to understand the file structure and features of custom assets.

Download example project

Most custom assets require knowledge of Blender (3.6) and the Playdate SDK.

Blender 3.6 Playdate SDK

Blocks

Download the template files here.

Download block template Download character template

After customizing the block, render the frames out to a folder. Use the dither tool to convert to a single large image containing all of the dithered frames.

Dither Tool

Use the Playdate SDK to build the image table to a .pdt, and place it into the blocks folder in your project. The character file will have an extra frame for the dialogue icon. Dither and build it as a separate .pdi.

By naming the custom block the same name as an existing block, you can replace the graphics of that block in the project. This could be used to create a unique art style, or replace Diora with a new character.

Some blocks may need custom functionality, this can be achieved with a block data file. Use the editor command !msg blockdata NAME to see that block's data. See the example project for the example block data file.

Use the editor command !msg loadblock NAME to load the block.

Backgrounds

Download the template file here.

Download background template

After customizing the background, render the frames out to a folder. Use the dither tool to convert to a single large image containing all of the dithered frames.

Dither Tool

Use the Playdate SDK to build the image table to a .pdt, and place it into the backgrounds folder in your project.

Use the editor command !msg background NAME to load the background.

Music

Custom music can be used, convert to ADPCM WAV. Build to a .pda using the Playdate SDK. Music looping can be defined using a descriptor txt with the same name as the wav. The txt contains the decimal seconds into the song where the music should resume at when it reaches the end. See example project for the formatting of the descriptor.

Use the editor command !msg music NAME to load the music.

Icons

You can use custom images as your project and level icons! Create a custom icon at (200x240) Build to a .pdi using the Playdate SDK. See the Example project for the location of these icons.

Metadata

You can use the lock and desc files to supply optional metadata about the project. Use desc.txt to show a simple message about your project in the menu. Use lock.txt to prevent editing the level without first removing the file. Consider doing this before sharing your level for a more polished experience.

Block Demos

Unsure of how to use a certain block? There is a large list of demo levels that show exactly how to set up a block to work correctly. They can also be used for inspiration!

Use the editor command !msg demos to print the demo list.

Use the editor command !msg demo NAME to start a demo. This can be done from the map or inside the construct.