GD Level Generator

Level Input File Format Guide

Any AI can create a valid level_input.txt file using this repository to produce Geometry Dash levels using GDShare. If you are the user, please visit the User Manual below for directions. Stick to the objects and IDs in the objects list (bottom of page)! AIs should refer to the Instructions for the AI (below). Read the entire page, all the way to the bottom.


Instructions for the AI

Generate a Geometry Dash level based on the user’s choice (unless they said it was yours). Only use the objects and IDs found in the IDs table at the bottom of this page. Generate it as text ready to be used in level_input.txt. Ignore all .py files in this repository. View all code as raw, as it’s faster to process. Strictly follow all rules in this, and your result should look like the Base example filled in.

User Manual

The manual for the user on how to get their AI to build their level for them (lol).

Requirements

The latest version of Python

Setup

To get started, show the AI the README for this repository, then ask it to make a level using it. Once they have made the text file, download this repository and paste their text into level_input.txt. Once done, run the following in that order:

Once done, use GDShare to import the level.gdr file into GD as a level.

List of AIs

Here are some popular AIs that are able to do this:


1. Metadata Section

Add key-value pairs describing the level, one per line:

Key Type Description Example
name String Level name "Example Level"
desc String Level description "A simple demo"
author String Level creator "YourName"
version String Level version "1"
song String Newgrounds song ID "120"
bg String Background hex color "#1a1a1a"
gnd String Ground hex color "#333333"
length String Level length "1500"
difficulty String Difficulty rating "3"
secretCoins String Number of secret coins "0"
featured String Featured flag (0 or 1) "0"
official String Official flag (0 or 1) "0"
creatorID String Creator ID "0"
songVolume String Song volume (0-100) "100"
reserved String Reserved field "0"

2. Level Objects Section

Define your objects inside a level list. Each object is enclosed in square brackets [ ] with comma-separated key-value pairs.

Object Keys

Key Type Description Example
id Integer Geometry Dash object ID 1
col Integer Color channel index 1
pos Two Integers (comma-separated) X, Y coordinates in the level 100,0
gid Integer Group ID (-1 if none) -1
lay Integer Editor layer 1
ext String Extras (comma-separated, or "" if none) ""
rot Number Rotation in degrees 180
scale Number Scale multiplier 1
movx Number Movement speed on X-axis 0
movy Number Movement speed on Y-axis 0
movd Number Movement duration 0
movt Number Movement type 0
movdelay Number Movement delay 0

3. Syntax Rules


Basic level_input.txt (expected formatting)

name: "Example Level"
desc: "10 blocks, spike, and upside-down portal"
author: "YourName"
version: "1"
song: "120"
bg: "#1a1a1a"
gnd: "#333333"
length: "1500"
difficulty: "3"
secretCoins: "0"
featured: "0"
official: "0"
creatorID: "0"
songVolume: "100"
reserved: "0"

level = [
    [id: 1, col: 1, pos: 0,0, gid: -1, lay: 1, ext: "", rot: 0, scale: 1, movx: 0, movy: 0, movd: 0, movt: 0, movdelay: 0],
    [id: 1, col: 1, pos: 100,0, gid: -1, lay: 1, ext: "", rot: 0, scale: 1, movx: 0, movy: 0, movd: 0, movt: 0, movdelay: 0],
    [id: 7, col: 3, pos: 1100,0, gid: -1, lay: 1, ext: "", rot: 0, scale: 1, movx: 0, movy: 0, movd: 0, movt: 0, movdelay: 0],
    [id: 10, col: 2, pos: 1200,0, gid: -1, lay: 1, ext: "", rot: 180, scale: 1, movx: 0, movy: 0, movd: 0, movt: 0, movdelay: 0]
]

4. Common Object IDs

Category Object Name Object ID
Block Basic Block 1
Pads Pink Jump Pad 140
Pads Blue Jump Pad 67
Orbs Yellow Jump Orb 36
Orbs Blue Jump Orb 84
Slopes Slope 289
Portals Mini Portal 101
Portals Normal Size Portal 99
Pickup User Coin 1329