Table of Contents
The Construct is your hub for creating your own levels for Diora! Enter the construct and interact with the blueprint table to get started.
The editor was designed to make level editing as easy as possible. All campaign levels were made using the level editor!
Selected block |
Cursor position |
D-Pad hint |
Crank hint |
Place currently selected block |
Rotate level |
Move cursor horizontally |
Erase hovered block |
Change selected block |
Move cursor vertically |
Rotate cursor |
Use these menus to manage your level and project.
Test Level |
Test your level! Press to get back to the editor. |
Save / Quit |
Manage your level, and exit back to the project menu. You can delete projects and levels here as well. |
Editor Settings |
Change settings such as the amount the cursor moves. |
Level Settings |
Change settings such as the music and background of the level. |
Block Library |
Browse and load blocks to use in the level. |
Block Inspector |
Hover the cursor over a block and inspect its values. You can edit some values as well. |
Edit Connections |
Hover the cursor over a block and edit its connections. |
The connections menu is used to link blocks together.
Connections are usually linked opposite to the flow, this is because most blocks with connections are 'listening' for the button's state to change.
While you can make plenty of levels on the Playdate, you can take advantage of advanced tools using a computer!
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!
These commands are used in dialogue and triggers. Useful for for cutscenes and world building
Command |
Args |
Example |
Description |
dialogue |
Hello World! |
Base dialogue, no |
comment |
#-- print Hello World! |
Its a comment, pretty self explanatory. |
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 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 projectMost custom assets require knowledge of Blender (3.6) and the Playdate SDK.
Blender 3.6 Playdate SDKDownload the template files here.
Download block template Download character templateAfter 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 ToolUse 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.
Download the template file here.
Download background templateAfter 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 ToolUse 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.
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.
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.
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.
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.