sdon <-> json library for Soundodger
sdon is the name given to this customizable soundodger level file format made with the idea of making manual level editing easier and less prone to error.
sdon files were made with customization in mind, allowing people to download sdon files writen in the way they want it to be written.
The template creation process was made as easy as possible, simply modify the sdon.formats.js file by adding a new array entry to the object with the format name of your choice, and you can now create the templates that you want to use!
- markers will always be surrounded by { }
- the mp3 path, song name, artist name, designer and subtitle will always be surrounded by ""
- color codes will always be translated into their respective hex codes
- the characters '{' and '}' cannot be used
- input points must be separated by at least one character
- commas cannot be used to separate input points
everything else in sodn files are entirely customizable by anyone.
Here is an example of a json file turned into 2 sdon file, both with templates
{
"Song": {
"Info": {
"_nick": "Starcadian - Trapped In America small",
"_enemies": "30",
"_color1": "16480890",
"_color2": "15072255",
"_color3": "132724",
"_color4": "0",
"_color5": "65793",
"_color6": "0",
"_color7": "0",
"_color8": "0",
"_color9": "14207739",
"_title": "Trapped In America",
"_artist": "Starcadian",
"_difficulty": "4",
"_designer": "Blü & Furret",
"_MP3Name": "Starcadian - Trapped In America.mp3",
"_bgBlack": "true",
"_audioPreview": "50",
"_subtitle": "Midnight Signals // 2017"
},
"Script": [
{
"_time": "0",
"_enemies": "0",
"_warpType": "timeWarp",
"_val": "1"
},
{
"_time": "210.599",
"_enemies": "0",
"_warpType": "timeWarp",
"_val": "1"
},
{
"_time": "0",
"_enemies": "0",
"_warpType": "spinRate",
"_val": "0"
},
{
"_time": "210.599",
"_enemies": "0",
"_warpType": "spinRate",
"_val": "0"
},
{
"_time": "108.305",
"_enemies": "1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30",
"_shotType": "stream",
"_bulletType": "bubble",
"_aim": "mid",
"_amount": "0",
"_offset0": "0",
"_speed0": "4",
"_angle0": "1",
"_offset1": "0",
"_speed1": "4",
"_angle1": "1",
"_duration": "104.73"
},
{
"_time": "109.583",
"_enemies": "3",
"_shotType": "wave",
"_bulletType": "nrm2",
"_rows": "6",
"_aim": "mid",
"_offset0": "-25",
"_amount0": "2",
"_speed0": "4",
"_angle0": "0",
"_offset1": "-25",
"_amount1": "2",
"_speed1": "6",
"_angle1": "5"
}
]
}
}
info [
mp3 name: "Starcadian - Trapped In America.mp3"
audio preview: 50%
song: "Trapped In America"
by: "Starcadian"
level creator: "Blü & Furret"
subtitle: "Midnight Signals // 2017"
enemy count: 30
difficulty: 4
black background: true
]
color [
linear A: #fb7a7a
linear B: #e5fbff
homing: #20674
bubble: #0
hug: #d8cafb
outline: #10101
outer rings: #0
slow motion: #0
score circle: #0
]
spinrate: [
{ @0, 0 }
{ @210.599, 0 }
]
timewarp: [
{ @0, 1 }
{ @210.599, 1 }
]
bullet: [
{
@108.305, o>1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30;
bubble stream with an amount of 0 aimed at mid,
speed from 4 to 4,
offset from 0 to 0,
angle from 1 to 1,
lasts for 104.73 seconds
}
{
@109.583, o>3;
nrm2 wave with 6 rows aimed at mid,
speed from 4 to 6,
offset from -25 to -25,
amount from 2 to 2,
angle from 0 to 5
}
]
it me -> "Blü & Furret" <- !!!
let's use the song "Trapped In America" by "Starcadian", love that one!
my mp3 is called "Starcadian - Trapped In America.mp3"
make the preview my favorite part AKA 50% into it, just so gud OUO
subtext will be my favorite lyric: "Midnight Signals // 2017"
let's use 30 enemies
I'm feeling a 4 circle difficulty on this one
am I advanced? true
-~_ ^^ about me ^^ _~-
-~_ vv colors vv _~-
linear:
A -> #fb7a7a
B -> #e5fbff
homing -> #20674
bubble -> #0
hug -> #d8cafb
outline -> #10101
outer -> #0
slowmo -> #0
score -> #0
LEVEL TIME
vv spinrate vv
{ time -> 0 spin -> 0 }
{ time -> 210.599 spin -> 0 }
-------------------------
{ time -> 0 wub wub -> 1 }
{ time -> 210.599 wub wub -> 1 }
^^ timewarp ^^
bulletz!!!
{
@108.305, o>1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30;
bubble stream with an amount of 0 aimed at mid,
speed from 4 to 4,
offset from 0 to 0,
angle from 1 to 1,
lasts for 104.73 seconds
}
{
@109.583, o>3;
nrm2 wave (OAO) with 6 rows (oh noes!!) aimed at mid,
speed from 4 to 6,
offset from -25 to -25,
amount from 2 to 2,
angle from 0 to 5
}