Skip to content

Client & Server Song Resource

Song

Songs in Geometry Dash are supplied through a partnership with a website called Newgrounds. To be used in community made levels, a song must pass 3 requirements

  • The Song must be scouted by another artist from newgrounds
  • The Song must be whitelisted either by Robtop or an Elder Moderator
  • The artist must enable external API use in their song settings

The songs can be downloaded and used via a private API that only RobTop has access to

A typical song server response is structured with a key~|~value~|~key~|~value pairing and is then split with a :

Song Example

1~|~803223~|~2~|~Xtrullor - Arcana~|~3~|~2159~|~4~|~Xtrullor~|~5~|~8.81~|~6~|~~|~10~|~https%3A%2F%2Faudio.ngfiles.com%2F803000%2F803223_Xtrullor---Arcana.mp3%3Ff1524940372~|~7~|~UCejLri1RVC7kj8ZVNX2a53g

Each key is tied to a component within the client and the value sets data for the specific component.
A list of all known keys can be found in the table below

The IDs for Music Library songs start at 10,000,000

Song Structure

KeyName/ValueTypeDescription
1IDIntegerThe ID of the song on Newgrounds
2nameStringThe name of the song
3artistIDIntegerNewgrounds ArtistID
4artistNameStringThe name of the artist who made the song
5sizeIntegerSize of the song in MB, rounded to two decimal places
6videoIDStringthe Video ID for the songs YouTube Video
7youtubeURLStringThe URL of the newgrounds user’s youtube channel
8isVerifiedBoolif the song artist is scouted on newgrounds
9songPriorityIntegerpriority over the song list
10linkStringLink to the song’s mp3
11nongEnumIntegerType of NONG. 0 for none, 1 for NCS.
12extraArtistIDsArray[Integer]IDs of extra artists, separated by .
13newBooleanWhether the NEW icon shows up or not
14newTypeIntegerType of NEW icon. 0 for Yellow, 1 for Blue
15extraArtistNamesArrayArtist names in this format: {id},{name},{id},{name}

Trivia

  • The savefile song structure uses the exact same keys as the server response