<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://docs.divamodarchive.com/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=GGAB3</id>
	<title>DivaDocs - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://docs.divamodarchive.com/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=GGAB3"/>
	<link rel="alternate" type="text/html" href="https://docs.divamodarchive.com/Special:Contributions/GGAB3"/>
	<updated>2026-06-06T01:53:21Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.44.0</generator>
	<entry>
		<id>https://docs.divamodarchive.com/index.php?title=DivaScript&amp;diff=202</id>
		<title>DivaScript</title>
		<link rel="alternate" type="text/html" href="https://docs.divamodarchive.com/index.php?title=DivaScript&amp;diff=202"/>
		<updated>2026-03-06T19:57:31Z</updated>

		<summary type="html">&lt;p&gt;GGAB3: corrected lyric color info&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;DivaScript&#039;&#039; (commonly referred to as &#039;&#039;DSC&#039;&#039;) is the file format used by all the &#039;&#039;Project DIVA&#039;&#039; games for storing various commands related to Music Videos/PVs and Rhythm Game Charts.&lt;br /&gt;
&lt;br /&gt;
The data inside &amp;lt;code&amp;gt;.dsc&amp;lt;/code&amp;gt; files is stored in a binary format. This means that they can not be edited with a text editor and instead require specialized programs that can decode them such as [[DSC Studio]] or [[ScriptEditor]]. Additionally, &amp;lt;code&amp;gt;.dsc&amp;lt;/code&amp;gt; files from &#039;&#039;Project DIVA F2nd&#039;&#039; and &#039;&#039;Project DIVA X&#039;&#039; are encrypted using DIVAFILE encryption. They need to be decrypted before editing.&lt;br /&gt;
&lt;br /&gt;
== DSC Formats ==&lt;br /&gt;
Every &#039;&#039;Project DIVA&#039;&#039; game uses a specific DivaScript format. The exact format of a &amp;lt;code&amp;gt;.dsc&amp;lt;/code&amp;gt; file is determined by the first 4 bytes of the file.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|}&amp;lt;!-- Needs an actual list of all the formats and their DSC headers. --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== List of DSC Commands &#039;&#039;(Incomplete)&#039;&#039; ==&lt;br /&gt;
List of commands that can be used in FT, F, F2/X DSC formats. Format-exclusive commands are marked individually.&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Command Name&lt;br /&gt;
!Definition&lt;br /&gt;
!Parameter&lt;br /&gt;
!Description&lt;br /&gt;
!Type&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;6&amp;quot; |&lt;br /&gt;
&amp;lt;h6&amp;gt;AGEAGE_CTRL&amp;lt;/h6&amp;gt;&lt;br /&gt;
| rowspan=&amp;quot;6&amp;quot; |Controls the effect for the hair of the module &amp;quot;AgeAge Again&amp;quot;.&lt;br /&gt;
FT: &amp;lt;code&amp;gt;AGEAGE_CTRL(chara, parts, npr, rot_speed, skip, disp, -1, -1);&amp;lt;/code&amp;gt;&lt;br /&gt;
|chara&lt;br /&gt;
|Character slot&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|parts&lt;br /&gt;
|Hair parts to control:&lt;br /&gt;
&amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt;: both&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt;: left&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;2&amp;lt;/code&amp;gt;: right&lt;br /&gt;
|enum&lt;br /&gt;
|-&lt;br /&gt;
|npr&lt;br /&gt;
|sets NPR material&lt;br /&gt;
|bool&lt;br /&gt;
|-&lt;br /&gt;
|speed&lt;br /&gt;
|Effect speed&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|skip&lt;br /&gt;
|Skips 200 frames of animation.&lt;br /&gt;
|bool&lt;br /&gt;
|-&lt;br /&gt;
|disp&lt;br /&gt;
|Whether to display the effect or not.&lt;br /&gt;
|bool&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; |&lt;br /&gt;
&amp;lt;h6&amp;gt;BAR_TIME_SET&amp;lt;/h6&amp;gt;&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; |Sets the length of a measure.&lt;br /&gt;
&amp;lt;code&amp;gt;BAR_TIME_SET(bpm, beats);&amp;lt;/code&amp;gt;&lt;br /&gt;
|bpm&lt;br /&gt;
|Beats per minute&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|beats&lt;br /&gt;
|Number of quarter note beats minus 1. eg: &amp;lt;code&amp;gt;3&amp;lt;/code&amp;gt; for 4/4.&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; |&lt;br /&gt;
&amp;lt;h6&amp;gt;BLOOM&amp;lt;/h6&amp;gt;&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; |Sets data from &amp;lt;code&amp;gt;bloom&amp;lt;/code&amp;gt; pv_param.&lt;br /&gt;
FT, F2, X: &amp;lt;code&amp;gt;BLOOM(id, unk);&amp;lt;/code&amp;gt;&lt;br /&gt;
|id&lt;br /&gt;
|ID matching the data in pv_param.&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|unk&lt;br /&gt;
|Unknown&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;h6&amp;gt;CHANGE_FIELD&amp;lt;/h6&amp;gt;&lt;br /&gt;
|Changes the field defined in &amp;lt;code&amp;gt;pv_field&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;pv_db&amp;lt;/code&amp;gt;.&lt;br /&gt;
&amp;lt;code&amp;gt;CHANGE_FIELD(id);&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
F2, X: &amp;lt;code&amp;gt;CHANGE_FIELD(id, unk);&amp;lt;/code&amp;gt;&lt;br /&gt;
|id&lt;br /&gt;
|ID matching the field number in &amp;lt;code&amp;gt;pv_field&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;pv_db&amp;lt;/code&amp;gt;.&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; |&lt;br /&gt;
&amp;lt;h6&amp;gt;CHARA_SIZE&amp;lt;/h6&amp;gt;&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; |Sets a character&#039;s scale/size.&lt;br /&gt;
&amp;lt;code&amp;gt;CHARA_SIZE(chara, size);&amp;lt;/code&amp;gt;&lt;br /&gt;
|chara&lt;br /&gt;
|Character slot&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|size&lt;br /&gt;
|Character scale&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
====== EDIT_BLUSH ======&lt;br /&gt;
|Sets a character&#039;s facial effect&lt;br /&gt;
&amp;lt;code&amp;gt;EDIT_BLUSH(id);&amp;lt;/code&amp;gt;&lt;br /&gt;
|id&lt;br /&gt;
|Character facial effect&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;h6&amp;gt;END&amp;lt;/h6&amp;gt;&lt;br /&gt;
|Ends reading of the script.&lt;br /&gt;
&amp;lt;code&amp;gt;END();&amp;lt;/code&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; |&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;4&amp;quot; |&lt;br /&gt;
====== EXPRESSION ======&lt;br /&gt;
| rowspan=&amp;quot;4&amp;quot; |Sets a character&#039;s face expression&lt;br /&gt;
&amp;lt;code&amp;gt;EXPRESSION(chara, expression id, interpolation, -1);&amp;lt;/code&amp;gt;&lt;br /&gt;
|chara&lt;br /&gt;
|Character slot&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|expression id&lt;br /&gt;
|Expression ids from 0-77&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|interpolation&lt;br /&gt;
|Transition time between face expressions&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
| -1&lt;br /&gt;
|&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; |&lt;br /&gt;
&amp;lt;h6&amp;gt;HAND_SCALE&amp;lt;/h6&amp;gt;&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; |Sets the size of a character&#039;s hand.&lt;br /&gt;
FT: &amp;lt;code&amp;gt;HAND_SCALE(chara, hand, scale);&amp;lt;/code&amp;gt;&lt;br /&gt;
|chara&lt;br /&gt;
|Character slot&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|hand&lt;br /&gt;
|Which hand to scale:&lt;br /&gt;
&amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt;: left&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;2&amp;lt;/code&amp;gt;: right&lt;br /&gt;
|enum&lt;br /&gt;
|-&lt;br /&gt;
|scale&lt;br /&gt;
|Hand scale in percentage times 10; eg. for &amp;lt;code&amp;gt;105%&amp;lt;/code&amp;gt; use &amp;lt;code&amp;gt;1050&amp;lt;/code&amp;gt;&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;5&amp;quot; |&lt;br /&gt;
====== HAND_ANIM ======&lt;br /&gt;
| rowspan=&amp;quot;5&amp;quot; |Sets the animation of a character&#039;s hand&lt;br /&gt;
&amp;lt;code&amp;gt;HAND_ANIM(chara, hand side, anim id, interpolation, -1);&amp;lt;/code&amp;gt;&lt;br /&gt;
|chara&lt;br /&gt;
|Character slot&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|hand side&lt;br /&gt;
|Which hand to apply the animation to:&lt;br /&gt;
&amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt;: left&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt;: right&lt;br /&gt;
|enum&lt;br /&gt;
|-&lt;br /&gt;
|anim id&lt;br /&gt;
|HAND_ANIM IDs from 0-14&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|interpolation&lt;br /&gt;
|Transition time between animations&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
| -1&lt;br /&gt;
|&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
====== HAND_ITEM ======&lt;br /&gt;
|Shows or hides a hand item defined in &amp;lt;code&amp;gt;pv_db&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;HAND_ITEM(id);&amp;lt;/code&amp;gt;&lt;br /&gt;
|id&lt;br /&gt;
|ID matching the hand item number in &amp;lt;code&amp;gt;pv_db&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;-1&amp;lt;/code&amp;gt;: off&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; |&lt;br /&gt;
&amp;lt;h6&amp;gt;LYRIC&amp;lt;/h6&amp;gt;&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; |Displays a lyric from &amp;lt;code&amp;gt;pv_db&amp;lt;/code&amp;gt;.&lt;br /&gt;
&amp;lt;code&amp;gt;LYRIC(id, color);&amp;lt;/code&amp;gt;&lt;br /&gt;
|id&lt;br /&gt;
|ID matching the number of a lyric in &amp;lt;code&amp;gt;pv_db&amp;lt;/code&amp;gt;.&lt;br /&gt;
Use &amp;lt;code&amp;gt;-1&amp;lt;/code&amp;gt; as &amp;quot;disable&amp;quot;.&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|color&lt;br /&gt;
|&amp;lt;code&amp;gt;#AARRGGBB&amp;lt;/code&amp;gt; hex color code converted to decimal (from [[wikipedia:Two&#039;s_complement|signed 2&#039;s complement]])&lt;br /&gt;
eg. for a red lyric the command would be &amp;lt;code&amp;gt;LYRIC(id, -65536);&amp;lt;/code&amp;gt; &lt;br /&gt;
&lt;br /&gt;
because Red: &amp;lt;code&amp;gt;FFFF0000&amp;lt;/code&amp;gt; →  &amp;lt;code&amp;gt;-65536&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Breakdown of the value:&lt;br /&gt;
&lt;br /&gt;
Alpha = FF → fully opaque&lt;br /&gt;
&lt;br /&gt;
Red = FF → fully red&lt;br /&gt;
&lt;br /&gt;
Green= 00 → absence of green&lt;br /&gt;
&lt;br /&gt;
Blue= 00 → absence of blue&lt;br /&gt;
&lt;br /&gt;
Default: &amp;lt;code&amp;gt;-1&amp;lt;/code&amp;gt;&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; |&lt;br /&gt;
&amp;lt;h6&amp;gt;MIKU_DISP&amp;lt;/h6&amp;gt;&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; |Shows or hides a character in a PV.&lt;br /&gt;
&amp;lt;code&amp;gt;MIKU_DISP(chara, disp);&amp;lt;/code&amp;gt;&lt;br /&gt;
|chara&lt;br /&gt;
|Character slot&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|disp&lt;br /&gt;
|Whether to display the character or not.&lt;br /&gt;
|bool&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;4&amp;quot; |&lt;br /&gt;
&amp;lt;h6&amp;gt;MIKU_MOVE&amp;lt;/h6&amp;gt;&lt;br /&gt;
| rowspan=&amp;quot;4&amp;quot; |Moves a character in 3D space in a PV.&lt;br /&gt;
&amp;lt;code&amp;gt;MIKU_MOVE(chara, x, y, z);&amp;lt;/code&amp;gt;&lt;br /&gt;
|chara&lt;br /&gt;
|Character slot&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|x&lt;br /&gt;
|X coordinate&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|y&lt;br /&gt;
|Y coordinate&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|z&lt;br /&gt;
|Z coordinate&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; |&lt;br /&gt;
&amp;lt;h6&amp;gt;MIKU_ROT&amp;lt;/h6&amp;gt;&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; |Rotates a character in a PV.&lt;br /&gt;
&amp;lt;code&amp;gt;MIKU_ROT(chara, angle);&amp;lt;/code&amp;gt;&lt;br /&gt;
|chara&lt;br /&gt;
|Character slot&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|angle&lt;br /&gt;
|Angle value&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; |&lt;br /&gt;
&amp;lt;h6&amp;gt;MIKU_SHADOW&amp;lt;/h6&amp;gt;&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; |Shows or hides a character&#039;s shadow in a PV.&lt;br /&gt;
&amp;lt;code&amp;gt;MIKU_SHADOW(chara, disp);&amp;lt;/code&amp;gt;&lt;br /&gt;
|chara&lt;br /&gt;
|Character slot&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|disp&lt;br /&gt;
|Whether to display the character&#039;s shadow or not.&lt;br /&gt;
|bool&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; |&lt;br /&gt;
&amp;lt;h6&amp;gt;MODE_SELECT&amp;lt;/h6&amp;gt;&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; |Starts or ends a special chart segment, such as Chance Time.&lt;br /&gt;
&amp;lt;code&amp;gt;MODE_SELECT(difficulty, mode);&amp;lt;/code&amp;gt;&lt;br /&gt;
|difficulty&lt;br /&gt;
|Indicates under what difficulties the command will trigger in this exact script.&lt;br /&gt;
This value is a bit flag corresponding to a group of difficulties:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; - Easy&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;2&amp;lt;/code&amp;gt; - Normal&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;4&amp;lt;/code&amp;gt; - Hard&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;8&amp;lt;/code&amp;gt; - Extreme&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;16&amp;lt;/code&amp;gt; - Encore&lt;br /&gt;
&lt;br /&gt;
Adding the values up to each other results in a group: &amp;lt;code&amp;gt;6&amp;lt;/code&amp;gt; = Hard (4) and Normal (2).&lt;br /&gt;
&lt;br /&gt;
Use &amp;lt;code&amp;gt;31&amp;lt;/code&amp;gt; as a universal value (works on any difficulty).&lt;br /&gt;
|bitfield enum&lt;br /&gt;
|-&lt;br /&gt;
|mode&lt;br /&gt;
|What segment to start/end:&lt;br /&gt;
&amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; - Challenge Time (Arcade games) / Chance Time (Console games) Start&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;3&amp;lt;/code&amp;gt; - Challenge Time (Arcade games) / Chance Time (Console games) End&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;8&amp;lt;/code&amp;gt; - Technical Zone Start&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;9&amp;lt;/code&amp;gt; - Technical Zone End&lt;br /&gt;
&lt;br /&gt;
Only used by the [https://divamodarchive.com/post/169 New Classics mod]:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;4&amp;lt;/code&amp;gt; - Chance Time Start&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;5&amp;lt;/code&amp;gt; - Chance Time End&lt;br /&gt;
|enum&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; |&lt;br /&gt;
&amp;lt;h6&amp;gt;MOVIE_CUT_CHG&amp;lt;/h6&amp;gt;&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; |Plays, shows or hides the movie defined in &amp;lt;code&amp;gt;pv_db&amp;lt;/code&amp;gt; or a movie from &amp;lt;code&amp;gt;movie_list&amp;lt;/code&amp;gt; in &amp;lt;code&amp;gt;pv_db&amp;lt;/code&amp;gt;. It can be used as a fancier version of both &amp;lt;code&amp;gt;MOVIE_DISP&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;MOVIE_PLAY&amp;lt;/code&amp;gt; that allows more control.&lt;br /&gt;
FT: &amp;lt;code&amp;gt;MOVIE_CUT_CHG(id, disp);&amp;lt;/code&amp;gt;&lt;br /&gt;
|id&lt;br /&gt;
|The number in &amp;lt;code&amp;gt;movie_list&amp;lt;/code&amp;gt; of the movie to be played.&lt;br /&gt;
Playback starts at the moment the command is called for a newly called &amp;lt;code&amp;gt;movie_list&amp;lt;/code&amp;gt; item. Re-calling a movie again doesn&#039;t play it from the starting position.&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|disp&lt;br /&gt;
|&amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; - display the movie layer&lt;br /&gt;
Any other value - hide the movie layer (playback keeps going)&lt;br /&gt;
|bool&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;h6&amp;gt;MOVIE_DISP&amp;lt;/h6&amp;gt;&lt;br /&gt;
|Shows or hides the movie layer in a PV.&lt;br /&gt;
&amp;lt;code&amp;gt;MOVIE_DISP(disp);&amp;lt;/code&amp;gt;&lt;br /&gt;
|disp&lt;br /&gt;
|&amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; - display the movie layer&lt;br /&gt;
Any other value - hide the movie layer (playback keeps going)&lt;br /&gt;
|bool&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;h6&amp;gt;MOVIE_PLAY&amp;lt;/h6&amp;gt;&lt;br /&gt;
|Starts playing the movie defined in &amp;lt;code&amp;gt;pv_db&amp;lt;/code&amp;gt; or the first movie in &amp;lt;code&amp;gt;movie_list&amp;lt;/code&amp;gt; in &amp;lt;code&amp;gt;pv_db&amp;lt;/code&amp;gt;.&lt;br /&gt;
&amp;lt;code&amp;gt;MOVIE_PLAY(play);&amp;lt;/code&amp;gt;&lt;br /&gt;
|play&lt;br /&gt;
|&amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; - plays the movie&lt;br /&gt;
Any other value doesn&#039;t do anything.&lt;br /&gt;
|bool&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;h6&amp;gt;MUSIC_PLAY&amp;lt;/h6&amp;gt;&lt;br /&gt;
|Starts playing the song file defined in &amp;lt;code&amp;gt;pv_db&amp;lt;/code&amp;gt;.&lt;br /&gt;
&amp;lt;code&amp;gt;MUSIC_PLAY();&amp;lt;/code&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; |&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;h6&amp;gt;PV_BRANCH_MODE&amp;lt;/h6&amp;gt;&lt;br /&gt;
|Make future DSC commands only be executed on either the &amp;lt;code&amp;gt;Global&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;Fail&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;Success&amp;lt;/code&amp;gt; branch.&lt;br /&gt;
FT, F, F2, X: &amp;lt;code&amp;gt;PV_BRANCH_MODE(branch);&amp;lt;/code&amp;gt;&lt;br /&gt;
|branch&lt;br /&gt;
|&amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt; - Global (commands are executed regardless of success state)&lt;br /&gt;
&amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; - Fail (commands are executed only if the PV is in the &#039;failed&#039; state)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;2&amp;lt;/code&amp;gt; - Success (commands are executed only if the PV is in the &#039;success&#039; state)&lt;br /&gt;
|enum&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;h6&amp;gt;PV_END&amp;lt;/h6&amp;gt;&lt;br /&gt;
|Ends PV playback.&lt;br /&gt;
&amp;lt;code&amp;gt;PV_END();&amp;lt;/code&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; |&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;h6&amp;gt;SATURATE&amp;lt;/h6&amp;gt;&lt;br /&gt;
|Changes color saturation in a PV.&lt;br /&gt;
&amp;lt;code&amp;gt;SATURATE(amount);&amp;lt;/code&amp;gt;&lt;br /&gt;
|amount&lt;br /&gt;
|Saturation strength on a scale from 0 to 1000:&lt;br /&gt;
&amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt; - No color, perfect grayscale&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;1000&amp;lt;/code&amp;gt; - Regular colors&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;6&amp;quot; |&lt;br /&gt;
&amp;lt;h6&amp;gt;SCENE_FADE&amp;lt;/h6&amp;gt;&lt;br /&gt;
| rowspan=&amp;quot;6&amp;quot; |Plays a screen fade effect during PVs.&lt;br /&gt;
&amp;lt;code&amp;gt;SCENE_FADE(duration, start, end, r, g, b)&amp;lt;/code&amp;gt;&lt;br /&gt;
|duration&lt;br /&gt;
|Fade duration in milliseconds&lt;br /&gt;
eg:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;1000&amp;lt;/code&amp;gt;: 1 second&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;800&amp;lt;/code&amp;gt;: 0.8 seconds&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|start&lt;br /&gt;
|The opacity the fade will start with&lt;br /&gt;
&amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt;: fully transparent&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;1000&amp;lt;/code&amp;gt;: fully opaque&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|end&lt;br /&gt;
|The opacity the fade will end with&lt;br /&gt;
&amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt;: fully transparent&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;1000&amp;lt;/code&amp;gt;: fully opaque&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|r&lt;br /&gt;
|Red color component scale, from 0 to 1000&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|g&lt;br /&gt;
|Green color component scale, from 0 to 1000&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|b&lt;br /&gt;
|Blue color component scale, from 0 to 1000&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;h6&amp;gt;SE_EFFECT&amp;lt;/h6&amp;gt;&lt;br /&gt;
|Plays a sound effect in a PV defined in &amp;lt;code&amp;gt;pv_db&amp;lt;/code&amp;gt;. Normally used for success scenes but not restricted to them.&lt;br /&gt;
FT, F, F2, X: &amp;lt;code&amp;gt;SE_EFFECT(id);&amp;lt;/code&amp;gt;&lt;br /&gt;
|id&lt;br /&gt;
|number of a &amp;lt;code&amp;gt;effect_se_name_list&amp;lt;/code&amp;gt; item defined in &amp;lt;code&amp;gt;pv_db&amp;lt;/code&amp;gt;.&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;12&amp;quot; |&lt;br /&gt;
&amp;lt;h6&amp;gt;TARGET&amp;lt;/h6&amp;gt;&lt;br /&gt;
| rowspan=&amp;quot;12&amp;quot; |Spawns a rhythm game note.&lt;br /&gt;
FT: &amp;lt;code&amp;gt;TARGET(type, pos_x, pos_y, angle, dist, amp, freq);&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
F: &amp;lt;code&amp;gt;TARGET(type, duration, is_end, pos_x, pos_y, angle, freq, dist, amp, fly_time, sig);&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
F2, X: &amp;lt;code&amp;gt;TARGET(type, duration, is_end, pos_x, pos_y, angle, freq, dist, amp, fly_time, sig, hit_eff);&amp;lt;/code&amp;gt;&lt;br /&gt;
|type&lt;br /&gt;
|ID corresponding to a note type.&lt;br /&gt;
Full ID list for each game on the dedicated [[Target]] page.&lt;br /&gt;
|enum&lt;br /&gt;
|-&lt;br /&gt;
|pos_x&lt;br /&gt;
|X position of the note&#039;s target.&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|pos_y&lt;br /&gt;
|Y position of the note&#039;s target.&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|angle&lt;br /&gt;
|Angle of the note&#039;s path.&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|distance&lt;br /&gt;
|Distance between the note&#039;s spawn position and the target&#039;s position.&lt;br /&gt;
Default: &amp;lt;code&amp;gt;300000&amp;lt;/code&amp;gt;&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|amp&lt;br /&gt;
|Amplitude of the note&#039;s path wave.&lt;br /&gt;
Default: &amp;lt;code&amp;gt;500&amp;lt;/code&amp;gt;&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|freq&lt;br /&gt;
|Frequency of the note&#039;s path wave.&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|duration&lt;br /&gt;
|(for F/F2/X formats)&lt;br /&gt;
Sustain and Rush Note duration.&lt;br /&gt;
Default (for notes other than Sustain and Rush): &amp;lt;code&amp;gt;-1&amp;lt;/code&amp;gt;&lt;br /&gt;
|DivaTime&lt;br /&gt;
|-&lt;br /&gt;
|is_end&lt;br /&gt;
|(for F/F2/X formats)&lt;br /&gt;
set to &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; for Sustain &#039;end&#039; notes, otherwise set to &amp;lt;code&amp;gt;-1&amp;lt;/code&amp;gt;&lt;br /&gt;
|bool&lt;br /&gt;
|-&lt;br /&gt;
|fly_time&lt;br /&gt;
|(for F/F2/X formats)&lt;br /&gt;
Target Flying Time value (same format as the TARGET_FLYING_TIME command)&lt;br /&gt;
|DivaTime&lt;br /&gt;
|-&lt;br /&gt;
|sig&lt;br /&gt;
|(for F/F2/X formats)&lt;br /&gt;
Time Signature&lt;br /&gt;
&lt;br /&gt;
The same value that would otherwise go in &amp;lt;code&amp;gt;BAR_TIME_SET&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
Number of quarter note beats minus 1. eg: &amp;lt;code&amp;gt;3&amp;lt;/code&amp;gt; for 4/4.&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|hit_eff&lt;br /&gt;
|(for F2/X formats)&lt;br /&gt;
Assigns a hit effect to the note based on a local ID defined in a previous TARGET_EFFECT command.&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;h6&amp;gt;TARGET_FLYING_TIME&amp;lt;/h6&amp;gt;&lt;br /&gt;
|Sets the time it takes for the rhythm game notes to hit their targets.&lt;br /&gt;
&amp;lt;code&amp;gt;TARGET_FLYING_TIME(flytime);&amp;lt;/code&amp;gt;&lt;br /&gt;
|flytime&lt;br /&gt;
|time value in milliseconds&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;h6&amp;gt;TIME&amp;lt;/h6&amp;gt;&lt;br /&gt;
|Waits until a specified game time.&lt;br /&gt;
&amp;lt;code&amp;gt;TIME(t);&amp;lt;/code&amp;gt;&lt;br /&gt;
|t&lt;br /&gt;
|time value in DivaTime&lt;br /&gt;
|DivaTime&lt;br /&gt;
|}&amp;lt;!-- Please keep all the commands in alphabetical order!! --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= References =&lt;br /&gt;
somewhatlurker&#039;s [https://github.com/somewhatlurker/pydiva/blob/dsc/pydiva/pydsc_op_db.py pyDIVA/pyDSC]&lt;/div&gt;</summary>
		<author><name>GGAB3</name></author>
	</entry>
	<entry>
		<id>https://docs.divamodarchive.com/index.php?title=User:GGAB3/Sandbox&amp;diff=200</id>
		<title>User:GGAB3/Sandbox</title>
		<link rel="alternate" type="text/html" href="https://docs.divamodarchive.com/index.php?title=User:GGAB3/Sandbox&amp;diff=200"/>
		<updated>2026-01-27T18:16:09Z</updated>

		<summary type="html">&lt;p&gt;GGAB3: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Project DIVA games store general information about the PVs in a database file called &amp;lt;code&amp;gt;pv_db.txt&amp;lt;/code&amp;gt;, located in the &amp;lt;code&amp;gt;rom&amp;lt;/code&amp;gt; folder. The data inside is stored in plain text, meaning the file can be opened and edited using any text editor, such as [[wikipedia:Windows_Notepad|Notepad]].&lt;br /&gt;
&lt;br /&gt;
For the later games (Project DIVA F2nd and Project DIVA X) the &amp;lt;code&amp;gt;pv_db&amp;lt;/code&amp;gt; file is encrypted using DIVAFILE encryption. They need to be decrypted before editing.&lt;br /&gt;
&lt;br /&gt;
Multiple &amp;lt;code&amp;gt;pv_db&amp;lt;/code&amp;gt; databases can not be loaded sequentially. Instead, only the contents of the last loaded &amp;lt;code&amp;gt;pv_db&amp;lt;/code&amp;gt; file gets parsed by the game, overwriting the &#039;&#039;&#039;&#039;&#039;entire&#039;&#039;&#039;&#039;&#039; base game &amp;lt;code&amp;gt;pv_db&amp;lt;/code&amp;gt; as a result.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;pv_db&amp;lt;/code&amp;gt; files can have a prefix in their file name to indicate a specific use case:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;&#039;&#039;&#039;mdata&#039;&#039;&#039;_pv_db&amp;lt;/code&amp;gt; - Primarily used in Project DIVA Arcade Future Tone&#039;s [[MDATA]] system. It is also seen in games such as Project DIVA Mega Mix+, where it is used as the dlc &amp;lt;code&amp;gt;pv_db&amp;lt;/code&amp;gt;. &lt;br /&gt;
* &amp;lt;code&amp;gt;&#039;&#039;&#039;mod&#039;&#039;&#039;_pv_db&amp;lt;/code&amp;gt; - Custom prefix read by [https://github.com/blueskythlikesclouds/DivaModLoader DivaModLoader] for Project DIVA Mega Mix+ mods. The contents of each &amp;lt;code&amp;gt;mod_pv_db&amp;lt;/code&amp;gt; gets loaded sequentially, in the mod load order. Entries pointing to the same PV slot get overwritten in load order.&lt;br /&gt;
&lt;br /&gt;
== Structure ==&lt;br /&gt;
Similarly to other plain text databases in Project DIVA, &#039;&#039;&#039;proprieties&#039;&#039;&#039;/&#039;&#039;&#039;keywords&#039;&#039;&#039; are separated by &amp;lt;code&amp;gt;.&amp;lt;/code&amp;gt; and &#039;&#039;&#039;values&#039;&#039;&#039; are attributed to certain proprieties using &amp;lt;code&amp;gt;=&amp;lt;/code&amp;gt;. All lines in the database need to be written in lexicographical order (a → z, 0 → 9 etc.) in order to be parsed correctly by the game.&lt;br /&gt;
&lt;br /&gt;
Each entry in a &amp;lt;code&amp;gt;pv_db&amp;lt;/code&amp;gt; begins by specifying the PV slot to which we can attach a propriety and attribute a value, like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;pv_###.propriety=value&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;pv_268.date=202001001&amp;lt;/code&amp;gt; (meaning pv_268 [Catch the Wave]&#039;s date is 01 Jan 2020.)&lt;br /&gt;
&lt;br /&gt;
Proprieties can also be chained or composed of arrays:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&amp;lt;code&amp;gt;pv_268.songinfo.lyrics=kz&amp;lt;/code&amp;gt; &lt;br /&gt;
&amp;lt;code&amp;gt;pv_268.songinfo.music=kz&amp;lt;/code&amp;gt;&lt;br /&gt;
|chained properties&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;pv_268.lyric.001=Catch the wave君と&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;pv_268.lyric.002=掴む音で&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;pv_268.lyric.003=まだまだ歌おう&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;pv_268.lyric.004=Wave your handsもっと&amp;lt;/code&amp;gt;&lt;br /&gt;
|array properties&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== List of valid &amp;lt;code&amp;gt;pv_db&amp;lt;/code&amp;gt; keywords ==&lt;br /&gt;
All the keywords that can be used in &amp;lt;code&amp;gt;pv_db&amp;lt;/code&amp;gt; are defined in the game&#039;s internal systems. Here is a table with all the keywords that can be used after &amp;lt;code&amp;gt;pv_###.&amp;lt;/code&amp;gt;:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
! colspan=&amp;quot;5&amp;quot; |Keywords and derived keywords&lt;br /&gt;
!Valid values&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;6&amp;quot; |another_song&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |name&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |name_en&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |song_file_name&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |vocal_chara_num&lt;br /&gt;
|enum: [MIK, RIN, LEN, LUK, KAI, MEI, NER, HAK, SAK, TET] (?)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |vocal_disp_name&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |vocal_disp_name_en&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|auth_replace_by_module&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;5&amp;quot; |bpm&lt;br /&gt;
|any number&lt;br /&gt;
|BPM of the song. Not directly used in the game but &#039;&#039;&#039;required for loading the PV&#039;&#039;&#039;.&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;5&amp;quot; |chainslide_failure_name&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;5&amp;quot; |chainslide_first_name&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;5&amp;quot; |chainslide_sub_name&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;5&amp;quot; |chainslide_success_name&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;5&amp;quot; |chrcam&lt;br /&gt;
| rowspan=&amp;quot;4&amp;quot; |&#039;&#039;&#039;&#039;&#039;[array index]&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; |chara&lt;br /&gt;
|enum: [MIK, RIN, LEN, LUK, KAI, MEI, NER, HAK, SAK, TET, EXT]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; |id&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; |name&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; |org_name&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |length&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;6&amp;quot; |chreff&lt;br /&gt;
| rowspan=&amp;quot;5&amp;quot; |&#039;&#039;&#039;&#039;&#039;[array index]&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; |data&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; |&#039;&#039;&#039;&#039;&#039;[array index]&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
|name&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|type&lt;br /&gt;
|enum: [AUTH3D, AUTH3D_OBJ]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |length&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; |id&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; |name&lt;br /&gt;
|enum: [MIK, RIN, LEN, LUK, KAI, MEI, NER, HAK, SAK, TET, EXT]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |num&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;5&amp;quot; |chrmot&lt;br /&gt;
| rowspan=&amp;quot;4&amp;quot; |&#039;&#039;&#039;&#039;&#039;[array index]&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; |chara&lt;br /&gt;
|enum: [MIK, RIN, LEN, LUK, KAI, MEI, NER, HAK, SAK, TET, EXT]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; |id&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; |name&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; |org_name&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |length&lt;br /&gt;
|any number representing a date formatted like &amp;lt;code&amp;gt;yyyymmdd&amp;lt;/code&amp;gt;&lt;br /&gt;
|Date of the song&#039;s addition to the game. Not directly used in game but &#039;&#039;&#039;required for loading the PV&#039;&#039;&#039;.&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;5&amp;quot; |date&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;13&amp;quot; |difficulty&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; |attribute&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; |extra&lt;br /&gt;
|bool&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; |original&lt;br /&gt;
|bool&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; |slide&lt;br /&gt;
|bool&lt;br /&gt;
|Specifies if the chart has Slide notes in it. It also adds the slide icon in the Song Select Screen.&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;10&amp;quot; |easy&lt;br /&gt;
&lt;br /&gt;
normal&lt;br /&gt;
&lt;br /&gt;
hard&lt;br /&gt;
&lt;br /&gt;
extreme&lt;br /&gt;
&lt;br /&gt;
encore&lt;br /&gt;
| rowspan=&amp;quot;9&amp;quot; |&#039;&#039;&#039;&#039;&#039;[array index]&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; |attribute&lt;br /&gt;
|extra&lt;br /&gt;
|bool&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|original&lt;br /&gt;
|bool&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|slide&lt;br /&gt;
|bool&lt;br /&gt;
|Specifies if the chart has Slide notes in it. It also adds the slide icon in the Song Select Screen.&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |edition&lt;br /&gt;
|any number&lt;br /&gt;
|&amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; sets the chart as &amp;quot;extra&amp;quot;. Normally only used to set an additional &amp;lt;code&amp;gt;extreme&amp;lt;/code&amp;gt; entry as &#039;&#039;&#039;Extra Extreme&#039;&#039;&#039;.&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |level&lt;br /&gt;
|string formatted like &amp;lt;code&amp;gt;PV_LV_&#039;&#039;&#039;XX&#039;&#039;&#039;_&#039;&#039;&#039;Y&#039;&#039;&#039;&amp;lt;/code&amp;gt;,&lt;br /&gt;
where XX is a number from &amp;lt;code&amp;gt;01&amp;lt;/code&amp;gt; to &amp;lt;code&amp;gt;10&amp;lt;/code&amp;gt; (including leading 0) and Y is either &amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;5&amp;lt;/code&amp;gt;.&lt;br /&gt;
|Sets the chart&#039;s star rating.&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |level_sort_index&lt;br /&gt;
|any number&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |script_file_name&lt;br /&gt;
|path to the script file, relative to the folder the content is being loaded from: &amp;lt;code&amp;gt;rom/...&amp;lt;/code&amp;gt;&lt;br /&gt;
|Specifies where the chart&#039;s [[DivaScript|script]] is located.&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |script_format&lt;br /&gt;
|hex number representing the contents of the &amp;lt;code&amp;gt;.dsc&amp;lt;/code&amp;gt;&#039;s first 4 bytes &lt;br /&gt;
|Specifies the [[DivaScript#DSC Formats|script format]].&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |version&lt;br /&gt;
|any number&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; |length&lt;br /&gt;
|number of items in array for each difficulty&lt;br /&gt;
|Sets the length for each difficulty. Usually set to &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; and only set to &amp;lt;code&amp;gt;2&amp;lt;/code&amp;gt; for &amp;lt;code&amp;gt;extreme&amp;lt;/code&amp;gt; entries that have Extra Extreme.&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;5&amp;quot; |disable_calc_motfrm_limit&lt;br /&gt;
|bool&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;9&amp;quot; |disp2d&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |set_name&lt;br /&gt;
|string from the corresponding &amp;lt;code&amp;gt;aet_gam_pv###.bin&amp;lt;/code&amp;gt; Aet Set.&lt;br /&gt;
|Links an Aet Set to be called and displayed in the PV.&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |target_shadow_type&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |title_2d_layer&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |title_end_2d_field&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |title_end_2d_low_field&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |title_end_3d_field&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |title_start_2d_field&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |title_start_2d_low_field&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |title_start_3d_field&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;5&amp;quot; |edit&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|edit_chara_scale&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |bool&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|edit_effect&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|edit_effect_low_field&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|effect_se_file_name&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|effect_se_name_list&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; |ex_song&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; |&#039;&#039;&#039;&#039;&#039;[array index]&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; |chara&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; |file&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |length&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;5&amp;quot; |eyes_base_adjust_type&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;5&amp;quot; |eyes_xrot_adjust&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;5&amp;quot; |eyes_rot_rate&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|frame_texture&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|frame_texture_a&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|frame_texture_b&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|frame_texture_c&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|frame_texture_d&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|frame_texture_e&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|frame_texture_type&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|frame_texture_a_type&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|frame_texture_b_type&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|frame_texture_c_type&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|frame_texture_d_type&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|frame_texture_e_type&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|hand_item&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |&#039;&#039;&#039;&#039;&#039;[array index]&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;5&amp;quot; |hidden_timing&lt;br /&gt;
|decimal number&lt;br /&gt;
|Controls the [[Hidden Modifier]].&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;5&amp;quot; |high_speed_rate&lt;br /&gt;
|decimal number&lt;br /&gt;
|Controls the [[High Speed Modifier]].&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;5&amp;quot; |is_old_pv&lt;br /&gt;
|bool&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|lyric&lt;br /&gt;
lyric_en&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |&#039;&#039;&#039;&#039;&#039;[lyric array index]&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
(3 digits, including leading 0&#039;s) &lt;br /&gt;
|String containing the lyric.&lt;br /&gt;
Each numbered lyric can be called in the [[DivaScript|PV script]] in any order.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; |mdata&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |dir&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |flag&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|motion&lt;br /&gt;
&lt;br /&gt;
motion2P&lt;br /&gt;
&lt;br /&gt;
motion3P&lt;br /&gt;
&lt;br /&gt;
motion4P&lt;br /&gt;
&lt;br /&gt;
motion5P&lt;br /&gt;
&lt;br /&gt;
motion6P&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |&#039;&#039;&#039;&#039;&#039;[motion array index]&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
(2 digits, including leading 0) &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; |movie_list&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; |&#039;&#039;&#039;&#039;&#039;[array index]&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
|name&lt;br /&gt;
|path to a movie file, relative to the folder the content is being loaded from: &amp;lt;code&amp;gt;rom/...&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |length&lt;br /&gt;
|number of items is array&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;5&amp;quot; |movie_file_name&lt;br /&gt;
|path to a movie file, relative to the folder the content is being loaded from: &amp;lt;code&amp;gt;rom/...&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;5&amp;quot; |movie_pv_type&lt;br /&gt;
|enum: [ONLY, ALTERNATELY, PARALLEL, EFFECT]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;5&amp;quot; |movie_surface&lt;br /&gt;
|enum: [BACK, FRONT]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|npr&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |chara_lightness&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|osage_init&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;5&amp;quot; |pack&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;13&amp;quot; |performer&lt;br /&gt;
| rowspan=&amp;quot;12&amp;quot; |&#039;&#039;&#039;&#039;&#039;[array index]&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; |chara&lt;br /&gt;
|enum: [MIK, RIN, LEN, LUK, KAI, MEI, NER, HAK, SAK, TET, EXT]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; |costume&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; |exclude&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; |fixed&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; |item_back&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; |item_face&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; |item_neck&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; |item_zujo&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; |pv_costume&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; |pseudo_same_id&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; |size&lt;br /&gt;
|enum: [NORMAL, PLAY_CHARA, PV_CHARA, SHORT, TALL]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; |type&lt;br /&gt;
|enum: [VOCAL, PSEUDO_DEFAULT, PSEUDO_SAME, PSEUDO_SWIM, PSEUDO_SWIM_S, PSEUDO_MY_CHARA, GUEST]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |num&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;5&amp;quot; |pre_play_script&lt;br /&gt;
|bool&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|pv_expression&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; |file_name&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|pv_item&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;5&amp;quot; |pvbranch_success_se_name&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|rank_board_id&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|remix_parent&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|resolution_scale&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|resolution_scale_neo&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; |sabi&lt;br /&gt;
|play_time&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|start_time&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|se_name&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|slide_name&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|slidertouch_name&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|song_file_name&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|song_name&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|song_name_en&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|song_name_reading&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|song_name_reading_en&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;9&amp;quot; |songinfo&lt;br /&gt;
songinfo_en&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |arranger&lt;br /&gt;
|string&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; |ex_info&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; |0&lt;br /&gt;
1&lt;br /&gt;
&lt;br /&gt;
2&lt;br /&gt;
&lt;br /&gt;
3&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;[this is &#039;&#039;&#039;not&#039;&#039;&#039; a proper array]&#039;&#039;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |key&lt;br /&gt;
|string&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; |Used for custom songinfo credits.&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;ex_info isn&#039;t displayed in MM+ by default&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |val&lt;br /&gt;
|string&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |guitar_player&lt;br /&gt;
|string&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |illustrator&lt;br /&gt;
|string&lt;br /&gt;
|&#039;&#039;&#039;&#039;&#039;illustrator isn&#039;t displayed in MM+ by default&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |lyrics&lt;br /&gt;
|string&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |manipulator&lt;br /&gt;
|string&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |music&lt;br /&gt;
|string&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |pv_editor&lt;br /&gt;
|string&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;5&amp;quot; |sudden_timing&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|stage_param&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; |title_image&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |aet_name&lt;br /&gt;
|string&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |end_time&lt;br /&gt;
|number&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |time&lt;br /&gt;
|number&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;5&amp;quot; |use_osage_play_data&lt;br /&gt;
|bool&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
__FORCETOC__&lt;/div&gt;</summary>
		<author><name>GGAB3</name></author>
	</entry>
	<entry>
		<id>https://docs.divamodarchive.com/index.php?title=User:GGAB3/Sandbox&amp;diff=198</id>
		<title>User:GGAB3/Sandbox</title>
		<link rel="alternate" type="text/html" href="https://docs.divamodarchive.com/index.php?title=User:GGAB3/Sandbox&amp;diff=198"/>
		<updated>2026-01-08T18:16:39Z</updated>

		<summary type="html">&lt;p&gt;GGAB3: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Project DIVA games store general information about the PVs in a database file called &amp;lt;code&amp;gt;pv_db.txt&amp;lt;/code&amp;gt;, located in the &amp;lt;code&amp;gt;rom&amp;lt;/code&amp;gt; folder. The data inside is stored in plain text, meaning the file can be opened and edited using any text editor, such as [[wikipedia:Windows_Notepad|Notepad]].&lt;br /&gt;
&lt;br /&gt;
For the later games (Project DIVA F2nd and Project DIVA X) the &amp;lt;code&amp;gt;pv_db&amp;lt;/code&amp;gt; file is encrypted using DIVAFILE encryption. They need to be decrypted before editing.&lt;br /&gt;
&lt;br /&gt;
Multiple &amp;lt;code&amp;gt;pv_db&amp;lt;/code&amp;gt; databases can not be loaded sequentially. Instead, only the contents of the last loaded &amp;lt;code&amp;gt;pv_db&amp;lt;/code&amp;gt; file gets parsed by the game, overwriting the &#039;&#039;&#039;&#039;&#039;entire&#039;&#039;&#039;&#039;&#039; base game &amp;lt;code&amp;gt;pv_db&amp;lt;/code&amp;gt; as a result.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;pv_db&amp;lt;/code&amp;gt; files can have a prefix in their file name to indicate a specific use case:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;&#039;&#039;&#039;mdata&#039;&#039;&#039;_pv_db&amp;lt;/code&amp;gt; - Primarily used in Project DIVA Arcade Future Tone&#039;s [[MDATA]] system. It is also seen in games such as Project DIVA Mega Mix+, where it is used as the dlc &amp;lt;code&amp;gt;pv_db&amp;lt;/code&amp;gt;. &lt;br /&gt;
* &amp;lt;code&amp;gt;&#039;&#039;&#039;mod&#039;&#039;&#039;_pv_db&amp;lt;/code&amp;gt; - Custom prefix read by [https://github.com/blueskythlikesclouds/DivaModLoader DivaModLoader] for Project DIVA Mega Mix+ mods. The contents of each &amp;lt;code&amp;gt;mod_pv_db&amp;lt;/code&amp;gt; gets loaded sequentially, in the mod load order. Entries pointing to the same PV slot get overwritten in load order.&lt;br /&gt;
&lt;br /&gt;
== Structure ==&lt;br /&gt;
Similarly to other plain text databases in Project DIVA, &#039;&#039;&#039;proprieties&#039;&#039;&#039;/&#039;&#039;&#039;keywords&#039;&#039;&#039; are separated by &amp;lt;code&amp;gt;.&amp;lt;/code&amp;gt; and &#039;&#039;&#039;values&#039;&#039;&#039; are attributed to certain proprieties using &amp;lt;code&amp;gt;=&amp;lt;/code&amp;gt;. All lines in the database need to be written in lexicographical order (a → z, 0 → 9 etc.) in order to be parsed correctly by the game.&lt;br /&gt;
&lt;br /&gt;
Each entry in a &amp;lt;code&amp;gt;pv_db&amp;lt;/code&amp;gt; begins by specifying the PV slot to which we can attach a propriety and attribute a value, like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;pv_###.propriety=value&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;pv_268.date=202001001&amp;lt;/code&amp;gt; (meaning pv_268 [Catch the Wave]&#039;s date is 01 Jan 2020.)&lt;br /&gt;
&lt;br /&gt;
Proprieties can also be chained or composed of arrays:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&amp;lt;code&amp;gt;pv_268.songinfo.lyrics=kz&amp;lt;/code&amp;gt; &lt;br /&gt;
&amp;lt;code&amp;gt;pv_268.songinfo.music=kz&amp;lt;/code&amp;gt;&lt;br /&gt;
|chained properties&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;pv_268.lyric.001=Catch the wave君と&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;pv_268.lyric.002=掴む音で&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;pv_268.lyric.003=まだまだ歌おう&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;pv_268.lyric.004=Wave your handsもっと&amp;lt;/code&amp;gt;&lt;br /&gt;
|array properties&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== List of valid &amp;lt;code&amp;gt;pv_db&amp;lt;/code&amp;gt; keywords ==&lt;br /&gt;
All the keywords that can be used in &amp;lt;code&amp;gt;pv_db&amp;lt;/code&amp;gt; are defined in the game&#039;s internal systems. Here is a table with all the keywords that can be used after &amp;lt;code&amp;gt;pv_###.&amp;lt;/code&amp;gt;:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
! colspan=&amp;quot;5&amp;quot; |Keywords and derived keywords&lt;br /&gt;
!Valid values&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|another_song&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|auth_replace_by_module&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;5&amp;quot; |bpm&lt;br /&gt;
|any number&lt;br /&gt;
|BPM of the song. Not directly used in the game but &#039;&#039;&#039;required for loading the PV&#039;&#039;&#039;.&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;5&amp;quot; |chainslide_failure_name&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;5&amp;quot; |chainslide_first_name&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;5&amp;quot; |chainslide_sub_name&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;5&amp;quot; |chainslide_success_name&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;5&amp;quot; |chrcam&lt;br /&gt;
| rowspan=&amp;quot;4&amp;quot; |&#039;&#039;&#039;&#039;&#039;[array index]&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; |chara&lt;br /&gt;
|enum: [MIK, RIN, LEN, LUK, KAI, MEI, NER, HAK, SAK, TET, EXT]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; |id&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; |name&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; |org_name&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |length&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;6&amp;quot; |chreff&lt;br /&gt;
| rowspan=&amp;quot;5&amp;quot; |&#039;&#039;&#039;&#039;&#039;[array index]&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; |data&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; |&#039;&#039;&#039;&#039;&#039;[array index]&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
|name&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|type&lt;br /&gt;
|enum: [AUTH3D, AUTH3D_OBJ]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |length&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; |id&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; |name&lt;br /&gt;
|enum: [MIK, RIN, LEN, LUK, KAI, MEI, NER, HAK, SAK, TET, EXT]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |num&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;5&amp;quot; |chrmot&lt;br /&gt;
| rowspan=&amp;quot;4&amp;quot; |&#039;&#039;&#039;&#039;&#039;[array index]&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; |chara&lt;br /&gt;
|enum: [MIK, RIN, LEN, LUK, KAI, MEI, NER, HAK, SAK, TET, EXT]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; |id&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; |name&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; |org_name&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |length&lt;br /&gt;
|any number representing a date formatted like &amp;lt;code&amp;gt;yyyymmdd&amp;lt;/code&amp;gt;&lt;br /&gt;
|Date of the song&#039;s addition to the game. Not directly used in game but &#039;&#039;&#039;required for loading the PV&#039;&#039;&#039;.&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;5&amp;quot; |date&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;13&amp;quot; |difficulty&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; |attribute&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; |extra&lt;br /&gt;
|bool&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; |original&lt;br /&gt;
|bool&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; |slide&lt;br /&gt;
|bool&lt;br /&gt;
|Specifies if the chart has Slide notes in it. It also adds the slide icon in the Song Select Screen.&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;10&amp;quot; |easy&lt;br /&gt;
&lt;br /&gt;
normal&lt;br /&gt;
&lt;br /&gt;
hard&lt;br /&gt;
&lt;br /&gt;
extreme&lt;br /&gt;
&lt;br /&gt;
encore&lt;br /&gt;
| rowspan=&amp;quot;9&amp;quot; |&#039;&#039;&#039;&#039;&#039;[array index]&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; |attribute&lt;br /&gt;
|extra&lt;br /&gt;
|bool&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|original&lt;br /&gt;
|bool&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|slide&lt;br /&gt;
|bool&lt;br /&gt;
|Specifies if the chart has Slide notes in it. It also adds the slide icon in the Song Select Screen.&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |edition&lt;br /&gt;
|any number&lt;br /&gt;
|&amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; sets the chart as &amp;quot;extra&amp;quot;. Normally only used to set an additional &amp;lt;code&amp;gt;extreme&amp;lt;/code&amp;gt; entry as &#039;&#039;&#039;Extra Extreme&#039;&#039;&#039;.&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |level&lt;br /&gt;
|string formatted like &amp;lt;code&amp;gt;PV_LV_&#039;&#039;&#039;XX&#039;&#039;&#039;_&#039;&#039;&#039;Y&#039;&#039;&#039;&amp;lt;/code&amp;gt;,&lt;br /&gt;
where XX is a number from &amp;lt;code&amp;gt;01&amp;lt;/code&amp;gt; to &amp;lt;code&amp;gt;10&amp;lt;/code&amp;gt; (including leading 0) and Y is either &amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;5&amp;lt;/code&amp;gt;.&lt;br /&gt;
|Sets the chart&#039;s star rating.&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |level_sort_index&lt;br /&gt;
|any number&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |script_file_name&lt;br /&gt;
|path to the script file, relative to the folder the content is being loaded from: &amp;lt;code&amp;gt;rom/...&amp;lt;/code&amp;gt;&lt;br /&gt;
|Specifies where the chart&#039;s [[DivaScript|script]] is located.&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |script_format&lt;br /&gt;
|hex number representing the contents of the &amp;lt;code&amp;gt;.dsc&amp;lt;/code&amp;gt;&#039;s first 4 bytes &lt;br /&gt;
|Specifies the [[DivaScript#DSC Formats|script format]].&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |version&lt;br /&gt;
|any number&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; |length&lt;br /&gt;
|number of items in array for each difficulty&lt;br /&gt;
|Sets the length for each difficulty. Usually set to &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; and only set to &amp;lt;code&amp;gt;2&amp;lt;/code&amp;gt; for &amp;lt;code&amp;gt;extreme&amp;lt;/code&amp;gt; entries that have Extra Extreme.&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;5&amp;quot; |disable_calc_motfrm_limit&lt;br /&gt;
|bool&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;9&amp;quot; |disp2d&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |set_name&lt;br /&gt;
|string from the corresponding &amp;lt;code&amp;gt;aet_gam_pv###.bin&amp;lt;/code&amp;gt; Aet Set.&lt;br /&gt;
|Links an Aet Set to be called and displayed in the PV.&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |target_shadow_type&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |title_2d_layer&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |title_end_2d_field&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |title_end_2d_low_field&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |title_end_3d_field&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |title_start_2d_field&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |title_start_2d_low_field&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |title_start_3d_field&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;5&amp;quot; |edit&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|edit_chara_scale&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |bool&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|edit_effect&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|edit_effect_low_field&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|effect_se_file_name&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|effect_se_name_list&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; |ex_song&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; |&#039;&#039;&#039;&#039;&#039;[array index]&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; |chara&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; |file&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |length&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;5&amp;quot; |eyes_base_adjust_type&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;5&amp;quot; |eyes_xrot_adjust&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;5&amp;quot; |eyes_rot_rate&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|frame_texture&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|frame_texture_a&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|frame_texture_b&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|frame_texture_c&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|frame_texture_d&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|frame_texture_e&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|frame_texture_type&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|frame_texture_a_type&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|frame_texture_b_type&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|frame_texture_c_type&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|frame_texture_d_type&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|frame_texture_e_type&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|hand_item&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |&#039;&#039;&#039;&#039;&#039;[array index]&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;5&amp;quot; |hidden_timing&lt;br /&gt;
|decimal number&lt;br /&gt;
|Controls the [[Hidden Modifier]].&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;5&amp;quot; |high_speed_rate&lt;br /&gt;
|decimal number&lt;br /&gt;
|Controls the [[High Speed Modifier]].&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;5&amp;quot; |is_old_pv&lt;br /&gt;
|bool&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|lyric&lt;br /&gt;
lyric_en&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |&#039;&#039;&#039;&#039;&#039;[lyric array index]&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
(3 digits, including leading 0&#039;s) &lt;br /&gt;
|String containing the lyric.&lt;br /&gt;
Each numbered lyric can be called in the [[DivaScript|PV script]] in any order.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; |mdata&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |dir&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |flag&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|motion&lt;br /&gt;
&lt;br /&gt;
motion2P&lt;br /&gt;
&lt;br /&gt;
motion3P&lt;br /&gt;
&lt;br /&gt;
motion4P&lt;br /&gt;
&lt;br /&gt;
motion5P&lt;br /&gt;
&lt;br /&gt;
motion6P&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |&#039;&#039;&#039;&#039;&#039;[motion array index]&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
(2 digits, including leading 0) &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; |movie_list&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; |&#039;&#039;&#039;&#039;&#039;[array index]&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
|name&lt;br /&gt;
|path to a movie file, relative to the folder the content is being loaded from: &amp;lt;code&amp;gt;rom/...&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |length&lt;br /&gt;
|number of items is array&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;5&amp;quot; |movie_file_name&lt;br /&gt;
|path to a movie file, relative to the folder the content is being loaded from: &amp;lt;code&amp;gt;rom/...&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;5&amp;quot; |movie_pv_type&lt;br /&gt;
|enum: [ONLY, ALTERNATELY, PARALLEL, EFFECT]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;5&amp;quot; |movie_surface&lt;br /&gt;
|enum: [BACK, FRONT]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|npr&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |chara_lightness&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|osage_init&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;5&amp;quot; |pack&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;13&amp;quot; |performer&lt;br /&gt;
| rowspan=&amp;quot;12&amp;quot; |&#039;&#039;&#039;&#039;&#039;[array index]&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; |chara&lt;br /&gt;
|enum: [MIK, RIN, LEN, LUK, KAI, MEI, NER, HAK, SAK, TET, EXT]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; |costume&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; |exclude&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; |fixed&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; |item_back&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; |item_face&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; |item_neck&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; |item_zujo&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; |pv_costume&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; |pseudo_same_id&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; |size&lt;br /&gt;
|enum: [NORMAL, PLAY_CHARA, PV_CHARA, SHORT, TALL]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; |type&lt;br /&gt;
|enum: [VOCAL, PSEUDO_DEFAULT, PSEUDO_SAME, PSEUDO_SWIM, PSEUDO_SWIM_S, PSEUDO_MY_CHARA, GUEST]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |num&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;5&amp;quot; |pre_play_script&lt;br /&gt;
|bool&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|pv_expression&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; |file_name&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|pv_item&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;5&amp;quot; |pvbranch_success_se_name&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|rank_board_id&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|remix_parent&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|resolution_scale&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|resolution_scale_neo&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; |sabi&lt;br /&gt;
|play_time&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|start_time&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|se_name&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|slide_name&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|slidertouch_name&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|song_file_name&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|song_name&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|song_name_en&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|song_name_reading&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|song_name_reading_en&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;9&amp;quot; |songinfo&lt;br /&gt;
songinfo_en&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |arranger&lt;br /&gt;
|string&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; |ex_info&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; |0&lt;br /&gt;
1&lt;br /&gt;
&lt;br /&gt;
2&lt;br /&gt;
&lt;br /&gt;
3&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;[this is &#039;&#039;&#039;not&#039;&#039;&#039; a proper array]&#039;&#039;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |key&lt;br /&gt;
|string&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; |Used for custom songinfo credits.&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;ex_info isn&#039;t displayed in MM+ by default&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |val&lt;br /&gt;
|string&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |guitar_player&lt;br /&gt;
|string&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |illustrator&lt;br /&gt;
|string&lt;br /&gt;
|&#039;&#039;&#039;&#039;&#039;illustrator isn&#039;t displayed in MM+ by default&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |lyrics&lt;br /&gt;
|string&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |manipulator&lt;br /&gt;
|string&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |music&lt;br /&gt;
|string&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |pv_editor&lt;br /&gt;
|string&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;5&amp;quot; |sudden_timing&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|stage_param&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; |title_image&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |aet_name&lt;br /&gt;
|string&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |end_time&lt;br /&gt;
|number&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |time&lt;br /&gt;
|number&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;5&amp;quot; |use_osage_play_data&lt;br /&gt;
|bool&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
__FORCETOC__&lt;/div&gt;</summary>
		<author><name>GGAB3</name></author>
	</entry>
	<entry>
		<id>https://docs.divamodarchive.com/index.php?title=User:GGAB3/Sandbox&amp;diff=197</id>
		<title>User:GGAB3/Sandbox</title>
		<link rel="alternate" type="text/html" href="https://docs.divamodarchive.com/index.php?title=User:GGAB3/Sandbox&amp;diff=197"/>
		<updated>2026-01-08T17:23:47Z</updated>

		<summary type="html">&lt;p&gt;GGAB3: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Project DIVA games store general information about the PVs in a database file called &amp;lt;code&amp;gt;pv_db.txt&amp;lt;/code&amp;gt;, located in the &amp;lt;code&amp;gt;rom&amp;lt;/code&amp;gt; folder. The data inside is stored in plain text, meaning the file can be opened and edited using any text editor, such as [[wikipedia:Windows_Notepad|Notepad]].&lt;br /&gt;
&lt;br /&gt;
For the later games (Project DIVA F2nd and Project DIVA X) the &amp;lt;code&amp;gt;pv_db&amp;lt;/code&amp;gt; file is encrypted using DIVAFILE encryption. They need to be decrypted before editing.&lt;br /&gt;
&lt;br /&gt;
Multiple &amp;lt;code&amp;gt;pv_db&amp;lt;/code&amp;gt; databases can not be loaded sequentially. Instead, only the contents of the last loaded &amp;lt;code&amp;gt;pv_db&amp;lt;/code&amp;gt; file gets parsed by the game, overwriting the &#039;&#039;&#039;&#039;&#039;entire&#039;&#039;&#039;&#039;&#039; base game &amp;lt;code&amp;gt;pv_db&amp;lt;/code&amp;gt; as a result.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;pv_db&amp;lt;/code&amp;gt; files can have a prefix in their file name to indicate a specific use case:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;&#039;&#039;&#039;mdata&#039;&#039;&#039;_pv_db&amp;lt;/code&amp;gt; - Primarily used in Project DIVA Arcade Future Tone&#039;s [[MDATA]] system. It is also seen in games such as Project DIVA Mega Mix+, where it is used as the dlc &amp;lt;code&amp;gt;pv_db&amp;lt;/code&amp;gt;. &lt;br /&gt;
* &amp;lt;code&amp;gt;&#039;&#039;&#039;mod&#039;&#039;&#039;_pv_db&amp;lt;/code&amp;gt; - Custom prefix read by [https://github.com/blueskythlikesclouds/DivaModLoader DivaModLoader] for Project DIVA Mega Mix+ mods. The contents of each &amp;lt;code&amp;gt;mod_pv_db&amp;lt;/code&amp;gt; gets loaded sequentially, in the mod load order. Entries pointing to the same PV slot get overwritten in load order.&lt;br /&gt;
&lt;br /&gt;
== Structure ==&lt;br /&gt;
Similarly to other plain text databases in Project DIVA, &#039;&#039;&#039;proprieties&#039;&#039;&#039;/&#039;&#039;&#039;keywords&#039;&#039;&#039; are separated by &amp;lt;code&amp;gt;.&amp;lt;/code&amp;gt; and &#039;&#039;&#039;values&#039;&#039;&#039; are attributed to certain proprieties using &amp;lt;code&amp;gt;=&amp;lt;/code&amp;gt;. All lines in the database need to be written in lexicographical order (a → z, 0 → 9 etc.) in order to be parsed correctly by the game.&lt;br /&gt;
&lt;br /&gt;
Each entry in a &amp;lt;code&amp;gt;pv_db&amp;lt;/code&amp;gt; begins by specifying the PV slot to which we can attach a propriety and attribute a value, like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;pv_###.propriety=value&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;pv_268.date=202001001&amp;lt;/code&amp;gt; (meaning pv_268 [Catch the Wave]&#039;s date is 01 Jan 2020.)&lt;br /&gt;
&lt;br /&gt;
Proprieties can also be chained or composed of arrays:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&amp;lt;code&amp;gt;pv_268.songinfo.lyrics=kz&amp;lt;/code&amp;gt; &lt;br /&gt;
&amp;lt;code&amp;gt;pv_268.songinfo.music=kz&amp;lt;/code&amp;gt;&lt;br /&gt;
|chained properties&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;pv_268.lyric.001=Catch the wave君と&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;pv_268.lyric.002=掴む音で&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;pv_268.lyric.003=まだまだ歌おう&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;pv_268.lyric.004=Wave your handsもっと&amp;lt;/code&amp;gt;&lt;br /&gt;
|array properties&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== List of valid &amp;lt;code&amp;gt;pv_db&amp;lt;/code&amp;gt; keywords ==&lt;br /&gt;
All the keywords that can be used in &amp;lt;code&amp;gt;pv_db&amp;lt;/code&amp;gt; are defined in the game&#039;s internal systems. Here is a table with all the keywords that can be used after &amp;lt;code&amp;gt;pv_###.&amp;lt;/code&amp;gt;:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
! colspan=&amp;quot;5&amp;quot; |Keywords and derived keywords&lt;br /&gt;
!Valid values&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;5&amp;quot; |bpm&lt;br /&gt;
|any number&lt;br /&gt;
|BPM of the song. Not directly used in the game but &#039;&#039;&#039;required for loading the PV&#039;&#039;&#039;.&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;5&amp;quot; |chainslide_failure_name&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;5&amp;quot; |chainslide_first_name&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;5&amp;quot; |chainslide_sub_name&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;5&amp;quot; |chainslide_success_name&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;5&amp;quot; |chrcam&lt;br /&gt;
| rowspan=&amp;quot;4&amp;quot; |&#039;&#039;&#039;&#039;&#039;[array index]&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; |chara&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; |id&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; |name&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; |org_name&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |length&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;5&amp;quot; |chreff&lt;br /&gt;
| rowspan=&amp;quot;4&amp;quot; |&#039;&#039;&#039;&#039;&#039;[array index]&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; |data&lt;br /&gt;
|&#039;&#039;&#039;&#039;&#039;[array index]&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |length&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; |id&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; |name&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |num&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;5&amp;quot; |date&lt;br /&gt;
|any number representing a date formatted like &amp;lt;code&amp;gt;yyyymmdd&amp;lt;/code&amp;gt;&lt;br /&gt;
|Date of the song&#039;s addition to the game. Not directly used in game but &#039;&#039;&#039;required for loading the PV&#039;&#039;&#039;.&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;13&amp;quot; |difficulty&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; |attribute&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; |extra&lt;br /&gt;
|bool&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; |original&lt;br /&gt;
|bool&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; |slide&lt;br /&gt;
|bool&lt;br /&gt;
|Specifies if the chart has Slide notes in it. It also adds the slide icon in the Song Select Screen.&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;10&amp;quot; |easy&lt;br /&gt;
&lt;br /&gt;
normal&lt;br /&gt;
&lt;br /&gt;
hard&lt;br /&gt;
&lt;br /&gt;
extreme&lt;br /&gt;
&lt;br /&gt;
encore&lt;br /&gt;
| rowspan=&amp;quot;9&amp;quot; |&#039;&#039;&#039;&#039;&#039;[array index]&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; |attribute&lt;br /&gt;
|extra&lt;br /&gt;
|bool&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|original&lt;br /&gt;
|bool&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|slide&lt;br /&gt;
|bool&lt;br /&gt;
|Specifies if the chart has Slide notes in it. It also adds the slide icon in the Song Select Screen.&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |edition&lt;br /&gt;
|any number&lt;br /&gt;
|&amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; sets the chart as &amp;quot;extra&amp;quot;. Normally only used to set an additional &amp;lt;code&amp;gt;extreme&amp;lt;/code&amp;gt; entry as &#039;&#039;&#039;Extra Extreme&#039;&#039;&#039;.&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |level&lt;br /&gt;
|string formatted like &amp;lt;code&amp;gt;PV_LV_&#039;&#039;&#039;XX&#039;&#039;&#039;_&#039;&#039;&#039;Y&#039;&#039;&#039;&amp;lt;/code&amp;gt;,&lt;br /&gt;
where XX is a number from &amp;lt;code&amp;gt;01&amp;lt;/code&amp;gt; to &amp;lt;code&amp;gt;10&amp;lt;/code&amp;gt; (including leading 0) and Y is either &amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;5&amp;lt;/code&amp;gt;.&lt;br /&gt;
|Sets the chart&#039;s star rating.&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |level_sort_index&lt;br /&gt;
|any number&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |script_file_name&lt;br /&gt;
|path to the script file, relative to the folder the content is being loaded from: &amp;lt;code&amp;gt;rom/...&amp;lt;/code&amp;gt;&lt;br /&gt;
|Specifies where the chart&#039;s [[DivaScript|script]] is located.&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |script_format&lt;br /&gt;
|hex number representing the contents of the &amp;lt;code&amp;gt;.dsc&amp;lt;/code&amp;gt;&#039;s first 4 bytes &lt;br /&gt;
|Specifies the [[DivaScript#DSC Formats|script format]].&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |version&lt;br /&gt;
|any number&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; |length&lt;br /&gt;
|number of items in array for each difficulty&lt;br /&gt;
|Sets the length for each difficulty. Usually set to &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; and only set to &amp;lt;code&amp;gt;2&amp;lt;/code&amp;gt; for &amp;lt;code&amp;gt;extreme&amp;lt;/code&amp;gt; entries that have Extra Extreme.&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;9&amp;quot; |disp2d&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |set_name&lt;br /&gt;
|string from the corresponding &amp;lt;code&amp;gt;aet_gam_pv###.bin&amp;lt;/code&amp;gt; Aet Set.&lt;br /&gt;
|Links an Aet Set to be called and displayed in the PV.&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |target_shadow_type&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |title_2d_layer&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |title_end_2d_field&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |title_end_2d_low_field&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |title_end_3d_field&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |title_start_2d_field&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |title_start_2d_low_field&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |title_start_3d_field&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; |ex_song&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; |&#039;&#039;&#039;&#039;&#039;[array index]&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; |chara&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; |file&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |length&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;5&amp;quot; |eyes_xrot_adjust&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|hand_item&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |&#039;&#039;&#039;&#039;&#039;[array index]&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;5&amp;quot; |hidden_timing&lt;br /&gt;
|decimal number&lt;br /&gt;
|Controls the [[Hidden Modifier]].&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;5&amp;quot; |high_speed_rate&lt;br /&gt;
|decimal number&lt;br /&gt;
|Controls the [[High Speed Modifier]].&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;5&amp;quot; |is_old_pv&lt;br /&gt;
|bool&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|lyric&lt;br /&gt;
lyric_en&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |&#039;&#039;&#039;&#039;&#039;[lyric array index]&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
(3 digits, including leading 0&#039;s) &lt;br /&gt;
|String containing the lyric.&lt;br /&gt;
Each numbered lyric can be called in the [[DivaScript|PV script]] in any order.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; |mdata&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |dir&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |flag&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|motion&lt;br /&gt;
&lt;br /&gt;
motion2P&lt;br /&gt;
&lt;br /&gt;
motion3P&lt;br /&gt;
&lt;br /&gt;
motion4P&lt;br /&gt;
&lt;br /&gt;
motion5P&lt;br /&gt;
&lt;br /&gt;
motion6P&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |&#039;&#039;&#039;&#039;&#039;[motion array index]&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
(2 digits, including leading 0) &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; |movie_list&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; |&#039;&#039;&#039;&#039;&#039;[array index]&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
|name&lt;br /&gt;
|path to a movie file, relative to the folder the content is being loaded from: &amp;lt;code&amp;gt;rom/...&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |length&lt;br /&gt;
|number of items is array&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;5&amp;quot; |movie_file_name&lt;br /&gt;
|path to a movie file, relative to the folder the content is being loaded from: &amp;lt;code&amp;gt;rom/...&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;5&amp;quot; |movie_pv_type&lt;br /&gt;
|enum:&lt;br /&gt;
&lt;br /&gt;
* ONLY&lt;br /&gt;
* ALTERNATELY&lt;br /&gt;
* PARALLEL&lt;br /&gt;
* EFFECT&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;5&amp;quot; |movie_surface&lt;br /&gt;
|enum:&lt;br /&gt;
&lt;br /&gt;
* BACK&lt;br /&gt;
* FRONT&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|npr&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |chara_lightness&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;5&amp;quot; |pack&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;13&amp;quot; |performer&lt;br /&gt;
| rowspan=&amp;quot;12&amp;quot; |&#039;&#039;&#039;&#039;&#039;[array index]&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; |chara&lt;br /&gt;
|enum:&lt;br /&gt;
* MIK&lt;br /&gt;
* RIN&lt;br /&gt;
* LEN&lt;br /&gt;
* LUK&lt;br /&gt;
* KAI&lt;br /&gt;
* MEI&lt;br /&gt;
* NER&lt;br /&gt;
* HAK&lt;br /&gt;
* SAK&lt;br /&gt;
* TET&lt;br /&gt;
* EXT&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; |costume&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; |exclude&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; |fixed&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; |item_back&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; |item_face&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; |item_neck&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; |item_zujo&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; |pv_costume&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; |pseudo_same_id&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; |size&lt;br /&gt;
|enum:&lt;br /&gt;
&lt;br /&gt;
* NORMAL&lt;br /&gt;
* PLAY_CHARA&lt;br /&gt;
* PV_CHARA&lt;br /&gt;
* SHORT&lt;br /&gt;
* TALL&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; |type&lt;br /&gt;
|enum:&lt;br /&gt;
&lt;br /&gt;
* VOCAL&lt;br /&gt;
* PSEUDO_DEFAULT&lt;br /&gt;
* PSEUDO_SAME&lt;br /&gt;
* PSEUDO_SWIM&lt;br /&gt;
* PSEUDO_SWIM_S&lt;br /&gt;
* PSEUDO_MY_CHARA&lt;br /&gt;
* GUEST&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |num&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|pv_expression&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; |file_name&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|rank_board_id&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; |sabi&lt;br /&gt;
|play_time&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|start_time&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|se_name&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|slide_name&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|slidertouch_name&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|song_file_name&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|song_name&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|song_name_en&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|song_name_reading&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;9&amp;quot; |songinfo&lt;br /&gt;
songinfo_en&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |arranger&lt;br /&gt;
|string&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; |ex_info&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; |0&lt;br /&gt;
1&lt;br /&gt;
&lt;br /&gt;
2&lt;br /&gt;
&lt;br /&gt;
3&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;[this is &#039;&#039;&#039;not&#039;&#039;&#039; a proper array]&#039;&#039;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |key&lt;br /&gt;
|string&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; |Used for custom songinfo credits.&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;ex_info isn&#039;t displayed in MM+ by default&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |val&lt;br /&gt;
|string&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |guitar_player&lt;br /&gt;
|string&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |illustrator&lt;br /&gt;
|string&lt;br /&gt;
|&#039;&#039;&#039;&#039;&#039;illustrator isn&#039;t displayed in MM+ by default&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |lyrics&lt;br /&gt;
|string&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |manipulator&lt;br /&gt;
|string&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |music&lt;br /&gt;
|string&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |pv_editor&lt;br /&gt;
|string&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;5&amp;quot; |sudden_timing&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; |title_image&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |aet_name&lt;br /&gt;
|string&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |end_time&lt;br /&gt;
|number&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |time&lt;br /&gt;
|number&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
__FORCETOC__&lt;/div&gt;</summary>
		<author><name>GGAB3</name></author>
	</entry>
	<entry>
		<id>https://docs.divamodarchive.com/index.php?title=User:GGAB3/Sandbox&amp;diff=196</id>
		<title>User:GGAB3/Sandbox</title>
		<link rel="alternate" type="text/html" href="https://docs.divamodarchive.com/index.php?title=User:GGAB3/Sandbox&amp;diff=196"/>
		<updated>2026-01-08T16:14:34Z</updated>

		<summary type="html">&lt;p&gt;GGAB3: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Project DIVA games store general information about the PVs in a database file called &amp;lt;code&amp;gt;pv_db.txt&amp;lt;/code&amp;gt;, located in the &amp;lt;code&amp;gt;rom&amp;lt;/code&amp;gt; folder. The data inside is stored in plain text, meaning the file can be opened and edited using any text editor, such as [[wikipedia:Windows_Notepad|Notepad]].&lt;br /&gt;
&lt;br /&gt;
For the later games (Project DIVA F2nd and Project DIVA X) the &amp;lt;code&amp;gt;pv_db&amp;lt;/code&amp;gt; file is encrypted using DIVAFILE encryption. They need to be decrypted before editing.&lt;br /&gt;
&lt;br /&gt;
Multiple &amp;lt;code&amp;gt;pv_db&amp;lt;/code&amp;gt; databases can not be loaded sequentially. Instead, only the contents of the last loaded &amp;lt;code&amp;gt;pv_db&amp;lt;/code&amp;gt; file gets parsed by the game, overwriting the &#039;&#039;&#039;&#039;&#039;entire&#039;&#039;&#039;&#039;&#039; base game &amp;lt;code&amp;gt;pv_db&amp;lt;/code&amp;gt; as a result.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;pv_db&amp;lt;/code&amp;gt; files can have a prefix in their file name to indicate a specific use case:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;&#039;&#039;&#039;mdata&#039;&#039;&#039;_pv_db&amp;lt;/code&amp;gt; - Primarily used in Project DIVA Arcade Future Tone&#039;s [[MDATA]] system. It is also seen in games such as Project DIVA Mega Mix+, where it is used as the dlc &amp;lt;code&amp;gt;pv_db&amp;lt;/code&amp;gt;. &lt;br /&gt;
* &amp;lt;code&amp;gt;&#039;&#039;&#039;mod&#039;&#039;&#039;_pv_db&amp;lt;/code&amp;gt; - Custom prefix read by [https://github.com/blueskythlikesclouds/DivaModLoader DivaModLoader] for Project DIVA Mega Mix+ mods. The contents of each &amp;lt;code&amp;gt;mod_pv_db&amp;lt;/code&amp;gt; gets loaded sequentially, in the mod load order. Entries pointing to the same PV slot get overwritten in load order.&lt;br /&gt;
&lt;br /&gt;
== Structure ==&lt;br /&gt;
Similarly to other plain text databases in Project DIVA, &#039;&#039;&#039;proprieties&#039;&#039;&#039;/&#039;&#039;&#039;keywords&#039;&#039;&#039; are separated by &amp;lt;code&amp;gt;.&amp;lt;/code&amp;gt; and &#039;&#039;&#039;values&#039;&#039;&#039; are attributed to certain proprieties using &amp;lt;code&amp;gt;=&amp;lt;/code&amp;gt;. All lines in the database need to be written in lexicographical order (a → z, 0 → 9 etc.) in order to be parsed correctly by the game.&lt;br /&gt;
&lt;br /&gt;
Each entry in a &amp;lt;code&amp;gt;pv_db&amp;lt;/code&amp;gt; begins by specifying the PV slot to which we can attach a propriety and attribute a value, like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;pv_###.propriety=value&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;pv_268.date=202001001&amp;lt;/code&amp;gt; (meaning pv_268 [Catch the Wave]&#039;s date is 01 Jan 2020.)&lt;br /&gt;
&lt;br /&gt;
Proprieties can also be chained or composed of arrays:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&amp;lt;code&amp;gt;pv_268.songinfo.lyrics=kz&amp;lt;/code&amp;gt; &lt;br /&gt;
&amp;lt;code&amp;gt;pv_268.songinfo.music=kz&amp;lt;/code&amp;gt;&lt;br /&gt;
|chained properties&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;pv_268.lyric.001=Catch the wave君と&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;pv_268.lyric.002=掴む音で&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;pv_268.lyric.003=まだまだ歌おう&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;pv_268.lyric.004=Wave your handsもっと&amp;lt;/code&amp;gt;&lt;br /&gt;
|array properties&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== List of valid &amp;lt;code&amp;gt;pv_db&amp;lt;/code&amp;gt; keywords ==&lt;br /&gt;
All the keywords that can be used in &amp;lt;code&amp;gt;pv_db&amp;lt;/code&amp;gt; are defined in the game&#039;s internal systems. Here is a table with all the keywords that can be used after &amp;lt;code&amp;gt;pv_###.&amp;lt;/code&amp;gt;:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
! colspan=&amp;quot;5&amp;quot; |Keywords and derived keywords&lt;br /&gt;
!Valid values&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;5&amp;quot; |bpm&lt;br /&gt;
|any number&lt;br /&gt;
|BPM of the song. Not directly used in the game but &#039;&#039;&#039;required for loading the PV&#039;&#039;&#039;.&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;5&amp;quot; |chainslide_failure_name&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;5&amp;quot; |chainslide_first_name&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;5&amp;quot; |chainslide_sub_name&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;5&amp;quot; |chainslide_success_name&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|chrcam&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;5&amp;quot; |date&lt;br /&gt;
|any number representing a date formatted like &amp;lt;code&amp;gt;yyyymmdd&amp;lt;/code&amp;gt;&lt;br /&gt;
|Date of the song&#039;s addition to the game. Not directly used in game but &#039;&#039;&#039;required for loading the PV&#039;&#039;&#039;.&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;13&amp;quot; |difficulty&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; |attribute&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; |extra&lt;br /&gt;
|bool&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; |original&lt;br /&gt;
|bool&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; |slide&lt;br /&gt;
|bool&lt;br /&gt;
|Specifies if the chart has Slide notes in it. It also adds the slide icon in the Song Select Screen.&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;10&amp;quot; |easy&lt;br /&gt;
&lt;br /&gt;
normal&lt;br /&gt;
&lt;br /&gt;
hard&lt;br /&gt;
&lt;br /&gt;
extreme&lt;br /&gt;
&lt;br /&gt;
encore&lt;br /&gt;
| rowspan=&amp;quot;9&amp;quot; |&#039;&#039;&#039;&#039;&#039;[array index]&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; |attribute&lt;br /&gt;
|extra&lt;br /&gt;
|bool&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|original&lt;br /&gt;
|bool&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|slide&lt;br /&gt;
|bool&lt;br /&gt;
|Specifies if the chart has Slide notes in it. It also adds the slide icon in the Song Select Screen.&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |edition&lt;br /&gt;
|any number&lt;br /&gt;
|&amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; sets the chart as &amp;quot;extra&amp;quot;. Normally only used to set an additional &amp;lt;code&amp;gt;extreme&amp;lt;/code&amp;gt; entry as &#039;&#039;&#039;Extra Extreme&#039;&#039;&#039;.&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |level&lt;br /&gt;
|string formatted like &amp;lt;code&amp;gt;PV_LV_&#039;&#039;&#039;XX&#039;&#039;&#039;_&#039;&#039;&#039;Y&#039;&#039;&#039;&amp;lt;/code&amp;gt;,&lt;br /&gt;
where XX is a number from &amp;lt;code&amp;gt;01&amp;lt;/code&amp;gt; to &amp;lt;code&amp;gt;10&amp;lt;/code&amp;gt; (including leading 0) and Y is either &amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;5&amp;lt;/code&amp;gt;.&lt;br /&gt;
|Sets the chart&#039;s star rating.&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |level_sort_index&lt;br /&gt;
|any number&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |script_file_name&lt;br /&gt;
|path to the script file, relative to the folder the content is being loaded from: &amp;lt;code&amp;gt;rom/...&amp;lt;/code&amp;gt;&lt;br /&gt;
|Specifies where the chart&#039;s [[DivaScript|script]] is located.&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |script_format&lt;br /&gt;
|hex number representing the contents of the &amp;lt;code&amp;gt;.dsc&amp;lt;/code&amp;gt;&#039;s first 4 bytes &lt;br /&gt;
|Specifies the [[DivaScript#DSC Formats|script format]].&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |version&lt;br /&gt;
|any number&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; |length&lt;br /&gt;
|number of items in array for each difficulty&lt;br /&gt;
|Sets the length for each difficulty. Usually set to &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; and only set to &amp;lt;code&amp;gt;2&amp;lt;/code&amp;gt; for &amp;lt;code&amp;gt;extreme&amp;lt;/code&amp;gt; entries that have Extra Extreme.&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;9&amp;quot; |disp2d&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |set_name&lt;br /&gt;
|string from the corresponding &amp;lt;code&amp;gt;aet_gam_pv###.bin&amp;lt;/code&amp;gt; Aet Set.&lt;br /&gt;
|Links an Aet Set to be called and displayed in the PV.&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |target_shadow_type&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |title_2d_layer&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |title_end_2d_field&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |title_end_2d_low_field&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |title_end_3d_field&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |title_start_2d_field&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |title_start_2d_low_field&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |title_start_3d_field&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; |ex_song&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; |&#039;&#039;&#039;&#039;&#039;[array index]&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; |chara&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; |file&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |length&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;5&amp;quot; |eyes_xrot_adjust&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|hand_item&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |&#039;&#039;&#039;&#039;&#039;[array index]&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;5&amp;quot; |hidden_timing&lt;br /&gt;
|decimal number&lt;br /&gt;
|Controls the [[Hidden Modifier]].&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;5&amp;quot; |high_speed_rate&lt;br /&gt;
|decimal number&lt;br /&gt;
|Controls the [[High Speed Modifier]].&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;5&amp;quot; |is_old_pv&lt;br /&gt;
|bool&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|lyric&lt;br /&gt;
lyric_en&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |&#039;&#039;&#039;&#039;&#039;[lyric array index]&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
(3 digits, including leading 0&#039;s) &lt;br /&gt;
|String containing the lyric.&lt;br /&gt;
Each numbered lyric can be called in the [[DivaScript|PV script]] in any order.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; |mdata&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |dir&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |flag&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|motion&lt;br /&gt;
&lt;br /&gt;
motion2P&lt;br /&gt;
&lt;br /&gt;
motion3P&lt;br /&gt;
&lt;br /&gt;
motion4P&lt;br /&gt;
&lt;br /&gt;
motion5P&lt;br /&gt;
&lt;br /&gt;
motion6P&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |&#039;&#039;&#039;&#039;&#039;[motion array index]&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
(2 digits, including leading 0) &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; |movie_list&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; |&#039;&#039;&#039;&#039;&#039;[array index]&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
|name&lt;br /&gt;
|path to a movie file, relative to the folder the content is being loaded from: &amp;lt;code&amp;gt;rom/...&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |length&lt;br /&gt;
|number of items is array&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;5&amp;quot; |movie_file_name&lt;br /&gt;
|path to a movie file, relative to the folder the content is being loaded from: &amp;lt;code&amp;gt;rom/...&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;5&amp;quot; |movie_pv_type&lt;br /&gt;
|enum:&lt;br /&gt;
&lt;br /&gt;
* ONLY&lt;br /&gt;
* ALTERNATELY&lt;br /&gt;
* PARALLEL&lt;br /&gt;
* EFFECT&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;5&amp;quot; |movie_surface&lt;br /&gt;
|enum:&lt;br /&gt;
&lt;br /&gt;
* BACK&lt;br /&gt;
* FRONT&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|npr&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |chara_lightness&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;5&amp;quot; |pack&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;13&amp;quot; |performer&lt;br /&gt;
| rowspan=&amp;quot;12&amp;quot; |&#039;&#039;&#039;&#039;&#039;[array index]&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; |chara&lt;br /&gt;
|enum:&lt;br /&gt;
* MIK&lt;br /&gt;
* RIN&lt;br /&gt;
* LEN&lt;br /&gt;
* LUK&lt;br /&gt;
* KAI&lt;br /&gt;
* MEI&lt;br /&gt;
* NER&lt;br /&gt;
* HAK&lt;br /&gt;
* SAK&lt;br /&gt;
* TET&lt;br /&gt;
* EXT&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; |costume&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; |exclude&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; |fixed&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; |item_back&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; |item_face&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; |item_neck&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; |item_zujo&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; |pv_costume&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; |pseudo_same_id&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; |size&lt;br /&gt;
|enum:&lt;br /&gt;
&lt;br /&gt;
* NORMAL&lt;br /&gt;
* PLAY_CHARA&lt;br /&gt;
* PV_CHARA&lt;br /&gt;
* SHORT&lt;br /&gt;
* TALL&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; |type&lt;br /&gt;
|enum:&lt;br /&gt;
&lt;br /&gt;
* VOCAL&lt;br /&gt;
* PSEUDO_DEFAULT&lt;br /&gt;
* PSEUDO_SAME&lt;br /&gt;
* PSEUDO_SWIM&lt;br /&gt;
* PSEUDO_SWIM_S&lt;br /&gt;
* PSEUDO_MY_CHARA&lt;br /&gt;
* GUEST&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |num&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|pv_expression&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; |file_name&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|rank_board_id&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; |sabi&lt;br /&gt;
|play_time&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|start_time&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|se_name&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|slide_name&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|slidertouch_name&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|song_file_name&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|song_name&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|song_name_en&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|song_name_reading&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;9&amp;quot; |songinfo&lt;br /&gt;
songinfo_en&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |arranger&lt;br /&gt;
|string&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; |ex_info&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; |0&lt;br /&gt;
1&lt;br /&gt;
&lt;br /&gt;
2&lt;br /&gt;
&lt;br /&gt;
3&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;[this is &#039;&#039;&#039;not&#039;&#039;&#039; a proper array]&#039;&#039;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |key&lt;br /&gt;
|string&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; |Used for custom songinfo credits.&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;ex_info isn&#039;t displayed in MM+ by default&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |val&lt;br /&gt;
|string&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |guitar_player&lt;br /&gt;
|string&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |illustrator&lt;br /&gt;
|string&lt;br /&gt;
|&#039;&#039;&#039;&#039;&#039;illustrator isn&#039;t displayed in MM+ by default&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |lyrics&lt;br /&gt;
|string&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |manipulator&lt;br /&gt;
|string&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |music&lt;br /&gt;
|string&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |pv_editor&lt;br /&gt;
|string&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;5&amp;quot; |sudden_timing&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; |title_image&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |aet_name&lt;br /&gt;
|string&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |end_time&lt;br /&gt;
|number&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |time&lt;br /&gt;
|number&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
__FORCETOC__&lt;/div&gt;</summary>
		<author><name>GGAB3</name></author>
	</entry>
	<entry>
		<id>https://docs.divamodarchive.com/index.php?title=User:GGAB3/Sandbox&amp;diff=195</id>
		<title>User:GGAB3/Sandbox</title>
		<link rel="alternate" type="text/html" href="https://docs.divamodarchive.com/index.php?title=User:GGAB3/Sandbox&amp;diff=195"/>
		<updated>2025-12-13T10:10:16Z</updated>

		<summary type="html">&lt;p&gt;GGAB3: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Project DIVA games store general information about the PVs in a database file called &amp;lt;code&amp;gt;pv_db.txt&amp;lt;/code&amp;gt;, located in the &amp;lt;code&amp;gt;rom&amp;lt;/code&amp;gt; folder. The data inside is stored in plain text, meaning the file can be opened and edited using any text editor, such as [[wikipedia:Windows_Notepad|Notepad]].&lt;br /&gt;
&lt;br /&gt;
For the later games (Project DIVA F2nd and Project DIVA X) the &amp;lt;code&amp;gt;pv_db&amp;lt;/code&amp;gt; file is encrypted using DIVAFILE encryption. They need to be decrypted before editing.&lt;br /&gt;
&lt;br /&gt;
Multiple &amp;lt;code&amp;gt;pv_db&amp;lt;/code&amp;gt; databases can not be loaded sequentially. Instead, only the contents of the last loaded &amp;lt;code&amp;gt;pv_db&amp;lt;/code&amp;gt; file gets parsed by the game, overwriting the &#039;&#039;&#039;&#039;&#039;entire&#039;&#039;&#039;&#039;&#039; base game &amp;lt;code&amp;gt;pv_db&amp;lt;/code&amp;gt; as a result.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;pv_db&amp;lt;/code&amp;gt; files can have a prefix in their file name to indicate a specific use case:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;&#039;&#039;&#039;mdata&#039;&#039;&#039;_pv_db&amp;lt;/code&amp;gt; - Primarily used in Project DIVA Arcade Future Tone&#039;s [[MDATA]] system. It is also seen in games such as Project DIVA Mega Mix+, where it is used as the dlc &amp;lt;code&amp;gt;pv_db&amp;lt;/code&amp;gt;. &lt;br /&gt;
* &amp;lt;code&amp;gt;&#039;&#039;&#039;mod&#039;&#039;&#039;_pv_db&amp;lt;/code&amp;gt; - Custom prefix read by [https://github.com/blueskythlikesclouds/DivaModLoader DivaModLoader] for Project DIVA Mega Mix+ mods. The contents of each &amp;lt;code&amp;gt;mod_pv_db&amp;lt;/code&amp;gt; gets loaded sequentially, in the mod load order. Entries pointing to the same PV slot get overwritten in load order.&lt;br /&gt;
&lt;br /&gt;
== Structure ==&lt;br /&gt;
Similarly to other plain text databases in Project DIVA, &#039;&#039;&#039;proprieties&#039;&#039;&#039;/&#039;&#039;&#039;keywords&#039;&#039;&#039; are separated by &amp;lt;code&amp;gt;.&amp;lt;/code&amp;gt; and &#039;&#039;&#039;values&#039;&#039;&#039; are attributed to certain proprieties using &amp;lt;code&amp;gt;=&amp;lt;/code&amp;gt;. All lines in the database need to be written in lexicographical order (a → z, 0 → 9 etc.) in order to be parsed correctly by the game.&lt;br /&gt;
&lt;br /&gt;
Each entry in a &amp;lt;code&amp;gt;pv_db&amp;lt;/code&amp;gt; begins by specifying the PV slot to which we can attach a propriety and attribute a value, like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;pv_###.propriety=value&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;pv_268.date=202001001&amp;lt;/code&amp;gt; (meaning pv_268 [Catch the Wave]&#039;s date is 01 Jan 2020.)&lt;br /&gt;
&lt;br /&gt;
Proprieties can also be chained or composed of arrays:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&amp;lt;code&amp;gt;pv_268.songinfo.lyrics=kz&amp;lt;/code&amp;gt; &lt;br /&gt;
&amp;lt;code&amp;gt;pv_268.songinfo.music=kz&amp;lt;/code&amp;gt;&lt;br /&gt;
|chained properties&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;pv_268.lyric.001=Catch the wave君と&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;pv_268.lyric.002=掴む音で&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;pv_268.lyric.003=まだまだ歌おう&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;pv_268.lyric.004=Wave your handsもっと&amp;lt;/code&amp;gt;&lt;br /&gt;
|array properties&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== List of valid &amp;lt;code&amp;gt;pv_db&amp;lt;/code&amp;gt; keywords ==&lt;br /&gt;
All the keywords that can be used in &amp;lt;code&amp;gt;pv_db&amp;lt;/code&amp;gt; are defined in the game&#039;s internal systems. Here is a table with all the keywords that can be used after &amp;lt;code&amp;gt;pv_###.&amp;lt;/code&amp;gt;:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
! colspan=&amp;quot;5&amp;quot; |Keywords and derived keywords&lt;br /&gt;
!Valid values&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;5&amp;quot; |bpm&lt;br /&gt;
|any number&lt;br /&gt;
|BPM of the song. Not directly used in the game but &#039;&#039;&#039;required for loading the PV&#039;&#039;&#039;.&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;5&amp;quot; |chainslide_failure_name&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;5&amp;quot; |chainslide_first_name&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;5&amp;quot; |chainslide_sub_name&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;5&amp;quot; |chainslide_success_name&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;5&amp;quot; |date&lt;br /&gt;
|any number representing a date formatted like &amp;lt;code&amp;gt;yyyymmdd&amp;lt;/code&amp;gt;&lt;br /&gt;
|Date of the song&#039;s addition to the game. Not directly used in game but &#039;&#039;&#039;required for loading the PV&#039;&#039;&#039;.&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;12&amp;quot; |difficulty&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; |attribute&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; |original&lt;br /&gt;
|bool&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; |slide&lt;br /&gt;
|bool&lt;br /&gt;
|Specifies if the chart has Slide notes in it. It also adds the slide icon in the Song Select Screen.&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;10&amp;quot; |easy&lt;br /&gt;
&lt;br /&gt;
normal&lt;br /&gt;
&lt;br /&gt;
hard&lt;br /&gt;
&lt;br /&gt;
extreme&lt;br /&gt;
&lt;br /&gt;
encore&lt;br /&gt;
| rowspan=&amp;quot;9&amp;quot; |&#039;&#039;&#039;&#039;&#039;[array index]&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; |attribute&lt;br /&gt;
|extra&lt;br /&gt;
|bool&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|original&lt;br /&gt;
|bool&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|slide&lt;br /&gt;
|bool&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |edition&lt;br /&gt;
|any number&lt;br /&gt;
|&amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; sets the chart as &amp;quot;extra&amp;quot;. Normally only used to set an additional &amp;lt;code&amp;gt;extreme&amp;lt;/code&amp;gt; entry as &#039;&#039;&#039;Extra Extreme&#039;&#039;&#039;.&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |level&lt;br /&gt;
|string formatted like &amp;lt;code&amp;gt;PV_LV_&#039;&#039;&#039;XX&#039;&#039;&#039;_&#039;&#039;&#039;Y&#039;&#039;&#039;&amp;lt;/code&amp;gt;,&lt;br /&gt;
where XX is a number from &amp;lt;code&amp;gt;01&amp;lt;/code&amp;gt; to &amp;lt;code&amp;gt;10&amp;lt;/code&amp;gt; (including leading 0) and Y is either &amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;5&amp;lt;/code&amp;gt;.&lt;br /&gt;
|Sets the chart&#039;s star rating.&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |level_sort_index&lt;br /&gt;
|any number&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |script_file_name&lt;br /&gt;
|path to the script file, relative to the folder the content is being loaded from: &amp;lt;code&amp;gt;rom/...&amp;lt;/code&amp;gt;&lt;br /&gt;
|Specifies where the chart&#039;s [[DivaScript|script]] is located.&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |script_format&lt;br /&gt;
|hex number representing the contents of the &amp;lt;code&amp;gt;.dsc&amp;lt;/code&amp;gt;&#039;s first 4 bytes &lt;br /&gt;
|Specifies the [[DivaScript#DSC Formats|script format]].&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |version&lt;br /&gt;
|any number&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; |length&lt;br /&gt;
|number of items in array for each difficulty&lt;br /&gt;
|Sets the length for each difficulty. Usually set to &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; and only set to &amp;lt;code&amp;gt;2&amp;lt;/code&amp;gt; for &amp;lt;code&amp;gt;extreme&amp;lt;/code&amp;gt; entries that have Extra Extreme.&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;9&amp;quot; |disp2d&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |set_name&lt;br /&gt;
|string from the corresponding &amp;lt;code&amp;gt;aet_gam_pv###.bin&amp;lt;/code&amp;gt; Aet Set.&lt;br /&gt;
|Links an Aet Set to be called and displayed in the PV.&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |target_shadow_type&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |title_2d_layer&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |title_end_2d_field&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |title_end_2d_low_field&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |title_end_3d_field&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |title_start_2d_field&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |title_start_2d_low_field&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |title_start_3d_field&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; |ex_song&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; |&#039;&#039;&#039;&#039;&#039;[array index]&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; |chara&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; |file&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |length&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;5&amp;quot; |eyes_xrot_adjust&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|hand_item&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |&#039;&#039;&#039;&#039;&#039;[array index]&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;5&amp;quot; |hidden_timing&lt;br /&gt;
|decimal number&lt;br /&gt;
|Controls the [[Hidden Modifier]].&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;5&amp;quot; |high_speed_rate&lt;br /&gt;
|decimal number&lt;br /&gt;
|Controls the [[High Speed Modifier]].&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;5&amp;quot; |is_old_pv&lt;br /&gt;
|bool&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|lyric&lt;br /&gt;
lyric_en&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |&#039;&#039;&#039;&#039;&#039;[lyric array index]&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
(3 digits, including leading 0&#039;s) &lt;br /&gt;
|String containing the lyric.&lt;br /&gt;
Each numbered lyric can be called in the [[DivaScript|PV script]] in any order.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|motion&lt;br /&gt;
&lt;br /&gt;
motion2P&lt;br /&gt;
&lt;br /&gt;
motion3P&lt;br /&gt;
&lt;br /&gt;
motion4P&lt;br /&gt;
&lt;br /&gt;
motion5P&lt;br /&gt;
&lt;br /&gt;
motion6P&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |&#039;&#039;&#039;&#039;&#039;[motion array index]&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
(2 digits, including leading 0) &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; |movie_list&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; |&#039;&#039;&#039;&#039;&#039;[array index]&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
|name&lt;br /&gt;
|path to a movie file, relative to the folder the content is being loaded from: &amp;lt;code&amp;gt;rom/...&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |length&lt;br /&gt;
|number of items is array&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;5&amp;quot; |movie_file_name&lt;br /&gt;
|path to a movie file, relative to the folder the content is being loaded from: &amp;lt;code&amp;gt;rom/...&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;5&amp;quot; |movie_pv_type&lt;br /&gt;
|enum:&lt;br /&gt;
&lt;br /&gt;
* ONLY&lt;br /&gt;
* ALTERNATELY&lt;br /&gt;
* PARALLEL&lt;br /&gt;
* EFFECT&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;5&amp;quot; |movie_surface&lt;br /&gt;
|enum:&lt;br /&gt;
&lt;br /&gt;
* BACK&lt;br /&gt;
* FRONT&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|npr&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |chara_lightness&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;5&amp;quot; |pack&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;7&amp;quot; |performer&lt;br /&gt;
| rowspan=&amp;quot;6&amp;quot; |&#039;&#039;&#039;&#039;&#039;[array index]&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; |chara&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|pv_costume&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|size&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|type&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|num&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|pv_expression&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; |file_name&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|rank_board_id&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; |sabi&lt;br /&gt;
|play_time&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|start_time&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|se_name&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|slide_name&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|slidertouch_name&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|song_file_name&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|song_name&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|song_name_en&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|song_name_reading&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;8&amp;quot; |songinfo&lt;br /&gt;
songinfo_en&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |arranger&lt;br /&gt;
|string&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; |ex_info&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; |0&lt;br /&gt;
1&lt;br /&gt;
&lt;br /&gt;
2&lt;br /&gt;
&lt;br /&gt;
3&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;[this is &#039;&#039;&#039;not&#039;&#039;&#039; a proper array]&#039;&#039;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |key&lt;br /&gt;
|string&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; |Used for custom songinfo credits.&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;ex_info isn&#039;t displayed in MM+&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |val&lt;br /&gt;
|string&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |guitar_player&lt;br /&gt;
|string&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |illustrator&lt;br /&gt;
|string&lt;br /&gt;
|&#039;&#039;&#039;&#039;&#039;illustrator isn&#039;t displayed in MM+&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |lyrics&lt;br /&gt;
|string&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |manipulator&lt;br /&gt;
|string&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |music&lt;br /&gt;
|string&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;5&amp;quot; |sudden_timing&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; |title_image&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |aet_name&lt;br /&gt;
|string&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |end_time&lt;br /&gt;
|number&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |time&lt;br /&gt;
|number&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
__FORCETOC__&lt;/div&gt;</summary>
		<author><name>GGAB3</name></author>
	</entry>
	<entry>
		<id>https://docs.divamodarchive.com/index.php?title=User:GGAB3/Sandbox&amp;diff=194</id>
		<title>User:GGAB3/Sandbox</title>
		<link rel="alternate" type="text/html" href="https://docs.divamodarchive.com/index.php?title=User:GGAB3/Sandbox&amp;diff=194"/>
		<updated>2025-12-13T09:53:23Z</updated>

		<summary type="html">&lt;p&gt;GGAB3: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Project DIVA games store general information about the PVs in a database file called &amp;lt;code&amp;gt;pv_db.txt&amp;lt;/code&amp;gt;, located in the &amp;lt;code&amp;gt;rom&amp;lt;/code&amp;gt; folder. The data inside is stored in plain text, meaning the file can be opened and edited using any text editor, such as [[wikipedia:Windows_Notepad|Notepad]].&lt;br /&gt;
&lt;br /&gt;
For the later games (Project DIVA F2nd and Project DIVA X) the &amp;lt;code&amp;gt;pv_db&amp;lt;/code&amp;gt; file is encrypted using DIVAFILE encryption. They need to be decrypted before editing.&lt;br /&gt;
&lt;br /&gt;
Multiple &amp;lt;code&amp;gt;pv_db&amp;lt;/code&amp;gt; databases can not be loaded sequentially. Instead, only the contents of the last loaded &amp;lt;code&amp;gt;pv_db&amp;lt;/code&amp;gt; file gets parsed by the game, overwriting the &#039;&#039;&#039;&#039;&#039;entire&#039;&#039;&#039;&#039;&#039; base game &amp;lt;code&amp;gt;pv_db&amp;lt;/code&amp;gt; as a result.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;pv_db&amp;lt;/code&amp;gt; files can have a prefix in their file name to indicate a specific use case:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;&#039;&#039;&#039;mdata&#039;&#039;&#039;_pv_db&amp;lt;/code&amp;gt; - Primarily used in Project DIVA Arcade Future Tone&#039;s [[MDATA]] system. It is also seen in games such as Project DIVA Mega Mix+, where it is used as the dlc &amp;lt;code&amp;gt;pv_db&amp;lt;/code&amp;gt;. &lt;br /&gt;
* &amp;lt;code&amp;gt;&#039;&#039;&#039;mod&#039;&#039;&#039;_pv_db&amp;lt;/code&amp;gt; - Custom prefix read by [https://github.com/blueskythlikesclouds/DivaModLoader DivaModLoader] for Project DIVA Mega Mix+ mods. The contents of each &amp;lt;code&amp;gt;mod_pv_db&amp;lt;/code&amp;gt; gets loaded sequentially, in the mod load order. Entries pointing to the same PV slot get overwritten in load order.&lt;br /&gt;
&lt;br /&gt;
== Structure ==&lt;br /&gt;
Similarly to other plain text databases in Project DIVA, &#039;&#039;&#039;proprieties&#039;&#039;&#039;/&#039;&#039;&#039;keywords&#039;&#039;&#039; are separated by &amp;lt;code&amp;gt;.&amp;lt;/code&amp;gt; and &#039;&#039;&#039;values&#039;&#039;&#039; are attributed to certain proprieties using &amp;lt;code&amp;gt;=&amp;lt;/code&amp;gt;. All lines in the database need to be written in lexicographical order (a → z, 0 → 9 etc.) in order to be parsed correctly by the game.&lt;br /&gt;
&lt;br /&gt;
Each entry in a &amp;lt;code&amp;gt;pv_db&amp;lt;/code&amp;gt; begins by specifying the PV slot to which we can attach a propriety and attribute a value, like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;pv_###.propriety=value&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;pv_268.date=202001001&amp;lt;/code&amp;gt; (meaning pv_268 [Catch the Wave]&#039;s date is 01 Jan 2020.)&lt;br /&gt;
&lt;br /&gt;
Proprieties can also be chained or composed of arrays:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&amp;lt;code&amp;gt;pv_268.songinfo.lyrics=kz&amp;lt;/code&amp;gt; &lt;br /&gt;
&amp;lt;code&amp;gt;pv_268.songinfo.music=kz&amp;lt;/code&amp;gt;&lt;br /&gt;
|chained properties&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;pv_268.lyric.001=Catch the wave君と&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;pv_268.lyric.002=掴む音で&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;pv_268.lyric.003=まだまだ歌おう&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;pv_268.lyric.004=Wave your handsもっと&amp;lt;/code&amp;gt;&lt;br /&gt;
|array properties&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== List of valid &amp;lt;code&amp;gt;pv_db&amp;lt;/code&amp;gt; keywords ==&lt;br /&gt;
All the keywords that can be used in &amp;lt;code&amp;gt;pv_db&amp;lt;/code&amp;gt; are defined in the game&#039;s internal systems. Here is a table with all the keywords that can be used after &amp;lt;code&amp;gt;pv_###.&amp;lt;/code&amp;gt;:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
! colspan=&amp;quot;5&amp;quot; |Keywords and derived keywords&lt;br /&gt;
!Valid values&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;5&amp;quot; |bpm&lt;br /&gt;
|any number&lt;br /&gt;
|BPM of the song. Not directly used in the game but &#039;&#039;&#039;required for loading the PV&#039;&#039;&#039;.&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;5&amp;quot; |chainslide_failure_name&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;5&amp;quot; |chainslide_first_name&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;5&amp;quot; |chainslide_sub_name&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;5&amp;quot; |chainslide_success_name&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;5&amp;quot; |date&lt;br /&gt;
|any number representing a date formatted like &amp;lt;code&amp;gt;yyyymmdd&amp;lt;/code&amp;gt;&lt;br /&gt;
|Date of the song&#039;s addition to the game. Not directly used in game but &#039;&#039;&#039;required for loading the PV&#039;&#039;&#039;.&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;12&amp;quot; |difficulty&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; |attribute&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; |original&lt;br /&gt;
|bool&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; |slide&lt;br /&gt;
|bool&lt;br /&gt;
|Specifies if the chart has Slide notes in it. It also adds the slide icon in the Song Select Screen.&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;10&amp;quot; |easy&lt;br /&gt;
&lt;br /&gt;
normal&lt;br /&gt;
&lt;br /&gt;
hard&lt;br /&gt;
&lt;br /&gt;
extreme&lt;br /&gt;
&lt;br /&gt;
encore&lt;br /&gt;
| rowspan=&amp;quot;9&amp;quot; |&#039;&#039;&#039;&#039;&#039;[array index]&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; |attribute&lt;br /&gt;
|extra&lt;br /&gt;
|bool&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|original&lt;br /&gt;
|bool&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|slide&lt;br /&gt;
|bool&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |edition&lt;br /&gt;
|any number&lt;br /&gt;
|&amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; sets the chart as &amp;quot;extra&amp;quot;. Normally only used to set an additional &amp;lt;code&amp;gt;extreme&amp;lt;/code&amp;gt; entry as &#039;&#039;&#039;Extra Extreme&#039;&#039;&#039;.&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |level&lt;br /&gt;
|string formatted like &amp;lt;code&amp;gt;PV_LV_&#039;&#039;&#039;XX&#039;&#039;&#039;_&#039;&#039;&#039;Y&#039;&#039;&#039;&amp;lt;/code&amp;gt;,&lt;br /&gt;
where XX is a number from &amp;lt;code&amp;gt;01&amp;lt;/code&amp;gt; to &amp;lt;code&amp;gt;10&amp;lt;/code&amp;gt; (including leading 0) and Y is either &amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;5&amp;lt;/code&amp;gt;.&lt;br /&gt;
|Sets the chart&#039;s star rating.&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |level_sort_index&lt;br /&gt;
|any number&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |script_file_name&lt;br /&gt;
|path to the script file, relative to the folder the content is being loaded from: &amp;lt;code&amp;gt;rom/...&amp;lt;/code&amp;gt;&lt;br /&gt;
|Specifies where the chart&#039;s [[DivaScript|script]] is located.&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |script_format&lt;br /&gt;
|hex number representing the contents of the &amp;lt;code&amp;gt;.dsc&amp;lt;/code&amp;gt;&#039;s first 4 bytes &lt;br /&gt;
|Specifies the [[DivaScript#DSC Formats|script format]].&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |version&lt;br /&gt;
|any number&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; |length&lt;br /&gt;
|number of items in array for each difficulty&lt;br /&gt;
|Sets the length for each difficulty. Usually set to &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; and only set to &amp;lt;code&amp;gt;2&amp;lt;/code&amp;gt; for &amp;lt;code&amp;gt;extreme&amp;lt;/code&amp;gt; entries that have Extra Extreme.&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;9&amp;quot; |disp2d&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |set_name&lt;br /&gt;
|number from the corresponding &amp;lt;code&amp;gt;aet_gam_pv&#039;&#039;&#039;&amp;lt;big&amp;gt;###&amp;lt;/big&amp;gt;&#039;&#039;&#039;.bin&amp;lt;/code&amp;gt; Aet Set.&lt;br /&gt;
|Links an Aet Set to be called and displayed in the PV.&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |target_shadow_type&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |title_2d_layer&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |title_end_2d_field&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |title_end_2d_low_field&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |title_end_3d_field&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |title_start_2d_field&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |title_start_2d_low_field&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |title_start_3d_field&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; |ex_song&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; |&#039;&#039;&#039;&#039;&#039;[array index]&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; |chara&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; |file&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |length&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;5&amp;quot; |eyes_xrot_adjust&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|hand_item&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |&#039;&#039;&#039;&#039;&#039;[array index]&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;5&amp;quot; |hidden_timing&lt;br /&gt;
|decimal number&lt;br /&gt;
|Controls the [[Hidden Modifier]].&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;5&amp;quot; |high_speed_rate&lt;br /&gt;
|decimal number&lt;br /&gt;
|Controls the [[High Speed Modifier]].&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;5&amp;quot; |is_old_pv&lt;br /&gt;
|bool&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|lyric&lt;br /&gt;
lyric_en&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |&#039;&#039;&#039;&#039;&#039;[lyric array index]&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
(3 digits, including leading 0&#039;s) &lt;br /&gt;
|String containing the lyric.&lt;br /&gt;
Each numbered lyric can be called in the [[DivaScript|PV script]] in any order.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|motion&lt;br /&gt;
&lt;br /&gt;
motion2P&lt;br /&gt;
&lt;br /&gt;
motion3P&lt;br /&gt;
&lt;br /&gt;
motion4P&lt;br /&gt;
&lt;br /&gt;
motion5P&lt;br /&gt;
&lt;br /&gt;
motion6P&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |&#039;&#039;&#039;&#039;&#039;[motion array index]&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
(2 digits, including leading 0) &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; |movie_list&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; |&#039;&#039;&#039;&#039;&#039;[array index]&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
|name&lt;br /&gt;
|path to a movie file, relative to the folder the content is being loaded from: &amp;lt;code&amp;gt;rom/...&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |length&lt;br /&gt;
|number of items is array&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;5&amp;quot; |movie_file_name&lt;br /&gt;
|path to a movie file, relative to the folder the content is being loaded from: &amp;lt;code&amp;gt;rom/...&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;5&amp;quot; |movie_pv_type&lt;br /&gt;
|enum:&lt;br /&gt;
&lt;br /&gt;
* ONLY&lt;br /&gt;
* ALTERNATELY&lt;br /&gt;
* PARALLEL&lt;br /&gt;
* EFFECT&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;5&amp;quot; |movie_surface&lt;br /&gt;
|enum:&lt;br /&gt;
&lt;br /&gt;
* BACK&lt;br /&gt;
* FRONT&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|npr&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |chara_lightness&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;5&amp;quot; |pack&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;7&amp;quot; |performer&lt;br /&gt;
| rowspan=&amp;quot;6&amp;quot; |&#039;&#039;&#039;&#039;&#039;[array index]&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; |chara&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|pv_costume&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|size&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|type&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|num&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|pv_expression&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; |file_name&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|rank_board_id&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; |sabi&lt;br /&gt;
|play_time&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|start_time&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|se_name&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|slide_name&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|slidertouch_name&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|song_file_name&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|song_name&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|song_name_en&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|song_name_reading&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;8&amp;quot; |songinfo&lt;br /&gt;
songinfo_en&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |arranger&lt;br /&gt;
|string&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; |ex_info&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; |0&lt;br /&gt;
1&lt;br /&gt;
2&lt;br /&gt;
3&lt;br /&gt;
&#039;&#039;[this is &#039;&#039;&#039;not&#039;&#039;&#039; a proper array]&#039;&#039;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |key&lt;br /&gt;
|string&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; |Used for custom songinfo credits.&lt;br /&gt;
ex_info isn&#039;t displayed in MM+&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |val&lt;br /&gt;
|string&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |guitar_player&lt;br /&gt;
|string&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |illustrator&lt;br /&gt;
|string&lt;br /&gt;
|illustrator isn&#039;t displayed in MM+&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |lyrics&lt;br /&gt;
|string&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |manipulator&lt;br /&gt;
|string&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |music&lt;br /&gt;
|string&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |sudden_timing&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
__FORCETOC__&lt;/div&gt;</summary>
		<author><name>GGAB3</name></author>
	</entry>
	<entry>
		<id>https://docs.divamodarchive.com/index.php?title=User:GGAB3/Sandbox&amp;diff=193</id>
		<title>User:GGAB3/Sandbox</title>
		<link rel="alternate" type="text/html" href="https://docs.divamodarchive.com/index.php?title=User:GGAB3/Sandbox&amp;diff=193"/>
		<updated>2025-12-13T09:09:35Z</updated>

		<summary type="html">&lt;p&gt;GGAB3: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Project DIVA games store general information about the PVs in a database file called &amp;lt;code&amp;gt;pv_db.txt&amp;lt;/code&amp;gt;, located in the &amp;lt;code&amp;gt;rom&amp;lt;/code&amp;gt; folder. The data inside is stored in plain text, meaning the file can be opened and edited using any text editor, such as [[wikipedia:Windows_Notepad|Notepad]].&lt;br /&gt;
&lt;br /&gt;
For the later games (Project DIVA F2nd and Project DIVA X) the &amp;lt;code&amp;gt;pv_db&amp;lt;/code&amp;gt; file is encrypted using DIVAFILE encryption. They need to be decrypted before editing.&lt;br /&gt;
&lt;br /&gt;
Multiple &amp;lt;code&amp;gt;pv_db&amp;lt;/code&amp;gt; databases can not be loaded sequentially. Instead, only the contents of the last loaded &amp;lt;code&amp;gt;pv_db&amp;lt;/code&amp;gt; file gets parsed by the game, overwriting the &#039;&#039;&#039;&#039;&#039;entire&#039;&#039;&#039;&#039;&#039; base game &amp;lt;code&amp;gt;pv_db&amp;lt;/code&amp;gt; as a result.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;pv_db&amp;lt;/code&amp;gt; files can have a prefix in their file name to indicate a specific use case:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;&#039;&#039;&#039;mdata&#039;&#039;&#039;_pv_db&amp;lt;/code&amp;gt; - Primarily used in Project DIVA Arcade Future Tone&#039;s [[MDATA]] system. It is also seen in games such as Project DIVA Mega Mix+, where it is used as the dlc &amp;lt;code&amp;gt;pv_db&amp;lt;/code&amp;gt;. &lt;br /&gt;
* &amp;lt;code&amp;gt;&#039;&#039;&#039;mod&#039;&#039;&#039;_pv_db&amp;lt;/code&amp;gt; - Custom prefix read by [https://github.com/blueskythlikesclouds/DivaModLoader DivaModLoader] for Project DIVA Mega Mix+ mods. The contents of each &amp;lt;code&amp;gt;mod_pv_db&amp;lt;/code&amp;gt; gets loaded sequentially, in the mod load order. Entries pointing to the same PV slot get overwritten in load order.&lt;br /&gt;
&lt;br /&gt;
== Structure ==&lt;br /&gt;
Similarly to other plain text databases in Project DIVA, &#039;&#039;&#039;proprieties&#039;&#039;&#039;/&#039;&#039;&#039;keywords&#039;&#039;&#039; are separated by &amp;lt;code&amp;gt;.&amp;lt;/code&amp;gt; and &#039;&#039;&#039;values&#039;&#039;&#039; are attributed to certain proprieties using &amp;lt;code&amp;gt;=&amp;lt;/code&amp;gt;. All lines in the database need to be written in lexicographical order (a → z, 0 → 9 etc.) in order to be parsed correctly by the game.&lt;br /&gt;
&lt;br /&gt;
Each entry in a &amp;lt;code&amp;gt;pv_db&amp;lt;/code&amp;gt; begins by specifying the PV slot to which we can attach a propriety and attribute a value, like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;pv_###.propriety=value&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;pv_268.date=202001001&amp;lt;/code&amp;gt; (meaning pv_268 [Catch the Wave]&#039;s date is 01 Jan 2020.)&lt;br /&gt;
&lt;br /&gt;
Proprieties can also be chained or composed of arrays:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&amp;lt;code&amp;gt;pv_268.songinfo.lyrics=kz&amp;lt;/code&amp;gt; &lt;br /&gt;
&amp;lt;code&amp;gt;pv_268.songinfo.music=kz&amp;lt;/code&amp;gt;&lt;br /&gt;
|chained properties&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;pv_268.lyric.001=Catch the wave君と&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;pv_268.lyric.002=掴む音で&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;pv_268.lyric.003=まだまだ歌おう&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;pv_268.lyric.004=Wave your handsもっと&amp;lt;/code&amp;gt;&lt;br /&gt;
|array properties&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== List of valid &amp;lt;code&amp;gt;pv_db&amp;lt;/code&amp;gt; keywords ==&lt;br /&gt;
All the keywords that can be used in &amp;lt;code&amp;gt;pv_db&amp;lt;/code&amp;gt; are defined in the game&#039;s internal systems. Here is a table with all the keywords that can be used after &amp;lt;code&amp;gt;pv_###.&amp;lt;/code&amp;gt;:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
! colspan=&amp;quot;5&amp;quot; |Keywords and derived keywords&lt;br /&gt;
!Valid values&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;5&amp;quot; |&lt;br /&gt;
====== bpm ======&lt;br /&gt;
|any number&lt;br /&gt;
|BPM of the song. Not directly used in the game but &#039;&#039;&#039;required for loading the PV&#039;&#039;&#039;.&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;5&amp;quot; |&lt;br /&gt;
====== chainslide_failure_name ======&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;5&amp;quot; |&lt;br /&gt;
====== chainslide_first_name ======&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;5&amp;quot; |&lt;br /&gt;
====== chainslide_sub_name ======&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;5&amp;quot; |&lt;br /&gt;
====== chainslide_success_name ======&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;5&amp;quot; |&lt;br /&gt;
====== date ======&lt;br /&gt;
|any number representing a date formatted like &amp;lt;code&amp;gt;yyyymmdd&amp;lt;/code&amp;gt;&lt;br /&gt;
|Date of the song&#039;s addition to the game. Not directly used in game but &#039;&#039;&#039;required for loading the PV&#039;&#039;&#039;.&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;12&amp;quot; |&lt;br /&gt;
====== difficulty ======&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; |attribute&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; |original&lt;br /&gt;
|bool&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; |slide&lt;br /&gt;
|bool&lt;br /&gt;
|Specifies if the chart has Slide notes in it. It also adds the slide icon in the Song Select Screen.&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;10&amp;quot; |easy&lt;br /&gt;
&lt;br /&gt;
normal&lt;br /&gt;
&lt;br /&gt;
hard&lt;br /&gt;
&lt;br /&gt;
extreme&lt;br /&gt;
&lt;br /&gt;
encore&lt;br /&gt;
| rowspan=&amp;quot;9&amp;quot; |&#039;&#039;&#039;&#039;&#039;[array index]&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; |attribute&lt;br /&gt;
|extra&lt;br /&gt;
|bool&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|original&lt;br /&gt;
|bool&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|slide&lt;br /&gt;
|bool&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |edition&lt;br /&gt;
|any number&lt;br /&gt;
|&amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; sets the chart as &amp;quot;extra&amp;quot;. Normally only used to set an additional &amp;lt;code&amp;gt;extreme&amp;lt;/code&amp;gt; entry as &#039;&#039;&#039;Extra Extreme&#039;&#039;&#039;.&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |level&lt;br /&gt;
|string formatted like &amp;lt;code&amp;gt;PV_LV_&#039;&#039;&#039;XX&#039;&#039;&#039;_&#039;&#039;&#039;Y&#039;&#039;&#039;&amp;lt;/code&amp;gt;,&lt;br /&gt;
where XX is a number from &amp;lt;code&amp;gt;01&amp;lt;/code&amp;gt; to &amp;lt;code&amp;gt;10&amp;lt;/code&amp;gt; (including leading 0) and Y is either &amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;5&amp;lt;/code&amp;gt;.&lt;br /&gt;
|Sets the chart&#039;s star rating.&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |level_sort_index&lt;br /&gt;
|any number&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |script_file_name&lt;br /&gt;
|path to the script file, relative to the folder the content is being loaded from: &amp;lt;code&amp;gt;rom/...&amp;lt;/code&amp;gt;&lt;br /&gt;
|Specifies where the chart&#039;s [[DivaScript|script]] is located.&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |script_format&lt;br /&gt;
|hex number representing the contents of the &amp;lt;code&amp;gt;.dsc&amp;lt;/code&amp;gt;&#039;s first 4 bytes &lt;br /&gt;
|Specifies the [[DivaScript#DSC Formats|script format]].&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |version&lt;br /&gt;
|any number&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; |length&lt;br /&gt;
|number of entries for each difficulty&lt;br /&gt;
|Sets the length for each difficulty. Usually set to &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; and only set to &amp;lt;code&amp;gt;2&amp;lt;/code&amp;gt; for &amp;lt;code&amp;gt;extreme&amp;lt;/code&amp;gt; entries that have Extra Extreme.&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;9&amp;quot; |disp2d&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |set_name&lt;br /&gt;
|number from the corresponding &amp;lt;code&amp;gt;aet_gam_pv&#039;&#039;&#039;&amp;lt;big&amp;gt;###&amp;lt;/big&amp;gt;&#039;&#039;&#039;.bin&amp;lt;/code&amp;gt; Aet Set.&lt;br /&gt;
|Links an Aet Set to be called and displayed in the PV.&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |target_shadow_type&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |title_2d_layer&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |title_end_2d_field&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |title_end_2d_low_field&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |title_end_3d_field&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |title_start_2d_field&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |title_start_2d_low_field&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |title_start_3d_field&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; |ex_song&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; |&#039;&#039;&#039;&#039;&#039;[array index]&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; |chara&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; |file&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |length&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;5&amp;quot; |eyes_xrot_adjust&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|hand_item&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |&#039;&#039;&#039;&#039;&#039;[array index]&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;5&amp;quot; |hidden_timing&lt;br /&gt;
|decimal number&lt;br /&gt;
|Controls the [[Hidden Modifier]].&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;5&amp;quot; |high_speed_rate&lt;br /&gt;
|decimal number&lt;br /&gt;
|Controls the [[High Speed Modifier]].&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;5&amp;quot; |is_old_pv&lt;br /&gt;
|bool&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|lyric&lt;br /&gt;
lyric_en&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |&#039;&#039;&#039;&#039;&#039;[lyric array index]&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
(3 digits, including leading 0&#039;s) &lt;br /&gt;
|String containing the lyric.&lt;br /&gt;
Each numbered lyric can be called in the [[DivaScript|PV script]] in any order.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
====== motion ======&lt;br /&gt;
&lt;br /&gt;
====== motion2P ======&lt;br /&gt;
&lt;br /&gt;
====== motion3P ======&lt;br /&gt;
&lt;br /&gt;
====== motion4P ======&lt;br /&gt;
&lt;br /&gt;
====== motion5P ======&lt;br /&gt;
&lt;br /&gt;
====== motion6P ======&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |&#039;&#039;&#039;&#039;&#039;[motion array index]&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
(2 digits, including leading 0) &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
====== movie ======&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|npr&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |chara_lightness&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;5&amp;quot; |pack&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;7&amp;quot; |performer&lt;br /&gt;
| rowspan=&amp;quot;6&amp;quot; |&#039;&#039;&#039;&#039;&#039;[array index]&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; |chara&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|pv_costume&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|size&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|type&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|num&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|pv_expression&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; |file_name&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|rank_board_id&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; |sabi&lt;br /&gt;
|play_time&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|start_time&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|se_name&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|slide_name&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|slidertouch_name&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|song_file_name&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|song_name&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|song_name_en&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|song_name_reading&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;4&amp;quot; |songinfo&lt;br /&gt;
songinfo_en&lt;br /&gt;
|arranger&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|illustrator&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|lyrics&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|music&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |sudden_timing&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
__FORCETOC__&lt;/div&gt;</summary>
		<author><name>GGAB3</name></author>
	</entry>
	<entry>
		<id>https://docs.divamodarchive.com/index.php?title=User:GGAB3/Sandbox&amp;diff=192</id>
		<title>User:GGAB3/Sandbox</title>
		<link rel="alternate" type="text/html" href="https://docs.divamodarchive.com/index.php?title=User:GGAB3/Sandbox&amp;diff=192"/>
		<updated>2025-12-13T09:03:45Z</updated>

		<summary type="html">&lt;p&gt;GGAB3: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Project DIVA games store general information about the PVs in a database file called &amp;lt;code&amp;gt;pv_db.txt&amp;lt;/code&amp;gt;, located in the &amp;lt;code&amp;gt;rom&amp;lt;/code&amp;gt; folder. The data inside is stored in plain text, meaning the file can be opened and edited using any text editor, such as [[wikipedia:Windows_Notepad|Notepad]].&lt;br /&gt;
&lt;br /&gt;
For the later games (Project DIVA F2nd and Project DIVA X) the &amp;lt;code&amp;gt;pv_db&amp;lt;/code&amp;gt; file is encrypted using DIVAFILE encryption. They need to be decrypted before editing.&lt;br /&gt;
&lt;br /&gt;
Multiple &amp;lt;code&amp;gt;pv_db&amp;lt;/code&amp;gt; databases can not be loaded sequentially. Instead, only the contents of the last loaded &amp;lt;code&amp;gt;pv_db&amp;lt;/code&amp;gt; file gets parsed by the game, overwriting the &#039;&#039;&#039;&#039;&#039;entire&#039;&#039;&#039;&#039;&#039; base game &amp;lt;code&amp;gt;pv_db&amp;lt;/code&amp;gt; as a result.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;pv_db&amp;lt;/code&amp;gt; files can have a prefix in their file name to indicate a specific use case:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;&#039;&#039;&#039;mdata&#039;&#039;&#039;_pv_db&amp;lt;/code&amp;gt; - Primarily used in Project DIVA Arcade Future Tone&#039;s [[MDATA]] system. It is also seen in games such as Project DIVA Mega Mix+, where it is used as the dlc &amp;lt;code&amp;gt;pv_db&amp;lt;/code&amp;gt;. &lt;br /&gt;
* &amp;lt;code&amp;gt;&#039;&#039;&#039;mod&#039;&#039;&#039;_pv_db&amp;lt;/code&amp;gt; - Custom prefix read by [https://github.com/blueskythlikesclouds/DivaModLoader DivaModLoader] for Project DIVA Mega Mix+ mods. The contents of each &amp;lt;code&amp;gt;mod_pv_db&amp;lt;/code&amp;gt; gets loaded sequentially, in the mod load order. Entries pointing to the same PV slot get overwritten in load order.&lt;br /&gt;
&lt;br /&gt;
== Structure ==&lt;br /&gt;
Similarly to other plain text databases in Project DIVA, &#039;&#039;&#039;proprieties&#039;&#039;&#039;/&#039;&#039;&#039;keywords&#039;&#039;&#039; are separated by &amp;lt;code&amp;gt;.&amp;lt;/code&amp;gt; and &#039;&#039;&#039;values&#039;&#039;&#039; are attributed to certain proprieties using &amp;lt;code&amp;gt;=&amp;lt;/code&amp;gt;. All lines in the database need to be written in lexicographical order (a → z, 0 → 9 etc.) in order to be parsed correctly by the game.&lt;br /&gt;
&lt;br /&gt;
Each entry in a &amp;lt;code&amp;gt;pv_db&amp;lt;/code&amp;gt; begins by specifying the PV slot to which we can attach a propriety and attribute a value, like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;pv_###.propriety=value&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;pv_268.date=202001001&amp;lt;/code&amp;gt; (meaning pv_268 [Catch the Wave]&#039;s date is 01 Jan 2020.)&lt;br /&gt;
&lt;br /&gt;
Proprieties can also be chained or composed of arrays:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&amp;lt;code&amp;gt;pv_268.songinfo.lyrics=kz&amp;lt;/code&amp;gt; &lt;br /&gt;
&amp;lt;code&amp;gt;pv_268.songinfo.music=kz&amp;lt;/code&amp;gt;&lt;br /&gt;
|chained properties&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;pv_268.lyric.001=Catch the wave君と&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;pv_268.lyric.002=掴む音で&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;pv_268.lyric.003=まだまだ歌おう&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;pv_268.lyric.004=Wave your handsもっと&amp;lt;/code&amp;gt;&lt;br /&gt;
|array properties&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== List of valid &amp;lt;code&amp;gt;pv_db&amp;lt;/code&amp;gt; keywords ==&lt;br /&gt;
All the keywords that can be used in &amp;lt;code&amp;gt;pv_db&amp;lt;/code&amp;gt; are defined in the game&#039;s internal systems. Here is a table with all the keywords that can be used after &amp;lt;code&amp;gt;pv_###.&amp;lt;/code&amp;gt;:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; |Keywords and derived keywords&lt;br /&gt;
!&lt;br /&gt;
!Valid values&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;5&amp;quot; |&lt;br /&gt;
====== bpm ======&lt;br /&gt;
|any number&lt;br /&gt;
|BPM of the song. Not directly used in the game but &#039;&#039;&#039;required for loading the PV&#039;&#039;&#039;.&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;5&amp;quot; |&lt;br /&gt;
====== chainslide_failure_name ======&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;5&amp;quot; |&lt;br /&gt;
====== chainslide_first_name ======&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;5&amp;quot; |&lt;br /&gt;
====== chainslide_sub_name ======&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;5&amp;quot; |&lt;br /&gt;
====== chainslide_success_name ======&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;5&amp;quot; |&lt;br /&gt;
====== date ======&lt;br /&gt;
|any number representing a date formatted like &amp;lt;code&amp;gt;yyyymmdd&amp;lt;/code&amp;gt;&lt;br /&gt;
|Date of the song&#039;s addition to the game. Not directly used in game but &#039;&#039;&#039;required for loading the PV&#039;&#039;&#039;.&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;12&amp;quot; |&lt;br /&gt;
====== difficulty ======&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; |attribute&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; |original&lt;br /&gt;
|bool&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; |slide&lt;br /&gt;
|bool&lt;br /&gt;
|Specifies if the chart has Slide notes in it. It also adds the slide icon in the Song Select Screen.&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;10&amp;quot; |easy&lt;br /&gt;
&lt;br /&gt;
normal&lt;br /&gt;
&lt;br /&gt;
hard&lt;br /&gt;
&lt;br /&gt;
extreme&lt;br /&gt;
&lt;br /&gt;
encore&lt;br /&gt;
| rowspan=&amp;quot;9&amp;quot; |&#039;&#039;&#039;&#039;&#039;[array index]&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; |attribute&lt;br /&gt;
|extra&lt;br /&gt;
|bool&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|original&lt;br /&gt;
|bool&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|slide&lt;br /&gt;
|bool&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |edition&lt;br /&gt;
|any number&lt;br /&gt;
|&amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; sets the chart as &amp;quot;extra&amp;quot;. Normally only used to set an additional &amp;lt;code&amp;gt;extreme&amp;lt;/code&amp;gt; entry as &#039;&#039;&#039;Extra Extreme&#039;&#039;&#039;.&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |level&lt;br /&gt;
|string formatted like &amp;lt;code&amp;gt;PV_LV_&#039;&#039;&#039;XX&#039;&#039;&#039;_&#039;&#039;&#039;Y&#039;&#039;&#039;&amp;lt;/code&amp;gt;,&lt;br /&gt;
where XX is a number from &amp;lt;code&amp;gt;01&amp;lt;/code&amp;gt; to &amp;lt;code&amp;gt;10&amp;lt;/code&amp;gt; (including leading 0) and Y is either &amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;5&amp;lt;/code&amp;gt;.&lt;br /&gt;
|Sets the chart&#039;s star rating.&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |level_sort_index&lt;br /&gt;
|any number&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |script_file_name&lt;br /&gt;
|path to the script file, relative to the folder the content is being loaded from: &amp;lt;code&amp;gt;rom/...&amp;lt;/code&amp;gt;&lt;br /&gt;
|Specifies where the chart&#039;s [[DivaScript|script]] is located.&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |script_format&lt;br /&gt;
|hex number representing the contents of the &amp;lt;code&amp;gt;.dsc&amp;lt;/code&amp;gt;&#039;s first 4 bytes &lt;br /&gt;
|Specifies the [[DivaScript#DSC Formats|script format]].&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |version&lt;br /&gt;
|any number&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; |length&lt;br /&gt;
|number of entries for each difficulty&lt;br /&gt;
|Sets the length for each difficulty. Usually set to &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; and only set to &amp;lt;code&amp;gt;2&amp;lt;/code&amp;gt; for &amp;lt;code&amp;gt;extreme&amp;lt;/code&amp;gt; entries that have Extra Extreme.&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;9&amp;quot; |disp2d&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |set_name&lt;br /&gt;
|number from the corresponding &amp;lt;code&amp;gt;aet_gam_pv&#039;&#039;&#039;&amp;lt;big&amp;gt;###&amp;lt;/big&amp;gt;&#039;&#039;&#039;.bin&amp;lt;/code&amp;gt; Aet Set.&lt;br /&gt;
|Links an Aet Set to be called and displayed in the PV.&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |target_shadow_type&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |title_2d_layer&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |title_end_2d_field&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |title_end_2d_low_field&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |title_end_3d_field&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |title_start_2d_field&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |title_start_2d_low_field&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |title_start_3d_field&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; |ex_song&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; |&#039;&#039;&#039;&#039;&#039;[array index]&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; |chara&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; |file&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |length&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;5&amp;quot; |eyes_xrot_adjust&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|hand_item&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |&#039;&#039;&#039;&#039;&#039;[array index]&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;5&amp;quot; |hidden_timing&lt;br /&gt;
|decimal number&lt;br /&gt;
|Controls the [[Hidden Modifier]].&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;5&amp;quot; |high_speed_rate&lt;br /&gt;
|decimal number&lt;br /&gt;
|Controls the [[High Speed Modifier]].&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;5&amp;quot; |is_old_pv&lt;br /&gt;
|bool&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|lyric&lt;br /&gt;
lyric_en&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |&#039;&#039;&#039;&#039;&#039;[lyric array index]&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
(3 digits, including leading 0&#039;s) &lt;br /&gt;
|String containing the lyric.&lt;br /&gt;
Each numbered lyric can be called in the [[DivaScript|PV script]] in any order.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|motion&lt;br /&gt;
&lt;br /&gt;
motion2P&lt;br /&gt;
&lt;br /&gt;
motion3P&lt;br /&gt;
&lt;br /&gt;
motion4P&lt;br /&gt;
&lt;br /&gt;
motion5P&lt;br /&gt;
&lt;br /&gt;
motion6P&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |&#039;&#039;&#039;&#039;&#039;[motion array index]&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
(2 digits, including leading 0) &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|npr&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |chara_lightness&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |pack&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;7&amp;quot; |performer&lt;br /&gt;
| rowspan=&amp;quot;6&amp;quot; |&#039;&#039;&#039;&#039;&#039;[array index]&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
|chara&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|pv_costume&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|size&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|type&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|num&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|pv_expression&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; |file_name&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|rank_board_id&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; |sabi&lt;br /&gt;
|play_time&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|start_time&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|se_name&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|slide_name&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|slidertouch_name&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|song_file_name&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|song_name&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|song_name_en&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|song_name_reading&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;4&amp;quot; |songinfo&lt;br /&gt;
songinfo_en&lt;br /&gt;
|arranger&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|illustrator&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|lyrics&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|music&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |sudden_timing&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
__FORCETOC__&lt;/div&gt;</summary>
		<author><name>GGAB3</name></author>
	</entry>
	<entry>
		<id>https://docs.divamodarchive.com/index.php?title=User:GGAB3/Sandbox&amp;diff=191</id>
		<title>User:GGAB3/Sandbox</title>
		<link rel="alternate" type="text/html" href="https://docs.divamodarchive.com/index.php?title=User:GGAB3/Sandbox&amp;diff=191"/>
		<updated>2025-12-12T19:06:44Z</updated>

		<summary type="html">&lt;p&gt;GGAB3: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Project DIVA games store general information about the PVs in a database file called &amp;lt;code&amp;gt;pv_db.txt&amp;lt;/code&amp;gt;, located in the &amp;lt;code&amp;gt;rom&amp;lt;/code&amp;gt; folder. The data inside is stored in plain text, meaning the file can be opened and edited using any text editor, such as [[wikipedia:Windows_Notepad|Notepad]].&lt;br /&gt;
&lt;br /&gt;
For the later games (Project DIVA F2nd and Project DIVA X) the &amp;lt;code&amp;gt;pv_db&amp;lt;/code&amp;gt; file is encrypted using DIVAFILE encryption. They need to be decrypted before editing.&lt;br /&gt;
&lt;br /&gt;
Multiple &amp;lt;code&amp;gt;pv_db&amp;lt;/code&amp;gt; databases can not be loaded sequentially. Instead, only the contents of the last loaded &amp;lt;code&amp;gt;pv_db&amp;lt;/code&amp;gt; file gets parsed by the game, overwriting the &#039;&#039;&#039;&#039;&#039;entire&#039;&#039;&#039;&#039;&#039; base game &amp;lt;code&amp;gt;pv_db&amp;lt;/code&amp;gt; as a result.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;pv_db&amp;lt;/code&amp;gt; files can have a prefix in their file name to indicate a specific use case:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;&#039;&#039;&#039;mdata&#039;&#039;&#039;_pv_db&amp;lt;/code&amp;gt; - Primarily used in Project DIVA Arcade Future Tone&#039;s [[MDATA]] system. It is also seen in games such as Project DIVA Mega Mix+, where it is used as the dlc &amp;lt;code&amp;gt;pv_db&amp;lt;/code&amp;gt;. &lt;br /&gt;
* &amp;lt;code&amp;gt;&#039;&#039;&#039;mod&#039;&#039;&#039;_pv_db&amp;lt;/code&amp;gt; - Custom prefix read by [https://github.com/blueskythlikesclouds/DivaModLoader DivaModLoader] for Project DIVA Mega Mix+ mods. The contents of each &amp;lt;code&amp;gt;mod_pv_db&amp;lt;/code&amp;gt; gets loaded sequentially, in the mod load order. Entries pointing to the same PV slot get overwritten in load order.&lt;br /&gt;
&lt;br /&gt;
== Structure ==&lt;br /&gt;
Similarly to other plain text databases in Project DIVA, &#039;&#039;&#039;proprieties&#039;&#039;&#039;/&#039;&#039;&#039;keywords&#039;&#039;&#039; are separated by &amp;lt;code&amp;gt;.&amp;lt;/code&amp;gt; and &#039;&#039;&#039;values&#039;&#039;&#039; are attributed to certain proprieties using &amp;lt;code&amp;gt;=&amp;lt;/code&amp;gt;. All lines in the database need to be written in lexicographical order (a → z, 0 → 9 etc.) in order to be parsed correctly by the game.&lt;br /&gt;
&lt;br /&gt;
Each entry in a &amp;lt;code&amp;gt;pv_db&amp;lt;/code&amp;gt; begins by specifying the PV slot to which we can attach a propriety and attribute a value, like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;pv_###.propriety=value&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;pv_268.date=202001001&amp;lt;/code&amp;gt; (meaning pv_268 [Catch the Wave]&#039;s date is 01 Jan 2020.)&lt;br /&gt;
&lt;br /&gt;
Proprieties can also be chained or composed of arrays:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&amp;lt;code&amp;gt;pv_268.songinfo.lyrics=kz&amp;lt;/code&amp;gt; &lt;br /&gt;
&amp;lt;code&amp;gt;pv_268.songinfo.music=kz&amp;lt;/code&amp;gt;&lt;br /&gt;
|chained properties&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;pv_268.lyric.001=Catch the wave君と&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;pv_268.lyric.002=掴む音で&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;pv_268.lyric.003=まだまだ歌おう&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;pv_268.lyric.004=Wave your handsもっと&amp;lt;/code&amp;gt;&lt;br /&gt;
|array properties&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== List of valid &amp;lt;code&amp;gt;pv_db&amp;lt;/code&amp;gt; keywords ==&lt;br /&gt;
All the keywords that can be used in &amp;lt;code&amp;gt;pv_db&amp;lt;/code&amp;gt; are defined in the game&#039;s internal systems. Here is a table with all the keywords that can be used after &amp;lt;code&amp;gt;pv_###.&amp;lt;/code&amp;gt;:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; |Keywords and derived keywords&lt;br /&gt;
!Valid values&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |&lt;br /&gt;
====== bpm ======&lt;br /&gt;
|any number&lt;br /&gt;
|BPM of the song. Not directly used in the game but &#039;&#039;&#039;required for loading the PV&#039;&#039;&#039;.&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |&lt;br /&gt;
====== chainslide_failure_name ======&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |&lt;br /&gt;
====== chainslide_first_name ======&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |&lt;br /&gt;
====== chainslide_sub_name ======&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |&lt;br /&gt;
====== chainslide_success_name ======&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |&lt;br /&gt;
====== date ======&lt;br /&gt;
|any number representing a date formatted like &amp;lt;code&amp;gt;yyyymmdd&amp;lt;/code&amp;gt;&lt;br /&gt;
|Date of the song&#039;s addition to the game. Not directly used in game but &#039;&#039;&#039;required for loading the PV&#039;&#039;&#039;.&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;11&amp;quot; |&lt;br /&gt;
====== difficulty ======&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; |attribute&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |original&lt;br /&gt;
|&amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |slide&lt;br /&gt;
|&amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt;&lt;br /&gt;
|Specifies if the chart has Slide notes in it. It also adds the slide icon in the Song Select Screen.&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;9&amp;quot; |easy&lt;br /&gt;
&lt;br /&gt;
normal&lt;br /&gt;
&lt;br /&gt;
hard&lt;br /&gt;
&lt;br /&gt;
extreme&lt;br /&gt;
&lt;br /&gt;
encore&lt;br /&gt;
| rowspan=&amp;quot;8&amp;quot; |&#039;&#039;&#039;&#039;&#039;[array index]&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; |&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|edition&lt;br /&gt;
|&amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt;&lt;br /&gt;
|Sets the chart as &amp;quot;extra&amp;quot;. Normally only used to set an additional &amp;lt;code&amp;gt;extreme&amp;lt;/code&amp;gt; entry as &#039;&#039;&#039;Extra Extreme&#039;&#039;&#039;.&lt;br /&gt;
|-&lt;br /&gt;
|level&lt;br /&gt;
|string formatted like &amp;lt;code&amp;gt;PV_LV_&#039;&#039;&#039;XX&#039;&#039;&#039;_&#039;&#039;&#039;Y&#039;&#039;&#039;&amp;lt;/code&amp;gt;,&lt;br /&gt;
where XX is a number from &amp;lt;code&amp;gt;01&amp;lt;/code&amp;gt; to &amp;lt;code&amp;gt;10&amp;lt;/code&amp;gt; (including leading 0) and Y is either &amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;5&amp;lt;/code&amp;gt;.&lt;br /&gt;
|Sets the chart&#039;s star rating.&lt;br /&gt;
|-&lt;br /&gt;
|level_sort_index&lt;br /&gt;
|any number&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|script_file_name&lt;br /&gt;
|path to the script file, relative to the folder the content is being loaded from: &amp;lt;code&amp;gt;rom/...&amp;lt;/code&amp;gt;&lt;br /&gt;
|Specifies where the chart&#039;s [[DivaScript|script]] is located.&lt;br /&gt;
|-&lt;br /&gt;
|script_format&lt;br /&gt;
|hex number representing the contents of the &amp;lt;code&amp;gt;.dsc&amp;lt;/code&amp;gt;&#039;s first 4 bytes &lt;br /&gt;
|Specifies the [[DivaScript#DSC Formats|script format]].&lt;br /&gt;
|-&lt;br /&gt;
|version&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |length&lt;br /&gt;
|number of entries for each difficulty&lt;br /&gt;
|Sets the length for each difficulty. Usually set to &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; and only set to &amp;lt;code&amp;gt;2&amp;lt;/code&amp;gt; for &amp;lt;code&amp;gt;extreme&amp;lt;/code&amp;gt; entries that have Extra Extreme.&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;4&amp;quot; |disp2d&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; |set_name&lt;br /&gt;
|number from the corresponding &amp;lt;code&amp;gt;aet_gam_pv&#039;&#039;&#039;&amp;lt;big&amp;gt;###&amp;lt;/big&amp;gt;&#039;&#039;&#039;.bin&amp;lt;/code&amp;gt; Aet Set.&lt;br /&gt;
|Links an Aet Set to be called and displayed in the PV.&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; |target_shadow_type&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; |title_end_2d_field&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; |title_start_2d_field&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; |ex_song&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; |&#039;&#039;&#039;&#039;&#039;[array index]&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |chara&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |file&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; |length&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |eyes_xrot_adjust&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|hand_item&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; |&#039;&#039;&#039;&#039;&#039;[array index]&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |hidden_timing&lt;br /&gt;
|decimal number&lt;br /&gt;
|Controls the [[Hidden Modifier]].&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |high_speed_rate&lt;br /&gt;
|decimal number&lt;br /&gt;
|Controls the [[High Speed Modifier]].&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |is_old_pv&lt;br /&gt;
|bool&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|lyric&lt;br /&gt;
lyric_en&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; |&#039;&#039;&#039;&#039;&#039;[lyric array index]&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
(3 digits, including leading 0&#039;s) &lt;br /&gt;
|String containing the lyric.&lt;br /&gt;
Each numbered lyric can be called in the [[DivaScript|PV script]] in any order.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|motion&lt;br /&gt;
&lt;br /&gt;
motion2P&lt;br /&gt;
&lt;br /&gt;
motion3P&lt;br /&gt;
&lt;br /&gt;
motion4P&lt;br /&gt;
&lt;br /&gt;
motion5P&lt;br /&gt;
&lt;br /&gt;
motion6P&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; |&#039;&#039;&#039;&#039;&#039;[motion array index]&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
(2 digits, including leading 0) &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|npr&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; |chara_lightness&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |pack&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;7&amp;quot; |performer&lt;br /&gt;
| rowspan=&amp;quot;6&amp;quot; |&#039;&#039;&#039;&#039;&#039;[array index]&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
|chara&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|pv_costume&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|size&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|type&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|num&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|pv_expression&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; |file_name&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|rank_board_id&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; |sabi&lt;br /&gt;
|play_time&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|start_time&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|se_name&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|slide_name&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|slidertouch_name&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|song_file_name&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|song_name&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|song_name_en&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|song_name_reading&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;4&amp;quot; |songinfo&lt;br /&gt;
songinfo_en&lt;br /&gt;
|arranger&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|illustrator&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|lyrics&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|music&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |sudden_timing&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
__FORCETOC__&lt;/div&gt;</summary>
		<author><name>GGAB3</name></author>
	</entry>
	<entry>
		<id>https://docs.divamodarchive.com/index.php?title=DivaScript&amp;diff=188</id>
		<title>DivaScript</title>
		<link rel="alternate" type="text/html" href="https://docs.divamodarchive.com/index.php?title=DivaScript&amp;diff=188"/>
		<updated>2025-11-07T13:28:56Z</updated>

		<summary type="html">&lt;p&gt;GGAB3: changed movie.list to movie_list&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;DivaScript&#039;&#039; (commonly referred to as &#039;&#039;DSC&#039;&#039;) is the file format used by all the &#039;&#039;Project DIVA&#039;&#039; games for storing various commands related to Music Videos/PVs and Rhythm Game Charts.&lt;br /&gt;
&lt;br /&gt;
The data inside &amp;lt;code&amp;gt;.dsc&amp;lt;/code&amp;gt; files is stored in a binary format. This means that they can not be edited with a text editor and instead require specialized programs that can decode them such as [[DSC Studio]] or [[ScriptEditor]]. Additionally, &amp;lt;code&amp;gt;.dsc&amp;lt;/code&amp;gt; files from &#039;&#039;Project DIVA F2nd&#039;&#039; and &#039;&#039;Project DIVA X&#039;&#039; are encrypted using DIVAFILE encryption. They need to be decrypted before editing.&lt;br /&gt;
&lt;br /&gt;
== DSC Formats ==&lt;br /&gt;
Every &#039;&#039;Project DIVA&#039;&#039; game uses a specific DivaScript format. The exact format of a &amp;lt;code&amp;gt;.dsc&amp;lt;/code&amp;gt; file is determined by the first 4 bytes of the file.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|}&amp;lt;!-- Needs an actual list of all the formats and their DSC headers. --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== List of DSC Commands &#039;&#039;(Incomplete)&#039;&#039; ==&lt;br /&gt;
List of commands that can be used in FT, F, F2/X DSC formats. Format-exclusive commands are marked individually.&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Command Name&lt;br /&gt;
!Definition&lt;br /&gt;
!Parameter&lt;br /&gt;
!Description&lt;br /&gt;
!Type&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;6&amp;quot; |&lt;br /&gt;
&amp;lt;h6&amp;gt;AGEAGE_CTRL&amp;lt;/h6&amp;gt;&lt;br /&gt;
| rowspan=&amp;quot;6&amp;quot; |Controls the effect for the hair of the module &amp;quot;AgeAge Again&amp;quot;.&lt;br /&gt;
FT: &amp;lt;code&amp;gt;AGEAGE_CTRL(chara, parts, npr, rot_speed, skip, disp, -1, -1);&amp;lt;/code&amp;gt;&lt;br /&gt;
|chara&lt;br /&gt;
|Character slot&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|parts&lt;br /&gt;
|Hair parts to control:&lt;br /&gt;
&amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt;: both&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt;: left&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;2&amp;lt;/code&amp;gt;: right&lt;br /&gt;
|enum&lt;br /&gt;
|-&lt;br /&gt;
|npr&lt;br /&gt;
|sets NPR material&lt;br /&gt;
|bool&lt;br /&gt;
|-&lt;br /&gt;
|speed&lt;br /&gt;
|Effect speed&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|skip&lt;br /&gt;
|Skips 200 frames of animation.&lt;br /&gt;
|bool&lt;br /&gt;
|-&lt;br /&gt;
|disp&lt;br /&gt;
|Whether to display the effect or not.&lt;br /&gt;
|bool&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; |&lt;br /&gt;
&amp;lt;h6&amp;gt;BAR_TIME_SET&amp;lt;/h6&amp;gt;&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; |Sets the length of a measure.&lt;br /&gt;
&amp;lt;code&amp;gt;BAR_TIME_SET(bpm, beats);&amp;lt;/code&amp;gt;&lt;br /&gt;
|bpm&lt;br /&gt;
|Beats per minute&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|beats&lt;br /&gt;
|Number of quarter note beats minus 1. eg: &amp;lt;code&amp;gt;3&amp;lt;/code&amp;gt; for 4/4.&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; |&lt;br /&gt;
&amp;lt;h6&amp;gt;BLOOM&amp;lt;/h6&amp;gt;&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; |Sets data from &amp;lt;code&amp;gt;bloom&amp;lt;/code&amp;gt; pv_param.&lt;br /&gt;
FT, F2, X: &amp;lt;code&amp;gt;BLOOM(id, unk);&amp;lt;/code&amp;gt;&lt;br /&gt;
|id&lt;br /&gt;
|ID matching the data in pv_param.&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|unk&lt;br /&gt;
|Unknown&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;h6&amp;gt;CHANGE_FIELD&amp;lt;/h6&amp;gt;&lt;br /&gt;
|Changes the field defined in &amp;lt;code&amp;gt;pv_field&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;pv_db&amp;lt;/code&amp;gt;.&lt;br /&gt;
&amp;lt;code&amp;gt;CHANGE_FIELD(id);&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
F2, X: &amp;lt;code&amp;gt;CHANGE_FIELD(id, unk);&amp;lt;/code&amp;gt;&lt;br /&gt;
|id&lt;br /&gt;
|ID matching the field number in &amp;lt;code&amp;gt;pv_field&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;pv_db&amp;lt;/code&amp;gt;.&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; |&lt;br /&gt;
&amp;lt;h6&amp;gt;CHARA_SIZE&amp;lt;/h6&amp;gt;&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; |Sets a character&#039;s scale/size.&lt;br /&gt;
&amp;lt;code&amp;gt;CHARA_SIZE(chara, size);&amp;lt;/code&amp;gt;&lt;br /&gt;
|chara&lt;br /&gt;
|Character slot&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|size&lt;br /&gt;
|Character scale&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;h6&amp;gt;END&amp;lt;/h6&amp;gt;&lt;br /&gt;
|Ends reading of the script.&lt;br /&gt;
&amp;lt;code&amp;gt;END();&amp;lt;/code&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; |&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; |&lt;br /&gt;
&amp;lt;h6&amp;gt;HAND_SCALE&amp;lt;/h6&amp;gt;&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; |Sets the size of a character&#039;s hand.&lt;br /&gt;
FT: &amp;lt;code&amp;gt;HAND_SCALE(chara, hand, scale);&amp;lt;/code&amp;gt;&lt;br /&gt;
|chara&lt;br /&gt;
|Character slot&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|hand&lt;br /&gt;
|Which hand to scale:&lt;br /&gt;
&amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt;: left&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;2&amp;lt;/code&amp;gt;: right&lt;br /&gt;
|enum&lt;br /&gt;
|-&lt;br /&gt;
|scale&lt;br /&gt;
|Hand scale in percentage times 10; eg. for &amp;lt;code&amp;gt;105%&amp;lt;/code&amp;gt; use &amp;lt;code&amp;gt;1050&amp;lt;/code&amp;gt;&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; |&lt;br /&gt;
&amp;lt;h6&amp;gt;LYRIC&amp;lt;/h6&amp;gt;&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; |Displays a lyric from &amp;lt;code&amp;gt;pv_db&amp;lt;/code&amp;gt;.&lt;br /&gt;
&amp;lt;code&amp;gt;LYRIC(id, color);&amp;lt;/code&amp;gt;&lt;br /&gt;
|id&lt;br /&gt;
|ID matching the number of a lyric in &amp;lt;code&amp;gt;pv_db&amp;lt;/code&amp;gt;.&lt;br /&gt;
Use &amp;lt;code&amp;gt;-1&amp;lt;/code&amp;gt; as &amp;quot;disable&amp;quot;.&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|color&lt;br /&gt;
|&amp;lt;code&amp;gt;#AARRGGBB&amp;lt;/code&amp;gt; hex color code converted to decimal.&lt;br /&gt;
eg.: for a red lyric the command would be &amp;lt;code&amp;gt;LYRIC(id, 16711680);&amp;lt;/code&amp;gt; &lt;br /&gt;
&lt;br /&gt;
because Red: &amp;lt;code&amp;gt;#00FF0000&amp;lt;/code&amp;gt; → &amp;lt;code&amp;gt;0x00ff0000&amp;lt;/code&amp;gt; → &amp;lt;code&amp;gt;16711680&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Default: &amp;lt;code&amp;gt;-1&amp;lt;/code&amp;gt;&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; |&lt;br /&gt;
&amp;lt;h6&amp;gt;MIKU_DISP&amp;lt;/h6&amp;gt;&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; |Shows or hides a character in a PV.&lt;br /&gt;
&amp;lt;code&amp;gt;MIKU_DISP(chara, disp);&amp;lt;/code&amp;gt;&lt;br /&gt;
|chara&lt;br /&gt;
|Character slot&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|disp&lt;br /&gt;
|Whether to display the character or not.&lt;br /&gt;
|bool&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;4&amp;quot; |&lt;br /&gt;
&amp;lt;h6&amp;gt;MIKU_MOVE&amp;lt;/h6&amp;gt;&lt;br /&gt;
| rowspan=&amp;quot;4&amp;quot; |Moves a character in 3D space in a PV.&lt;br /&gt;
&amp;lt;code&amp;gt;MIKU_MOVE(chara, x, y, z);&amp;lt;/code&amp;gt;&lt;br /&gt;
|chara&lt;br /&gt;
|Character slot&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|x&lt;br /&gt;
|X coordinate&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|y&lt;br /&gt;
|Y coordinate&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|z&lt;br /&gt;
|Z coordinate&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; |&lt;br /&gt;
&amp;lt;h6&amp;gt;MIKU_ROT&amp;lt;/h6&amp;gt;&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; |Rotates a character in a PV.&lt;br /&gt;
&amp;lt;code&amp;gt;MIKU_ROT(chara, angle);&amp;lt;/code&amp;gt;&lt;br /&gt;
|chara&lt;br /&gt;
|Character slot&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|angle&lt;br /&gt;
|Angle value&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; |&lt;br /&gt;
&amp;lt;h6&amp;gt;MIKU_SHADOW&amp;lt;/h6&amp;gt;&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; |Shows or hides a character&#039;s shadow in a PV.&lt;br /&gt;
&amp;lt;code&amp;gt;MIKU_SHADOW(chara, disp);&amp;lt;/code&amp;gt;&lt;br /&gt;
|chara&lt;br /&gt;
|Character slot&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|disp&lt;br /&gt;
|Whether to display the character&#039;s shadow or not.&lt;br /&gt;
|bool&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; |&lt;br /&gt;
&amp;lt;h6&amp;gt;MODE_SELECT&amp;lt;/h6&amp;gt;&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; |Starts or ends a special chart segment, such as Chance Time.&lt;br /&gt;
&amp;lt;code&amp;gt;MODE_SELECT(difficulty, mode);&amp;lt;/code&amp;gt;&lt;br /&gt;
|difficulty&lt;br /&gt;
|Indicates under what difficulties the command will trigger in this exact script.&lt;br /&gt;
This value is a bit flag corresponding to a group of difficulties:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; - Easy&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;2&amp;lt;/code&amp;gt; - Normal&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;4&amp;lt;/code&amp;gt; - Hard&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;8&amp;lt;/code&amp;gt; - Extreme&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;16&amp;lt;/code&amp;gt; - Encore&lt;br /&gt;
&lt;br /&gt;
Adding the values up to each other results in a group: &amp;lt;code&amp;gt;6&amp;lt;/code&amp;gt; = Hard (4) and Normal (2).&lt;br /&gt;
&lt;br /&gt;
Use &amp;lt;code&amp;gt;31&amp;lt;/code&amp;gt; as a universal value (works on any difficulty).&lt;br /&gt;
|bitfield enum&lt;br /&gt;
|-&lt;br /&gt;
|mode&lt;br /&gt;
|What segment to start/end:&lt;br /&gt;
&amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; - Challenge Time (Arcade games) / Chance Time (Console games) Start&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;3&amp;lt;/code&amp;gt; - Challenge Time (Arcade games) / Chance Time (Console games) End&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;8&amp;lt;/code&amp;gt; - Technical Zone Start&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;9&amp;lt;/code&amp;gt; - Technical Zone End&lt;br /&gt;
&lt;br /&gt;
Only used by the [https://divamodarchive.com/post/169 New Classics mod]:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;4&amp;lt;/code&amp;gt; - Chance Time Start&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;5&amp;lt;/code&amp;gt; - Chance Time End&lt;br /&gt;
|enum&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; |&lt;br /&gt;
&amp;lt;h6&amp;gt;MOVIE_CUT_CHG&amp;lt;/h6&amp;gt;&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; |Plays, shows or hides the movie defined in &amp;lt;code&amp;gt;pv_db&amp;lt;/code&amp;gt; or a movie from &amp;lt;code&amp;gt;movie_list&amp;lt;/code&amp;gt; in &amp;lt;code&amp;gt;pv_db&amp;lt;/code&amp;gt;. It can be used as a fancier version of both &amp;lt;code&amp;gt;MOVIE_DISP&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;MOVIE_PLAY&amp;lt;/code&amp;gt; that allows more control.&lt;br /&gt;
FT: &amp;lt;code&amp;gt;MOVIE_CUT_CHG(id, disp);&amp;lt;/code&amp;gt;&lt;br /&gt;
|id&lt;br /&gt;
|The number in &amp;lt;code&amp;gt;movie_list&amp;lt;/code&amp;gt; of the movie to be played.&lt;br /&gt;
Playback starts at the moment the command is called for a newly called &amp;lt;code&amp;gt;movie_list&amp;lt;/code&amp;gt; item. Re-calling a movie again doesn&#039;t play it from the starting position.&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|disp&lt;br /&gt;
|&amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; - display the movie layer&lt;br /&gt;
Any other value - hide the movie layer (playback keeps going)&lt;br /&gt;
|bool&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;h6&amp;gt;MOVIE_DISP&amp;lt;/h6&amp;gt;&lt;br /&gt;
|Shows or hides the movie layer in a PV.&lt;br /&gt;
&amp;lt;code&amp;gt;MOVIE_DISP(disp);&amp;lt;/code&amp;gt;&lt;br /&gt;
|disp&lt;br /&gt;
|&amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; - display the movie layer&lt;br /&gt;
Any other value - hide the movie layer (playback keeps going)&lt;br /&gt;
|bool&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;h6&amp;gt;MOVIE_PLAY&amp;lt;/h6&amp;gt;&lt;br /&gt;
|Starts playing the movie defined in &amp;lt;code&amp;gt;pv_db&amp;lt;/code&amp;gt; or the first movie in &amp;lt;code&amp;gt;movie_list&amp;lt;/code&amp;gt; in &amp;lt;code&amp;gt;pv_db&amp;lt;/code&amp;gt;.&lt;br /&gt;
&amp;lt;code&amp;gt;MOVIE_PLAY(play);&amp;lt;/code&amp;gt;&lt;br /&gt;
|play&lt;br /&gt;
|&amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; - plays the movie&lt;br /&gt;
Any other value doesn&#039;t do anything.&lt;br /&gt;
|bool&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;h6&amp;gt;MUSIC_PLAY&amp;lt;/h6&amp;gt;&lt;br /&gt;
|Starts playing the song file defined in &amp;lt;code&amp;gt;pv_db&amp;lt;/code&amp;gt;.&lt;br /&gt;
&amp;lt;code&amp;gt;MUSIC_PLAY();&amp;lt;/code&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; |&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;h6&amp;gt;PV_BRANCH_MODE&amp;lt;/h6&amp;gt;&lt;br /&gt;
|Make future DSC commands only be executed on either the &amp;lt;code&amp;gt;Global&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;Fail&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;Success&amp;lt;/code&amp;gt; branch.&lt;br /&gt;
FT, F, F2, X: &amp;lt;code&amp;gt;PV_BRANCH_MODE(branch);&amp;lt;/code&amp;gt;&lt;br /&gt;
|branch&lt;br /&gt;
|&amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt; - Global (commands are executed regardless of success state)&lt;br /&gt;
&amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; - Fail (commands are executed only if the PV is in the &#039;failed&#039; state)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;2&amp;lt;/code&amp;gt; - Success (commands are executed only if the PV is in the &#039;success&#039; state)&lt;br /&gt;
|enum&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;h6&amp;gt;PV_END&amp;lt;/h6&amp;gt;&lt;br /&gt;
|Ends PV playback.&lt;br /&gt;
&amp;lt;code&amp;gt;PV_END();&amp;lt;/code&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; |&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;h6&amp;gt;SATURATE&amp;lt;/h6&amp;gt;&lt;br /&gt;
|Changes color saturation in a PV.&lt;br /&gt;
&amp;lt;code&amp;gt;SATURATE(amount);&amp;lt;/code&amp;gt;&lt;br /&gt;
|amount&lt;br /&gt;
|Saturation strength on a scale from 0 to 1000:&lt;br /&gt;
&amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt; - No color, perfect grayscale&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;1000&amp;lt;/code&amp;gt; - Regular colors&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;6&amp;quot; |&lt;br /&gt;
&amp;lt;h6&amp;gt;SCENE_FADE&amp;lt;/h6&amp;gt;&lt;br /&gt;
| rowspan=&amp;quot;6&amp;quot; |Plays a screen fade effect during PVs.&lt;br /&gt;
&amp;lt;code&amp;gt;SCENE_FADE(duration, start, end, r, g, b)&amp;lt;/code&amp;gt;&lt;br /&gt;
|duration&lt;br /&gt;
|Fade duration in milliseconds&lt;br /&gt;
eg:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;1000&amp;lt;/code&amp;gt;: 1 second&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;800&amp;lt;/code&amp;gt;: 0.8 seconds&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|start&lt;br /&gt;
|The opacity the fade will start with&lt;br /&gt;
&amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt;: fully transparent&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;1000&amp;lt;/code&amp;gt;: fully opaque&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|end&lt;br /&gt;
|The opacity the fade will end with&lt;br /&gt;
&amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt;: fully transparent&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;1000&amp;lt;/code&amp;gt;: fully opaque&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|r&lt;br /&gt;
|Red color component scale, from 0 to 1000&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|g&lt;br /&gt;
|Green color component scale, from 0 to 1000&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|b&lt;br /&gt;
|Blue color component scale, from 0 to 1000&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;h6&amp;gt;SE_EFFECT&amp;lt;/h6&amp;gt;&lt;br /&gt;
|Plays a sound effect in a PV defined in &amp;lt;code&amp;gt;pv_db&amp;lt;/code&amp;gt;. Normally used for success scenes but not restricted to them.&lt;br /&gt;
FT, F, F2, X: &amp;lt;code&amp;gt;SE_EFFECT(id);&amp;lt;/code&amp;gt;&lt;br /&gt;
|id&lt;br /&gt;
|number of a &amp;lt;code&amp;gt;effect_se_name_list&amp;lt;/code&amp;gt; item defined in &amp;lt;code&amp;gt;pv_db&amp;lt;/code&amp;gt;.&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;12&amp;quot; |&lt;br /&gt;
&amp;lt;h6&amp;gt;TARGET&amp;lt;/h6&amp;gt;&lt;br /&gt;
| rowspan=&amp;quot;12&amp;quot; |Spawns a rhythm game note.&lt;br /&gt;
FT: &amp;lt;code&amp;gt;TARGET(type, pos_x, pos_y, angle, dist, amp, freq);&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
F: &amp;lt;code&amp;gt;TARGET(type, duration, is_end, pos_x, pos_y, angle, freq, dist, amp, fly_time, sig);&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
F2, X: &amp;lt;code&amp;gt;TARGET(type, duration, is_end, pos_x, pos_y, angle, freq, dist, amp, fly_time, sig, hit_eff);&amp;lt;/code&amp;gt;&lt;br /&gt;
|type&lt;br /&gt;
|ID corresponding to a note type.&lt;br /&gt;
Full ID list for each game on the dedicated [[Target]] page.&lt;br /&gt;
|enum&lt;br /&gt;
|-&lt;br /&gt;
|pos_x&lt;br /&gt;
|X position of the note&#039;s target.&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|pos_y&lt;br /&gt;
|Y position of the note&#039;s target.&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|angle&lt;br /&gt;
|Angle of the note&#039;s path.&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|distance&lt;br /&gt;
|Distance between the note&#039;s spawn position and the target&#039;s position.&lt;br /&gt;
Default: &amp;lt;code&amp;gt;300000&amp;lt;/code&amp;gt;&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|amp&lt;br /&gt;
|Amplitude of the note&#039;s path wave.&lt;br /&gt;
Default: &amp;lt;code&amp;gt;500&amp;lt;/code&amp;gt;&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|freq&lt;br /&gt;
|Frequency of the note&#039;s path wave.&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|duration&lt;br /&gt;
|(for F/F2/X formats)&lt;br /&gt;
Sustain and Rush Note duration.&lt;br /&gt;
Default (for notes other than Sustain and Rush): &amp;lt;code&amp;gt;-1&amp;lt;/code&amp;gt;&lt;br /&gt;
|DivaTime&lt;br /&gt;
|-&lt;br /&gt;
|is_end&lt;br /&gt;
|(for F/F2/X formats)&lt;br /&gt;
set to &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; for Sustain &#039;end&#039; notes, otherwise set to &amp;lt;code&amp;gt;-1&amp;lt;/code&amp;gt;&lt;br /&gt;
|bool&lt;br /&gt;
|-&lt;br /&gt;
|fly_time&lt;br /&gt;
|(for F/F2/X formats)&lt;br /&gt;
Target Flying Time value (same format as the TARGET_FLYING_TIME command)&lt;br /&gt;
|DivaTime&lt;br /&gt;
|-&lt;br /&gt;
|sig&lt;br /&gt;
|(for F/F2/X formats)&lt;br /&gt;
Time Signature&lt;br /&gt;
&lt;br /&gt;
The same value that would otherwise go in &amp;lt;code&amp;gt;BAR_TIME_SET&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
Number of quarter note beats minus 1. eg: &amp;lt;code&amp;gt;3&amp;lt;/code&amp;gt; for 4/4.&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|hit_eff&lt;br /&gt;
|(for F2/X formats)&lt;br /&gt;
Assigns a hit effect to the note based on a local ID defined in a previous TARGET_EFFECT command.&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;h6&amp;gt;TARGET_FLYING_TIME&amp;lt;/h6&amp;gt;&lt;br /&gt;
|Sets the time it takes for the rhythm game notes to hit their targets.&lt;br /&gt;
&amp;lt;code&amp;gt;TARGET_FLYING_TIME(flytime);&amp;lt;/code&amp;gt;&lt;br /&gt;
|flytime&lt;br /&gt;
|time value in milliseconds&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;h6&amp;gt;TIME&amp;lt;/h6&amp;gt;&lt;br /&gt;
|Waits until a specified game time.&lt;br /&gt;
&amp;lt;code&amp;gt;TIME(t);&amp;lt;/code&amp;gt;&lt;br /&gt;
|t&lt;br /&gt;
|time value in DivaTime&lt;br /&gt;
|DivaTime&lt;br /&gt;
|}&amp;lt;!-- Please keep all the commands in alphabetical order!! --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= References =&lt;br /&gt;
somewhatlurker&#039;s [https://github.com/somewhatlurker/pydiva/blob/dsc/pydiva/pydsc_op_db.py pyDIVA/pyDSC]&lt;/div&gt;</summary>
		<author><name>GGAB3</name></author>
	</entry>
	<entry>
		<id>https://docs.divamodarchive.com/index.php?title=DivaScript&amp;diff=185</id>
		<title>DivaScript</title>
		<link rel="alternate" type="text/html" href="https://docs.divamodarchive.com/index.php?title=DivaScript&amp;diff=185"/>
		<updated>2025-10-26T08:05:13Z</updated>

		<summary type="html">&lt;p&gt;GGAB3: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;DivaScript&#039;&#039; (commonly referred to as &#039;&#039;DSC&#039;&#039;) is the file format used by all the &#039;&#039;Project DIVA&#039;&#039; games for storing various commands related to Music Videos/PVs and Rhythm Game Charts.&lt;br /&gt;
&lt;br /&gt;
The data inside &amp;lt;code&amp;gt;.dsc&amp;lt;/code&amp;gt; files is stored in a binary format. This means that they can not be edited with a text editor and instead require specialized programs that can decode them such as [[DSC Studio]] or [[ScriptEditor]]. Additionally, &amp;lt;code&amp;gt;.dsc&amp;lt;/code&amp;gt; files from &#039;&#039;Project DIVA F2nd&#039;&#039; and &#039;&#039;Project DIVA X&#039;&#039; are encrypted using DIVAFILE encryption. They need to be decrypted before editing.&lt;br /&gt;
&lt;br /&gt;
== DSC Formats ==&lt;br /&gt;
Every &#039;&#039;Project DIVA&#039;&#039; game uses a specific DivaScript format. The exact format of a &amp;lt;code&amp;gt;.dsc&amp;lt;/code&amp;gt; file is determined by the first 4 bytes of the file.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|}&amp;lt;!-- Needs an actual list of all the formats and their DSC headers. --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== List of DSC Commands &#039;&#039;(Incomplete)&#039;&#039; ==&lt;br /&gt;
List of commands that can be used in FT, F, F2/X DSC formats. Format-exclusive commands are marked individually.&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Command Name&lt;br /&gt;
!Definition&lt;br /&gt;
!Parameter&lt;br /&gt;
!Description&lt;br /&gt;
!Type&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;6&amp;quot; |&lt;br /&gt;
&amp;lt;h6&amp;gt;AGEAGE_CTRL&amp;lt;/h6&amp;gt;&lt;br /&gt;
| rowspan=&amp;quot;6&amp;quot; |Controls the effect for the hair of the module &amp;quot;AgeAge Again&amp;quot;.&lt;br /&gt;
FT: &amp;lt;code&amp;gt;AGEAGE_CTRL(chara, parts, npr, rot_speed, skip, disp, -1, -1);&amp;lt;/code&amp;gt;&lt;br /&gt;
|chara&lt;br /&gt;
|Character slot&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|parts&lt;br /&gt;
|Hair parts to control:&lt;br /&gt;
&amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt;: both&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt;: left&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;2&amp;lt;/code&amp;gt;: right&lt;br /&gt;
|enum&lt;br /&gt;
|-&lt;br /&gt;
|npr&lt;br /&gt;
|sets NPR material&lt;br /&gt;
|bool&lt;br /&gt;
|-&lt;br /&gt;
|speed&lt;br /&gt;
|Effect speed&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|skip&lt;br /&gt;
|Skips 200 frames of animation.&lt;br /&gt;
|bool&lt;br /&gt;
|-&lt;br /&gt;
|disp&lt;br /&gt;
|Whether to display the effect or not.&lt;br /&gt;
|bool&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; |&lt;br /&gt;
&amp;lt;h6&amp;gt;BAR_TIME_SET&amp;lt;/h6&amp;gt;&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; |Sets the length of a measure.&lt;br /&gt;
&amp;lt;code&amp;gt;BAR_TIME_SET(bpm, beats);&amp;lt;/code&amp;gt;&lt;br /&gt;
|bpm&lt;br /&gt;
|Beats per minute&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|beats&lt;br /&gt;
|Number of quarter note beats minus 1. eg: &amp;lt;code&amp;gt;3&amp;lt;/code&amp;gt; for 4/4.&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; |&lt;br /&gt;
&amp;lt;h6&amp;gt;BLOOM&amp;lt;/h6&amp;gt;&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; |Sets data from &amp;lt;code&amp;gt;bloom&amp;lt;/code&amp;gt; pv_param.&lt;br /&gt;
FT, F2, X: &amp;lt;code&amp;gt;BLOOM(id, unk);&amp;lt;/code&amp;gt;&lt;br /&gt;
|id&lt;br /&gt;
|ID matching the data in pv_param.&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|unk&lt;br /&gt;
|Unknown&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;h6&amp;gt;CHANGE_FIELD&amp;lt;/h6&amp;gt;&lt;br /&gt;
|Changes the field defined in &amp;lt;code&amp;gt;pv_field&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;pv_db&amp;lt;/code&amp;gt;.&lt;br /&gt;
&amp;lt;code&amp;gt;CHANGE_FIELD(id);&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
F2, X: &amp;lt;code&amp;gt;CHANGE_FIELD(id, unk);&amp;lt;/code&amp;gt;&lt;br /&gt;
|id&lt;br /&gt;
|ID matching the field number in &amp;lt;code&amp;gt;pv_field&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;pv_db&amp;lt;/code&amp;gt;.&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; |&lt;br /&gt;
&amp;lt;h6&amp;gt;CHARA_SIZE&amp;lt;/h6&amp;gt;&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; |Sets a character&#039;s scale/size.&lt;br /&gt;
&amp;lt;code&amp;gt;CHARA_SIZE(chara, size);&amp;lt;/code&amp;gt;&lt;br /&gt;
|chara&lt;br /&gt;
|Character slot&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|size&lt;br /&gt;
|Character scale&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;h6&amp;gt;END&amp;lt;/h6&amp;gt;&lt;br /&gt;
|Ends reading of the script.&lt;br /&gt;
&amp;lt;code&amp;gt;END();&amp;lt;/code&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; |&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; |&lt;br /&gt;
&amp;lt;h6&amp;gt;HAND_SCALE&amp;lt;/h6&amp;gt;&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; |Sets the size of a character&#039;s hand.&lt;br /&gt;
FT: &amp;lt;code&amp;gt;HAND_SCALE(chara, hand, scale);&amp;lt;/code&amp;gt;&lt;br /&gt;
|chara&lt;br /&gt;
|Character slot&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|hand&lt;br /&gt;
|Which hand to scale:&lt;br /&gt;
&amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt;: left&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;2&amp;lt;/code&amp;gt;: right&lt;br /&gt;
|enum&lt;br /&gt;
|-&lt;br /&gt;
|scale&lt;br /&gt;
|Hand scale in percentage times 10; eg. for &amp;lt;code&amp;gt;105%&amp;lt;/code&amp;gt; use &amp;lt;code&amp;gt;1050&amp;lt;/code&amp;gt;&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; |&lt;br /&gt;
&amp;lt;h6&amp;gt;LYRIC&amp;lt;/h6&amp;gt;&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; |Displays a lyric from &amp;lt;code&amp;gt;pv_db&amp;lt;/code&amp;gt;.&lt;br /&gt;
&amp;lt;code&amp;gt;LYRIC(id, color);&amp;lt;/code&amp;gt;&lt;br /&gt;
|id&lt;br /&gt;
|ID matching the number of a lyric in &amp;lt;code&amp;gt;pv_db&amp;lt;/code&amp;gt;.&lt;br /&gt;
Use &amp;lt;code&amp;gt;-1&amp;lt;/code&amp;gt; as &amp;quot;disable&amp;quot;.&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|color&lt;br /&gt;
|&amp;lt;code&amp;gt;#AARRGGBB&amp;lt;/code&amp;gt; hex color code converted to decimal.&lt;br /&gt;
eg.: for a red lyric the command would be &amp;lt;code&amp;gt;LYRIC(id, 16711680);&amp;lt;/code&amp;gt; &lt;br /&gt;
&lt;br /&gt;
because Red: &amp;lt;code&amp;gt;#00FF0000&amp;lt;/code&amp;gt; → &amp;lt;code&amp;gt;0x00ff0000&amp;lt;/code&amp;gt; → &amp;lt;code&amp;gt;16711680&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Default: &amp;lt;code&amp;gt;-1&amp;lt;/code&amp;gt;&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; |&lt;br /&gt;
&amp;lt;h6&amp;gt;MIKU_DISP&amp;lt;/h6&amp;gt;&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; |Shows or hides a character in a PV.&lt;br /&gt;
&amp;lt;code&amp;gt;MIKU_DISP(chara, disp);&amp;lt;/code&amp;gt;&lt;br /&gt;
|chara&lt;br /&gt;
|Character slot&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|disp&lt;br /&gt;
|Whether to display the character or not.&lt;br /&gt;
|bool&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;4&amp;quot; |&lt;br /&gt;
&amp;lt;h6&amp;gt;MIKU_MOVE&amp;lt;/h6&amp;gt;&lt;br /&gt;
| rowspan=&amp;quot;4&amp;quot; |Moves a character in 3D space in a PV.&lt;br /&gt;
&amp;lt;code&amp;gt;MIKU_MOVE(chara, x, y, z);&amp;lt;/code&amp;gt;&lt;br /&gt;
|chara&lt;br /&gt;
|Character slot&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|x&lt;br /&gt;
|X coordinate&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|y&lt;br /&gt;
|Y coordinate&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|z&lt;br /&gt;
|Z coordinate&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; |&lt;br /&gt;
&amp;lt;h6&amp;gt;MIKU_ROT&amp;lt;/h6&amp;gt;&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; |Rotates a character in a PV.&lt;br /&gt;
&amp;lt;code&amp;gt;MIKU_ROT(chara, angle);&amp;lt;/code&amp;gt;&lt;br /&gt;
|chara&lt;br /&gt;
|Character slot&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|angle&lt;br /&gt;
|Angle value&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; |&lt;br /&gt;
&amp;lt;h6&amp;gt;MIKU_SHADOW&amp;lt;/h6&amp;gt;&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; |Shows or hides a character&#039;s shadow in a PV.&lt;br /&gt;
&amp;lt;code&amp;gt;MIKU_SHADOW(chara, disp);&amp;lt;/code&amp;gt;&lt;br /&gt;
|chara&lt;br /&gt;
|Character slot&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|disp&lt;br /&gt;
|Whether to display the character&#039;s shadow or not.&lt;br /&gt;
|bool&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; |&lt;br /&gt;
&amp;lt;h6&amp;gt;MODE_SELECT&amp;lt;/h6&amp;gt;&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; |Starts or ends a special chart segment, such as Chance Time.&lt;br /&gt;
&amp;lt;code&amp;gt;MODE_SELECT(difficulty, mode);&amp;lt;/code&amp;gt;&lt;br /&gt;
|difficulty&lt;br /&gt;
|Indicates under what difficulties the command will trigger in this exact script.&lt;br /&gt;
This value is a bit flag corresponding to a group of difficulties:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; - Easy&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;2&amp;lt;/code&amp;gt; - Normal&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;4&amp;lt;/code&amp;gt; - Hard&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;8&amp;lt;/code&amp;gt; - Extreme&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;16&amp;lt;/code&amp;gt; - Encore&lt;br /&gt;
&lt;br /&gt;
Adding the values up to each other results in a group: &amp;lt;code&amp;gt;6&amp;lt;/code&amp;gt; = Hard (4) and Normal (2).&lt;br /&gt;
&lt;br /&gt;
Use &amp;lt;code&amp;gt;31&amp;lt;/code&amp;gt; as a universal value (works on any difficulty).&lt;br /&gt;
|bitfield enum&lt;br /&gt;
|-&lt;br /&gt;
|mode&lt;br /&gt;
|What segment to start/end:&lt;br /&gt;
&amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; - Challenge Time (Arcade games) / Chance Time (Console games) Start&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;3&amp;lt;/code&amp;gt; - Challenge Time (Arcade games) / Chance Time (Console games) End&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;8&amp;lt;/code&amp;gt; - Technical Zone Start&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;9&amp;lt;/code&amp;gt; - Technical Zone End&lt;br /&gt;
&lt;br /&gt;
Only used by the [https://divamodarchive.com/post/169 New Classics mod]:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;4&amp;lt;/code&amp;gt; - Chance Time Start&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;5&amp;lt;/code&amp;gt; - Chance Time End&lt;br /&gt;
|enum&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; |&lt;br /&gt;
&amp;lt;h6&amp;gt;MOVIE_CUT_CHG&amp;lt;/h6&amp;gt;&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; |Plays, shows or hides the movie defined in &amp;lt;code&amp;gt;pv_db&amp;lt;/code&amp;gt; or a movie from &amp;lt;code&amp;gt;movie.list&amp;lt;/code&amp;gt; in &amp;lt;code&amp;gt;pv_db&amp;lt;/code&amp;gt;. It can be used as a fancier version of both &amp;lt;code&amp;gt;MOVIE_DISP&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;MOVIE_PLAY&amp;lt;/code&amp;gt; that allows more control.&lt;br /&gt;
FT: &amp;lt;code&amp;gt;MOVIE_CUT_CHG(id, disp);&amp;lt;/code&amp;gt;&lt;br /&gt;
|id&lt;br /&gt;
|The number in &amp;lt;code&amp;gt;movie.list&amp;lt;/code&amp;gt; of the movie to be played.&lt;br /&gt;
Playback starts at the moment the command is called for a newly called &amp;lt;code&amp;gt;movie.list&amp;lt;/code&amp;gt; item. Re-calling a movie again doesn&#039;t play it from the starting position.&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|disp&lt;br /&gt;
|&amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; - display the movie layer&lt;br /&gt;
Any other value - hide the movie layer (playback keeps going)&lt;br /&gt;
|bool&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;h6&amp;gt;MOVIE_DISP&amp;lt;/h6&amp;gt;&lt;br /&gt;
|Shows or hides the movie layer in a PV.&lt;br /&gt;
&amp;lt;code&amp;gt;MOVIE_DISP(disp);&amp;lt;/code&amp;gt;&lt;br /&gt;
|disp&lt;br /&gt;
|&amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; - display the movie layer&lt;br /&gt;
Any other value - hide the movie layer (playback keeps going)&lt;br /&gt;
|bool&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;h6&amp;gt;MOVIE_PLAY&amp;lt;/h6&amp;gt;&lt;br /&gt;
|Starts playing the movie defined in &amp;lt;code&amp;gt;pv_db&amp;lt;/code&amp;gt; or the first movie in &amp;lt;code&amp;gt;movie.list&amp;lt;/code&amp;gt; in &amp;lt;code&amp;gt;pv_db&amp;lt;/code&amp;gt;.&lt;br /&gt;
&amp;lt;code&amp;gt;MOVIE_PLAY(play);&amp;lt;/code&amp;gt;&lt;br /&gt;
|play&lt;br /&gt;
|&amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; - plays the movie&lt;br /&gt;
Any other value doesn&#039;t do anything.&lt;br /&gt;
|bool&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;h6&amp;gt;MUSIC_PLAY&amp;lt;/h6&amp;gt;&lt;br /&gt;
|Starts playing the song file defined in &amp;lt;code&amp;gt;pv_db&amp;lt;/code&amp;gt;.&lt;br /&gt;
&amp;lt;code&amp;gt;MUSIC_PLAY();&amp;lt;/code&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; |&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;h6&amp;gt;PV_BRANCH_MODE&amp;lt;/h6&amp;gt;&lt;br /&gt;
|Make future DSC commands only be executed on either the &amp;lt;code&amp;gt;Global&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;Fail&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;Success&amp;lt;/code&amp;gt; branch.&lt;br /&gt;
FT, F, F2, X: &amp;lt;code&amp;gt;PV_BRANCH_MODE(branch);&amp;lt;/code&amp;gt;&lt;br /&gt;
|branch&lt;br /&gt;
|&amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt; - Global (commands are executed regardless of success state)&lt;br /&gt;
&amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; - Fail (commands are executed only if the PV is in the &#039;failed&#039; state)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;2&amp;lt;/code&amp;gt; - Success (commands are executed only if the PV is in the &#039;success&#039; state)&lt;br /&gt;
|enum&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;h6&amp;gt;PV_END&amp;lt;/h6&amp;gt;&lt;br /&gt;
|Ends PV playback.&lt;br /&gt;
&amp;lt;code&amp;gt;PV_END();&amp;lt;/code&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; |&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;h6&amp;gt;SATURATE&amp;lt;/h6&amp;gt;&lt;br /&gt;
|Changes color saturation in a PV.&lt;br /&gt;
&amp;lt;code&amp;gt;SATURATE(amount);&amp;lt;/code&amp;gt;&lt;br /&gt;
|amount&lt;br /&gt;
|Saturation strength on a scale from 0 to 1000:&lt;br /&gt;
&amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt; - No color, perfect grayscale&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;1000&amp;lt;/code&amp;gt; - Regular colors&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;6&amp;quot; |&lt;br /&gt;
&amp;lt;h6&amp;gt;SCENE_FADE&amp;lt;/h6&amp;gt;&lt;br /&gt;
| rowspan=&amp;quot;6&amp;quot; |Plays a screen fade effect during PVs.&lt;br /&gt;
&amp;lt;code&amp;gt;SCENE_FADE(duration, start, end, r, g, b)&amp;lt;/code&amp;gt;&lt;br /&gt;
|duration&lt;br /&gt;
|Fade duration in milliseconds&lt;br /&gt;
eg:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;1000&amp;lt;/code&amp;gt;: 1 second&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;800&amp;lt;/code&amp;gt;: 0.8 seconds&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|start&lt;br /&gt;
|The opacity the fade will start with&lt;br /&gt;
&amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt;: fully transparent&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;1000&amp;lt;/code&amp;gt;: fully opaque&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|end&lt;br /&gt;
|The opacity the fade will end with&lt;br /&gt;
&amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt;: fully transparent&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;1000&amp;lt;/code&amp;gt;: fully opaque&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|r&lt;br /&gt;
|Red color component scale, from 0 to 1000&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|g&lt;br /&gt;
|Green color component scale, from 0 to 1000&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|b&lt;br /&gt;
|Blue color component scale, from 0 to 1000&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;h6&amp;gt;SE_EFFECT&amp;lt;/h6&amp;gt;&lt;br /&gt;
|Plays a sound effect in a PV defined in &amp;lt;code&amp;gt;pv_db&amp;lt;/code&amp;gt;. Normally used for success scenes but not restricted to them.&lt;br /&gt;
FT, F, F2, X: &amp;lt;code&amp;gt;SE_EFFECT(id);&amp;lt;/code&amp;gt;&lt;br /&gt;
|id&lt;br /&gt;
|number of a &amp;lt;code&amp;gt;effect_se_name_list&amp;lt;/code&amp;gt; item defined in &amp;lt;code&amp;gt;pv_db&amp;lt;/code&amp;gt;.&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;12&amp;quot; |&lt;br /&gt;
&amp;lt;h6&amp;gt;TARGET&amp;lt;/h6&amp;gt;&lt;br /&gt;
| rowspan=&amp;quot;12&amp;quot; |Spawns a rhythm game note.&lt;br /&gt;
FT: &amp;lt;code&amp;gt;TARGET(type, pos_x, pos_y, angle, dist, amp, freq);&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
F: &amp;lt;code&amp;gt;TARGET(type, duration, is_end, pos_x, pos_y, angle, freq, dist, amp, fly_time, sig);&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
F2, X: &amp;lt;code&amp;gt;TARGET(type, duration, is_end, pos_x, pos_y, angle, freq, dist, amp, fly_time, sig, hit_eff);&amp;lt;/code&amp;gt;&lt;br /&gt;
|type&lt;br /&gt;
|ID corresponding to a note type.&lt;br /&gt;
Full ID list for each game on the dedicated [[Target]] page.&lt;br /&gt;
|enum&lt;br /&gt;
|-&lt;br /&gt;
|pos_x&lt;br /&gt;
|X position of the note&#039;s target.&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|pos_y&lt;br /&gt;
|Y position of the note&#039;s target.&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|angle&lt;br /&gt;
|Angle of the note&#039;s path.&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|distance&lt;br /&gt;
|Distance between the note&#039;s spawn position and the target&#039;s position.&lt;br /&gt;
Default: &amp;lt;code&amp;gt;300000&amp;lt;/code&amp;gt;&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|amp&lt;br /&gt;
|Amplitude of the note&#039;s path wave.&lt;br /&gt;
Default: &amp;lt;code&amp;gt;500&amp;lt;/code&amp;gt;&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|freq&lt;br /&gt;
|Frequency of the note&#039;s path wave.&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|duration&lt;br /&gt;
|(for F/F2/X formats)&lt;br /&gt;
Sustain and Rush Note duration.&lt;br /&gt;
Default (for notes other than Sustain and Rush): &amp;lt;code&amp;gt;-1&amp;lt;/code&amp;gt;&lt;br /&gt;
|DivaTime&lt;br /&gt;
|-&lt;br /&gt;
|is_end&lt;br /&gt;
|(for F/F2/X formats)&lt;br /&gt;
set to &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; for Sustain &#039;end&#039; notes, otherwise set to &amp;lt;code&amp;gt;-1&amp;lt;/code&amp;gt;&lt;br /&gt;
|bool&lt;br /&gt;
|-&lt;br /&gt;
|fly_time&lt;br /&gt;
|(for F/F2/X formats)&lt;br /&gt;
Target Flying Time value (same format as the TARGET_FLYING_TIME command)&lt;br /&gt;
|DivaTime&lt;br /&gt;
|-&lt;br /&gt;
|sig&lt;br /&gt;
|(for F/F2/X formats)&lt;br /&gt;
Time Signature&lt;br /&gt;
&lt;br /&gt;
The same value that would otherwise go in &amp;lt;code&amp;gt;BAR_TIME_SET&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
Number of quarter note beats minus 1. eg: &amp;lt;code&amp;gt;3&amp;lt;/code&amp;gt; for 4/4.&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|hit_eff&lt;br /&gt;
|(for F2/X formats)&lt;br /&gt;
Assigns a hit effect to the note based on a local ID defined in a previous TARGET_EFFECT command.&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;h6&amp;gt;TARGET_FLYING_TIME&amp;lt;/h6&amp;gt;&lt;br /&gt;
|Sets the time it takes for the rhythm game notes to hit their targets.&lt;br /&gt;
&amp;lt;code&amp;gt;TARGET_FLYING_TIME(flytime);&amp;lt;/code&amp;gt;&lt;br /&gt;
|flytime&lt;br /&gt;
|time value in milliseconds&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;h6&amp;gt;TIME&amp;lt;/h6&amp;gt;&lt;br /&gt;
|Waits until a specified game time.&lt;br /&gt;
&amp;lt;code&amp;gt;TIME(t);&amp;lt;/code&amp;gt;&lt;br /&gt;
|t&lt;br /&gt;
|time value in DivaTime&lt;br /&gt;
|DivaTime&lt;br /&gt;
|}&amp;lt;!-- Please keep all the commands in alphabetical order!! --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= References =&lt;br /&gt;
somewhatlurker&#039;s [https://github.com/somewhatlurker/pydiva/blob/dsc/pydiva/pydsc_op_db.py pyDIVA/pyDSC]&lt;/div&gt;</summary>
		<author><name>GGAB3</name></author>
	</entry>
	<entry>
		<id>https://docs.divamodarchive.com/index.php?title=DivaScript&amp;diff=184</id>
		<title>DivaScript</title>
		<link rel="alternate" type="text/html" href="https://docs.divamodarchive.com/index.php?title=DivaScript&amp;diff=184"/>
		<updated>2025-10-26T07:55:50Z</updated>

		<summary type="html">&lt;p&gt;GGAB3: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;DivaScript&#039;&#039; (commonly referred to as &#039;&#039;DSC&#039;&#039;) is the file format used by all the &#039;&#039;Project DIVA&#039;&#039; games for storing various commands related to Music Videos/PVs and Rhythm Game Charts.&lt;br /&gt;
&lt;br /&gt;
The data inside &amp;lt;code&amp;gt;.dsc&amp;lt;/code&amp;gt; files is stored in a binary format. This means that they can not be edited with a text editor and instead require specialized programs that can decode them such as [[DSC Studio]] or [[ScriptEditor]]. Additionally, &amp;lt;code&amp;gt;.dsc&amp;lt;/code&amp;gt; files from &#039;&#039;Project DIVA F2nd&#039;&#039; and &#039;&#039;Project DIVA X&#039;&#039; are encrypted using DIVAFILE encryption. They need to be decrypted before editing.&lt;br /&gt;
&lt;br /&gt;
== DSC Formats ==&lt;br /&gt;
Every &#039;&#039;Project DIVA&#039;&#039; game uses a specific DivaScript format. The exact format of a &amp;lt;code&amp;gt;.dsc&amp;lt;/code&amp;gt; file is determined by the first 4 bytes of the file.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|}&amp;lt;!-- Needs an actual list of all the formats and their DSC headers. --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== List of DSC Commands &#039;&#039;(Incomplete)&#039;&#039; ==&lt;br /&gt;
List of commands that can be used in FT, F, F2/X DSC formats. Format-exclusive commands are marked individually.&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Command Name&lt;br /&gt;
!Definition&lt;br /&gt;
!Parameter&lt;br /&gt;
!Description&lt;br /&gt;
!Type&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;6&amp;quot; |&lt;br /&gt;
&amp;lt;h6&amp;gt;AGEAGE_CTRL&amp;lt;/h6&amp;gt;&lt;br /&gt;
| rowspan=&amp;quot;6&amp;quot; |Controls the effect for the hair of the module &amp;quot;AgeAge Again&amp;quot;.&lt;br /&gt;
FT: &amp;lt;code&amp;gt;AGEAGE_CTRL(chara, parts, npr, rot_speed, skip, disp, -1, -1);&amp;lt;/code&amp;gt;&lt;br /&gt;
|chara&lt;br /&gt;
|Character slot&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|parts&lt;br /&gt;
|Hair parts to control:&lt;br /&gt;
&amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt;: both&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt;: left&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;2&amp;lt;/code&amp;gt;: right&lt;br /&gt;
|enum&lt;br /&gt;
|-&lt;br /&gt;
|npr&lt;br /&gt;
|sets NPR material&lt;br /&gt;
|bool&lt;br /&gt;
|-&lt;br /&gt;
|speed&lt;br /&gt;
|Effect speed&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|skip&lt;br /&gt;
|Skips 200 frames of animation.&lt;br /&gt;
|bool&lt;br /&gt;
|-&lt;br /&gt;
|disp&lt;br /&gt;
|Whether to display the effect or not.&lt;br /&gt;
|bool&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; |&lt;br /&gt;
====== BAR_TIME_SET ======&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; |Sets the length of a measure.&lt;br /&gt;
&amp;lt;code&amp;gt;BAR_TIME_SET(bpm, beats);&amp;lt;/code&amp;gt;&lt;br /&gt;
|bpm&lt;br /&gt;
|Beats per minute&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|beats&lt;br /&gt;
|Number of quarter note beats minus 1. eg: &amp;lt;code&amp;gt;3&amp;lt;/code&amp;gt; for 4/4.&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; |&lt;br /&gt;
====== BLOOM ======&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; |Sets data from &amp;lt;code&amp;gt;bloom&amp;lt;/code&amp;gt; pv_param.&lt;br /&gt;
FT, F2, X: &amp;lt;code&amp;gt;BLOOM(id, unk);&amp;lt;/code&amp;gt;&lt;br /&gt;
|id&lt;br /&gt;
|ID matching the data in pv_param.&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|unk&lt;br /&gt;
|Unknown&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
====== CHANGE_FIELD ======&lt;br /&gt;
|Changes the field defined in &amp;lt;code&amp;gt;pv_field&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;pv_db&amp;lt;/code&amp;gt;.&lt;br /&gt;
&amp;lt;code&amp;gt;CHANGE_FIELD(id);&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
F2, X: &amp;lt;code&amp;gt;CHANGE_FIELD(id, unk);&amp;lt;/code&amp;gt;&lt;br /&gt;
|id&lt;br /&gt;
|ID matching the field number in &amp;lt;code&amp;gt;pv_field&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;pv_db&amp;lt;/code&amp;gt;.&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; |&lt;br /&gt;
====== CHARA_SIZE ======&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; |Sets a character&#039;s scale/size.&lt;br /&gt;
&amp;lt;code&amp;gt;CHARA_SIZE(chara, size);&amp;lt;/code&amp;gt;&lt;br /&gt;
|chara&lt;br /&gt;
|Character slot&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|size&lt;br /&gt;
|Character scale&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
====== END ======&lt;br /&gt;
|Ends reading of the script.&lt;br /&gt;
&amp;lt;code&amp;gt;END();&amp;lt;/code&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; |&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; |&lt;br /&gt;
====== HAND_SCALE ======&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; |Sets the size of a character&#039;s hand.&lt;br /&gt;
FT: &amp;lt;code&amp;gt;HAND_SCALE(chara, hand, scale);&amp;lt;/code&amp;gt;&lt;br /&gt;
|chara&lt;br /&gt;
|Character slot&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|hand&lt;br /&gt;
|Which hand to scale:&lt;br /&gt;
&amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt;: left&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;2&amp;lt;/code&amp;gt;: right&lt;br /&gt;
|enum&lt;br /&gt;
|-&lt;br /&gt;
|scale&lt;br /&gt;
|Hand scale in percentage times 10; eg. for &amp;lt;code&amp;gt;105%&amp;lt;/code&amp;gt; use &amp;lt;code&amp;gt;1050&amp;lt;/code&amp;gt;&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; |&lt;br /&gt;
====== LYRIC ======&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; |Displays a lyric from &amp;lt;code&amp;gt;pv_db&amp;lt;/code&amp;gt;.&lt;br /&gt;
&amp;lt;code&amp;gt;LYRIC(id, color);&amp;lt;/code&amp;gt;&lt;br /&gt;
|id&lt;br /&gt;
|ID matching the number of a lyric in &amp;lt;code&amp;gt;pv_db&amp;lt;/code&amp;gt;.&lt;br /&gt;
Use &amp;lt;code&amp;gt;-1&amp;lt;/code&amp;gt; as &amp;quot;disable&amp;quot;.&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|color&lt;br /&gt;
|&amp;lt;code&amp;gt;#AARRGGBB&amp;lt;/code&amp;gt; hex color code converted to decimal.&lt;br /&gt;
eg.: for a red lyric the command would be &amp;lt;code&amp;gt;LYRIC(id, 16711680);&amp;lt;/code&amp;gt; &lt;br /&gt;
&lt;br /&gt;
because Red: &amp;lt;code&amp;gt;#00FF0000&amp;lt;/code&amp;gt; → &amp;lt;code&amp;gt;0x00ff0000&amp;lt;/code&amp;gt; → &amp;lt;code&amp;gt;16711680&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Default: &amp;lt;code&amp;gt;-1&amp;lt;/code&amp;gt;&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; |&lt;br /&gt;
====== MIKU_DISP ======&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; |Shows or hides a character in a PV.&lt;br /&gt;
&amp;lt;code&amp;gt;MIKU_DISP(chara, disp);&amp;lt;/code&amp;gt;&lt;br /&gt;
|chara&lt;br /&gt;
|Character slot&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|disp&lt;br /&gt;
|Whether to display the character or not.&lt;br /&gt;
|bool&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;4&amp;quot; |&lt;br /&gt;
====== MIKU_MOVE ======&lt;br /&gt;
| rowspan=&amp;quot;4&amp;quot; |Moves a character in 3D space in a PV.&lt;br /&gt;
&amp;lt;code&amp;gt;MIKU_MOVE(chara, x, y, z);&amp;lt;/code&amp;gt;&lt;br /&gt;
|chara&lt;br /&gt;
|Character slot&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|x&lt;br /&gt;
|X coordinate&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|y&lt;br /&gt;
|Y coordinate&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|z&lt;br /&gt;
|Z coordinate&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; |&lt;br /&gt;
====== MIKU_ROT ======&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; |Rotates a character in a PV.&lt;br /&gt;
&amp;lt;code&amp;gt;MIKU_ROT(chara, angle);&amp;lt;/code&amp;gt;&lt;br /&gt;
|chara&lt;br /&gt;
|Character slot&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|angle&lt;br /&gt;
|Angle value&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; |&lt;br /&gt;
====== MIKU_SHADOW ======&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; |Shows or hides a character&#039;s shadow in a PV.&lt;br /&gt;
&amp;lt;code&amp;gt;MIKU_SHADOW(chara, disp);&amp;lt;/code&amp;gt;&lt;br /&gt;
|chara&lt;br /&gt;
|Character slot&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|disp&lt;br /&gt;
|Whether to display the character&#039;s shadow or not.&lt;br /&gt;
|bool&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; |&lt;br /&gt;
====== MODE_SELECT ======&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; |Starts or ends a special chart segment, such as Chance Time.&lt;br /&gt;
&amp;lt;code&amp;gt;MODE_SELECT(difficulty, mode);&amp;lt;/code&amp;gt;&lt;br /&gt;
|difficulty&lt;br /&gt;
|Indicates under what difficulties the command will trigger in this exact script.&lt;br /&gt;
This value is a bit flag corresponding to a group of difficulties:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; - Easy&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;2&amp;lt;/code&amp;gt; - Normal&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;4&amp;lt;/code&amp;gt; - Hard&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;8&amp;lt;/code&amp;gt; - Extreme&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;16&amp;lt;/code&amp;gt; - Encore&lt;br /&gt;
&lt;br /&gt;
Adding the values up to each other results in a group: &amp;lt;code&amp;gt;6&amp;lt;/code&amp;gt; = Hard (4) and Normal (2).&lt;br /&gt;
&lt;br /&gt;
Use &amp;lt;code&amp;gt;31&amp;lt;/code&amp;gt; as a universal value (works on any difficulty).&lt;br /&gt;
|bitfield enum&lt;br /&gt;
|-&lt;br /&gt;
|mode&lt;br /&gt;
|What segment to start/end:&lt;br /&gt;
&amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; - Challenge Time (Arcade games) / Chance Time (Console games) Start&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;3&amp;lt;/code&amp;gt; - Challenge Time (Arcade games) / Chance Time (Console games) End&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;8&amp;lt;/code&amp;gt; - Technical Zone Start&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;9&amp;lt;/code&amp;gt; - Technical Zone End&lt;br /&gt;
&lt;br /&gt;
Only used by the [https://divamodarchive.com/post/169 New Classics mod]:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;4&amp;lt;/code&amp;gt; - Chance Time Start&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;5&amp;lt;/code&amp;gt; - Chance Time End&lt;br /&gt;
|enum&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; |&lt;br /&gt;
====== MOVIE_CUT_CHG ======&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; |Plays, shows or hides the movie defined in &amp;lt;code&amp;gt;pv_db&amp;lt;/code&amp;gt; or a movie from &amp;lt;code&amp;gt;movie.list&amp;lt;/code&amp;gt; in &amp;lt;code&amp;gt;pv_db&amp;lt;/code&amp;gt;. It can be used as a fancier version of both &amp;lt;code&amp;gt;MOVIE_DISP&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;MOVIE_PLAY&amp;lt;/code&amp;gt; that allows more control.&lt;br /&gt;
FT: &amp;lt;code&amp;gt;MOVIE_CUT_CHG(id, disp);&amp;lt;/code&amp;gt;&lt;br /&gt;
|id&lt;br /&gt;
|The number in &amp;lt;code&amp;gt;movie.list&amp;lt;/code&amp;gt; of the movie to be played.&lt;br /&gt;
Playback starts at the moment the command is called for a newly called &amp;lt;code&amp;gt;movie.list&amp;lt;/code&amp;gt; item. Re-calling a movie again doesn&#039;t play it from the starting position.&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|disp&lt;br /&gt;
|&amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; - display the movie layer&lt;br /&gt;
Any other value - hide the movie layer (playback keeps going)&lt;br /&gt;
|bool&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
====== MOVIE_DISP ======&lt;br /&gt;
|Shows or hides the movie layer in a PV.&lt;br /&gt;
&amp;lt;code&amp;gt;MOVIE_DISP(disp);&amp;lt;/code&amp;gt;&lt;br /&gt;
|disp&lt;br /&gt;
|&amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; - display the movie layer&lt;br /&gt;
Any other value - hide the movie layer (playback keeps going)&lt;br /&gt;
|bool&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
====== MOVIE_PLAY ======&lt;br /&gt;
|Starts playing the movie defined in &amp;lt;code&amp;gt;pv_db&amp;lt;/code&amp;gt; or the first movie in &amp;lt;code&amp;gt;movie.list&amp;lt;/code&amp;gt; in &amp;lt;code&amp;gt;pv_db&amp;lt;/code&amp;gt;.&lt;br /&gt;
&amp;lt;code&amp;gt;MOVIE_PLAY(play);&amp;lt;/code&amp;gt;&lt;br /&gt;
|play&lt;br /&gt;
|&amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; - plays the movie&lt;br /&gt;
Any other value doesn&#039;t do anything.&lt;br /&gt;
|bool&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
====== MUSIC_PLAY ======&lt;br /&gt;
|Starts playing the song file defined in &amp;lt;code&amp;gt;pv_db&amp;lt;/code&amp;gt;.&lt;br /&gt;
&amp;lt;code&amp;gt;MUSIC_PLAY();&amp;lt;/code&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; |&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
====== PV_BRANCH_MODE ======&lt;br /&gt;
|Make future DSC commands only be executed on either the &amp;lt;code&amp;gt;Global&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;Fail&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;Success&amp;lt;/code&amp;gt; branch.&lt;br /&gt;
FT, F, F2, X: &amp;lt;code&amp;gt;PV_BRANCH_MODE(branch);&amp;lt;/code&amp;gt;&lt;br /&gt;
|branch&lt;br /&gt;
|&amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt; - Global (commands are executed regardless of success state)&lt;br /&gt;
&amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; - Fail (commands are executed only if the PV is in the &#039;failed&#039; state)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;2&amp;lt;/code&amp;gt; - Success (commands are executed only if the PV is in the &#039;success&#039; state)&lt;br /&gt;
|enum&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
====== PV_END ======&lt;br /&gt;
|Ends PV playback.&lt;br /&gt;
&amp;lt;code&amp;gt;PV_END();&amp;lt;/code&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; |&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
====== SATURATE ======&lt;br /&gt;
|Changes color saturation in a PV.&lt;br /&gt;
&amp;lt;code&amp;gt;SATURATE(amount);&amp;lt;/code&amp;gt;&lt;br /&gt;
|amount&lt;br /&gt;
|Saturation strength on a scale from 0 to 1000:&lt;br /&gt;
&amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt; - No color, perfect grayscale&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;1000&amp;lt;/code&amp;gt; - Regular colors&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;6&amp;quot; |&lt;br /&gt;
====== SCENE_FADE ======&lt;br /&gt;
| rowspan=&amp;quot;6&amp;quot; |Plays a screen fade effect during PVs.&lt;br /&gt;
&amp;lt;code&amp;gt;SCENE_FADE(duration, start, end, r, g, b)&amp;lt;/code&amp;gt;&lt;br /&gt;
|duration&lt;br /&gt;
|Fade duration in milliseconds&lt;br /&gt;
eg:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;1000&amp;lt;/code&amp;gt;: 1 second&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;800&amp;lt;/code&amp;gt;: 0.8 seconds&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|start&lt;br /&gt;
|The opacity the fade will start with&lt;br /&gt;
&amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt;: fully transparent&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;1000&amp;lt;/code&amp;gt;: fully opaque&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|end&lt;br /&gt;
|The opacity the fade will end with&lt;br /&gt;
&amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt;: fully transparent&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;1000&amp;lt;/code&amp;gt;: fully opaque&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|r&lt;br /&gt;
|Red color component scale, from 0 to 1000&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|g&lt;br /&gt;
|Green color component scale, from 0 to 1000&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|b&lt;br /&gt;
|Blue color component scale, from 0 to 1000&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
====== SE_EFFECT ======&lt;br /&gt;
|Plays a sound effect in a PV defined in &amp;lt;code&amp;gt;pv_db&amp;lt;/code&amp;gt;. Normally used for success scenes but not restricted to them.&lt;br /&gt;
FT, F, F2, X: &amp;lt;code&amp;gt;SE_EFFECT(id);&amp;lt;/code&amp;gt;&lt;br /&gt;
|id&lt;br /&gt;
|number of a &amp;lt;code&amp;gt;effect_se_name_list&amp;lt;/code&amp;gt; item defined in &amp;lt;code&amp;gt;pv_db&amp;lt;/code&amp;gt;.&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;12&amp;quot; |&lt;br /&gt;
====== TARGET ======&lt;br /&gt;
| rowspan=&amp;quot;12&amp;quot; |Spawns a rhythm game note.&lt;br /&gt;
FT: &amp;lt;code&amp;gt;TARGET(type, pos_x, pos_y, angle, dist, amp, freq);&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
F: &amp;lt;code&amp;gt;TARGET(type, duration, is_end, pos_x, pos_y, angle, freq, dist, amp, fly_time, sig);&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
F2, X: &amp;lt;code&amp;gt;TARGET(type, duration, is_end, pos_x, pos_y, angle, freq, dist, amp, fly_time, sig, hit_eff);&amp;lt;/code&amp;gt;&lt;br /&gt;
|type&lt;br /&gt;
|ID corresponding to a note type.&lt;br /&gt;
Full ID list for each game on the dedicated [[Target]] page.&lt;br /&gt;
|enum&lt;br /&gt;
|-&lt;br /&gt;
|pos_x&lt;br /&gt;
|X position of the note&#039;s target.&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|pos_y&lt;br /&gt;
|Y position of the note&#039;s target.&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|angle&lt;br /&gt;
|Angle of the note&#039;s path.&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|distance&lt;br /&gt;
|Distance between the note&#039;s spawn position and the target&#039;s position.&lt;br /&gt;
Default: &amp;lt;code&amp;gt;300000&amp;lt;/code&amp;gt;&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|amp&lt;br /&gt;
|Amplitude of the note&#039;s path wave.&lt;br /&gt;
Default: &amp;lt;code&amp;gt;500&amp;lt;/code&amp;gt;&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|freq&lt;br /&gt;
|Frequency of the note&#039;s path wave.&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|duration&lt;br /&gt;
|(for F/F2/X formats)&lt;br /&gt;
Sustain and Rush Note duration.&lt;br /&gt;
Default (for notes other than Sustain and Rush): &amp;lt;code&amp;gt;-1&amp;lt;/code&amp;gt;&lt;br /&gt;
|DivaTime&lt;br /&gt;
|-&lt;br /&gt;
|is_end&lt;br /&gt;
|(for F/F2/X formats)&lt;br /&gt;
set to &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; for Sustain &#039;end&#039; notes, otherwise set to &amp;lt;code&amp;gt;-1&amp;lt;/code&amp;gt;&lt;br /&gt;
|bool&lt;br /&gt;
|-&lt;br /&gt;
|fly_time&lt;br /&gt;
|(for F/F2/X formats)&lt;br /&gt;
Target Flying Time value (same format as the TARGET_FLYING_TIME command)&lt;br /&gt;
|DivaTime&lt;br /&gt;
|-&lt;br /&gt;
|sig&lt;br /&gt;
|(for F/F2/X formats)&lt;br /&gt;
Time Signature&lt;br /&gt;
&lt;br /&gt;
The same value that would otherwise go in &amp;lt;code&amp;gt;BAR_TIME_SET&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
Number of quarter note beats minus 1. eg: &amp;lt;code&amp;gt;3&amp;lt;/code&amp;gt; for 4/4.&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|hit_eff&lt;br /&gt;
|(for F2/X formats)&lt;br /&gt;
Assigns a hit effect to the note based on a local ID defined in a previous TARGET_EFFECT command.&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
====== TARGET_FLYING_TIME ======&lt;br /&gt;
|Sets the time it takes for the rhythm game notes to hit their targets.&lt;br /&gt;
&amp;lt;code&amp;gt;TARGET_FLYING_TIME(flytime);&amp;lt;/code&amp;gt;&lt;br /&gt;
|flytime&lt;br /&gt;
|time value in milliseconds&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
====== TIME ======&lt;br /&gt;
|Waits until a specified game time.&lt;br /&gt;
&amp;lt;code&amp;gt;TIME(t);&amp;lt;/code&amp;gt;&lt;br /&gt;
|t&lt;br /&gt;
|time value in DivaTime&lt;br /&gt;
|DivaTime&lt;br /&gt;
|}&amp;lt;!-- Please keep all the commands in alphabetical order!! --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= References =&lt;br /&gt;
somewhatlurker&#039;s [https://github.com/somewhatlurker/pydiva/blob/dsc/pydiva/pydsc_op_db.py pyDIVA/pyDSC]&lt;/div&gt;</summary>
		<author><name>GGAB3</name></author>
	</entry>
	<entry>
		<id>https://docs.divamodarchive.com/index.php?title=DivaScript&amp;diff=183</id>
		<title>DivaScript</title>
		<link rel="alternate" type="text/html" href="https://docs.divamodarchive.com/index.php?title=DivaScript&amp;diff=183"/>
		<updated>2025-10-23T15:22:44Z</updated>

		<summary type="html">&lt;p&gt;GGAB3: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;DivaScript&#039;&#039; (commonly referred to as &#039;&#039;DSC&#039;&#039;) is the file format used by all the &#039;&#039;Project DIVA&#039;&#039; games for storing various commands related to Music Videos/PVs and Rhythm Game Charts.&lt;br /&gt;
&lt;br /&gt;
The data inside &amp;lt;code&amp;gt;.dsc&amp;lt;/code&amp;gt; files is stored in a binary format. This means that they can not be edited with a text editor and instead require specialized programs that can decode them such as [[DSC Studio]] or [[ScriptEditor]]. Additionally, &amp;lt;code&amp;gt;.dsc&amp;lt;/code&amp;gt; files from &#039;&#039;Project DIVA F2nd&#039;&#039; and &#039;&#039;Project DIVA X&#039;&#039; are encrypted using DIVAFILE encryption. They need to be decrypted before editing.&lt;br /&gt;
&lt;br /&gt;
== DSC Formats ==&lt;br /&gt;
Every &#039;&#039;Project DIVA&#039;&#039; game uses a specific DivaScript format. The exact format of a &amp;lt;code&amp;gt;.dsc&amp;lt;/code&amp;gt; file is determined by the first 4 bytes of the file.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|}&amp;lt;!-- Needs an actual list of all the formats and their DSC headers. --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== List of DSC Commands &#039;&#039;(Incomplete)&#039;&#039; ==&lt;br /&gt;
List of commands that can be used in FT, F, F2/X DSC formats. Format-exclusive commands are marked individually.&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Command Name&lt;br /&gt;
!Definition&lt;br /&gt;
!Parameter&lt;br /&gt;
!Description&lt;br /&gt;
!Type&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;6&amp;quot; |&lt;br /&gt;
====== AGEAGE_CTRL ======&lt;br /&gt;
| rowspan=&amp;quot;6&amp;quot; |Controls the effect for the hair of the module &amp;quot;AgeAge Again&amp;quot;.&lt;br /&gt;
FT: &amp;lt;code&amp;gt;AGEAGE_CTRL(chara, parts, npr, rot_speed, skip, disp, -1, -1);&amp;lt;/code&amp;gt;&lt;br /&gt;
|chara&lt;br /&gt;
|Character slot&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|parts&lt;br /&gt;
|Hair parts to control:&lt;br /&gt;
&amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt;: both&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt;: left&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;2&amp;lt;/code&amp;gt;: right&lt;br /&gt;
|enum&lt;br /&gt;
|-&lt;br /&gt;
|npr&lt;br /&gt;
|sets NPR material&lt;br /&gt;
|bool&lt;br /&gt;
|-&lt;br /&gt;
|speed&lt;br /&gt;
|Effect speed&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|skip&lt;br /&gt;
|Skips 200 frames of animation.&lt;br /&gt;
|bool&lt;br /&gt;
|-&lt;br /&gt;
|disp&lt;br /&gt;
|Whether to display the effect or not.&lt;br /&gt;
|bool&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; |&lt;br /&gt;
====== BAR_TIME_SET ======&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; |Sets the length of a measure.&lt;br /&gt;
&amp;lt;code&amp;gt;BAR_TIME_SET(bpm, beats);&amp;lt;/code&amp;gt;&lt;br /&gt;
|bpm&lt;br /&gt;
|Beats per minute&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|beats&lt;br /&gt;
|Number of quarter note beats minus 1. eg: &amp;lt;code&amp;gt;3&amp;lt;/code&amp;gt; for 4/4.&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; |&lt;br /&gt;
====== BLOOM ======&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; |Sets data from &amp;lt;code&amp;gt;bloom&amp;lt;/code&amp;gt; pv_param.&lt;br /&gt;
FT, F2, X: &amp;lt;code&amp;gt;BLOOM(id, unk);&amp;lt;/code&amp;gt;&lt;br /&gt;
|id&lt;br /&gt;
|ID matching the data in pv_param.&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|unk&lt;br /&gt;
|Unknown&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
====== CHANGE_FIELD ======&lt;br /&gt;
|Changes the field defined in &amp;lt;code&amp;gt;pv_field&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;pv_db&amp;lt;/code&amp;gt;.&lt;br /&gt;
&amp;lt;code&amp;gt;CHANGE_FIELD(id);&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
F2, X: &amp;lt;code&amp;gt;CHANGE_FIELD(id, unk);&amp;lt;/code&amp;gt;&lt;br /&gt;
|id&lt;br /&gt;
|ID matching the field number in &amp;lt;code&amp;gt;pv_field&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;pv_db&amp;lt;/code&amp;gt;.&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; |&lt;br /&gt;
====== CHARA_SIZE ======&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; |Sets a character&#039;s scale/size.&lt;br /&gt;
&amp;lt;code&amp;gt;CHARA_SIZE(chara, size);&amp;lt;/code&amp;gt;&lt;br /&gt;
|chara&lt;br /&gt;
|Character slot&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|size&lt;br /&gt;
|Character scale&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
====== END ======&lt;br /&gt;
|Ends reading of the script.&lt;br /&gt;
&amp;lt;code&amp;gt;END();&amp;lt;/code&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; |&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; |&lt;br /&gt;
====== HAND_SCALE ======&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; |Sets the size of a character&#039;s hand.&lt;br /&gt;
FT: &amp;lt;code&amp;gt;HAND_SCALE(chara, hand, scale);&amp;lt;/code&amp;gt;&lt;br /&gt;
|chara&lt;br /&gt;
|Character slot&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|hand&lt;br /&gt;
|Which hand to scale:&lt;br /&gt;
&amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt;: left&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;2&amp;lt;/code&amp;gt;: right&lt;br /&gt;
|enum&lt;br /&gt;
|-&lt;br /&gt;
|scale&lt;br /&gt;
|Hand scale in percentage times 10; eg. for &amp;lt;code&amp;gt;105%&amp;lt;/code&amp;gt; use &amp;lt;code&amp;gt;1050&amp;lt;/code&amp;gt;&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; |&lt;br /&gt;
====== LYRIC ======&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; |Displays a lyric from &amp;lt;code&amp;gt;pv_db&amp;lt;/code&amp;gt;.&lt;br /&gt;
&amp;lt;code&amp;gt;LYRIC(id, color);&amp;lt;/code&amp;gt;&lt;br /&gt;
|id&lt;br /&gt;
|ID matching the number of a lyric in &amp;lt;code&amp;gt;pv_db&amp;lt;/code&amp;gt;.&lt;br /&gt;
Use &amp;lt;code&amp;gt;-1&amp;lt;/code&amp;gt; as &amp;quot;disable&amp;quot;.&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|color&lt;br /&gt;
|&amp;lt;code&amp;gt;#AARRGGBB&amp;lt;/code&amp;gt; hex color code converted to decimal.&lt;br /&gt;
eg.: for a red lyric the command would be &amp;lt;code&amp;gt;LYRIC(id, 16711680);&amp;lt;/code&amp;gt; &lt;br /&gt;
&lt;br /&gt;
because Red: &amp;lt;code&amp;gt;#00FF0000&amp;lt;/code&amp;gt; → &amp;lt;code&amp;gt;0x00ff0000&amp;lt;/code&amp;gt; → &amp;lt;code&amp;gt;16711680&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Default: &amp;lt;code&amp;gt;-1&amp;lt;/code&amp;gt;&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; |&lt;br /&gt;
====== MIKU_DISP ======&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; |Shows or hides a character in a PV.&lt;br /&gt;
&amp;lt;code&amp;gt;MIKU_DISP(chara, disp);&amp;lt;/code&amp;gt;&lt;br /&gt;
|chara&lt;br /&gt;
|Character slot&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|disp&lt;br /&gt;
|Whether to display the character or not.&lt;br /&gt;
|bool&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;4&amp;quot; |&lt;br /&gt;
====== MIKU_MOVE ======&lt;br /&gt;
| rowspan=&amp;quot;4&amp;quot; |Moves a character in 3D space in a PV.&lt;br /&gt;
&amp;lt;code&amp;gt;MIKU_MOVE(chara, x, y, z);&amp;lt;/code&amp;gt;&lt;br /&gt;
|chara&lt;br /&gt;
|Character slot&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|x&lt;br /&gt;
|X coordinate&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|y&lt;br /&gt;
|Y coordinate&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|z&lt;br /&gt;
|Z coordinate&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; |&lt;br /&gt;
====== MIKU_ROT ======&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; |Rotates a character in a PV.&lt;br /&gt;
&amp;lt;code&amp;gt;MIKU_ROT(chara, angle);&amp;lt;/code&amp;gt;&lt;br /&gt;
|chara&lt;br /&gt;
|Character slot&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|angle&lt;br /&gt;
|Angle value&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; |&lt;br /&gt;
====== MIKU_SHADOW ======&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; |Shows or hides a character&#039;s shadow in a PV.&lt;br /&gt;
&amp;lt;code&amp;gt;MIKU_SHADOW(chara, disp);&amp;lt;/code&amp;gt;&lt;br /&gt;
|chara&lt;br /&gt;
|Character slot&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|disp&lt;br /&gt;
|Whether to display the character&#039;s shadow or not.&lt;br /&gt;
|bool&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; |&lt;br /&gt;
====== MODE_SELECT ======&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; |Starts or ends a special chart segment, such as Chance Time.&lt;br /&gt;
&amp;lt;code&amp;gt;MODE_SELECT(difficulty, mode);&amp;lt;/code&amp;gt;&lt;br /&gt;
|difficulty&lt;br /&gt;
|Indicates under what difficulties the command will trigger in this exact script.&lt;br /&gt;
This value is a bit flag corresponding to a group of difficulties:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; - Easy&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;2&amp;lt;/code&amp;gt; - Normal&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;4&amp;lt;/code&amp;gt; - Hard&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;8&amp;lt;/code&amp;gt; - Extreme&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;16&amp;lt;/code&amp;gt; - Encore&lt;br /&gt;
&lt;br /&gt;
Adding the values up to each other results in a group: &amp;lt;code&amp;gt;6&amp;lt;/code&amp;gt; = Hard (4) and Normal (2).&lt;br /&gt;
&lt;br /&gt;
Use &amp;lt;code&amp;gt;31&amp;lt;/code&amp;gt; as a universal value (works on any difficulty).&lt;br /&gt;
|bitfield enum&lt;br /&gt;
|-&lt;br /&gt;
|mode&lt;br /&gt;
|What segment to start/end:&lt;br /&gt;
&amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; - Challenge Time (Arcade games) / Chance Time (Console games) Start&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;3&amp;lt;/code&amp;gt; - Challenge Time (Arcade games) / Chance Time (Console games) End&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;8&amp;lt;/code&amp;gt; - Technical Zone Start&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;9&amp;lt;/code&amp;gt; - Technical Zone End&lt;br /&gt;
&lt;br /&gt;
Only used by the [https://divamodarchive.com/post/169 New Classics mod]:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;4&amp;lt;/code&amp;gt; - Chance Time Start&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;5&amp;lt;/code&amp;gt; - Chance Time End&lt;br /&gt;
|enum&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; |&lt;br /&gt;
====== MOVIE_CUT_CHG ======&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; |Plays, shows or hides the movie defined in &amp;lt;code&amp;gt;pv_db&amp;lt;/code&amp;gt; or a movie from &amp;lt;code&amp;gt;movie.list&amp;lt;/code&amp;gt; in &amp;lt;code&amp;gt;pv_db&amp;lt;/code&amp;gt;. It can be used as a fancier version of both &amp;lt;code&amp;gt;MOVIE_DISP&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;MOVIE_PLAY&amp;lt;/code&amp;gt; that allows more control.&lt;br /&gt;
FT: &amp;lt;code&amp;gt;MOVIE_CUT_CHG(id, disp);&amp;lt;/code&amp;gt;&lt;br /&gt;
|id&lt;br /&gt;
|The number in &amp;lt;code&amp;gt;movie.list&amp;lt;/code&amp;gt; of the movie to be played.&lt;br /&gt;
Playback starts at the moment the command is called for a newly called &amp;lt;code&amp;gt;movie.list&amp;lt;/code&amp;gt; item. Re-calling a movie again doesn&#039;t play it from the starting position.&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|disp&lt;br /&gt;
|&amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; - display the movie layer&lt;br /&gt;
Any other value - hide the movie layer (playback keeps going)&lt;br /&gt;
|bool&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
====== MOVIE_DISP ======&lt;br /&gt;
|Shows or hides the movie layer in a PV.&lt;br /&gt;
&amp;lt;code&amp;gt;MOVIE_DISP(disp);&amp;lt;/code&amp;gt;&lt;br /&gt;
|disp&lt;br /&gt;
|&amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; - display the movie layer&lt;br /&gt;
Any other value - hide the movie layer (playback keeps going)&lt;br /&gt;
|bool&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
====== MOVIE_PLAY ======&lt;br /&gt;
|Starts playing the movie defined in &amp;lt;code&amp;gt;pv_db&amp;lt;/code&amp;gt; or the first movie in &amp;lt;code&amp;gt;movie.list&amp;lt;/code&amp;gt; in &amp;lt;code&amp;gt;pv_db&amp;lt;/code&amp;gt;.&lt;br /&gt;
&amp;lt;code&amp;gt;MOVIE_PLAY(play);&amp;lt;/code&amp;gt;&lt;br /&gt;
|play&lt;br /&gt;
|&amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; - plays the movie&lt;br /&gt;
Any other value doesn&#039;t do anything.&lt;br /&gt;
|bool&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
====== MUSIC_PLAY ======&lt;br /&gt;
|Starts playing the song file defined in &amp;lt;code&amp;gt;pv_db&amp;lt;/code&amp;gt;.&lt;br /&gt;
&amp;lt;code&amp;gt;MUSIC_PLAY();&amp;lt;/code&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; |&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
====== PV_BRANCH_MODE ======&lt;br /&gt;
|Make future DSC commands only be executed on either the &amp;lt;code&amp;gt;Global&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;Fail&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;Success&amp;lt;/code&amp;gt; branch.&lt;br /&gt;
FT, F, F2, X: &amp;lt;code&amp;gt;PV_BRANCH_MODE(branch);&amp;lt;/code&amp;gt;&lt;br /&gt;
|branch&lt;br /&gt;
|&amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt; - Global (commands are executed regardless of success state)&lt;br /&gt;
&amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; - Fail (commands are executed only if the PV is in the &#039;failed&#039; state)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;2&amp;lt;/code&amp;gt; - Success (commands are executed only if the PV is in the &#039;success&#039; state)&lt;br /&gt;
|enum&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
====== PV_END ======&lt;br /&gt;
|Ends PV playback.&lt;br /&gt;
&amp;lt;code&amp;gt;PV_END();&amp;lt;/code&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; |&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
====== SATURATE ======&lt;br /&gt;
|Changes color saturation in a PV.&lt;br /&gt;
&amp;lt;code&amp;gt;SATURATE(amount);&amp;lt;/code&amp;gt;&lt;br /&gt;
|amount&lt;br /&gt;
|Saturation strength on a scale from 0 to 1000:&lt;br /&gt;
&amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt; - No color, perfect grayscale&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;1000&amp;lt;/code&amp;gt; - Regular colors&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;6&amp;quot; |&lt;br /&gt;
====== SCENE_FADE ======&lt;br /&gt;
| rowspan=&amp;quot;6&amp;quot; |Plays a screen fade effect during PVs.&lt;br /&gt;
&amp;lt;code&amp;gt;SCENE_FADE(duration, start, end, r, g, b)&amp;lt;/code&amp;gt;&lt;br /&gt;
|duration&lt;br /&gt;
|Fade duration in milliseconds&lt;br /&gt;
eg:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;1000&amp;lt;/code&amp;gt;: 1 second&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;800&amp;lt;/code&amp;gt;: 0.8 seconds&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|start&lt;br /&gt;
|The opacity the fade will start with&lt;br /&gt;
&amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt;: fully transparent&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;1000&amp;lt;/code&amp;gt;: fully opaque&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|end&lt;br /&gt;
|The opacity the fade will end with&lt;br /&gt;
&amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt;: fully transparent&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;1000&amp;lt;/code&amp;gt;: fully opaque&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|r&lt;br /&gt;
|Red color component scale, from 0 to 1000&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|g&lt;br /&gt;
|Green color component scale, from 0 to 1000&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|b&lt;br /&gt;
|Blue color component scale, from 0 to 1000&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
====== SE_EFFECT ======&lt;br /&gt;
|Plays a sound effect in a PV defined in &amp;lt;code&amp;gt;pv_db&amp;lt;/code&amp;gt;. Normally used for success scenes but not restricted to them.&lt;br /&gt;
FT, F, F2, X: &amp;lt;code&amp;gt;SE_EFFECT(id);&amp;lt;/code&amp;gt;&lt;br /&gt;
|id&lt;br /&gt;
|number of a &amp;lt;code&amp;gt;effect_se_name_list&amp;lt;/code&amp;gt; item defined in &amp;lt;code&amp;gt;pv_db&amp;lt;/code&amp;gt;.&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;12&amp;quot; |&lt;br /&gt;
====== TARGET ======&lt;br /&gt;
| rowspan=&amp;quot;12&amp;quot; |Spawns a rhythm game note.&lt;br /&gt;
FT: &amp;lt;code&amp;gt;TARGET(type, pos_x, pos_y, angle, dist, amp, freq);&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
F: &amp;lt;code&amp;gt;TARGET(type, duration, is_end, pos_x, pos_y, angle, freq, dist, amp, fly_time, sig);&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
F2, X: &amp;lt;code&amp;gt;TARGET(type, duration, is_end, pos_x, pos_y, angle, freq, dist, amp, fly_time, sig, hit_eff);&amp;lt;/code&amp;gt;&lt;br /&gt;
|type&lt;br /&gt;
|ID corresponding to a note type.&lt;br /&gt;
Full ID list for each game on the dedicated [[Target]] page.&lt;br /&gt;
|enum&lt;br /&gt;
|-&lt;br /&gt;
|pos_x&lt;br /&gt;
|X position of the note&#039;s target.&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|pos_y&lt;br /&gt;
|Y position of the note&#039;s target.&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|angle&lt;br /&gt;
|Angle of the note&#039;s path.&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|distance&lt;br /&gt;
|Distance between the note&#039;s spawn position and the target&#039;s position.&lt;br /&gt;
Default: &amp;lt;code&amp;gt;300000&amp;lt;/code&amp;gt;&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|amp&lt;br /&gt;
|Amplitude of the note&#039;s path wave.&lt;br /&gt;
Default: &amp;lt;code&amp;gt;500&amp;lt;/code&amp;gt;&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|freq&lt;br /&gt;
|Frequency of the note&#039;s path wave.&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|duration&lt;br /&gt;
|(for F/F2/X formats)&lt;br /&gt;
Sustain and Rush Note duration.&lt;br /&gt;
Default (for notes other than Sustain and Rush): &amp;lt;code&amp;gt;-1&amp;lt;/code&amp;gt;&lt;br /&gt;
|DivaTime&lt;br /&gt;
|-&lt;br /&gt;
|is_end&lt;br /&gt;
|(for F/F2/X formats)&lt;br /&gt;
set to &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; for Sustain &#039;end&#039; notes, otherwise set to &amp;lt;code&amp;gt;-1&amp;lt;/code&amp;gt;&lt;br /&gt;
|bool&lt;br /&gt;
|-&lt;br /&gt;
|fly_time&lt;br /&gt;
|(for F/F2/X formats)&lt;br /&gt;
Target Flying Time value (same format as the TARGET_FLYING_TIME command)&lt;br /&gt;
|DivaTime&lt;br /&gt;
|-&lt;br /&gt;
|sig&lt;br /&gt;
|(for F/F2/X formats)&lt;br /&gt;
Time Signature&lt;br /&gt;
&lt;br /&gt;
The same value that would otherwise go in &amp;lt;code&amp;gt;BAR_TIME_SET&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
Number of quarter note beats minus 1. eg: &amp;lt;code&amp;gt;3&amp;lt;/code&amp;gt; for 4/4.&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|hit_eff&lt;br /&gt;
|(for F2/X formats)&lt;br /&gt;
Assigns a hit effect to the note based on a local ID defined in a previous TARGET_EFFECT command.&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
====== TARGET_FLYING_TIME ======&lt;br /&gt;
|Sets the time it takes for the rhythm game notes to hit their targets.&lt;br /&gt;
&amp;lt;code&amp;gt;TARGET_FLYING_TIME(flytime);&amp;lt;/code&amp;gt;&lt;br /&gt;
|flytime&lt;br /&gt;
|time value in milliseconds&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
====== TIME ======&lt;br /&gt;
|Waits until a specified game time.&lt;br /&gt;
&amp;lt;code&amp;gt;TIME(t);&amp;lt;/code&amp;gt;&lt;br /&gt;
|t&lt;br /&gt;
|time value in DivaTime&lt;br /&gt;
|DivaTime&lt;br /&gt;
|}&amp;lt;!-- Please keep all the commands in alphabetical order!! --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= References =&lt;br /&gt;
somewhatlurker&#039;s [https://github.com/somewhatlurker/pydiva/blob/dsc/pydiva/pydsc_op_db.py pyDIVA/pyDSC]&lt;/div&gt;</summary>
		<author><name>GGAB3</name></author>
	</entry>
	<entry>
		<id>https://docs.divamodarchive.com/index.php?title=DivaScript&amp;diff=182</id>
		<title>DivaScript</title>
		<link rel="alternate" type="text/html" href="https://docs.divamodarchive.com/index.php?title=DivaScript&amp;diff=182"/>
		<updated>2025-10-23T15:21:40Z</updated>

		<summary type="html">&lt;p&gt;GGAB3: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;DivaScript&#039;&#039; (commonly referred to as &#039;&#039;DSC&#039;&#039;) is the file format used by all the &#039;&#039;Project DIVA&#039;&#039; games for storing various commands related to Music Videos/PVs and Rhythm Game Charts.&lt;br /&gt;
&lt;br /&gt;
The data inside &amp;lt;code&amp;gt;.dsc&amp;lt;/code&amp;gt; files is stored in a binary format. This means that they can not be edited with a text editor and instead require specialized programs that can decode them such as [[DSC Studio]] or [[ScriptEditor]]. Additionally, &amp;lt;code&amp;gt;.dsc&amp;lt;/code&amp;gt; files from &#039;&#039;Project DIVA F2nd&#039;&#039; and &#039;&#039;Project DIVA X&#039;&#039; are encrypted using DIVAFILE encryption. They need to be decrypted before editing.&lt;br /&gt;
&lt;br /&gt;
== DSC Formats ==&lt;br /&gt;
Every &#039;&#039;Project DIVA&#039;&#039; game uses a specific DivaScript format. The exact format of a &amp;lt;code&amp;gt;.dsc&amp;lt;/code&amp;gt; file is determined by the first 4 bytes of the file.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|}&amp;lt;!-- Needs an actual list of all the formats and their DSC headers. --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== List of DSC Commands &#039;&#039;(Incomplete)&#039;&#039; ==&lt;br /&gt;
List of commands that can be used in FT, F, F2/X DSC formats. Format-exclusive commands are marked individually.&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Command Name&lt;br /&gt;
!Definition&lt;br /&gt;
!Parameter&lt;br /&gt;
!Description&lt;br /&gt;
!Type&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;6&amp;quot; |&lt;br /&gt;
====== AGEAGE_CTRL ======&lt;br /&gt;
| rowspan=&amp;quot;6&amp;quot; |Controls the effect for the hair of the module &amp;quot;AgeAge Again&amp;quot;.&lt;br /&gt;
FT: &amp;lt;code&amp;gt;AGEAGE_CTRL(chara, parts, npr, rot_speed, skip, disp, -1, -1);&amp;lt;/code&amp;gt;&lt;br /&gt;
|chara&lt;br /&gt;
|Character slot&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|parts&lt;br /&gt;
|Hair parts to control:&lt;br /&gt;
&amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt;: both&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt;: left&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;2&amp;lt;/code&amp;gt;: right&lt;br /&gt;
|enum&lt;br /&gt;
|-&lt;br /&gt;
|npr&lt;br /&gt;
|sets NPR material&lt;br /&gt;
|bool&lt;br /&gt;
|-&lt;br /&gt;
|speed&lt;br /&gt;
|Effect speed&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|skip&lt;br /&gt;
|Skips 200 frames of animation.&lt;br /&gt;
|bool&lt;br /&gt;
|-&lt;br /&gt;
|disp&lt;br /&gt;
|Whether to display the effect or not.&lt;br /&gt;
|bool&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; |&lt;br /&gt;
====== BAR_TIME_SET ======&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; |Sets the length of a measure.&lt;br /&gt;
&amp;lt;code&amp;gt;BAR_TIME_SET(bpm, beats);&amp;lt;/code&amp;gt;&lt;br /&gt;
|bpm&lt;br /&gt;
|Beats per minute&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|beats&lt;br /&gt;
|Number of quarter note beats minus 1. eg: &amp;lt;code&amp;gt;3&amp;lt;/code&amp;gt; for 4/4.&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; |&lt;br /&gt;
====== BLOOM ======&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; |Sets data from &amp;lt;code&amp;gt;bloom&amp;lt;/code&amp;gt; pv_param.&lt;br /&gt;
FT, F2, X: &amp;lt;code&amp;gt;BLOOM(id, unk);&amp;lt;/code&amp;gt;&lt;br /&gt;
|id&lt;br /&gt;
|ID matching the data in pv_param.&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|unk&lt;br /&gt;
|Unknown&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
====== CHANGE_FIELD ======&lt;br /&gt;
|Changes the field defined in &amp;lt;code&amp;gt;pv_field&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;pv_db&amp;lt;/code&amp;gt;.&lt;br /&gt;
&amp;lt;code&amp;gt;CHANGE_FIELD(id);&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
F2, X: &amp;lt;code&amp;gt;CHANGE_FIELD(id, unk);&amp;lt;/code&amp;gt;&lt;br /&gt;
|id&lt;br /&gt;
|ID matching the field number in &amp;lt;code&amp;gt;pv_field&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;pv_db&amp;lt;/code&amp;gt;.&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; |&lt;br /&gt;
====== CHARA_SIZE ======&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; |Sets a character&#039;s scale/size.&lt;br /&gt;
&amp;lt;code&amp;gt;CHARA_SIZE(chara, size);&amp;lt;/code&amp;gt;&lt;br /&gt;
|chara&lt;br /&gt;
|Character slot&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|size&lt;br /&gt;
|Character scale&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
====== END ======&lt;br /&gt;
|Ends reading of the script.&lt;br /&gt;
&amp;lt;code&amp;gt;END();&amp;lt;/code&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; |&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; |&lt;br /&gt;
====== HAND_SCALE ======&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; |Sets the size of a character&#039;s hand.&lt;br /&gt;
FT: &amp;lt;code&amp;gt;HAND_SCALE(chara, hand, scale);&amp;lt;/code&amp;gt;&lt;br /&gt;
|chara&lt;br /&gt;
|Character slot&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|hand&lt;br /&gt;
|Which hand to scale:&lt;br /&gt;
&amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt;: left&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;2&amp;lt;/code&amp;gt;: right&lt;br /&gt;
|enum&lt;br /&gt;
|-&lt;br /&gt;
|scale&lt;br /&gt;
|Hand scale in percentage times 10; eg. for &amp;lt;code&amp;gt;105%&amp;lt;/code&amp;gt; use &amp;lt;code&amp;gt;1050&amp;lt;/code&amp;gt;&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; |&lt;br /&gt;
====== LYRIC ======&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; |Displays a lyric from &amp;lt;code&amp;gt;pv_db&amp;lt;/code&amp;gt;.&lt;br /&gt;
&amp;lt;code&amp;gt;LYRIC(id, color);&amp;lt;/code&amp;gt;&lt;br /&gt;
|id&lt;br /&gt;
|ID matching the number of a lyric in &amp;lt;code&amp;gt;pv_db&amp;lt;/code&amp;gt;.&lt;br /&gt;
Use &amp;lt;code&amp;gt;-1&amp;lt;/code&amp;gt; as &amp;quot;disable&amp;quot;.&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|color&lt;br /&gt;
|&amp;lt;code&amp;gt;#AARRGGBB&amp;lt;/code&amp;gt; hex color code converted to decimal.&lt;br /&gt;
eg.: for a red lyric the command would be &amp;lt;code&amp;gt;LYRIC(id, 16711680);&amp;lt;/code&amp;gt; &lt;br /&gt;
&lt;br /&gt;
because Red: &amp;lt;code&amp;gt;#00FF0000&amp;lt;/code&amp;gt; → &amp;lt;code&amp;gt;0x00ff0000&amp;lt;/code&amp;gt; → &amp;lt;code&amp;gt;16711680&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Default: &amp;lt;code&amp;gt;-1&amp;lt;/code&amp;gt;&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; |&lt;br /&gt;
====== MIKU_DISP ======&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; |Shows or hides a character in a PV.&lt;br /&gt;
&amp;lt;code&amp;gt;MIKU_DISP(chara, disp);&amp;lt;/code&amp;gt;&lt;br /&gt;
|chara&lt;br /&gt;
|Character slot&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|disp&lt;br /&gt;
|Whether to display the character or not.&lt;br /&gt;
|bool&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;4&amp;quot; |&lt;br /&gt;
====== MIKU_MOVE ======&lt;br /&gt;
| rowspan=&amp;quot;4&amp;quot; |Moves a character in 3D space in a PV.&lt;br /&gt;
&amp;lt;code&amp;gt;MIKU_MOVE(chara, x, y, z);&amp;lt;/code&amp;gt;&lt;br /&gt;
|chara&lt;br /&gt;
|Character slot&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|x&lt;br /&gt;
|X coordinate&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|y&lt;br /&gt;
|Y coordinate&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|z&lt;br /&gt;
|Z coordinate&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; |&lt;br /&gt;
====== MIKU_ROT ======&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; |Rotates a character in a PV.&lt;br /&gt;
&amp;lt;code&amp;gt;MIKU_ROT(chara, angle);&amp;lt;/code&amp;gt;&lt;br /&gt;
|chara&lt;br /&gt;
|Character slot&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|angle&lt;br /&gt;
|Angle value&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; |&lt;br /&gt;
====== MIKU_SHADOW ======&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; |Shows or hides a character&#039;s shadow in a PV.&lt;br /&gt;
&amp;lt;code&amp;gt;MIKU_SHADOW(chara, disp);&amp;lt;/code&amp;gt;&lt;br /&gt;
|chara&lt;br /&gt;
|Character slot&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|disp&lt;br /&gt;
|Whether to display the character&#039;s shadow or not.&lt;br /&gt;
|bool&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; |&lt;br /&gt;
====== MODE_SELECT ======&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; |Starts or ends a special chart segment, such as Chance Time.&lt;br /&gt;
&amp;lt;code&amp;gt;MODE_SELECT(difficulty, mode);&amp;lt;/code&amp;gt;&lt;br /&gt;
|difficulty&lt;br /&gt;
|Indicates under what difficulties the command will trigger in this exact script.&lt;br /&gt;
This value is a bit flag corresponding to a group of difficulties:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; - Easy&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;2&amp;lt;/code&amp;gt; - Normal&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;4&amp;lt;/code&amp;gt; - Hard&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;8&amp;lt;/code&amp;gt; - Extreme&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;16&amp;lt;/code&amp;gt; - Encore&lt;br /&gt;
&lt;br /&gt;
Adding the values up to each other results in a group: &amp;lt;code&amp;gt;6&amp;lt;/code&amp;gt; = Hard (4) and Normal (2).&lt;br /&gt;
&lt;br /&gt;
Use &amp;lt;code&amp;gt;31&amp;lt;/code&amp;gt; as a universal value (works on any difficulty).&lt;br /&gt;
|bitfield enum&lt;br /&gt;
|-&lt;br /&gt;
|mode&lt;br /&gt;
|What segment to start/end:&lt;br /&gt;
&amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; - Challenge Time (Arcade games) / Chance Time (Console games) Start&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;3&amp;lt;/code&amp;gt; - Challenge Time (Arcade games) / Chance Time (Console games) End&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;8&amp;lt;/code&amp;gt; - Technical Zone Start&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;9&amp;lt;/code&amp;gt; - Technical Zone End&lt;br /&gt;
&lt;br /&gt;
Only used by the [https://divamodarchive.com/post/169 New Classics mod]:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;4&amp;lt;/code&amp;gt; - Chance Time Start&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;5&amp;lt;/code&amp;gt; - Chance Time End&lt;br /&gt;
|enum&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; |&lt;br /&gt;
====== MOVIE_CUT_CHG ======&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; |Plays, shows or hides the movie defined in &amp;lt;code&amp;gt;pv_db&amp;lt;/code&amp;gt; or a movie from &amp;lt;code&amp;gt;movie.list&amp;lt;/code&amp;gt; in &amp;lt;code&amp;gt;pv_db&amp;lt;/code&amp;gt;. It can be used as a fancier version of both &amp;lt;code&amp;gt;MOVIE_DISP&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;MOVIE_PLAY&amp;lt;/code&amp;gt; that allows more control.&lt;br /&gt;
FT: &amp;lt;code&amp;gt;MOVIE_CUT_CHG(id, disp);&amp;lt;/code&amp;gt;&lt;br /&gt;
|id&lt;br /&gt;
|The number in &amp;lt;code&amp;gt;movie.list&amp;lt;/code&amp;gt; of the movie to be played.&lt;br /&gt;
Playback starts at the moment the command is called for a newly called &amp;lt;code&amp;gt;movie.list&amp;lt;/code&amp;gt; item. Re-calling a movie again doesn&#039;t play it from the starting position.&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|disp&lt;br /&gt;
|&amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; - display the movie layer&lt;br /&gt;
Any other value - hide the movie layer (playback keeps going)&lt;br /&gt;
|bool&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
====== MOVIE_DISP ======&lt;br /&gt;
|Shows or hides the movie layer in a PV.&lt;br /&gt;
&amp;lt;code&amp;gt;MOVIE_DISP(disp);&amp;lt;/code&amp;gt;&lt;br /&gt;
|disp&lt;br /&gt;
|&amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; - display the movie layer&lt;br /&gt;
Any other value - hide the movie layer (playback keeps going)&lt;br /&gt;
|bool&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
====== MOVIE_PLAY ======&lt;br /&gt;
|Starts playing the movie defined in &amp;lt;code&amp;gt;pv_db&amp;lt;/code&amp;gt; or the first movie in &amp;lt;code&amp;gt;movie.list&amp;lt;/code&amp;gt; in &amp;lt;code&amp;gt;pv_db&amp;lt;/code&amp;gt;.&lt;br /&gt;
&amp;lt;code&amp;gt;MOVIE_PLAY(play);&amp;lt;/code&amp;gt;&lt;br /&gt;
|play&lt;br /&gt;
|&amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; - plays the movie&lt;br /&gt;
Any other value doesn&#039;t do anything.&lt;br /&gt;
|bool&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
====== MUSIC_PLAY ======&lt;br /&gt;
|Starts playing the song file defined in &amp;lt;code&amp;gt;pv_db&amp;lt;/code&amp;gt;.&lt;br /&gt;
&amp;lt;code&amp;gt;MUSIC_PLAY();&amp;lt;/code&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; |&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
====== PV_BRANCH_MODE ======&lt;br /&gt;
|Make future DSC commands only be executed on either the &amp;lt;code&amp;gt;Global&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;Fail&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;Success&amp;lt;/code&amp;gt; branch.&lt;br /&gt;
FT, F, F2, X: &amp;lt;code&amp;gt;PV_BRANCH_MODE(branch);&amp;lt;/code&amp;gt;&lt;br /&gt;
|branch&lt;br /&gt;
|&amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt; - Global (commands are executed regardless of success state)&lt;br /&gt;
&amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; - Fail (commands are executed only if the PV is in the &#039;failed&#039; state)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;2&amp;lt;/code&amp;gt; - Success (commands are executed only if the PV is in the &#039;success&#039; state)&lt;br /&gt;
|enum&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
====== PV_END ======&lt;br /&gt;
|Ends PV playback.&lt;br /&gt;
&amp;lt;code&amp;gt;PV_END();&amp;lt;/code&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; |&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
====== SATURATE ======&lt;br /&gt;
|Changes color saturation in a PV.&lt;br /&gt;
&amp;lt;code&amp;gt;SATURATE(amount);&amp;lt;/code&amp;gt;&lt;br /&gt;
|amount&lt;br /&gt;
|Saturation strength on a scale from 0 to 1000:&lt;br /&gt;
&amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt; - No color, perfect grayscale&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;1000&amp;lt;/code&amp;gt; - Regular colors&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;6&amp;quot; |&lt;br /&gt;
====== SCENE_FADE ======&lt;br /&gt;
| rowspan=&amp;quot;6&amp;quot; |Plays a screen fade effect during PVs.&lt;br /&gt;
&amp;lt;code&amp;gt;SCENE_FADE(duration, start, end, r, g, b)&amp;lt;/code&amp;gt;&lt;br /&gt;
|duration&lt;br /&gt;
|Fade duration in seconds&lt;br /&gt;
eg:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;1000&amp;lt;/code&amp;gt;: 1 second&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;800&amp;lt;/code&amp;gt;: 0.8 seconds&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|start&lt;br /&gt;
|The opacity the fade will start with&lt;br /&gt;
&amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt;: fully transparent&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;1000&amp;lt;/code&amp;gt;: fully opaque&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|end&lt;br /&gt;
|The opacity the fade will end with&lt;br /&gt;
&amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt;: fully transparent&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;1000&amp;lt;/code&amp;gt;: fully opaque&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|r&lt;br /&gt;
|Red color component scale, from 0 to 1000&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|g&lt;br /&gt;
|Green color component scale, from 0 to 1000&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|b&lt;br /&gt;
|Blue color component scale, from 0 to 1000&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
====== SE_EFFECT ======&lt;br /&gt;
|Plays a sound effect in a PV defined in &amp;lt;code&amp;gt;pv_db&amp;lt;/code&amp;gt;. Normally used for success scenes but not restricted to them.&lt;br /&gt;
FT, F, F2, X: &amp;lt;code&amp;gt;SE_EFFECT(id);&amp;lt;/code&amp;gt;&lt;br /&gt;
|id&lt;br /&gt;
|number of a &amp;lt;code&amp;gt;effect_se_name_list&amp;lt;/code&amp;gt; item defined in &amp;lt;code&amp;gt;pv_db&amp;lt;/code&amp;gt;.&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;12&amp;quot; |&lt;br /&gt;
====== TARGET ======&lt;br /&gt;
| rowspan=&amp;quot;12&amp;quot; |Spawns a rhythm game note.&lt;br /&gt;
FT: &amp;lt;code&amp;gt;TARGET(type, pos_x, pos_y, angle, dist, amp, freq);&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
F: &amp;lt;code&amp;gt;TARGET(type, duration, is_end, pos_x, pos_y, angle, freq, dist, amp, fly_time, sig);&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
F2, X: &amp;lt;code&amp;gt;TARGET(type, duration, is_end, pos_x, pos_y, angle, freq, dist, amp, fly_time, sig, hit_eff);&amp;lt;/code&amp;gt;&lt;br /&gt;
|type&lt;br /&gt;
|ID corresponding to a note type.&lt;br /&gt;
Full ID list for each game on the dedicated [[Target]] page.&lt;br /&gt;
|enum&lt;br /&gt;
|-&lt;br /&gt;
|pos_x&lt;br /&gt;
|X position of the note&#039;s target.&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|pos_y&lt;br /&gt;
|Y position of the note&#039;s target.&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|angle&lt;br /&gt;
|Angle of the note&#039;s path.&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|distance&lt;br /&gt;
|Distance between the note&#039;s spawn position and the target&#039;s position.&lt;br /&gt;
Default: &amp;lt;code&amp;gt;300000&amp;lt;/code&amp;gt;&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|amp&lt;br /&gt;
|Amplitude of the note&#039;s path wave.&lt;br /&gt;
Default: &amp;lt;code&amp;gt;500&amp;lt;/code&amp;gt;&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|freq&lt;br /&gt;
|Frequency of the note&#039;s path wave.&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|duration&lt;br /&gt;
|(for F/F2/X formats)&lt;br /&gt;
Sustain and Rush Note duration.&lt;br /&gt;
Default (for notes other than Sustain and Rush): &amp;lt;code&amp;gt;-1&amp;lt;/code&amp;gt;&lt;br /&gt;
|DivaTime&lt;br /&gt;
|-&lt;br /&gt;
|is_end&lt;br /&gt;
|(for F/F2/X formats)&lt;br /&gt;
set to &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; for Sustain &#039;end&#039; notes, otherwise set to &amp;lt;code&amp;gt;-1&amp;lt;/code&amp;gt;&lt;br /&gt;
|bool&lt;br /&gt;
|-&lt;br /&gt;
|fly_time&lt;br /&gt;
|(for F/F2/X formats)&lt;br /&gt;
Target Flying Time value (same format as the TARGET_FLYING_TIME command)&lt;br /&gt;
|DivaTime&lt;br /&gt;
|-&lt;br /&gt;
|sig&lt;br /&gt;
|(for F/F2/X formats)&lt;br /&gt;
Time Signature&lt;br /&gt;
&lt;br /&gt;
The same value that would otherwise go in &amp;lt;code&amp;gt;BAR_TIME_SET&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
Number of quarter note beats minus 1. eg: &amp;lt;code&amp;gt;3&amp;lt;/code&amp;gt; for 4/4.&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|hit_eff&lt;br /&gt;
|(for F2/X formats)&lt;br /&gt;
Assigns a hit effect to the note based on a local ID defined in a previous TARGET_EFFECT command.&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
====== TARGET_FLYING_TIME ======&lt;br /&gt;
|Sets the time it takes for the rhythm game notes to hit their targets.&lt;br /&gt;
&amp;lt;code&amp;gt;TARGET_FLYING_TIME(flytime);&amp;lt;/code&amp;gt;&lt;br /&gt;
|flytime&lt;br /&gt;
|time value in milliseconds&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
====== TIME ======&lt;br /&gt;
|Waits until a specified game time.&lt;br /&gt;
&amp;lt;code&amp;gt;TIME(t);&amp;lt;/code&amp;gt;&lt;br /&gt;
|t&lt;br /&gt;
|time value in DivaTime&lt;br /&gt;
|DivaTime&lt;br /&gt;
|}&amp;lt;!-- Please keep all the commands in alphabetical order!! --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= References =&lt;br /&gt;
somewhatlurker&#039;s [https://github.com/somewhatlurker/pydiva/blob/dsc/pydiva/pydsc_op_db.py pyDIVA/pyDSC]&lt;/div&gt;</summary>
		<author><name>GGAB3</name></author>
	</entry>
	<entry>
		<id>https://docs.divamodarchive.com/index.php?title=User:GGAB3/Sandbox&amp;diff=181</id>
		<title>User:GGAB3/Sandbox</title>
		<link rel="alternate" type="text/html" href="https://docs.divamodarchive.com/index.php?title=User:GGAB3/Sandbox&amp;diff=181"/>
		<updated>2025-10-17T10:54:36Z</updated>

		<summary type="html">&lt;p&gt;GGAB3: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Project DIVA games store general information about the PVs in a database file called &amp;lt;code&amp;gt;pv_db.txt&amp;lt;/code&amp;gt;, located in the &amp;lt;code&amp;gt;rom&amp;lt;/code&amp;gt; folder. The data inside is stored in plain text, meaning the file can be opened and edited using any text editor, such as [[wikipedia:Windows_Notepad|Notepad]].&lt;br /&gt;
&lt;br /&gt;
For the later games (Project DIVA F2nd and Project DIVA X) the &amp;lt;code&amp;gt;pv_db&amp;lt;/code&amp;gt; file is encrypted using DIVAFILE encryption. They need to be decrypted before editing.&lt;br /&gt;
&lt;br /&gt;
Multiple &amp;lt;code&amp;gt;pv_db&amp;lt;/code&amp;gt; databases can not be loaded sequentially. Instead, only the contents of the last loaded &amp;lt;code&amp;gt;pv_db&amp;lt;/code&amp;gt; file gets parsed by the game, overwriting the &#039;&#039;&#039;&#039;&#039;entire&#039;&#039;&#039;&#039;&#039; base game &amp;lt;code&amp;gt;pv_db.txt&amp;lt;/code&amp;gt; database as a result.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;pv_db&amp;lt;/code&amp;gt; databases can have a prefix in their file name to indicate a specific use case:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;&#039;&#039;&#039;mdata&#039;&#039;&#039;_pv_db&amp;lt;/code&amp;gt; - Primarily used in Project DIVA Arcade Future Tone&#039;s [[MDATA]] system. It is also seen in games such as Project DIVA Mega Mix+, where it is used as the dlc &amp;lt;code&amp;gt;pv_db&amp;lt;/code&amp;gt;. &lt;br /&gt;
* &amp;lt;code&amp;gt;&#039;&#039;&#039;mod&#039;&#039;&#039;_pv_db&amp;lt;/code&amp;gt; - Custom prefix read by [https://github.com/blueskythlikesclouds/DivaModLoader DivaModLoader] for Project DIVA Mega Mix+ mods. The contents of each &amp;lt;code&amp;gt;mod_pv_db&amp;lt;/code&amp;gt; gets loaded sequentially, in the mod load order. Entries pointing to the same PV slot get overwritten in load order.&lt;br /&gt;
&lt;br /&gt;
== Structure ==&lt;br /&gt;
Similarly to other plain text databases in Project DIVA, &#039;&#039;&#039;proprieties&#039;&#039;&#039;/&#039;&#039;&#039;keywords&#039;&#039;&#039; are separated by &amp;lt;code&amp;gt;.&amp;lt;/code&amp;gt; and &#039;&#039;&#039;values&#039;&#039;&#039; are attributed to certain proprieties using &amp;lt;code&amp;gt;=&amp;lt;/code&amp;gt;. All lines in the database need to be written in lexicographical order (a → z, 0 → 9) in order to be parsed correctly by the game.&lt;br /&gt;
&lt;br /&gt;
Each entry in a &amp;lt;code&amp;gt;pv_db&amp;lt;/code&amp;gt; begins by specifying the PV slot to which we can attach a propriety and attribute a value, like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;pv_###.propriety=value&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;pv_268.date=202001001&amp;lt;/code&amp;gt; (pv_268 [Catch the Wave]&#039;s date is 01 Jan 2020.)&lt;br /&gt;
&lt;br /&gt;
Proprieties can also be chained or composed of lists:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&amp;lt;code&amp;gt;pv_268.songinfo.lyrics=kz&amp;lt;/code&amp;gt; &lt;br /&gt;
&amp;lt;code&amp;gt;pv_268.songinfo.music=kz&amp;lt;/code&amp;gt;&lt;br /&gt;
|chained properties&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;pv_268.lyric.001=Catch the wave君と&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;pv_268.lyric.002=掴む音で&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;pv_268.lyric.003=まだまだ歌おう&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;pv_268.lyric.004=Wave your handsもっと&amp;lt;/code&amp;gt;&lt;br /&gt;
|list properties&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== List of valid &amp;lt;code&amp;gt;pv_db&amp;lt;/code&amp;gt; keywords ==&lt;br /&gt;
All the keywords that can be used in &amp;lt;code&amp;gt;pv_db&amp;lt;/code&amp;gt; are defined in the game&#039;s internal systems. Here is a table with all the keywords that can be used after &amp;lt;code&amp;gt;pv_###.&amp;lt;/code&amp;gt;:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; |Keywords and derived keywords&lt;br /&gt;
!Valid values&lt;br /&gt;
!Requirement level&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |&lt;br /&gt;
====== bpm ======&lt;br /&gt;
|any number&lt;br /&gt;
|&#039;&#039;&#039;Critical&#039;&#039;&#039;, omitting this keyword or leaving its value empty will cause the PV to not appear in the Song Select screen.&lt;br /&gt;
|BPM of the song. Not directly used in MM+, but required for loading the PV.&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |&lt;br /&gt;
====== chainslide_failure_name ======&lt;br /&gt;
|&lt;br /&gt;
| -&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |&lt;br /&gt;
====== chainslide_first_name ======&lt;br /&gt;
|&lt;br /&gt;
| -&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |&lt;br /&gt;
====== chainslide_sub_name ======&lt;br /&gt;
|&lt;br /&gt;
| -&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |&lt;br /&gt;
====== chainslide_success_name ======&lt;br /&gt;
|&lt;br /&gt;
| -&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |&lt;br /&gt;
====== date ======&lt;br /&gt;
|any number representing a date formatted like &amp;lt;code&amp;gt;yyyymmdd&amp;lt;/code&amp;gt;&lt;br /&gt;
|&#039;&#039;&#039;Critical&#039;&#039;&#039;, omitting this keyword or leaving its value empty will cause the PV to not appear in the Song Select screen.&lt;br /&gt;
|Date of the song&#039;s addition to the game. Not directly used in MM+, but required for loading the PV.&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;9&amp;quot; |&lt;br /&gt;
====== difficulty ======&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; |attribute&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |original&lt;br /&gt;
|&amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt;&lt;br /&gt;
| -&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |slide&lt;br /&gt;
|&amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt;&lt;br /&gt;
| -&lt;br /&gt;
|Specifies if the chart has Slide notes in it by adding the icon in the Song Select Screen.&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;7&amp;quot; |easy&lt;br /&gt;
&lt;br /&gt;
normal&lt;br /&gt;
&lt;br /&gt;
hard&lt;br /&gt;
&lt;br /&gt;
extreme&lt;br /&gt;
&lt;br /&gt;
encore&lt;br /&gt;
| rowspan=&amp;quot;6&amp;quot; |&#039;&#039;&#039;&#039;&#039;[list item]&#039;&#039;&#039;&#039;&#039; &lt;br /&gt;
|edition&lt;br /&gt;
|&amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt;&lt;br /&gt;
| -&lt;br /&gt;
|Sets the chart as &amp;quot;extra&amp;quot;. Normally only used to set an additional &amp;lt;code&amp;gt;extreme&amp;lt;/code&amp;gt; entry as &#039;&#039;&#039;Extra Extreme&#039;&#039;&#039;.&lt;br /&gt;
|-&lt;br /&gt;
|level&lt;br /&gt;
|string formatted like &amp;lt;code&amp;gt;PV_LV_&#039;&#039;&#039;XX&#039;&#039;&#039;_&#039;&#039;&#039;Y&#039;&#039;&#039;&amp;lt;/code&amp;gt;,&lt;br /&gt;
where XX is a number from &amp;lt;code&amp;gt;01&amp;lt;/code&amp;gt; to &amp;lt;code&amp;gt;10&amp;lt;/code&amp;gt; (including leading 0) and Y is either &amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;5&amp;lt;/code&amp;gt;.&lt;br /&gt;
| -&lt;br /&gt;
|Sets the chart&#039;s star rating.&lt;br /&gt;
|-&lt;br /&gt;
|level_sort_index&lt;br /&gt;
|any number&lt;br /&gt;
| -&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|script_file_name&lt;br /&gt;
|path to the script file, relative to the folder the content is being loaded from: &amp;lt;code&amp;gt;rom/...&amp;lt;/code&amp;gt;&lt;br /&gt;
|&#039;&#039;&#039;Critical&#039;&#039;&#039;, omitting this keyword or leaving its value empty will cause the PV to not appear in the Song Select screen.&lt;br /&gt;
|Specifies where the chart&#039;s [[DivaScript|script]] is located.&lt;br /&gt;
|-&lt;br /&gt;
|script_format&lt;br /&gt;
|hex number representing the contents of the &amp;lt;code&amp;gt;.dsc&amp;lt;/code&amp;gt;&#039;s first 4 bytes &lt;br /&gt;
| -&lt;br /&gt;
|Specifies the [[DivaScript#DSC Formats|script format]].&lt;br /&gt;
|-&lt;br /&gt;
|version&lt;br /&gt;
|&lt;br /&gt;
| -&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |length&lt;br /&gt;
|number of entries for each difficulty&lt;br /&gt;
|&#039;&#039;&#039;Critical&#039;&#039;&#039;, omitting this keyword or leaving its value empty will cause the PV to not appear in the Song Select screen.&lt;br /&gt;
|Sets the length for each difficulty. Usually set to &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; and only set to &amp;lt;code&amp;gt;2&amp;lt;/code&amp;gt; for &amp;lt;code&amp;gt;extreme&amp;lt;/code&amp;gt; entries that have Extra Extreme.&lt;br /&gt;
|-&lt;br /&gt;
|disp2d&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; |set_name&lt;br /&gt;
|number from the corresponding &amp;lt;code&amp;gt;aet_gam_pv&#039;&#039;&#039;###&#039;&#039;&#039;.bin&amp;lt;/code&amp;gt; AET Set.&lt;br /&gt;
| -&lt;br /&gt;
|Links a AET Set to be called and displayed in the PV.&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; |ex_song&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; |&#039;&#039;&#039;&#039;&#039;[list item]&#039;&#039;&#039;&#039;&#039; &lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |chara&lt;br /&gt;
|&lt;br /&gt;
| -&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |file&lt;br /&gt;
|&lt;br /&gt;
| -&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; |length&lt;br /&gt;
|&lt;br /&gt;
| -&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |eyes_xrot_adjust&lt;br /&gt;
|&lt;br /&gt;
| -&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |hidden_timing&lt;br /&gt;
|decimal number&lt;br /&gt;
| -&lt;br /&gt;
|Controls the [[Hidden Modifier]].&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |high_speed_rate&lt;br /&gt;
|decimal number&lt;br /&gt;
| -&lt;br /&gt;
|Controls the [[High Speed Modifier]].&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; |lyric&lt;br /&gt;
lyric_en&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; rowspan=&amp;quot;2&amp;quot; |&#039;&#039;&#039;&#039;&#039;[lyric number]&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
(3 digits, including leading 0&#039;s) &lt;br /&gt;
|String containing the lyric.&lt;br /&gt;
Each numbered lyric can be called in the [[DivaScript|PV script]].&lt;br /&gt;
| -&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
| -&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|motion&lt;br /&gt;
&lt;br /&gt;
motion2P&lt;br /&gt;
&lt;br /&gt;
motion3P&lt;br /&gt;
&lt;br /&gt;
motion4P&lt;br /&gt;
&lt;br /&gt;
motion5P&lt;br /&gt;
&lt;br /&gt;
motion6P&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; |&#039;&#039;&#039;&#039;&#039;[motion number]&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
(2 digits, including leading 0) &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |pack&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;7&amp;quot; |performer&lt;br /&gt;
| rowspan=&amp;quot;6&amp;quot; |&#039;&#039;&#039;&#039;&#039;[list item]&#039;&#039;&#039;&#039;&#039; &lt;br /&gt;
|chara&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|pv_costume&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|size&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|type&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|num&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|pv_expression&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; |file_name&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|rank_board_id&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; |sabi&lt;br /&gt;
|play_time&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|start_time&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|se_name&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|slide_name&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|slidertouch_name&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|song_file_name&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|song_name&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|song_name_en&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|song_name_reading&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;4&amp;quot; |songinfo&lt;br /&gt;
songinfo_en&lt;br /&gt;
|arranger&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|illustrator&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|lyrics&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|music&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |sudden_timing&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
__FORCETOC__&lt;/div&gt;</summary>
		<author><name>GGAB3</name></author>
	</entry>
	<entry>
		<id>https://docs.divamodarchive.com/index.php?title=DivaScript&amp;diff=180</id>
		<title>DivaScript</title>
		<link rel="alternate" type="text/html" href="https://docs.divamodarchive.com/index.php?title=DivaScript&amp;diff=180"/>
		<updated>2025-10-16T17:43:40Z</updated>

		<summary type="html">&lt;p&gt;GGAB3: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;DivaScript&#039;&#039; (commonly referred to as &#039;&#039;DSC&#039;&#039;) is the file format used by all the &#039;&#039;Project DIVA&#039;&#039; games for storing various commands related to Music Videos/PVs and Rhythm Game Charts.&lt;br /&gt;
&lt;br /&gt;
The data inside &amp;lt;code&amp;gt;.dsc&amp;lt;/code&amp;gt; files is stored in a binary format. This means that they can not be edited with a text editor and instead require specialized programs that can decode them such as [[DSC Studio]] or [[ScriptEditor]]. Additionally, &amp;lt;code&amp;gt;.dsc&amp;lt;/code&amp;gt; files from &#039;&#039;Project DIVA F2nd&#039;&#039; and &#039;&#039;Project DIVA X&#039;&#039; are encrypted using DIVAFILE encryption. They need to be decrypted before editing.&lt;br /&gt;
&lt;br /&gt;
== DSC Formats ==&lt;br /&gt;
Every &#039;&#039;Project DIVA&#039;&#039; game uses a specific DivaScript format. The exact format of a &amp;lt;code&amp;gt;.dsc&amp;lt;/code&amp;gt; file is determined by the first 4 bytes of the file.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|}&amp;lt;!-- Needs an actual list of all the formats and their DSC headers. --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== List of DSC Commands &#039;&#039;(Incomplete)&#039;&#039; ==&lt;br /&gt;
List of commands that can be used in FT, F, F2/X DSC formats. Format-exclusive commands are marked individually.&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Command Name&lt;br /&gt;
!Definition&lt;br /&gt;
!Parameter&lt;br /&gt;
!Description&lt;br /&gt;
!Type&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;6&amp;quot; |&lt;br /&gt;
====== AGEAGE_CTRL ======&lt;br /&gt;
| rowspan=&amp;quot;6&amp;quot; |Controls the effect for the hair of the module &amp;quot;AgeAge Again&amp;quot;.&lt;br /&gt;
FT: &amp;lt;code&amp;gt;AGEAGE_CTRL(chara, parts, npr, rot_speed, skip, disp, -1, -1);&amp;lt;/code&amp;gt;&lt;br /&gt;
|chara&lt;br /&gt;
|Character slot&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|parts&lt;br /&gt;
|Hair parts to control:&lt;br /&gt;
&amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt;: both&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt;: left&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;2&amp;lt;/code&amp;gt;: right&lt;br /&gt;
|enum&lt;br /&gt;
|-&lt;br /&gt;
|npr&lt;br /&gt;
|sets NPR material&lt;br /&gt;
|bool&lt;br /&gt;
|-&lt;br /&gt;
|speed&lt;br /&gt;
|Effect speed&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|skip&lt;br /&gt;
|Skips 200 frames of animation.&lt;br /&gt;
|bool&lt;br /&gt;
|-&lt;br /&gt;
|disp&lt;br /&gt;
|Whether to display the effect or not.&lt;br /&gt;
|bool&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; |&lt;br /&gt;
====== BAR_TIME_SET ======&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; |Sets the length of a measure.&lt;br /&gt;
&amp;lt;code&amp;gt;BAR_TIME_SET(bpm, beats);&amp;lt;/code&amp;gt;&lt;br /&gt;
|bpm&lt;br /&gt;
|Beats per minute&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|beats&lt;br /&gt;
|Number of quarter note beats minus 1. eg: &amp;lt;code&amp;gt;3&amp;lt;/code&amp;gt; for 4/4.&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; |&lt;br /&gt;
====== BLOOM ======&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; |Sets data from &amp;lt;code&amp;gt;bloom&amp;lt;/code&amp;gt; pv_param.&lt;br /&gt;
FT, F2, X: &amp;lt;code&amp;gt;BLOOM(id, unk);&amp;lt;/code&amp;gt;&lt;br /&gt;
|id&lt;br /&gt;
|ID matching the data in pv_param.&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|unk&lt;br /&gt;
|Unknown&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
====== CHANGE_FIELD ======&lt;br /&gt;
|Changes the field defined in &amp;lt;code&amp;gt;pv_field&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;pv_db&amp;lt;/code&amp;gt;.&lt;br /&gt;
&amp;lt;code&amp;gt;CHANGE_FIELD(id);&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
F2, X: &amp;lt;code&amp;gt;CHANGE_FIELD(id, unk);&amp;lt;/code&amp;gt;&lt;br /&gt;
|id&lt;br /&gt;
|ID matching the field number in &amp;lt;code&amp;gt;pv_field&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;pv_db&amp;lt;/code&amp;gt;.&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; |&lt;br /&gt;
====== CHARA_SIZE ======&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; |Sets a character&#039;s scale/size.&lt;br /&gt;
&amp;lt;code&amp;gt;CHARA_SIZE(chara, size);&amp;lt;/code&amp;gt;&lt;br /&gt;
|chara&lt;br /&gt;
|Character slot&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|size&lt;br /&gt;
|Character scale&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
====== END ======&lt;br /&gt;
|Ends reading of the script.&lt;br /&gt;
&amp;lt;code&amp;gt;END();&amp;lt;/code&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; |&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; |&lt;br /&gt;
====== HAND_SCALE ======&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; |Sets the size of a character&#039;s hand.&lt;br /&gt;
FT: &amp;lt;code&amp;gt;HAND_SCALE(chara, hand, scale);&amp;lt;/code&amp;gt;&lt;br /&gt;
|chara&lt;br /&gt;
|Character slot&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|hand&lt;br /&gt;
|Which hand to scale:&lt;br /&gt;
&amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt;: left&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;2&amp;lt;/code&amp;gt;: right&lt;br /&gt;
|enum&lt;br /&gt;
|-&lt;br /&gt;
|scale&lt;br /&gt;
|Hand scale in percentage times 10; eg. for &amp;lt;code&amp;gt;105%&amp;lt;/code&amp;gt; use &amp;lt;code&amp;gt;1050&amp;lt;/code&amp;gt;&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; |&lt;br /&gt;
====== LYRIC ======&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; |Displays a lyric from &amp;lt;code&amp;gt;pv_db&amp;lt;/code&amp;gt;.&lt;br /&gt;
&amp;lt;code&amp;gt;LYRIC(id, color);&amp;lt;/code&amp;gt;&lt;br /&gt;
|id&lt;br /&gt;
|ID matching the number of a lyric in &amp;lt;code&amp;gt;pv_db&amp;lt;/code&amp;gt;.&lt;br /&gt;
Use &amp;lt;code&amp;gt;-1&amp;lt;/code&amp;gt; as &amp;quot;disable&amp;quot;.&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|color&lt;br /&gt;
|&amp;lt;code&amp;gt;#AARRGGBB&amp;lt;/code&amp;gt; hex color code converted to decimal.&lt;br /&gt;
eg.: for a red lyric the command would be &amp;lt;code&amp;gt;LYRIC(id, 16711680);&amp;lt;/code&amp;gt; &lt;br /&gt;
&lt;br /&gt;
because Red: &amp;lt;code&amp;gt;#00FF0000&amp;lt;/code&amp;gt; → &amp;lt;code&amp;gt;0x00ff0000&amp;lt;/code&amp;gt; → &amp;lt;code&amp;gt;16711680&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Default: &amp;lt;code&amp;gt;-1&amp;lt;/code&amp;gt;&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; |&lt;br /&gt;
====== MIKU_DISP ======&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; |Shows or hides a character in a PV.&lt;br /&gt;
&amp;lt;code&amp;gt;MIKU_DISP(chara, disp);&amp;lt;/code&amp;gt;&lt;br /&gt;
|chara&lt;br /&gt;
|Character slot&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|disp&lt;br /&gt;
|Whether to display the character or not.&lt;br /&gt;
|bool&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;4&amp;quot; |&lt;br /&gt;
====== MIKU_MOVE ======&lt;br /&gt;
| rowspan=&amp;quot;4&amp;quot; |Moves a character in 3D space in a PV.&lt;br /&gt;
&amp;lt;code&amp;gt;MIKU_MOVE(chara, x, y, z);&amp;lt;/code&amp;gt;&lt;br /&gt;
|chara&lt;br /&gt;
|Character slot&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|x&lt;br /&gt;
|X coordinate&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|y&lt;br /&gt;
|Y coordinate&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|z&lt;br /&gt;
|Z coordinate&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; |&lt;br /&gt;
====== MIKU_ROT ======&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; |Rotates a character in a PV.&lt;br /&gt;
&amp;lt;code&amp;gt;MIKU_ROT(chara, angle);&amp;lt;/code&amp;gt;&lt;br /&gt;
|chara&lt;br /&gt;
|Character slot&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|angle&lt;br /&gt;
|Angle value&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; |&lt;br /&gt;
====== MIKU_SHADOW ======&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; |Shows or hides a character&#039;s shadow in a PV.&lt;br /&gt;
&amp;lt;code&amp;gt;MIKU_SHADOW(chara, disp);&amp;lt;/code&amp;gt;&lt;br /&gt;
|chara&lt;br /&gt;
|Character slot&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|disp&lt;br /&gt;
|Whether to display the character&#039;s shadow or not.&lt;br /&gt;
|bool&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; |&lt;br /&gt;
====== MODE_SELECT ======&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; |Starts or ends a special chart segment, such as Chance Time.&lt;br /&gt;
&amp;lt;code&amp;gt;MODE_SELECT(difficulty, mode);&amp;lt;/code&amp;gt;&lt;br /&gt;
|difficulty&lt;br /&gt;
|Indicates under what difficulties the command will trigger in this exact script.&lt;br /&gt;
This value is a bit flag corresponding to a group of difficulties:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; - Easy&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;2&amp;lt;/code&amp;gt; - Normal&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;4&amp;lt;/code&amp;gt; - Hard&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;8&amp;lt;/code&amp;gt; - Extreme&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;16&amp;lt;/code&amp;gt; - Encore&lt;br /&gt;
&lt;br /&gt;
Adding the values up to each other results in a group: &amp;lt;code&amp;gt;6&amp;lt;/code&amp;gt; = Hard (4) and Normal (2).&lt;br /&gt;
&lt;br /&gt;
Use &amp;lt;code&amp;gt;31&amp;lt;/code&amp;gt; as a universal value (works on any difficulty).&lt;br /&gt;
|bitfield enum&lt;br /&gt;
|-&lt;br /&gt;
|mode&lt;br /&gt;
|What segment to start/end:&lt;br /&gt;
&amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; - Challenge Time (Arcade games) / Chance Time (Console games) Start&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;3&amp;lt;/code&amp;gt; - Challenge Time (Arcade games) / Chance Time (Console games) End&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;8&amp;lt;/code&amp;gt; - Technical Zone Start&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;9&amp;lt;/code&amp;gt; - Technical Zone End&lt;br /&gt;
&lt;br /&gt;
Only used by the [https://divamodarchive.com/post/169 New Classics mod]:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;4&amp;lt;/code&amp;gt; - Chance Time Start&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;5&amp;lt;/code&amp;gt; - Chance Time End&lt;br /&gt;
|enum&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; |&lt;br /&gt;
====== MOVIE_CUT_CHG ======&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; |Plays, shows or hides the movie defined in &amp;lt;code&amp;gt;pv_db&amp;lt;/code&amp;gt; or a movie from &amp;lt;code&amp;gt;movie.list&amp;lt;/code&amp;gt; in &amp;lt;code&amp;gt;pv_db&amp;lt;/code&amp;gt;. It can be used as a fancier version of both &amp;lt;code&amp;gt;MOVIE_DISP&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;MOVIE_PLAY&amp;lt;/code&amp;gt; that allows more control.&lt;br /&gt;
FT: &amp;lt;code&amp;gt;MOVIE_CUT_CHG(id, disp);&amp;lt;/code&amp;gt;&lt;br /&gt;
|id&lt;br /&gt;
|The number in &amp;lt;code&amp;gt;movie.list&amp;lt;/code&amp;gt; of the movie to be played.&lt;br /&gt;
Playback starts at the moment the command is called for a newly called &amp;lt;code&amp;gt;movie.list&amp;lt;/code&amp;gt; item. Re-calling a movie again doesn&#039;t play it from the starting position.&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|disp&lt;br /&gt;
|&amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; - display the movie layer&lt;br /&gt;
Any other value - hide the movie layer (playback keeps going)&lt;br /&gt;
|bool&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
====== MOVIE_DISP ======&lt;br /&gt;
|Shows or hides the movie layer in a PV.&lt;br /&gt;
&amp;lt;code&amp;gt;MOVIE_DISP(disp);&amp;lt;/code&amp;gt;&lt;br /&gt;
|disp&lt;br /&gt;
|&amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; - display the movie layer&lt;br /&gt;
Any other value - hide the movie layer (playback keeps going)&lt;br /&gt;
|bool&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
====== MOVIE_PLAY ======&lt;br /&gt;
|Starts playing the movie defined in &amp;lt;code&amp;gt;pv_db&amp;lt;/code&amp;gt; or the first movie in &amp;lt;code&amp;gt;movie.list&amp;lt;/code&amp;gt; in &amp;lt;code&amp;gt;pv_db&amp;lt;/code&amp;gt;.&lt;br /&gt;
&amp;lt;code&amp;gt;MOVIE_PLAY(play);&amp;lt;/code&amp;gt;&lt;br /&gt;
|play&lt;br /&gt;
|&amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; - plays the movie&lt;br /&gt;
Any other value doesn&#039;t do anything.&lt;br /&gt;
|bool&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
====== MUSIC_PLAY ======&lt;br /&gt;
|Starts playing the song file defined in &amp;lt;code&amp;gt;pv_db&amp;lt;/code&amp;gt;.&lt;br /&gt;
&amp;lt;code&amp;gt;MUSIC_PLAY();&amp;lt;/code&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; |&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
====== PV_BRANCH_MODE ======&lt;br /&gt;
|Make future DSC commands only be executed on either the &amp;lt;code&amp;gt;Global&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;Fail&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;Success&amp;lt;/code&amp;gt; branch.&lt;br /&gt;
FT, F, F2, X: &amp;lt;code&amp;gt;PV_BRANCH_MODE(branch);&amp;lt;/code&amp;gt;&lt;br /&gt;
|branch&lt;br /&gt;
|&amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt; - Global (commands are executed regardless of success state)&lt;br /&gt;
&amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; - Fail (commands are executed only if the PV is in the &#039;failed&#039; state)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;2&amp;lt;/code&amp;gt; - Success (commands are executed only if the PV is in the &#039;success&#039; state)&lt;br /&gt;
|enum&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
====== PV_END ======&lt;br /&gt;
|Ends PV playback.&lt;br /&gt;
&amp;lt;code&amp;gt;PV_END();&amp;lt;/code&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; |&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
====== SATURATE ======&lt;br /&gt;
|Changes color saturation in a PV.&lt;br /&gt;
&amp;lt;code&amp;gt;SATURATE(amount);&amp;lt;/code&amp;gt;&lt;br /&gt;
|amount&lt;br /&gt;
|Saturation strength on a scale from 0 to 1000:&lt;br /&gt;
&amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt; - No color, perfect grayscale&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;1000&amp;lt;/code&amp;gt; - Regular colors&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;6&amp;quot; |&lt;br /&gt;
====== SCENE_FADE ======&lt;br /&gt;
| rowspan=&amp;quot;6&amp;quot; |Plays a screen fade effect during PVs.&lt;br /&gt;
&amp;lt;code&amp;gt;SCENE_FADE(speed, start, end, r, g, b)&amp;lt;/code&amp;gt;&lt;br /&gt;
|speed&lt;br /&gt;
|Fade duration in seconds&lt;br /&gt;
eg:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;1000&amp;lt;/code&amp;gt;: 1 second&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;800&amp;lt;/code&amp;gt;: 0.8 seconds&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|start&lt;br /&gt;
|The opacity the fade will start with&lt;br /&gt;
&amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt;: fully transparent&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;1000&amp;lt;/code&amp;gt;: fully opaque&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|end&lt;br /&gt;
|The opacity the fade will end with&lt;br /&gt;
&amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt;: fully transparent&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;1000&amp;lt;/code&amp;gt;: fully opaque&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|r&lt;br /&gt;
|Red color component scale, from 0 to 1000&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|g&lt;br /&gt;
|Green color component scale, from 0 to 1000&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|b&lt;br /&gt;
|Blue color component scale, from 0 to 1000&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
====== SE_EFFECT ======&lt;br /&gt;
|Plays a sound effect in a PV defined in &amp;lt;code&amp;gt;pv_db&amp;lt;/code&amp;gt;. Normally used for success scenes but not restricted to them.&lt;br /&gt;
FT, F, F2, X: &amp;lt;code&amp;gt;SE_EFFECT(id);&amp;lt;/code&amp;gt;&lt;br /&gt;
|id&lt;br /&gt;
|number of a &amp;lt;code&amp;gt;effect_se_name_list&amp;lt;/code&amp;gt; item defined in &amp;lt;code&amp;gt;pv_db&amp;lt;/code&amp;gt;.&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;12&amp;quot; |&lt;br /&gt;
====== TARGET ======&lt;br /&gt;
| rowspan=&amp;quot;12&amp;quot; |Spawns a rhythm game note.&lt;br /&gt;
FT: &amp;lt;code&amp;gt;TARGET(type, pos_x, pos_y, angle, dist, amp, freq);&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
F: &amp;lt;code&amp;gt;TARGET(type, duration, is_end, pos_x, pos_y, angle, freq, dist, amp, fly_time, sig);&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
F2, X: &amp;lt;code&amp;gt;TARGET(type, duration, is_end, pos_x, pos_y, angle, freq, dist, amp, fly_time, sig, hit_eff);&amp;lt;/code&amp;gt;&lt;br /&gt;
|type&lt;br /&gt;
|ID corresponding to a note type.&lt;br /&gt;
Full ID list for each game on the dedicated [[Target]] page.&lt;br /&gt;
|enum&lt;br /&gt;
|-&lt;br /&gt;
|pos_x&lt;br /&gt;
|X position of the note&#039;s target.&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|pos_y&lt;br /&gt;
|Y position of the note&#039;s target.&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|angle&lt;br /&gt;
|Angle of the note&#039;s path.&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|distance&lt;br /&gt;
|Distance between the note&#039;s spawn position and the target&#039;s position.&lt;br /&gt;
Default: &amp;lt;code&amp;gt;300000&amp;lt;/code&amp;gt;&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|amp&lt;br /&gt;
|Amplitude of the note&#039;s path wave.&lt;br /&gt;
Default: &amp;lt;code&amp;gt;500&amp;lt;/code&amp;gt;&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|freq&lt;br /&gt;
|Frequency of the note&#039;s path wave.&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|duration&lt;br /&gt;
|(for F/F2/X formats)&lt;br /&gt;
Sustain and Rush Note duration.&lt;br /&gt;
Default (for notes other than Sustain and Rush): &amp;lt;code&amp;gt;-1&amp;lt;/code&amp;gt;&lt;br /&gt;
|DivaTime&lt;br /&gt;
|-&lt;br /&gt;
|is_end&lt;br /&gt;
|(for F/F2/X formats)&lt;br /&gt;
set to &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; for Sustain &#039;end&#039; notes, otherwise set to &amp;lt;code&amp;gt;-1&amp;lt;/code&amp;gt;&lt;br /&gt;
|bool&lt;br /&gt;
|-&lt;br /&gt;
|fly_time&lt;br /&gt;
|(for F/F2/X formats)&lt;br /&gt;
Target Flying Time value (same format as the TARGET_FLYING_TIME command)&lt;br /&gt;
|DivaTime&lt;br /&gt;
|-&lt;br /&gt;
|sig&lt;br /&gt;
|(for F/F2/X formats)&lt;br /&gt;
Time Signature&lt;br /&gt;
&lt;br /&gt;
The same value that would otherwise go in &amp;lt;code&amp;gt;BAR_TIME_SET&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
Number of quarter note beats minus 1. eg: &amp;lt;code&amp;gt;3&amp;lt;/code&amp;gt; for 4/4.&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|hit_eff&lt;br /&gt;
|(for F2/X formats)&lt;br /&gt;
Assigns a hit effect to the note based on a local ID defined in a previous TARGET_EFFECT command.&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
====== TARGET_FLYING_TIME ======&lt;br /&gt;
|Sets the time it takes for the rhythm game notes to hit their targets.&lt;br /&gt;
&amp;lt;code&amp;gt;TARGET_FLYING_TIME(flytime);&amp;lt;/code&amp;gt;&lt;br /&gt;
|flytime&lt;br /&gt;
|time value in milliseconds&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
====== TIME ======&lt;br /&gt;
|Waits until a specified game time.&lt;br /&gt;
&amp;lt;code&amp;gt;TIME(t);&amp;lt;/code&amp;gt;&lt;br /&gt;
|t&lt;br /&gt;
|time value in DivaTime&lt;br /&gt;
|DivaTime&lt;br /&gt;
|}&amp;lt;!-- Please keep all the commands in alphabetical order!! --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= References =&lt;br /&gt;
somewhatlurker&#039;s [https://github.com/somewhatlurker/pydiva/blob/dsc/pydiva/pydsc_op_db.py pyDIVA/pyDSC]&lt;/div&gt;</summary>
		<author><name>GGAB3</name></author>
	</entry>
	<entry>
		<id>https://docs.divamodarchive.com/index.php?title=User:GGAB3/Sandbox&amp;diff=179</id>
		<title>User:GGAB3/Sandbox</title>
		<link rel="alternate" type="text/html" href="https://docs.divamodarchive.com/index.php?title=User:GGAB3/Sandbox&amp;diff=179"/>
		<updated>2025-10-12T10:23:14Z</updated>

		<summary type="html">&lt;p&gt;GGAB3: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Project DIVA games store general information about the PVs in a database file called &amp;lt;code&amp;gt;pv_db.txt&amp;lt;/code&amp;gt;, located in the &amp;lt;code&amp;gt;rom&amp;lt;/code&amp;gt; folder. The data inside is stored in plain text, meaning the file can be opened and edited using any text editor, such as [[wikipedia:Windows_Notepad|Notepad]].&lt;br /&gt;
&lt;br /&gt;
For the later games (Project DIVA F2nd and Project DIVA X) the &amp;lt;code&amp;gt;pv_db&amp;lt;/code&amp;gt; file is encrypted using DIVAFILE encryption. They need to be decrypted before editing.&lt;br /&gt;
&lt;br /&gt;
Multiple &amp;lt;code&amp;gt;pv_db&amp;lt;/code&amp;gt; databases can not be loaded sequentially. Instead, only the contents of the last loaded &amp;lt;code&amp;gt;pv_db&amp;lt;/code&amp;gt; file gets parsed by the game, overwriting the &#039;&#039;&#039;&#039;&#039;entire&#039;&#039;&#039;&#039;&#039; base game &amp;lt;code&amp;gt;pv_db.txt&amp;lt;/code&amp;gt; database as a result.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;pv_db&amp;lt;/code&amp;gt; databases can have a prefix in their file name to indicate a specific use case:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;&#039;&#039;&#039;mdata&#039;&#039;&#039;_pv_db&amp;lt;/code&amp;gt; - Primarily used in Project DIVA Arcade Future Tone&#039;s [[MDATA]] system. It is also seen in games such as Project DIVA Mega Mix+, where it is used as the dlc &amp;lt;code&amp;gt;pv_db&amp;lt;/code&amp;gt;. &lt;br /&gt;
* &amp;lt;code&amp;gt;&#039;&#039;&#039;mod&#039;&#039;&#039;_pv_db&amp;lt;/code&amp;gt; - Custom prefix read by [https://github.com/blueskythlikesclouds/DivaModLoader DivaModLoader] for Project DIVA Mega Mix+ mods. The contents of each &amp;lt;code&amp;gt;mod_pv_db&amp;lt;/code&amp;gt; gets loaded sequentially, in the mod load order. Entries pointing to the same PV slot get overwritten in load order.&lt;br /&gt;
&lt;br /&gt;
== Structure ==&lt;br /&gt;
Similarly to other plain text databases in Project DIVA, &#039;&#039;&#039;proprieties&#039;&#039;&#039;/&#039;&#039;&#039;keywords&#039;&#039;&#039; are separated by &amp;lt;code&amp;gt;.&amp;lt;/code&amp;gt; and &#039;&#039;&#039;values&#039;&#039;&#039; are attributed to certain proprieties using &amp;lt;code&amp;gt;=&amp;lt;/code&amp;gt;. All lines in the database need to be written in lexicographical order (a → z, 0 → 9) in order to be parsed correctly by the game.&lt;br /&gt;
&lt;br /&gt;
Each entry in a &amp;lt;code&amp;gt;pv_db&amp;lt;/code&amp;gt; begins by specifying the PV slot to which we can attach a propriety and attribute a value, like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;pv_###.propriety=value&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;pv_268.date=202001001&amp;lt;/code&amp;gt; (pv_268 [Catch the Wave]&#039;s date is 01 Jan 2020.)&lt;br /&gt;
&lt;br /&gt;
Proprieties can also be chained or composed of lists:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&amp;lt;code&amp;gt;pv_268.songinfo.lyrics=kz&amp;lt;/code&amp;gt; &lt;br /&gt;
&amp;lt;code&amp;gt;pv_268.songinfo.music=kz&amp;lt;/code&amp;gt;&lt;br /&gt;
|chained properties&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;pv_268.lyric.001=Catch the wave君と&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;pv_268.lyric.002=掴む音で&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;pv_268.lyric.003=まだまだ歌おう&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;pv_268.lyric.004=Wave your handsもっと&amp;lt;/code&amp;gt;&lt;br /&gt;
|list properties&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== List of valid &amp;lt;code&amp;gt;pv_db&amp;lt;/code&amp;gt; keywords ==&lt;br /&gt;
All the keywords that can be used in &amp;lt;code&amp;gt;pv_db&amp;lt;/code&amp;gt; are defined in the game&#039;s internal systems. Here is a table with all the keywords that can be used after &amp;lt;code&amp;gt;pv_###.&amp;lt;/code&amp;gt;:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; |Keywords and derived keywords&lt;br /&gt;
!Valid values&lt;br /&gt;
!Requirement level&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |&lt;br /&gt;
====== bpm ======&lt;br /&gt;
|any number&lt;br /&gt;
|&#039;&#039;&#039;Critical&#039;&#039;&#039;, omitting this command or leaving its value empty will cause the PV to not appear in the Song Select screen.&lt;br /&gt;
|BPM of the song. Not directly used in MM+, but required for loading the PV.&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |&lt;br /&gt;
====== chainslide_failure_name ======&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |&lt;br /&gt;
====== chainslide_first_name ======&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |&lt;br /&gt;
====== chainslide_sub_name ======&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |&lt;br /&gt;
====== chainslide_success_name ======&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |&lt;br /&gt;
====== date ======&lt;br /&gt;
|any number representing a date formatted like &amp;lt;code&amp;gt;yyyymmdd&amp;lt;/code&amp;gt;&lt;br /&gt;
|&#039;&#039;&#039;Critical&#039;&#039;&#039;, omitting this command or leaving its value empty will cause the PV to not appear in the Song Select screen.&lt;br /&gt;
|Date of the song&#039;s addition to the game. Not directly used in MM+, but required for loading the PV.&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;9&amp;quot; |&lt;br /&gt;
====== difficulty ======&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; |attribute&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |original&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |slide&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;7&amp;quot; |easy&lt;br /&gt;
&lt;br /&gt;
normal&lt;br /&gt;
&lt;br /&gt;
hard&lt;br /&gt;
&lt;br /&gt;
extreme&lt;br /&gt;
&lt;br /&gt;
encore&lt;br /&gt;
| rowspan=&amp;quot;6&amp;quot; |&#039;&#039;&#039;&#039;&#039;[list item]&#039;&#039;&#039;&#039;&#039; &lt;br /&gt;
|edition&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|level&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|level_sort_index&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|script_file_name&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|script_format&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|version&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |length&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|disp2d&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; |set_name&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; |ex_song&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; |&#039;&#039;&#039;&#039;&#039;[list item]&#039;&#039;&#039;&#039;&#039; &lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |chara&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |file&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; |length&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |eyes_xrot_adjust&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |hidden_timing&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |high_speed_rate&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; |lyric&lt;br /&gt;
lyric_en&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; rowspan=&amp;quot;2&amp;quot; |&#039;&#039;&#039;&#039;&#039;[lyric number]&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
(3 digits, including leading 0&#039;s) &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|motion&lt;br /&gt;
&lt;br /&gt;
motion2P&lt;br /&gt;
&lt;br /&gt;
motion3P&lt;br /&gt;
&lt;br /&gt;
motion4P&lt;br /&gt;
&lt;br /&gt;
motion5P&lt;br /&gt;
&lt;br /&gt;
motion6P&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; |&#039;&#039;&#039;&#039;&#039;[motion number]&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
(2 digits, including leading 0) &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |pack&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;7&amp;quot; |performer&lt;br /&gt;
| rowspan=&amp;quot;6&amp;quot; |&#039;&#039;&#039;&#039;&#039;[list item]&#039;&#039;&#039;&#039;&#039; &lt;br /&gt;
|chara&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|pv_costume&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|size&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|type&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|num&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|pv_expression&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; |file_name&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|rank_board_id&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; |sabi&lt;br /&gt;
|play_time&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|start_time&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|se_name&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|slide_name&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|slidertouch_name&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|song_file_name&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|song_name&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|song_name_en&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|song_name_reading&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;4&amp;quot; |songinfo&lt;br /&gt;
songinfo_en&lt;br /&gt;
|arranger&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|illustrator&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|lyrics&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|music&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |sudden_timing&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
__FORCETOC__&lt;/div&gt;</summary>
		<author><name>GGAB3</name></author>
	</entry>
	<entry>
		<id>https://docs.divamodarchive.com/index.php?title=User:GGAB3/Sandbox&amp;diff=178</id>
		<title>User:GGAB3/Sandbox</title>
		<link rel="alternate" type="text/html" href="https://docs.divamodarchive.com/index.php?title=User:GGAB3/Sandbox&amp;diff=178"/>
		<updated>2025-10-10T08:40:15Z</updated>

		<summary type="html">&lt;p&gt;GGAB3: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Project DIVA games store general information about the PVs in a database file called &amp;lt;code&amp;gt;pv_db.txt&amp;lt;/code&amp;gt;, located in the &amp;lt;code&amp;gt;rom&amp;lt;/code&amp;gt; folder. The data inside is stored in plain text, meaning the file can be opened and edited using any text editor, such as [[wikipedia:Windows_Notepad|Notepad]].&lt;br /&gt;
&lt;br /&gt;
For the later games (Project DIVA F2nd and Project DIVA X) the &amp;lt;code&amp;gt;pv_db&amp;lt;/code&amp;gt; file is encrypted using DIVAFILE encryption. They need to be decrypted before editing.&lt;br /&gt;
&lt;br /&gt;
Multiple &amp;lt;code&amp;gt;pv_db&amp;lt;/code&amp;gt; databases can not be loaded sequentially. Instead, only the contents of the last loaded &amp;lt;code&amp;gt;pv_db&amp;lt;/code&amp;gt; file gets parsed by the game, overwriting the &#039;&#039;&#039;&#039;&#039;entire&#039;&#039;&#039;&#039;&#039; base game &amp;lt;code&amp;gt;pv_db.txt&amp;lt;/code&amp;gt; database as a result.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;pv_db&amp;lt;/code&amp;gt; databases can have a prefix in their file name to indicate a specific use case:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;&#039;&#039;&#039;mdata&#039;&#039;&#039;_pv_db&amp;lt;/code&amp;gt; - Primarily used in Project DIVA Arcade Future Tone&#039;s [[MDATA]] system. It is also seen in games such as Project DIVA Mega Mix+, where it is used as the dlc &amp;lt;code&amp;gt;pv_db&amp;lt;/code&amp;gt;. &lt;br /&gt;
* &amp;lt;code&amp;gt;&#039;&#039;&#039;mod&#039;&#039;&#039;_pv_db&amp;lt;/code&amp;gt; - Custom prefix read by [https://github.com/blueskythlikesclouds/DivaModLoader DivaModLoader] for Project DIVA Mega Mix+ mods. The contents of each &amp;lt;code&amp;gt;mod_pv_db&amp;lt;/code&amp;gt; gets loaded sequentially, in the mod load order. Entries pointing to the same PV slot get overwritten in load order.&lt;br /&gt;
&lt;br /&gt;
== Structure ==&lt;br /&gt;
Similarly to other plain text databases in Project DIVA, &#039;&#039;&#039;proprieties&#039;&#039;&#039;/&#039;&#039;&#039;keywords&#039;&#039;&#039; are separated by &amp;lt;code&amp;gt;.&amp;lt;/code&amp;gt; and &#039;&#039;&#039;values&#039;&#039;&#039; are attributed to certain proprieties using &amp;lt;code&amp;gt;=&amp;lt;/code&amp;gt;. All lines in the database need to be written in lexicographical order (a → z, 0 → 9) in order to be parsed correctly by the game.&lt;br /&gt;
&lt;br /&gt;
Each entry in a &amp;lt;code&amp;gt;pv_db&amp;lt;/code&amp;gt; begins by specifying the PV slot to which we can attach a propriety and attribute a value, like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;pv_###.propriety=value&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;pv_268.date=202001001&amp;lt;/code&amp;gt; (pv_268 [Catch the Wave]&#039;s date is 01 Jan 2020.)&lt;br /&gt;
&lt;br /&gt;
Proprieties can also be chained or composed of lists:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&amp;lt;code&amp;gt;pv_268.songinfo.lyrics=kz&amp;lt;/code&amp;gt; &lt;br /&gt;
&amp;lt;code&amp;gt;pv_268.songinfo.music=kz&amp;lt;/code&amp;gt;&lt;br /&gt;
|chained properties&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;pv_268.lyric.001=Catch the wave君と&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;pv_268.lyric.002=掴む音で&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;pv_268.lyric.003=まだまだ歌おう&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;pv_268.lyric.004=Wave your handsもっと&amp;lt;/code&amp;gt;&lt;br /&gt;
|list properties&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== List of valid &amp;lt;code&amp;gt;pv_db&amp;lt;/code&amp;gt; keywords ==&lt;br /&gt;
All the keywords that can be used in &amp;lt;code&amp;gt;pv_db&amp;lt;/code&amp;gt; are defined in the game&#039;s internal systems. Here is a table with all the keywords that can be used after &amp;lt;code&amp;gt;pv_###.&amp;lt;/code&amp;gt;:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Keywords and derived keywords&lt;br /&gt;
!&lt;br /&gt;
!&lt;br /&gt;
!&lt;br /&gt;
!Valid values&lt;br /&gt;
!Requirement level&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|bpm&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|any number&lt;br /&gt;
|&#039;&#039;&#039;Critical&#039;&#039;&#039;, omitting this command or leaving its value empty will cause the PV to not appear in the Song Select screen.&lt;br /&gt;
|BPM of the song. Not directly used in MM+, but required for loading the PV.&lt;br /&gt;
|-&lt;br /&gt;
|chainslide_failure_name&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|chainslide_first_name&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|chainslide_sub_name&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|chainslide_success_name&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|date&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|any number representing a date formatted like &amp;lt;code&amp;gt;yyyymmdd&amp;lt;/code&amp;gt;&lt;br /&gt;
|&#039;&#039;&#039;Critical&#039;&#039;&#039;, omitting this command or leaving its value empty will cause the PV to not appear in the Song Select screen.&lt;br /&gt;
|Date of the song&#039;s addition to the game. Not directly used in MM+, but required for loading the PV.&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;9&amp;quot; |difficulty&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; |attribute&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |original&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |slide&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;7&amp;quot; |easy&lt;br /&gt;
&lt;br /&gt;
normal&lt;br /&gt;
&lt;br /&gt;
hard&lt;br /&gt;
&lt;br /&gt;
extreme&lt;br /&gt;
&lt;br /&gt;
encore&lt;br /&gt;
| rowspan=&amp;quot;6&amp;quot; |&#039;&#039;&#039;&#039;&#039;[list item]&#039;&#039;&#039;&#039;&#039; &lt;br /&gt;
|edition&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|level&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|level_sort_index&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|script_file_name&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|script_format&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|version&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |length&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|disp2d&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; |set_name&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; |ex_song&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; |&#039;&#039;&#039;&#039;&#039;[list item]&#039;&#039;&#039;&#039;&#039; &lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |chara&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |file&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; |length&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |eyes_xrot_adjust&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |hidden_timing&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |high_speed_rate&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; |lyric&lt;br /&gt;
lyric_en&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; rowspan=&amp;quot;2&amp;quot; |&#039;&#039;&#039;&#039;&#039;[lyric number]&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
(3 digits, including leading 0&#039;s) &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|motion&lt;br /&gt;
&lt;br /&gt;
motion2P&lt;br /&gt;
&lt;br /&gt;
motion3P&lt;br /&gt;
&lt;br /&gt;
motion4P&lt;br /&gt;
&lt;br /&gt;
motion5P&lt;br /&gt;
&lt;br /&gt;
motion6P&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; |&#039;&#039;&#039;&#039;&#039;[motion number]&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
(2 digits, including leading 0) &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |pack&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;7&amp;quot; |performer&lt;br /&gt;
| rowspan=&amp;quot;6&amp;quot; |&#039;&#039;&#039;&#039;&#039;[list item]&#039;&#039;&#039;&#039;&#039; &lt;br /&gt;
|chara&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|pv_costume&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|size&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|type&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|num&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|pv_expression&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; |file_name&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|rank_board_id&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; |sabi&lt;br /&gt;
|play_time&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|start_time&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|se_name&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|slide_name&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|slidertouch_name&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|song_file_name&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|song_name&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|song_name_en&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|song_name_reading&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;4&amp;quot; |songinfo&lt;br /&gt;
songinfo_en&lt;br /&gt;
|arranger&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|illustrator&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|lyrics&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|music&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |sudden_timing&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
__FORCETOC__&lt;/div&gt;</summary>
		<author><name>GGAB3</name></author>
	</entry>
	<entry>
		<id>https://docs.divamodarchive.com/index.php?title=User:GGAB3/Sandbox&amp;diff=177</id>
		<title>User:GGAB3/Sandbox</title>
		<link rel="alternate" type="text/html" href="https://docs.divamodarchive.com/index.php?title=User:GGAB3/Sandbox&amp;diff=177"/>
		<updated>2025-10-10T08:39:21Z</updated>

		<summary type="html">&lt;p&gt;GGAB3: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Project DIVA games store general information about the PVs in a database file called &amp;lt;code&amp;gt;pv_db.txt&amp;lt;/code&amp;gt;, located in the &amp;lt;code&amp;gt;rom&amp;lt;/code&amp;gt; folder. The data inside is stored in plain text, meaning the file can be opened and edited using any text editor, such as [[wikipedia:Windows_Notepad|Notepad]].&lt;br /&gt;
&lt;br /&gt;
For the later games (Project DIVA F2nd and Project DIVA X) the &amp;lt;code&amp;gt;pv_db&amp;lt;/code&amp;gt; file is encrypted using DIVAFILE encryption. They need to be decrypted before editing.&lt;br /&gt;
&lt;br /&gt;
Multiple &amp;lt;code&amp;gt;pv_db&amp;lt;/code&amp;gt; databases can not be loaded sequentially. Instead, only the contents of the last loaded &amp;lt;code&amp;gt;pv_db&amp;lt;/code&amp;gt; file gets parsed by the game, overwriting the &#039;&#039;&#039;&#039;&#039;entire&#039;&#039;&#039;&#039;&#039; base game &amp;lt;code&amp;gt;pv_db.txt&amp;lt;/code&amp;gt; database as a result.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;pv_db&amp;lt;/code&amp;gt; databases can have a prefix in their file name to indicate a specific use case:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;&#039;&#039;&#039;mdata&#039;&#039;&#039;_pv_db&amp;lt;/code&amp;gt; - Primarily used in Project DIVA Arcade Future Tone&#039;s [[MDATA]] system. It is also seen in games such as Project DIVA Mega Mix+, where it is used as the dlc &amp;lt;code&amp;gt;pv_db&amp;lt;/code&amp;gt;. &lt;br /&gt;
* &amp;lt;code&amp;gt;&#039;&#039;&#039;mod&#039;&#039;&#039;_pv_db&amp;lt;/code&amp;gt; - Custom prefix read by [https://github.com/blueskythlikesclouds/DivaModLoader DivaModLoader] for Project DIVA Mega Mix+ mods. The contents of each &amp;lt;code&amp;gt;mod_pv_db&amp;lt;/code&amp;gt; gets loaded sequentially, in the mod load order. Entries pointing to the same PV slot get overwritten in load order.&lt;br /&gt;
&lt;br /&gt;
== Structure ==&lt;br /&gt;
Similarly to other plain text databases in Project DIVA, &#039;&#039;&#039;proprieties&#039;&#039;&#039;/&#039;&#039;&#039;keywords&#039;&#039;&#039; are separated by &amp;lt;code&amp;gt;.&amp;lt;/code&amp;gt; and &#039;&#039;&#039;values&#039;&#039;&#039; are attributed to certain proprieties using &amp;lt;code&amp;gt;=&amp;lt;/code&amp;gt;. All lines in the database need to be written in lexicographical order (a → z, 0 → 9) in order to be parsed correctly by the game.&lt;br /&gt;
&lt;br /&gt;
Each entry in a &amp;lt;code&amp;gt;pv_db&amp;lt;/code&amp;gt; begins by specifying the PV slot to which we can attach a propriety and attribute a value, like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;pv_###.propriety=value&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;pv_268.date=202001001&amp;lt;/code&amp;gt; (pv_268 [Catch the Wave]&#039;s date is 01 Jan 2020.)&lt;br /&gt;
&lt;br /&gt;
Proprieties can also be chained or composed of lists:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&amp;lt;code&amp;gt;pv_268.songinfo.lyrics=kz&amp;lt;/code&amp;gt; &lt;br /&gt;
&amp;lt;code&amp;gt;pv_268.songinfo.music=kz&amp;lt;/code&amp;gt;&lt;br /&gt;
|chained properties&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;pv_268.lyric.001=Catch the wave君と&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;pv_268.lyric.002=掴む音で&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;pv_268.lyric.003=まだまだ歌おう&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;pv_268.lyric.004=Wave your handsもっと&amp;lt;/code&amp;gt;&lt;br /&gt;
|list properties&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== List of valid &amp;lt;code&amp;gt;pv_db&amp;lt;/code&amp;gt; keywords ==&lt;br /&gt;
All the keywords that can be used in &amp;lt;code&amp;gt;pv_db&amp;lt;/code&amp;gt; are defined in the game&#039;s internal systems. Here is a table with all the keywords that can be used after &amp;lt;code&amp;gt;pv_###.&amp;lt;/code&amp;gt;:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Keywords and derived keywords&lt;br /&gt;
!&lt;br /&gt;
!&lt;br /&gt;
!&lt;br /&gt;
!Valid values&lt;br /&gt;
!Requirement level&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|bpm&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|any number&lt;br /&gt;
|&#039;&#039;&#039;Critical&#039;&#039;&#039;, omitting this command or leaving its value empty will cause the PV to not appear in the Song Select screen.&lt;br /&gt;
|BPM of the song. Not directly used in MM+, but required for loading the PV.&lt;br /&gt;
|-&lt;br /&gt;
|chainslide_failure_name&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|chainslide_first_name&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|chainslide_sub_name&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|chainslide_success_name&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|date&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|any number representing a date formatted like &amp;lt;code&amp;gt;yyyymmdd&amp;lt;/code&amp;gt;&lt;br /&gt;
|&#039;&#039;&#039;Critical&#039;&#039;&#039;, omitting this command or leaving its value empty will cause the PV to not appear in the Song Select screen.&lt;br /&gt;
|Date of the song&#039;s addition to the game. Not directly used in MM+, but required for loading the PV.&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;9&amp;quot; |difficulty&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; |attribute&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |original&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |slide&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;7&amp;quot; |easy&lt;br /&gt;
&lt;br /&gt;
normal&lt;br /&gt;
&lt;br /&gt;
hard&lt;br /&gt;
&lt;br /&gt;
extreme&lt;br /&gt;
&lt;br /&gt;
encore&lt;br /&gt;
| rowspan=&amp;quot;6&amp;quot; |&#039;&#039;&#039;&#039;&#039;[list item]&#039;&#039;&#039;&#039;&#039; &lt;br /&gt;
|edition&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|level&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|level_sort_index&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|script_file_name&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|script_format&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|version&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |length&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|disp2d&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; |set_name&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; |ex_song&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; |&#039;&#039;&#039;&#039;&#039;[list item]&#039;&#039;&#039;&#039;&#039; &lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |chara&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; |file&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; |length&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |eyes_xrot_adjust&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |hidden_timing&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |high_speed_rate&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; |lyric&lt;br /&gt;
lyric_en&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; rowspan=&amp;quot;2&amp;quot; |&#039;&#039;&#039;&#039;&#039;[lyric number]&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
(3 digits, including leading 0&#039;s) &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|motion&lt;br /&gt;
&lt;br /&gt;
motion2P&lt;br /&gt;
&lt;br /&gt;
motion3P&lt;br /&gt;
&lt;br /&gt;
motion4P&lt;br /&gt;
&lt;br /&gt;
motion5P&lt;br /&gt;
&lt;br /&gt;
motion6P&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; |&#039;&#039;&#039;&#039;&#039;[motion number]&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
(2 digits, including leading 0) &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |pack&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;7&amp;quot; |performer&lt;br /&gt;
| rowspan=&amp;quot;6&amp;quot; |&#039;&#039;&#039;&#039;&#039;[list item]&#039;&#039;&#039;&#039;&#039; &lt;br /&gt;
|chara&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|pv_costume&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|size&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|type&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|num&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|pv_expression&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; |file_name&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|rank_board_id&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; |sabi&lt;br /&gt;
|play_time&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|start_time&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|se_name&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|slide_name&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|slidertouch_name&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|song_file_name&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|song_name&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|song_name_en&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|song_name_reading&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;4&amp;quot; |songinfo&lt;br /&gt;
songinfo_en&lt;br /&gt;
|arranger&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|illustrator&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|lyrics&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|music&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |sudden_timing&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>GGAB3</name></author>
	</entry>
	<entry>
		<id>https://docs.divamodarchive.com/index.php?title=DivaScript&amp;diff=176</id>
		<title>DivaScript</title>
		<link rel="alternate" type="text/html" href="https://docs.divamodarchive.com/index.php?title=DivaScript&amp;diff=176"/>
		<updated>2025-10-07T18:51:06Z</updated>

		<summary type="html">&lt;p&gt;GGAB3: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;DivaScript&#039;&#039; (commonly referred to as &#039;&#039;DSC&#039;&#039;) is the file format used by all the &#039;&#039;Project DIVA&#039;&#039; games for storing various commands related to Music Videos/PVs and Rhythm Game Charts.&lt;br /&gt;
&lt;br /&gt;
The data inside &amp;lt;code&amp;gt;.dsc&amp;lt;/code&amp;gt; files is stored in a binary format. This means that they can not be edited with a text editor and instead require specialized programs that can decode them such as [[DSC Studio]] or [[ScriptEditor]]. Additionally, &amp;lt;code&amp;gt;.dsc&amp;lt;/code&amp;gt; files from &#039;&#039;Project DIVA F2nd&#039;&#039; and &#039;&#039;Project DIVA X&#039;&#039; are encrypted using DIVAFILE encryption. They need to be decrypted before editing.&lt;br /&gt;
&lt;br /&gt;
== DSC Formats ==&lt;br /&gt;
Every &#039;&#039;Project DIVA&#039;&#039; game uses a specific DivaScript format. The exact format of a &amp;lt;code&amp;gt;.dsc&amp;lt;/code&amp;gt; file is determined by the first 4 bytes of the file.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|}&amp;lt;!-- Needs an actual list of all the formats and their DSC headers. --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== List of DSC Commands &#039;&#039;(Incomplete)&#039;&#039; ==&lt;br /&gt;
List of commands that can be used in FT, F, F2/X DSC formats. Format-exclusive commands are marked individually.&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Command Name&lt;br /&gt;
!Definition&lt;br /&gt;
!Parameter&lt;br /&gt;
!Description&lt;br /&gt;
!Type&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;6&amp;quot; |&lt;br /&gt;
====== AGEAGE_CTRL ======&lt;br /&gt;
| rowspan=&amp;quot;6&amp;quot; |Controls the effect for the hair of the module &amp;quot;AgeAge Again&amp;quot;.&lt;br /&gt;
FT: &amp;lt;code&amp;gt;AGEAGE_CTRL(chara, parts, npr, rot_speed, skip, disp, -1, -1);&amp;lt;/code&amp;gt;&lt;br /&gt;
|chara&lt;br /&gt;
|Character slot&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|parts&lt;br /&gt;
|Hair parts to control:&lt;br /&gt;
&amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt;: both&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt;: left&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;2&amp;lt;/code&amp;gt;: right&lt;br /&gt;
|enum&lt;br /&gt;
|-&lt;br /&gt;
|npr&lt;br /&gt;
|sets NPR material&lt;br /&gt;
|bool&lt;br /&gt;
|-&lt;br /&gt;
|speed&lt;br /&gt;
|Effect speed&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|skip&lt;br /&gt;
|Skips 200 frames of animation.&lt;br /&gt;
|bool&lt;br /&gt;
|-&lt;br /&gt;
|disp&lt;br /&gt;
|Whether to display the effect or not.&lt;br /&gt;
|bool&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; |&lt;br /&gt;
====== BAR_TIME_SET ======&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; |Sets the length of a measure.&lt;br /&gt;
&amp;lt;code&amp;gt;BAR_TIME_SET(bpm, beats);&amp;lt;/code&amp;gt;&lt;br /&gt;
|bpm&lt;br /&gt;
|Beats per minute&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|beats&lt;br /&gt;
|Number of quarter note beats minus 1. eg: &amp;lt;code&amp;gt;3&amp;lt;/code&amp;gt; for 4/4.&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; |&lt;br /&gt;
====== BLOOM ======&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; |Sets data from &amp;lt;code&amp;gt;bloom&amp;lt;/code&amp;gt; pv_param.&lt;br /&gt;
FT, F2, X: &amp;lt;code&amp;gt;BLOOM(id, unk);&amp;lt;/code&amp;gt;&lt;br /&gt;
|id&lt;br /&gt;
|ID matching the data in pv_param.&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|unk&lt;br /&gt;
|Unknown&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
====== CHANGE_FIELD ======&lt;br /&gt;
|Changes the field defined in &amp;lt;code&amp;gt;pv_field&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;pv_db&amp;lt;/code&amp;gt;.&lt;br /&gt;
&amp;lt;code&amp;gt;CHANGE_FIELD(id);&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
F2, X: &amp;lt;code&amp;gt;CHANGE_FIELD(id, unk);&amp;lt;/code&amp;gt;&lt;br /&gt;
|id&lt;br /&gt;
|ID matching the field number in &amp;lt;code&amp;gt;pv_field&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;pv_db&amp;lt;/code&amp;gt;.&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; |&lt;br /&gt;
====== CHARA_SIZE ======&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; |Sets a character&#039;s scale/size.&lt;br /&gt;
&amp;lt;code&amp;gt;CHARA_SIZE(chara, size);&amp;lt;/code&amp;gt;&lt;br /&gt;
|chara&lt;br /&gt;
|Character slot&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|size&lt;br /&gt;
|Character scale&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
====== END ======&lt;br /&gt;
|Ends reading of the script.&lt;br /&gt;
&amp;lt;code&amp;gt;END();&amp;lt;/code&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; |&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; |&lt;br /&gt;
====== HAND_SCALE ======&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; |Sets the size of a character&#039;s hand.&lt;br /&gt;
FT: &amp;lt;code&amp;gt;HAND_SCALE(chara, hand, scale);&amp;lt;/code&amp;gt;&lt;br /&gt;
|chara&lt;br /&gt;
|Character slot&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|hand&lt;br /&gt;
|Which hand to scale:&lt;br /&gt;
&amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt;: left&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;2&amp;lt;/code&amp;gt;: right&lt;br /&gt;
|enum&lt;br /&gt;
|-&lt;br /&gt;
|scale&lt;br /&gt;
|Hand scale in percentage times 10; eg. for &amp;lt;code&amp;gt;105%&amp;lt;/code&amp;gt; use &amp;lt;code&amp;gt;1050&amp;lt;/code&amp;gt;&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; |&lt;br /&gt;
====== LYRIC ======&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; |Displays a lyric from &amp;lt;code&amp;gt;pv_db&amp;lt;/code&amp;gt;.&lt;br /&gt;
&amp;lt;code&amp;gt;LYRIC(id, color);&amp;lt;/code&amp;gt;&lt;br /&gt;
|id&lt;br /&gt;
|ID matching the number of a lyric in &amp;lt;code&amp;gt;pv_db&amp;lt;/code&amp;gt;.&lt;br /&gt;
Use &amp;lt;code&amp;gt;-1&amp;lt;/code&amp;gt; as &amp;quot;disable&amp;quot;.&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|color&lt;br /&gt;
|&amp;lt;code&amp;gt;#AARRGGBB&amp;lt;/code&amp;gt; hex color code converted to decimal.&lt;br /&gt;
eg.: for a red lyric the command would be &amp;lt;code&amp;gt;LYRIC(id, 16711680);&amp;lt;/code&amp;gt; &lt;br /&gt;
&lt;br /&gt;
because Red: &amp;lt;code&amp;gt;#00FF0000&amp;lt;/code&amp;gt; → &amp;lt;code&amp;gt;0x00ff0000&amp;lt;/code&amp;gt; → &amp;lt;code&amp;gt;16711680&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Default: &amp;lt;code&amp;gt;-1&amp;lt;/code&amp;gt;&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; |&lt;br /&gt;
====== MIKU_DISP ======&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; |Shows or hides a character in a PV.&lt;br /&gt;
&amp;lt;code&amp;gt;MIKU_DISP(chara, disp);&amp;lt;/code&amp;gt;&lt;br /&gt;
|chara&lt;br /&gt;
|Character slot&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|disp&lt;br /&gt;
|Whether to display the character or not.&lt;br /&gt;
|bool&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;4&amp;quot; |&lt;br /&gt;
====== MIKU_MOVE ======&lt;br /&gt;
| rowspan=&amp;quot;4&amp;quot; |Moves a character in 3D space in a PV.&lt;br /&gt;
&amp;lt;code&amp;gt;MIKU_MOVE(chara, x, y, z);&amp;lt;/code&amp;gt;&lt;br /&gt;
|chara&lt;br /&gt;
|Character slot&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|x&lt;br /&gt;
|X coordinate&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|y&lt;br /&gt;
|Y coordinate&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|z&lt;br /&gt;
|Z coordinate&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; |&lt;br /&gt;
====== MIKU_ROT ======&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; |Rotates a character in a PV.&lt;br /&gt;
&amp;lt;code&amp;gt;MIKU_ROT(chara, angle);&amp;lt;/code&amp;gt;&lt;br /&gt;
|chara&lt;br /&gt;
|Character slot&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|angle&lt;br /&gt;
|Angle value&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; |&lt;br /&gt;
====== MIKU_SHADOW ======&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; |Shows or hides a character&#039;s shadow in a PV.&lt;br /&gt;
&amp;lt;code&amp;gt;MIKU_SHADOW(chara, disp);&amp;lt;/code&amp;gt;&lt;br /&gt;
|chara&lt;br /&gt;
|Character slot&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|disp&lt;br /&gt;
|Whether to display the character&#039;s shadow or not.&lt;br /&gt;
|bool&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; |&lt;br /&gt;
====== MODE_SELECT ======&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; |Starts or ends a special chart segment, such as Chance Time.&lt;br /&gt;
&amp;lt;code&amp;gt;MODE_SELECT(difficulty, mode);&amp;lt;/code&amp;gt;&lt;br /&gt;
|difficulty&lt;br /&gt;
|Indicates under what difficulties the command will trigger in this exact script.&lt;br /&gt;
This value is a bit flag corresponding to a group of difficulties:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; - Easy&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;2&amp;lt;/code&amp;gt; - Normal&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;4&amp;lt;/code&amp;gt; - Hard&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;8&amp;lt;/code&amp;gt; - Extreme&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;16&amp;lt;/code&amp;gt; - Encore&lt;br /&gt;
&lt;br /&gt;
Adding the values up to each other results in a group: &amp;lt;code&amp;gt;6&amp;lt;/code&amp;gt; = Hard (4) and Normal (2).&lt;br /&gt;
&lt;br /&gt;
Use &amp;lt;code&amp;gt;31&amp;lt;/code&amp;gt; as a universal value (works on any difficulty).&lt;br /&gt;
|bitfield enum&lt;br /&gt;
|-&lt;br /&gt;
|mode&lt;br /&gt;
|What segment to start/end:&lt;br /&gt;
&amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; - Challenge Time (Arcade games) / Chance Time (Console games) Start&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;3&amp;lt;/code&amp;gt; - Challenge Time (Arcade games) / Chance Time (Console games) End&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;8&amp;lt;/code&amp;gt; - Technical Zone Start&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;9&amp;lt;/code&amp;gt; - Technical Zone End&lt;br /&gt;
&lt;br /&gt;
Only used by the [https://divamodarchive.com/post/169 New Classics mod]:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;4&amp;lt;/code&amp;gt; - Chance Time Start&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;5&amp;lt;/code&amp;gt; - Chance Time End&lt;br /&gt;
|enum&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; |&lt;br /&gt;
====== MOVIE_CUT_CHG ======&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; |Plays, shows or hides the movie defined in &amp;lt;code&amp;gt;pv_db&amp;lt;/code&amp;gt; or a movie from &amp;lt;code&amp;gt;movie.list&amp;lt;/code&amp;gt; in &amp;lt;code&amp;gt;pv_db&amp;lt;/code&amp;gt;. It can be used as a fancier version of both &amp;lt;code&amp;gt;MOVIE_DISP&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;MOVIE_PLAY&amp;lt;/code&amp;gt; that allows more control.&lt;br /&gt;
FT: &amp;lt;code&amp;gt;MOVIE_CUT_CHG(id, disp);&amp;lt;/code&amp;gt;&lt;br /&gt;
|id&lt;br /&gt;
|The number in &amp;lt;code&amp;gt;movie.list&amp;lt;/code&amp;gt; of the movie to be played.&lt;br /&gt;
Playback starts at the moment the command is called for a newly called &amp;lt;code&amp;gt;movie.list&amp;lt;/code&amp;gt; item. Re-calling a movie again doesn&#039;t play it from the starting position.&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|disp&lt;br /&gt;
|&amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; - display the movie layer&lt;br /&gt;
Any other value - hide the movie layer (playback keeps going)&lt;br /&gt;
|bool&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
====== MOVIE_DISP ======&lt;br /&gt;
|Shows or hides the movie layer in a PV.&lt;br /&gt;
&amp;lt;code&amp;gt;MOVIE_DISP(disp);&amp;lt;/code&amp;gt;&lt;br /&gt;
|disp&lt;br /&gt;
|&amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; - display the movie layer&lt;br /&gt;
Any other value - hide the movie layer (playback keeps going)&lt;br /&gt;
|bool&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
====== MOVIE_PLAY ======&lt;br /&gt;
|Starts playing the movie defined in &amp;lt;code&amp;gt;pv_db&amp;lt;/code&amp;gt; or the first movie in &amp;lt;code&amp;gt;movie.list&amp;lt;/code&amp;gt; in &amp;lt;code&amp;gt;pv_db&amp;lt;/code&amp;gt;.&lt;br /&gt;
&amp;lt;code&amp;gt;MOVIE_PLAY(play);&amp;lt;/code&amp;gt;&lt;br /&gt;
|play&lt;br /&gt;
|&amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; - plays the movie&lt;br /&gt;
Any other value doesn&#039;t do anything.&lt;br /&gt;
|bool&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
====== MUSIC_PLAY ======&lt;br /&gt;
|Starts playing the song file defined in &amp;lt;code&amp;gt;pv_db&amp;lt;/code&amp;gt;.&lt;br /&gt;
&amp;lt;code&amp;gt;MUSIC_PLAY();&amp;lt;/code&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; |&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
====== PV_BRANCH_MODE ======&lt;br /&gt;
|Make future DSC commands only be executed on either the &amp;lt;code&amp;gt;Global&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;Fail&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;Success&amp;lt;/code&amp;gt; branch.&lt;br /&gt;
FT, F, F2, X: &amp;lt;code&amp;gt;PV_BRANCH_MODE(branch);&amp;lt;/code&amp;gt;&lt;br /&gt;
|branch&lt;br /&gt;
|&amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt; - Global (commands are executed regardless of success state)&lt;br /&gt;
&amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; - Fail (commands are executed only if the PV is in the &#039;failed&#039; state)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;2&amp;lt;/code&amp;gt; - Success (commands are executed only if the PV is in the &#039;success&#039; state)&lt;br /&gt;
|enum&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
====== PV_END ======&lt;br /&gt;
|Ends PV playback.&lt;br /&gt;
&amp;lt;code&amp;gt;PV_END();&amp;lt;/code&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; |&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
====== SATURATE ======&lt;br /&gt;
|Changes color saturation in a PV.&lt;br /&gt;
&amp;lt;code&amp;gt;SATURATE(amount);&amp;lt;/code&amp;gt;&lt;br /&gt;
|amount&lt;br /&gt;
|Saturation strength on a scale from 0 to 1000:&lt;br /&gt;
&amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt; - No color, perfect grayscale&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;1000&amp;lt;/code&amp;gt; - Regular colors&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;6&amp;quot; |&lt;br /&gt;
====== SCENE_FADE ======&lt;br /&gt;
| rowspan=&amp;quot;6&amp;quot; |Plays a screen fade effect during PVs.&lt;br /&gt;
&amp;lt;code&amp;gt;SCENE_FADE(speed, start, end, r, g, b)&amp;lt;/code&amp;gt;&lt;br /&gt;
|speed&lt;br /&gt;
|Fade duration in seconds&lt;br /&gt;
eg:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;1000&amp;lt;/code&amp;gt;: 1 second&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;800&amp;lt;/code&amp;gt;: 0.8 seconds&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|start&lt;br /&gt;
|The opacity the fade will start with&lt;br /&gt;
&amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt;: fully transparent&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;1000&amp;lt;/code&amp;gt;: fully opaque&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|end&lt;br /&gt;
|The opacity the fade will end with&lt;br /&gt;
&amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt;: fully transparent&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;1000&amp;lt;/code&amp;gt;: fully opaque&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|r&lt;br /&gt;
|Red color component scale, from 0 to 1000&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|g&lt;br /&gt;
|Green color component scale, from 0 to 1000&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|b&lt;br /&gt;
|Blue color component scale, from 0 to 1000&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
====== SE_EFFECT ======&lt;br /&gt;
|Plays a sound effect in a PV defined in &amp;lt;code&amp;gt;pv_db&amp;lt;/code&amp;gt;. Normally used for success scenes but not restricted to them.&lt;br /&gt;
FT, F, F2, X: &amp;lt;code&amp;gt;SE_EFFECT(id);&amp;lt;/code&amp;gt;&lt;br /&gt;
|id&lt;br /&gt;
|number of a &amp;lt;code&amp;gt;effect_se_name_list&amp;lt;/code&amp;gt; item defined in &amp;lt;code&amp;gt;pv_db&amp;lt;/code&amp;gt;.&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;12&amp;quot; |&lt;br /&gt;
====== TARGET ======&lt;br /&gt;
| rowspan=&amp;quot;12&amp;quot; |Spawns a rhythm game note.&lt;br /&gt;
FT: &amp;lt;code&amp;gt;TARGET(type, pos_x, pos_y, angle, dist, amp, freq);&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
F: &amp;lt;code&amp;gt;TARGET(type, duration, is_end, pos_x, pos_y, angle, freq, dist, amp, fly_time, sig);&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
F2, X: &amp;lt;code&amp;gt;TARGET(type, duration, is_end, pos_x, pos_y, angle, freq, dist, amp, fly_time, sig, hit_eff);&amp;lt;/code&amp;gt;&lt;br /&gt;
|type&lt;br /&gt;
|ID corresponding to a note type.&lt;br /&gt;
Full ID list for each game on the dedicated [[Target]] page.&lt;br /&gt;
|enum&lt;br /&gt;
|-&lt;br /&gt;
|pos_x&lt;br /&gt;
|X position of the note&#039;s target.&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|pos_y&lt;br /&gt;
|Y position of the note&#039;s target.&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|angle&lt;br /&gt;
|Angle of the note&#039;s path.&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|distance&lt;br /&gt;
|Distance between the note&#039;s spawn position and the target&#039;s position.&lt;br /&gt;
Default: &amp;lt;code&amp;gt;300000&amp;lt;/code&amp;gt;&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|amp&lt;br /&gt;
|Amplitude of the note&#039;s path wave.&lt;br /&gt;
Default: &amp;lt;code&amp;gt;500&amp;lt;/code&amp;gt;&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|freq&lt;br /&gt;
|Frequency of the note&#039;s path wave.&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|duration&lt;br /&gt;
|(for F/F2/X formats)&lt;br /&gt;
Sustain and Rush Note duration.&lt;br /&gt;
Default (for notes other than Sustain and Rush): &amp;lt;code&amp;gt;-1&amp;lt;/code&amp;gt;&lt;br /&gt;
|DivaTime&lt;br /&gt;
|-&lt;br /&gt;
|is_end&lt;br /&gt;
|(for F/F2/X formats)&lt;br /&gt;
set to &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; for Sustain &#039;end&#039; notes, otherwise set to &amp;lt;code&amp;gt;-1&amp;lt;/code&amp;gt;&lt;br /&gt;
|bool&lt;br /&gt;
|-&lt;br /&gt;
|fly_time&lt;br /&gt;
|(for F/F2/X formats)&lt;br /&gt;
Target Flying Time value (same format as the TARGET_FLYING_TIME command)&lt;br /&gt;
|DivaTime&lt;br /&gt;
|-&lt;br /&gt;
|sig&lt;br /&gt;
|(for F/F2/X formats)&lt;br /&gt;
Time Signature&lt;br /&gt;
&lt;br /&gt;
The same value that would otherwise go in &amp;lt;code&amp;gt;BAR_TIME_SET&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
Number of quarter note beats minus 1. eg: &amp;lt;code&amp;gt;3&amp;lt;/code&amp;gt; for 4/4.&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|hit_eff&lt;br /&gt;
|(for F2/X formats)&lt;br /&gt;
Assigns a hit effect to the note based on a local ID defined in a previous TARGET_EFFECT command.&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
====== TARGET_FLYING_TIME ======&lt;br /&gt;
|Sets the time it takes for the rhythm game notes to hit their targets.&lt;br /&gt;
&amp;lt;code&amp;gt;TARGET_FLYING_TIME(flytime);&amp;lt;/code&amp;gt;&lt;br /&gt;
|flytime&lt;br /&gt;
|time value in DivaTime&lt;br /&gt;
|DivaTime&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
====== TIME ======&lt;br /&gt;
|Waits until a specified game time.&lt;br /&gt;
&amp;lt;code&amp;gt;TIME(t);&amp;lt;/code&amp;gt;&lt;br /&gt;
|t&lt;br /&gt;
|time value in DivaTime&lt;br /&gt;
|DivaTime&lt;br /&gt;
|}&amp;lt;!-- Please keep all the commands in alphabetical order!! --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= References =&lt;br /&gt;
somewhatlurker&#039;s [https://github.com/somewhatlurker/pydiva/blob/dsc/pydiva/pydsc_op_db.py pyDIVA/pyDSC]&lt;/div&gt;</summary>
		<author><name>GGAB3</name></author>
	</entry>
	<entry>
		<id>https://docs.divamodarchive.com/index.php?title=DivaScript&amp;diff=175</id>
		<title>DivaScript</title>
		<link rel="alternate" type="text/html" href="https://docs.divamodarchive.com/index.php?title=DivaScript&amp;diff=175"/>
		<updated>2025-10-07T18:38:16Z</updated>

		<summary type="html">&lt;p&gt;GGAB3: Changed formatting to a large table&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;DivaScript&#039;&#039; (commonly referred to as &#039;&#039;DSC&#039;&#039;) is the file format used by all the &#039;&#039;Project DIVA&#039;&#039; games for storing various commands related to Music Videos/PVs and Rhythm Game Charts.&lt;br /&gt;
&lt;br /&gt;
The data inside &amp;lt;code&amp;gt;.dsc&amp;lt;/code&amp;gt; files is stored in a binary format. This means that they can not be edited with a text editor and instead require specialized programs that can decode them such as [[DSC Studio]] or [[ScriptEditor]]. Additionally, &amp;lt;code&amp;gt;.dsc&amp;lt;/code&amp;gt; files from &#039;&#039;Project DIVA F2nd&#039;&#039; and &#039;&#039;Project DIVA X&#039;&#039; are encrypted using DIVAFILE encryption. They need to be decrypted before editing.&lt;br /&gt;
&lt;br /&gt;
== DSC Formats ==&lt;br /&gt;
Every &#039;&#039;Project DIVA&#039;&#039; game uses a specific DivaScript format. The exact format of a &amp;lt;code&amp;gt;.dsc&amp;lt;/code&amp;gt; file is determined by the first 4 bytes of the file.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|}&amp;lt;!-- Needs an actual list of all the formats and their DSC headers. --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== List of DSC Commands &#039;&#039;(Incomplete)&#039;&#039; ==&lt;br /&gt;
List of commands that can be used in FT, F, F2/X DSC formats. Format-exclusive commands are marked individually.&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Command Name&lt;br /&gt;
!Definition&lt;br /&gt;
!Parameter&lt;br /&gt;
!Description&lt;br /&gt;
!Type&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;6&amp;quot; |&lt;br /&gt;
====== AGEAGE_CTRL ======&lt;br /&gt;
| rowspan=&amp;quot;6&amp;quot; |Controls the effect for the hair of the module &amp;quot;AgeAge Again&amp;quot;.&lt;br /&gt;
FT: &amp;lt;code&amp;gt;AGEAGE_CTRL(chara, parts, npr, rot_speed, skip, disp, -1, -1);&amp;lt;/code&amp;gt;&lt;br /&gt;
|chara&lt;br /&gt;
|Character slot&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|parts&lt;br /&gt;
|Hair parts to control:&lt;br /&gt;
&amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt;: both&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt;: left&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;2&amp;lt;/code&amp;gt;: right&lt;br /&gt;
|enum&lt;br /&gt;
|-&lt;br /&gt;
|npr&lt;br /&gt;
|sets NPR material&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|speed&lt;br /&gt;
|Effect speed&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|skip&lt;br /&gt;
|Skips 200 frames of animation.&lt;br /&gt;
|bool&lt;br /&gt;
|-&lt;br /&gt;
|disp&lt;br /&gt;
|Whether to display the effect or not.&lt;br /&gt;
|bool&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; |&lt;br /&gt;
====== BAR_TIME_SET ======&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; |Sets the length of a measure.&lt;br /&gt;
&amp;lt;code&amp;gt;BAR_TIME_SET(bpm, beats);&amp;lt;/code&amp;gt;&lt;br /&gt;
|bpm&lt;br /&gt;
|Beats per minute&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|beats&lt;br /&gt;
|Number of quarter note beats minus 1. eg: &amp;lt;code&amp;gt;3&amp;lt;/code&amp;gt; for 4/4.&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; |&lt;br /&gt;
====== BLOOM ======&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; |Sets data from &amp;lt;code&amp;gt;bloom&amp;lt;/code&amp;gt; pv_param.&lt;br /&gt;
FT, F2, X: &amp;lt;code&amp;gt;BLOOM(id, unk);&amp;lt;/code&amp;gt;&lt;br /&gt;
|id&lt;br /&gt;
|ID matching the data in pv_param.&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|unk&lt;br /&gt;
|Unknown&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
====== CHANGE_FIELD ======&lt;br /&gt;
|Changes the field defined in &amp;lt;code&amp;gt;pv_field&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;pv_db&amp;lt;/code&amp;gt;.&lt;br /&gt;
&amp;lt;code&amp;gt;CHANGE_FIELD(id);&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
F2, X: &amp;lt;code&amp;gt;CHANGE_FIELD(id, unk);&amp;lt;/code&amp;gt;&lt;br /&gt;
|id&lt;br /&gt;
|ID matching the field number in &amp;lt;code&amp;gt;pv_field&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;pv_db&amp;lt;/code&amp;gt;.&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; |&lt;br /&gt;
====== CHARA_SIZE ======&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; |Sets a character&#039;s scale/size.&lt;br /&gt;
&amp;lt;code&amp;gt;CHARA_SIZE(chara, size);&amp;lt;/code&amp;gt;&lt;br /&gt;
|chara&lt;br /&gt;
|Character slot&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|size&lt;br /&gt;
|Character scale&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
====== END ======&lt;br /&gt;
|Ends reading of the script.&lt;br /&gt;
&amp;lt;code&amp;gt;END();&amp;lt;/code&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; |&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; |&lt;br /&gt;
====== HAND_SCALE ======&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; |Sets the size of a character&#039;s hand.&lt;br /&gt;
FT: &amp;lt;code&amp;gt;HAND_SCALE(chara, hand, scale);&amp;lt;/code&amp;gt;&lt;br /&gt;
|chara&lt;br /&gt;
|Character slot&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|hand&lt;br /&gt;
|Which hand to scale:&lt;br /&gt;
&amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt;: left&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;2&amp;lt;/code&amp;gt;: right&lt;br /&gt;
|enum&lt;br /&gt;
|-&lt;br /&gt;
|scale&lt;br /&gt;
|Hand scale in percentage times 10; eg. for &amp;lt;code&amp;gt;105%&amp;lt;/code&amp;gt; use &amp;lt;code&amp;gt;1050&amp;lt;/code&amp;gt;&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; |&lt;br /&gt;
====== LYRIC ======&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; |Displays a lyric from &amp;lt;code&amp;gt;pv_db&amp;lt;/code&amp;gt;.&lt;br /&gt;
&amp;lt;code&amp;gt;LYRIC(id, color);&amp;lt;/code&amp;gt;&lt;br /&gt;
|id&lt;br /&gt;
|ID matching the number of a lyric in &amp;lt;code&amp;gt;pv_db&amp;lt;/code&amp;gt;.&lt;br /&gt;
Use &amp;lt;code&amp;gt;-1&amp;lt;/code&amp;gt; as &amp;quot;disable&amp;quot;.&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|color&lt;br /&gt;
|&amp;lt;code&amp;gt;#AARRGGBB&amp;lt;/code&amp;gt; hex color code converted to decimal.&lt;br /&gt;
eg.: for a red lyric the command would be &amp;lt;code&amp;gt;LYRIC(id, 16711680);&amp;lt;/code&amp;gt; &lt;br /&gt;
&lt;br /&gt;
because Red: &amp;lt;code&amp;gt;#00FF0000&amp;lt;/code&amp;gt; → &amp;lt;code&amp;gt;0x00ff0000&amp;lt;/code&amp;gt; → &amp;lt;code&amp;gt;16711680&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Default: &amp;lt;code&amp;gt;-1&amp;lt;/code&amp;gt;&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; |&lt;br /&gt;
====== MIKU_DISP ======&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; |Shows or hides a character in a PV.&lt;br /&gt;
&amp;lt;code&amp;gt;MIKU_DISP(chara, disp);&amp;lt;/code&amp;gt;&lt;br /&gt;
|chara&lt;br /&gt;
|Character slot&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|disp&lt;br /&gt;
|Whether to display the character or not.&lt;br /&gt;
|bool&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;4&amp;quot; |&lt;br /&gt;
====== MIKU_MOVE ======&lt;br /&gt;
| rowspan=&amp;quot;4&amp;quot; |Moves a character in 3D space in a PV.&lt;br /&gt;
&amp;lt;code&amp;gt;MIKU_MOVE(chara, x, y, z);&amp;lt;/code&amp;gt;&lt;br /&gt;
|chara&lt;br /&gt;
|Character slot&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|x&lt;br /&gt;
|X coordinate&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|y&lt;br /&gt;
|Y coordinate&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|z&lt;br /&gt;
|Z coordinate&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; |&lt;br /&gt;
====== MIKU_ROT ======&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; |Rotates a character in a PV.&lt;br /&gt;
&amp;lt;code&amp;gt;MIKU_ROT(chara, angle);&amp;lt;/code&amp;gt;&lt;br /&gt;
|chara&lt;br /&gt;
|Character slot&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|angle&lt;br /&gt;
|Angle value&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; |&lt;br /&gt;
====== MIKU_SHADOW ======&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; |Shows or hides a character&#039;s shadow in a PV.&lt;br /&gt;
&amp;lt;code&amp;gt;MIKU_SHADOW(chara, disp);&amp;lt;/code&amp;gt;&lt;br /&gt;
|chara&lt;br /&gt;
|Character slot&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|disp&lt;br /&gt;
|Whether to display the character&#039;s shadow or not.&lt;br /&gt;
|bool&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; |&lt;br /&gt;
====== MODE_SELECT ======&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; |Starts or ends a special chart segment, such as Chance Time.&lt;br /&gt;
&amp;lt;code&amp;gt;MODE_SELECT(difficulty, mode);&amp;lt;/code&amp;gt;&lt;br /&gt;
|difficulty&lt;br /&gt;
|Indicates under what difficulties the command will trigger in this exact script.&lt;br /&gt;
This value is a bit flag corresponding to a group of difficulties:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; - Easy&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;2&amp;lt;/code&amp;gt; - Normal&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;4&amp;lt;/code&amp;gt; - Hard&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;8&amp;lt;/code&amp;gt; - Extreme&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;16&amp;lt;/code&amp;gt; - Encore&lt;br /&gt;
&lt;br /&gt;
Adding the values up to each other results in a group: &amp;lt;code&amp;gt;6&amp;lt;/code&amp;gt; = Hard (4) and Normal (2).&lt;br /&gt;
&lt;br /&gt;
Use &amp;lt;code&amp;gt;31&amp;lt;/code&amp;gt; as a universal value (works on any difficulty).&lt;br /&gt;
|bitfield enum&lt;br /&gt;
|-&lt;br /&gt;
|mode&lt;br /&gt;
|What segment to start/end:&lt;br /&gt;
&amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; - Challenge Time (Arcade games) / Chance Time (Console games) Start&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;3&amp;lt;/code&amp;gt; - Challenge Time (Arcade games) / Chance Time (Console games) End&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;8&amp;lt;/code&amp;gt; - Technical Zone Start&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;9&amp;lt;/code&amp;gt; - Technical Zone End&lt;br /&gt;
&lt;br /&gt;
Only used by the [https://divamodarchive.com/post/169 New Classics mod]:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;4&amp;lt;/code&amp;gt; - Chance Time Start&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;5&amp;lt;/code&amp;gt; - Chance Time End&lt;br /&gt;
|enum&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; |&lt;br /&gt;
====== MOVIE_CUT_CHG ======&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; |Plays, shows or hides the movie defined in &amp;lt;code&amp;gt;pv_db&amp;lt;/code&amp;gt; or a movie from &amp;lt;code&amp;gt;movie.list&amp;lt;/code&amp;gt; in &amp;lt;code&amp;gt;pv_db&amp;lt;/code&amp;gt;. It can be used as a fancier version of both &amp;lt;code&amp;gt;MOVIE_DISP&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;MOVIE_PLAY&amp;lt;/code&amp;gt; that allows more control.&lt;br /&gt;
FT: &amp;lt;code&amp;gt;MOVIE_CUT_CHG(id, disp);&amp;lt;/code&amp;gt;&lt;br /&gt;
|id&lt;br /&gt;
|The number in &amp;lt;code&amp;gt;movie.list&amp;lt;/code&amp;gt; of the movie to be played.&lt;br /&gt;
Playback starts at the moment the command is called for a newly called &amp;lt;code&amp;gt;movie.list&amp;lt;/code&amp;gt; item. Re-calling a movie again doesn&#039;t play it from the starting position.&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|disp&lt;br /&gt;
|&amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; - display the movie layer&lt;br /&gt;
Any other value - hide the movie layer (playback keeps going)&lt;br /&gt;
|bool&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
====== MOVIE_DISP ======&lt;br /&gt;
|Shows or hides the movie layer in a PV.&lt;br /&gt;
&amp;lt;code&amp;gt;MOVIE_DISP(disp);&amp;lt;/code&amp;gt;&lt;br /&gt;
|disp&lt;br /&gt;
|&amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; - display the movie layer&lt;br /&gt;
Any other value - hide the movie layer (playback keeps going)&lt;br /&gt;
|bool&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
====== MOVIE_PLAY ======&lt;br /&gt;
|Starts playing the movie defined in &amp;lt;code&amp;gt;pv_db&amp;lt;/code&amp;gt; or the first movie in &amp;lt;code&amp;gt;movie.list&amp;lt;/code&amp;gt; in &amp;lt;code&amp;gt;pv_db&amp;lt;/code&amp;gt;.&lt;br /&gt;
&amp;lt;code&amp;gt;MOVIE_PLAY(play);&amp;lt;/code&amp;gt;&lt;br /&gt;
|play&lt;br /&gt;
|&amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; - plays the movie&lt;br /&gt;
Any other value doesn&#039;t do anything.&lt;br /&gt;
|bool&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
====== MUSIC_PLAY ======&lt;br /&gt;
|Starts playing the song file defined in &amp;lt;code&amp;gt;pv_db&amp;lt;/code&amp;gt;.&lt;br /&gt;
&amp;lt;code&amp;gt;MUSIC_PLAY();&amp;lt;/code&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; |&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
====== PV_BRANCH_MODE ======&lt;br /&gt;
|Make future DSC commands only be executed on either the &amp;lt;code&amp;gt;Global&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;Fail&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;Success&amp;lt;/code&amp;gt; branch.&lt;br /&gt;
FT, F, F2, X: &amp;lt;code&amp;gt;PV_BRANCH_MODE(branch);&amp;lt;/code&amp;gt;&lt;br /&gt;
|branch&lt;br /&gt;
|&amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt; - Global (commands are executed regardless of success state)&lt;br /&gt;
&amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; - Fail (commands are executed only if the PV is in the &#039;failed&#039; state)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;2&amp;lt;/code&amp;gt; - Success (commands are executed only if the PV is in the &#039;success&#039; state)&lt;br /&gt;
|enum&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
====== PV_END ======&lt;br /&gt;
|Ends PV playback.&lt;br /&gt;
&amp;lt;code&amp;gt;PV_END();&amp;lt;/code&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; |&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
====== SATURATE ======&lt;br /&gt;
|Changes color saturation in a PV.&lt;br /&gt;
&amp;lt;code&amp;gt;SATURATE(amount);&amp;lt;/code&amp;gt;&lt;br /&gt;
|amount&lt;br /&gt;
|Saturation strength on a scale from 0 to 1000:&lt;br /&gt;
&amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt; - No color, perfect grayscale&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;1000&amp;lt;/code&amp;gt; - Regular colors&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;6&amp;quot; |&lt;br /&gt;
====== SCENE_FADE ======&lt;br /&gt;
| rowspan=&amp;quot;6&amp;quot; |Plays a screen fade effect during PVs.&lt;br /&gt;
&amp;lt;code&amp;gt;SCENE_FADE(speed, start, end, r, g, b)&amp;lt;/code&amp;gt;&lt;br /&gt;
|speed&lt;br /&gt;
|Fade duration in seconds&lt;br /&gt;
eg:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;1000&amp;lt;/code&amp;gt;: 1 second&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;800&amp;lt;/code&amp;gt;: 0.8 seconds&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|start&lt;br /&gt;
|The opacity the fade will start with&lt;br /&gt;
&amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt;: fully transparent&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;1000&amp;lt;/code&amp;gt;: fully opaque&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|end&lt;br /&gt;
|The opacity the fade will end with&lt;br /&gt;
&amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt;: fully transparent&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;1000&amp;lt;/code&amp;gt;: fully opaque&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|r&lt;br /&gt;
|Red color component scale, from 0 to 1000&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|g&lt;br /&gt;
|Green color component scale, from 0 to 1000&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|b&lt;br /&gt;
|Blue color component scale, from 0 to 1000&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
====== SE_EFFECT ======&lt;br /&gt;
|Plays a sound effect in a PV defined in &amp;lt;code&amp;gt;pv_db&amp;lt;/code&amp;gt;. Normally used for success scenes but not restricted to them.&lt;br /&gt;
FT, F, F2, X: &amp;lt;code&amp;gt;SE_EFFECT(id);&amp;lt;/code&amp;gt;&lt;br /&gt;
|id&lt;br /&gt;
|number of a &amp;lt;code&amp;gt;effect_se_name_list&amp;lt;/code&amp;gt; item defined in &amp;lt;code&amp;gt;pv_db&amp;lt;/code&amp;gt;.&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;12&amp;quot; |&lt;br /&gt;
====== TARGET ======&lt;br /&gt;
| rowspan=&amp;quot;12&amp;quot; |Spawns a rhythm game note.&lt;br /&gt;
FT: &amp;lt;code&amp;gt;TARGET(type, pos_x, pos_y, angle, dist, amp, freq);&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
F: &amp;lt;code&amp;gt;TARGET(type, duration, is_end, pos_x, pos_y, angle, freq, dist, amp, fly_time, sig);&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
F2, X: &amp;lt;code&amp;gt;TARGET(type, duration, is_end, pos_x, pos_y, angle, freq, dist, amp, fly_time, sig, hit_eff);&amp;lt;/code&amp;gt;&lt;br /&gt;
|type&lt;br /&gt;
|ID corresponding to a note type.&lt;br /&gt;
Full ID list for each game on the dedicated [[Target]] page.&lt;br /&gt;
|enum&lt;br /&gt;
|-&lt;br /&gt;
|pos_x&lt;br /&gt;
|X position of the note&#039;s target.&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|pos_y&lt;br /&gt;
|Y position of the note&#039;s target.&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|angle&lt;br /&gt;
|Angle of the note&#039;s path.&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|distance&lt;br /&gt;
|Distance between the note&#039;s spawn position and the target&#039;s position.&lt;br /&gt;
Default: &amp;lt;code&amp;gt;300000&amp;lt;/code&amp;gt;&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|amp&lt;br /&gt;
|Amplitude of the note&#039;s path wave.&lt;br /&gt;
Default: &amp;lt;code&amp;gt;500&amp;lt;/code&amp;gt;&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|freq&lt;br /&gt;
|Frequency of the note&#039;s path wave.&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|duration&lt;br /&gt;
|(for F/F2/X formats)&lt;br /&gt;
Sustain and Rush Note duration.&lt;br /&gt;
Default (for notes other than Sustain and Rush): &amp;lt;code&amp;gt;-1&amp;lt;/code&amp;gt;&lt;br /&gt;
|DivaTime&lt;br /&gt;
|-&lt;br /&gt;
|is_end&lt;br /&gt;
|(for F/F2/X formats)&lt;br /&gt;
set to &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; for Sustain &#039;end&#039; notes, otherwise set to &amp;lt;code&amp;gt;-1&amp;lt;/code&amp;gt;&lt;br /&gt;
|bool&lt;br /&gt;
|-&lt;br /&gt;
|fly_time&lt;br /&gt;
|(for F/F2/X formats)&lt;br /&gt;
Target Flying Time value (same format as the TARGET_FLYING_TIME command)&lt;br /&gt;
|DivaTime&lt;br /&gt;
|-&lt;br /&gt;
|sig&lt;br /&gt;
|(for F/F2/X formats)&lt;br /&gt;
Time Signature&lt;br /&gt;
&lt;br /&gt;
The same value that would otherwise go in &amp;lt;code&amp;gt;BAR_TIME_SET&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
Number of quarter note beats minus 1. eg: &amp;lt;code&amp;gt;3&amp;lt;/code&amp;gt; for 4/4.&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|hit_eff&lt;br /&gt;
|(for F2/X formats)&lt;br /&gt;
Assigns a hit effect to the note based on a local ID defined in a previous TARGET_EFFECT command.&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
====== TARGET_FLYING_TIME ======&lt;br /&gt;
|Sets the time it takes for the rhythm game notes to hit their targets.&lt;br /&gt;
&amp;lt;code&amp;gt;TARGET_FLYING_TIME(flytime);&amp;lt;/code&amp;gt;&lt;br /&gt;
|flytime&lt;br /&gt;
|time value in DivaTime&lt;br /&gt;
|DivaTime&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
====== TIME ======&lt;br /&gt;
|Waits until a specified game time.&lt;br /&gt;
&amp;lt;code&amp;gt;TIME(t);&amp;lt;/code&amp;gt;&lt;br /&gt;
|t&lt;br /&gt;
|time value in DivaTime&lt;br /&gt;
|DivaTime&lt;br /&gt;
|}&amp;lt;!-- Please keep all the commands in alphabetical order!! --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= References =&lt;br /&gt;
somewhatlurker&#039;s [https://github.com/somewhatlurker/pydiva/blob/dsc/pydiva/pydsc_op_db.py pyDIVA/pyDSC]&lt;/div&gt;</summary>
		<author><name>GGAB3</name></author>
	</entry>
	<entry>
		<id>https://docs.divamodarchive.com/index.php?title=User:GGAB3/Sandbox&amp;diff=170</id>
		<title>User:GGAB3/Sandbox</title>
		<link rel="alternate" type="text/html" href="https://docs.divamodarchive.com/index.php?title=User:GGAB3/Sandbox&amp;diff=170"/>
		<updated>2025-10-07T17:09:26Z</updated>

		<summary type="html">&lt;p&gt;GGAB3: Created page with &amp;quot;Project DIVA games store general information about the PVs in a database file called &amp;lt;code&amp;gt;pv_db.txt&amp;lt;/code&amp;gt;, located in the &amp;lt;code&amp;gt;rom&amp;lt;/code&amp;gt; folder.&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Project DIVA games store general information about the PVs in a database file called &amp;lt;code&amp;gt;pv_db.txt&amp;lt;/code&amp;gt;, located in the &amp;lt;code&amp;gt;rom&amp;lt;/code&amp;gt; folder.&lt;/div&gt;</summary>
		<author><name>GGAB3</name></author>
	</entry>
	<entry>
		<id>https://docs.divamodarchive.com/index.php?title=DivaScript&amp;diff=167</id>
		<title>DivaScript</title>
		<link rel="alternate" type="text/html" href="https://docs.divamodarchive.com/index.php?title=DivaScript&amp;diff=167"/>
		<updated>2025-10-02T19:24:32Z</updated>

		<summary type="html">&lt;p&gt;GGAB3: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;DivaScript&#039;&#039; (commonly referred to as &#039;&#039;DSC&#039;&#039;) is the file format used by all the &#039;&#039;Project DIVA&#039;&#039; games for storing various commands related to Music Videos/PVs and Rhythm Game Charts.&lt;br /&gt;
&lt;br /&gt;
The data inside &amp;lt;code&amp;gt;.dsc&amp;lt;/code&amp;gt; files is stored in a binary format. This means that they can not be edited with a text editor and instead require specialized programs that can decode them such as [[DSC Studio]] or [[ScriptEditor]]. Additionally, &amp;lt;code&amp;gt;.dsc&amp;lt;/code&amp;gt; files from &#039;&#039;Project DIVA F2nd&#039;&#039; and &#039;&#039;Project DIVA X&#039;&#039; are encrypted using DIVAFILE encryption. They need to be decrypted before editing.&lt;br /&gt;
&lt;br /&gt;
== DSC Formats ==&lt;br /&gt;
Every &#039;&#039;Project DIVA&#039;&#039; game uses a specific DivaScript format. The exact format of a &amp;lt;code&amp;gt;.dsc&amp;lt;/code&amp;gt; file is determined by the first 4 bytes of the file.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|}&amp;lt;!-- Needs an actual list of all the formats and their DSC headers. --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== List of DSC Commands &#039;&#039;(Incomplete)&#039;&#039; ==&lt;br /&gt;
List of commands that can be used in FT, F, F2/X DSC formats. Format-exclusive commands are marked individually.&lt;br /&gt;
&lt;br /&gt;
=== AGEAGE_CTRL ===&lt;br /&gt;
Controls the effect for the hair of the module &amp;quot;AgeAge Again&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
FT: &amp;lt;code&amp;gt;AGEAGE_CTRL(chara, side, unk1, scale, unk2, unk3, -1, -1);&amp;lt;/code&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
!Parameter&lt;br /&gt;
!Description&lt;br /&gt;
&lt;br /&gt;
!Type&lt;br /&gt;
|-&lt;br /&gt;
|chara&lt;br /&gt;
|Character slot&lt;br /&gt;
&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|side&lt;br /&gt;
|Side to control:&lt;br /&gt;
&amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt;: both&lt;br /&gt;
&amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt;: left&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;2&amp;lt;/code&amp;gt;: right&lt;br /&gt;
&lt;br /&gt;
|enum&lt;br /&gt;
|-&lt;br /&gt;
|unk1&lt;br /&gt;
|Unknown&lt;br /&gt;
&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|scale&lt;br /&gt;
|Effect scale&lt;br /&gt;
&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|unk2&lt;br /&gt;
|Unknown&lt;br /&gt;
&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|unk3&lt;br /&gt;
|Unknown&lt;br /&gt;
&lt;br /&gt;
|int&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== BAR_TIME_SET ===&lt;br /&gt;
Sets the length of a measure.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;BAR_TIME_SET(bpm, beats);&amp;lt;/code&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
!Parameter&lt;br /&gt;
!Description&lt;br /&gt;
&lt;br /&gt;
!Type&lt;br /&gt;
|-&lt;br /&gt;
|bpm&lt;br /&gt;
|Beats per minute&lt;br /&gt;
&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|beats&lt;br /&gt;
|Number of quarter note beats minus 1. eg: &amp;lt;code&amp;gt;3&amp;lt;/code&amp;gt; for 4/4.&lt;br /&gt;
&lt;br /&gt;
|int&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== BLOOM ===&lt;br /&gt;
Sets data from &amp;lt;code&amp;gt;bloom&amp;lt;/code&amp;gt; pv_param.&lt;br /&gt;
&lt;br /&gt;
FT, F2, X: &amp;lt;code&amp;gt;BLOOM(id, unk);&amp;lt;/code&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
!Parameter&lt;br /&gt;
!Description&lt;br /&gt;
&lt;br /&gt;
!Type&lt;br /&gt;
|-&lt;br /&gt;
|id&lt;br /&gt;
|ID matching the data in pv_param.&lt;br /&gt;
&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|unk&lt;br /&gt;
|Unknown&lt;br /&gt;
&lt;br /&gt;
|int&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== CHANGE_FIELD ===&lt;br /&gt;
Changes the field defined in &amp;lt;code&amp;gt;pv_field&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;pv_db&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;CHANGE_FIELD(id);&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
F2, X: &amp;lt;code&amp;gt;CHANGE_FIELD(id, unk);&amp;lt;/code&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
!Parameter&lt;br /&gt;
!Description&lt;br /&gt;
&lt;br /&gt;
!Type&lt;br /&gt;
|-&lt;br /&gt;
|id&lt;br /&gt;
|ID matching the field number in &amp;lt;code&amp;gt;pv_field&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;pv_db&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
|int&lt;br /&gt;
|}&lt;br /&gt;
=== CHARA_SIZE ===&lt;br /&gt;
Sets a character&#039;s scale/size.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;CHARA_SIZE(chara, size);&amp;lt;/code&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
!Parameter&lt;br /&gt;
!Description&lt;br /&gt;
&lt;br /&gt;
!Type&lt;br /&gt;
|-&lt;br /&gt;
|chara&lt;br /&gt;
|Character slot&lt;br /&gt;
&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|size&lt;br /&gt;
|Character scale&lt;br /&gt;
&lt;br /&gt;
|int&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== END ===&lt;br /&gt;
Ends reading of the script.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;END();&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== HAND_SCALE ===&lt;br /&gt;
Sets the size of a character&#039;s hand.&lt;br /&gt;
&lt;br /&gt;
FT: &amp;lt;code&amp;gt;HAND_SCALE(chara, hand, scale);&amp;lt;/code&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
!Parameter&lt;br /&gt;
!Description&lt;br /&gt;
&lt;br /&gt;
!Type&lt;br /&gt;
|-&lt;br /&gt;
|chara&lt;br /&gt;
|Character slot&lt;br /&gt;
&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|hand&lt;br /&gt;
|Which hand to scale:&lt;br /&gt;
&amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt;: left&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;2&amp;lt;/code&amp;gt;: right&lt;br /&gt;
&lt;br /&gt;
|enum&lt;br /&gt;
|-&lt;br /&gt;
|scale&lt;br /&gt;
|Hand scale in percentage times 10; eg. for &amp;lt;code&amp;gt;105%&amp;lt;/code&amp;gt; use &amp;lt;code&amp;gt;1050&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|int&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== LYRIC ===&lt;br /&gt;
Displays a lyric from &amp;lt;code&amp;gt;pv_db&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;LYRIC(id, color);&amp;lt;/code&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
!Parameter&lt;br /&gt;
!Description&lt;br /&gt;
&lt;br /&gt;
!Type&lt;br /&gt;
|-&lt;br /&gt;
|id&lt;br /&gt;
|ID matching the number of a lyric in &amp;lt;code&amp;gt;pv_db&amp;lt;/code&amp;gt;.&lt;br /&gt;
Use &amp;lt;code&amp;gt;-1&amp;lt;/code&amp;gt; as &amp;quot;disable&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|color&lt;br /&gt;
|&amp;lt;code&amp;gt;#AARRGGBB&amp;lt;/code&amp;gt; hex color code converted to decimal.&lt;br /&gt;
eg.: for a red lyric the command would be &amp;lt;code&amp;gt;LYRIC(id, 16711680);&amp;lt;/code&amp;gt; &lt;br /&gt;
&lt;br /&gt;
because Red: &amp;lt;code&amp;gt;#00FF0000&amp;lt;/code&amp;gt; → &amp;lt;code&amp;gt;0x00ff0000&amp;lt;/code&amp;gt; → &amp;lt;code&amp;gt;16711680&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Default: &amp;lt;code&amp;gt;-1&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|int&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== MIKU_DISP ===&lt;br /&gt;
Shows or hides a character in a PV.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;MIKU_DISP(chara, disp);&amp;lt;/code&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
!Parameter&lt;br /&gt;
!Description&lt;br /&gt;
&lt;br /&gt;
!Type&lt;br /&gt;
|-&lt;br /&gt;
|chara&lt;br /&gt;
|Character slot&lt;br /&gt;
&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|disp&lt;br /&gt;
|Whether to display the character or not. &lt;br /&gt;
&lt;br /&gt;
|bool&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== MIKU_MOVE ===&lt;br /&gt;
Moves a character in 3D space in a PV.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;MIKU_MOVE(chara, x, y, z);&amp;lt;/code&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
!Parameter&lt;br /&gt;
!Description&lt;br /&gt;
&lt;br /&gt;
!Type&lt;br /&gt;
|-&lt;br /&gt;
|chara&lt;br /&gt;
|Character slot&lt;br /&gt;
&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|x&lt;br /&gt;
|X coordinate&lt;br /&gt;
&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|y&lt;br /&gt;
|Y coordinate&lt;br /&gt;
&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|z&lt;br /&gt;
|Z coordinate&lt;br /&gt;
&lt;br /&gt;
|int&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== MIKU_ROT ===&lt;br /&gt;
Rotates a character in a PV.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;MIKU_ROT(chara, angle);&amp;lt;/code&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
!Parameter&lt;br /&gt;
!Description&lt;br /&gt;
&lt;br /&gt;
!Type&lt;br /&gt;
|-&lt;br /&gt;
|chara&lt;br /&gt;
|Character slot&lt;br /&gt;
&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|angle&lt;br /&gt;
|Angle value&lt;br /&gt;
&lt;br /&gt;
|int&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== MIKU_SHADOW ===&lt;br /&gt;
Shows or hides a character&#039;s shadow in a PV.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;MIKU_SHADOW(chara, disp);&amp;lt;/code&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
!Parameter&lt;br /&gt;
!Description&lt;br /&gt;
&lt;br /&gt;
!Type&lt;br /&gt;
|-&lt;br /&gt;
|chara&lt;br /&gt;
|Character slot&lt;br /&gt;
&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|disp&lt;br /&gt;
|Whether to display the character&#039;s shadow or not. &lt;br /&gt;
&lt;br /&gt;
|bool&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== MODE_SELECT ===&lt;br /&gt;
Starts or ends a special chart segment, such as Chance Time.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;MODE_SELECT(difficulty, mode);&amp;lt;/code&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
!Parameter&lt;br /&gt;
!Description&lt;br /&gt;
&lt;br /&gt;
!Type&lt;br /&gt;
|-&lt;br /&gt;
|difficulty&lt;br /&gt;
|Indicates under what difficulties the command will trigger in this exact script.&lt;br /&gt;
This value is a bit flag corresponding to a group of difficulties:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; - Easy&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;2&amp;lt;/code&amp;gt; - Normal&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;4&amp;lt;/code&amp;gt; - Hard&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;8&amp;lt;/code&amp;gt; - Extreme&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;16&amp;lt;/code&amp;gt; - Encore&lt;br /&gt;
&lt;br /&gt;
Adding the values up to each other results in a group: &amp;lt;code&amp;gt;6&amp;lt;/code&amp;gt; = Hard (4) and Normal (2).&lt;br /&gt;
&lt;br /&gt;
Use &amp;lt;code&amp;gt;31&amp;lt;/code&amp;gt; as a universal value (works on any difficulty).&lt;br /&gt;
&lt;br /&gt;
|bitfield enum&lt;br /&gt;
|-&lt;br /&gt;
|mode&lt;br /&gt;
|What segment to start/end:&lt;br /&gt;
&amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; - Challenge Time (Arcade games) / Chance Time (Console games) Start&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;3&amp;lt;/code&amp;gt; - Challenge Time (Arcade games) / Chance Time (Console games) End&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;8&amp;lt;/code&amp;gt; - Technical Zone Start&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;9&amp;lt;/code&amp;gt; - Technical Zone End&lt;br /&gt;
&lt;br /&gt;
Only used by the [https://divamodarchive.com/post/169 New Classics mod]:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;4&amp;lt;/code&amp;gt; - Chance Time Start&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;5&amp;lt;/code&amp;gt; - Chance Time End&lt;br /&gt;
&lt;br /&gt;
|enum&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== MOVIE_CUT_CHG ===&lt;br /&gt;
Plays, shows or hides the movie defined in &amp;lt;code&amp;gt;pv_db&amp;lt;/code&amp;gt; or a movie from &amp;lt;code&amp;gt;movie.list&amp;lt;/code&amp;gt; in &amp;lt;code&amp;gt;pv_db&amp;lt;/code&amp;gt;. It can be used as a fancier version of both &amp;lt;code&amp;gt;MOVIE_DISP&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;MOVIE_PLAY&amp;lt;/code&amp;gt; that allows more control. &lt;br /&gt;
&lt;br /&gt;
FT: &amp;lt;code&amp;gt;MOVIE_CUT_CHG(id, disp);&amp;lt;/code&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
!Parameter&lt;br /&gt;
!Description&lt;br /&gt;
&lt;br /&gt;
!Type&lt;br /&gt;
|-&lt;br /&gt;
|id&lt;br /&gt;
|The number in &amp;lt;code&amp;gt;movie.list&amp;lt;/code&amp;gt; of the movie to be played.&lt;br /&gt;
Playback starts at the moment the command is called for a newly called &amp;lt;code&amp;gt;movie.list&amp;lt;/code&amp;gt; item. Re-calling a movie again doesn&#039;t play it from the starting position.&lt;br /&gt;
&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|disp&lt;br /&gt;
|&amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; - display the movie layer&lt;br /&gt;
Any other value - hide the movie layer (playback keeps going)&lt;br /&gt;
&lt;br /&gt;
|bool&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== MOVIE_DISP ===&lt;br /&gt;
Shows or hides the movie layer in a PV.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;MOVIE_DISP(disp);&amp;lt;/code&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
!Parameter&lt;br /&gt;
!Description&lt;br /&gt;
&lt;br /&gt;
!Type&lt;br /&gt;
|-&lt;br /&gt;
|disp&lt;br /&gt;
|&amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; - display the movie layer&lt;br /&gt;
Any other value - hide the movie layer (playback keeps going)&lt;br /&gt;
&lt;br /&gt;
|bool&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== MOVIE_PLAY ===&lt;br /&gt;
Starts playing the movie defined in &amp;lt;code&amp;gt;pv_db&amp;lt;/code&amp;gt; or the first movie in &amp;lt;code&amp;gt;movie.list&amp;lt;/code&amp;gt; in &amp;lt;code&amp;gt;pv_db&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;MOVIE_PLAY(play);&amp;lt;/code&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
!Parameter&lt;br /&gt;
!Description&lt;br /&gt;
&lt;br /&gt;
!Type&lt;br /&gt;
|-&lt;br /&gt;
|play&lt;br /&gt;
|&amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; - plays the movie&lt;br /&gt;
Any other value doesn&#039;t do anything.&lt;br /&gt;
&lt;br /&gt;
|bool&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== MUSIC_PLAY ===&lt;br /&gt;
Starts playing the song file defined in &amp;lt;code&amp;gt;pv_db&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;MUSIC_PLAY();&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== PV_BRANCH_MODE ===&lt;br /&gt;
Make future DSC commands only be executed on either the &amp;lt;code&amp;gt;Global&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;Fail&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;Success&amp;lt;/code&amp;gt; branch.&lt;br /&gt;
&lt;br /&gt;
FT, F, F2, X: &amp;lt;code&amp;gt;PV_BRANCH_MODE(branch);&amp;lt;/code&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
!Parameter&lt;br /&gt;
!Description&lt;br /&gt;
&lt;br /&gt;
!Type&lt;br /&gt;
|-&lt;br /&gt;
|branch&lt;br /&gt;
|&amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt; - Global (commands are executed regardless of success state)&lt;br /&gt;
&amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; - Fail (commands are executed only if the PV is in the &#039;failed&#039; state)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;2&amp;lt;/code&amp;gt; - Success (commands are executed only if the PV is in the &#039;success&#039; state)&lt;br /&gt;
&lt;br /&gt;
|enum&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== PV_END ===&lt;br /&gt;
Ends PV playback.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;PV_END();&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== SATURATE ===&lt;br /&gt;
Changes color saturation in a PV.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;SATURATE(amount);&amp;lt;/code&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
!Parameter&lt;br /&gt;
!Description&lt;br /&gt;
&lt;br /&gt;
!Type&lt;br /&gt;
|-&lt;br /&gt;
|amount&lt;br /&gt;
|Saturation strength on a scale from 0 to 1000:&lt;br /&gt;
&amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt; - No color, perfect grayscale&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;1000&amp;lt;/code&amp;gt; - Regular colors&lt;br /&gt;
&lt;br /&gt;
|int&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== SCENE_FADE ===&lt;br /&gt;
Plays a screen fade effect during PVs.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;SCENE_FADE(speed, start, end, r, g, b)&amp;lt;/code&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
!Parameter&lt;br /&gt;
!Description&lt;br /&gt;
&lt;br /&gt;
!Type&lt;br /&gt;
|-&lt;br /&gt;
|speed&lt;br /&gt;
|Fade duration in seconds&lt;br /&gt;
eg:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;1000&amp;lt;/code&amp;gt;: 1 second&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;800&amp;lt;/code&amp;gt;: 0.8 seconds&lt;br /&gt;
&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|start&lt;br /&gt;
|The opacity the fade will start with&lt;br /&gt;
&amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt;: fully transparent&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;1000&amp;lt;/code&amp;gt;: fully opaque&lt;br /&gt;
&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|end&lt;br /&gt;
|The opacity the fade will end with&lt;br /&gt;
&amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt;: fully transparent&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;1000&amp;lt;/code&amp;gt;: fully opaque&lt;br /&gt;
&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|r&lt;br /&gt;
|Red color component scale, from 0 to 1000&lt;br /&gt;
&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|g&lt;br /&gt;
|Green color component scale, from 0 to 1000&lt;br /&gt;
&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|b&lt;br /&gt;
|Blue color component scale, from 0 to 1000&lt;br /&gt;
&lt;br /&gt;
|int&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== SE_EFFECT ===&lt;br /&gt;
Plays a sound effect in a PV defined in &amp;lt;code&amp;gt;pv_db&amp;lt;/code&amp;gt;. Normally used for success scenes but not restricted to them.&lt;br /&gt;
&lt;br /&gt;
FT, F, F2, X: &amp;lt;code&amp;gt;SE_EFFECT(id);&amp;lt;/code&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
!Parameter&lt;br /&gt;
!Description&lt;br /&gt;
&lt;br /&gt;
!Type&lt;br /&gt;
|-&lt;br /&gt;
|id&lt;br /&gt;
|number of a &amp;lt;code&amp;gt;effect_se_name_list&amp;lt;/code&amp;gt; item defined in &amp;lt;code&amp;gt;pv_db&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
|int&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== TARGET ===&lt;br /&gt;
Spawns a rhythm game note.&lt;br /&gt;
&lt;br /&gt;
FT: &amp;lt;code&amp;gt;TARGET(type, pos_x, pos_y, angle, dist, amp, freq);&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
F: &amp;lt;code&amp;gt;TARGET(type, duration, is_end, pos_x, pos_y, angle, freq, dist, amp, fly_time, sig);&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
F2, X: &amp;lt;code&amp;gt;TARGET(type, duration, is_end, pos_x, pos_y, angle, freq, dist, amp, fly_time, sig, hit_eff);&amp;lt;/code&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
!Parameter&lt;br /&gt;
!Description&lt;br /&gt;
&lt;br /&gt;
!Type&lt;br /&gt;
|-&lt;br /&gt;
|type&lt;br /&gt;
|ID corresponding to a note type.&lt;br /&gt;
Full ID list for each game on the dedicated [[Target]] page.&lt;br /&gt;
&lt;br /&gt;
|enum&lt;br /&gt;
|-&lt;br /&gt;
|pos_x&lt;br /&gt;
|X position of the note&#039;s target.&lt;br /&gt;
&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|pos_y&lt;br /&gt;
|Y position of the note&#039;s target.&lt;br /&gt;
&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|angle&lt;br /&gt;
|Angle of the note&#039;s path.&lt;br /&gt;
&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|distance&lt;br /&gt;
|Distance between the note&#039;s spawn position and the target&#039;s position.&lt;br /&gt;
Default: &amp;lt;code&amp;gt;300000&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|amp&lt;br /&gt;
|Amplitude of the note&#039;s path wave.&lt;br /&gt;
Default: &amp;lt;code&amp;gt;500&amp;lt;/code&amp;gt;&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|freq&lt;br /&gt;
|Frequency of the note&#039;s path wave.&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|duration&lt;br /&gt;
|(for F/F2/X formats)&lt;br /&gt;
Sustain and Rush Note duration.&lt;br /&gt;
Default (for notes other than Sustain and Rush): &amp;lt;code&amp;gt;-1&amp;lt;/code&amp;gt;&lt;br /&gt;
|DivaTime&lt;br /&gt;
|-&lt;br /&gt;
|is_end&lt;br /&gt;
|(for F/F2/X formats)&lt;br /&gt;
set to &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; for Sustain &#039;end&#039; notes, otherwise set to &amp;lt;code&amp;gt;-1&amp;lt;/code&amp;gt;&lt;br /&gt;
|bool&lt;br /&gt;
|-&lt;br /&gt;
|fly_time&lt;br /&gt;
|(for F/F2/X formats)&lt;br /&gt;
Target Flying Time value (same format as the TARGET_FLYING_TIME command)&lt;br /&gt;
|DivaTime&lt;br /&gt;
|-&lt;br /&gt;
|sig&lt;br /&gt;
|(for F/F2/X formats)&lt;br /&gt;
Time Signature&lt;br /&gt;
&lt;br /&gt;
The same value that would otherwise go in &amp;lt;code&amp;gt;BAR_TIME_SET&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
Number of quarter note beats minus 1. eg: &amp;lt;code&amp;gt;3&amp;lt;/code&amp;gt; for 4/4.&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|hit_eff&lt;br /&gt;
|(for F2/X formats)&lt;br /&gt;
Assigns a hit effect to the note based on a local ID defined in a previous TARGET_EFFECT command.&lt;br /&gt;
|int&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== TARGET_FLYING_TIME ===&lt;br /&gt;
Sets the time it takes for the rhythm game notes to hit their targets.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;TARGET_FLYING_TIME(flytime);&amp;lt;/code&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
!Parameter&lt;br /&gt;
!Description&lt;br /&gt;
&lt;br /&gt;
!Type&lt;br /&gt;
|-&lt;br /&gt;
|flytime&lt;br /&gt;
|time value in DivaTime&lt;br /&gt;
&lt;br /&gt;
|DivaTime&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== TIME ===&lt;br /&gt;
Waits until a specified game time.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;TIME(t);&amp;lt;/code&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
!Parameter&lt;br /&gt;
!Description&lt;br /&gt;
&lt;br /&gt;
!Type&lt;br /&gt;
|-&lt;br /&gt;
|t&lt;br /&gt;
|time value in DivaTime&lt;br /&gt;
&lt;br /&gt;
|DivaTime&lt;br /&gt;
|}&amp;lt;!-- Please keep all the commands in alphabetical order!! --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= References =&lt;br /&gt;
somewhatlurker&#039;s [https://github.com/somewhatlurker/pydiva/blob/dsc/pydiva/pydsc_op_db.py pyDIVA/pyDSC]&lt;/div&gt;</summary>
		<author><name>GGAB3</name></author>
	</entry>
	<entry>
		<id>https://docs.divamodarchive.com/index.php?title=DivaScript&amp;diff=166</id>
		<title>DivaScript</title>
		<link rel="alternate" type="text/html" href="https://docs.divamodarchive.com/index.php?title=DivaScript&amp;diff=166"/>
		<updated>2025-10-02T19:23:05Z</updated>

		<summary type="html">&lt;p&gt;GGAB3: updated time signature for TARGET&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;DivaScript&#039;&#039; (commonly referred to as &#039;&#039;DSC&#039;&#039;) is the file format used by all the &#039;&#039;Project DIVA&#039;&#039; games for storing various commands related to Music Videos/PVs and Rhythm Game Charts.&lt;br /&gt;
&lt;br /&gt;
The data inside &amp;lt;code&amp;gt;.dsc&amp;lt;/code&amp;gt; files is stored in a binary format. This means that they can not be edited with a text editor and instead require specialized programs that can decode them such as [[DSC Studio]] or [[ScriptEditor]]. Additionally, &amp;lt;code&amp;gt;.dsc&amp;lt;/code&amp;gt; files from &#039;&#039;Project DIVA F2nd&#039;&#039; and &#039;&#039;Project DIVA X&#039;&#039; are encrypted using DIVAFILE encryption. They need to be decrypted before editing.&lt;br /&gt;
&lt;br /&gt;
== DSC Formats ==&lt;br /&gt;
Every &#039;&#039;Project DIVA&#039;&#039; game uses a specific DivaScript format. The exact format of a &amp;lt;code&amp;gt;.dsc&amp;lt;/code&amp;gt; file is determined by the first 4 bytes of the file.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|}&amp;lt;!-- Needs an actual list of all the formats and their DSC headers. --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== List of DSC Commands &#039;&#039;(Incomplete)&#039;&#039; ==&lt;br /&gt;
List of commands that can be used in FT, F, F2/X DSC formats. Format-exclusive commands are marked individually.&lt;br /&gt;
&lt;br /&gt;
=== AGEAGE_CTRL ===&lt;br /&gt;
Controls the effect for the hair of the module &amp;quot;AgeAge Again&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
FT: &amp;lt;code&amp;gt;AGEAGE_CTRL(chara, side, unk1, scale, unk2, unk3, -1, -1);&amp;lt;/code&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
!Parameter&lt;br /&gt;
!Description&lt;br /&gt;
&lt;br /&gt;
!Type&lt;br /&gt;
|-&lt;br /&gt;
|chara&lt;br /&gt;
|Character slot&lt;br /&gt;
&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|side&lt;br /&gt;
|Side to control:&lt;br /&gt;
&amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt;: both&lt;br /&gt;
&amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt;: left&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;2&amp;lt;/code&amp;gt;: right&lt;br /&gt;
&lt;br /&gt;
|enum&lt;br /&gt;
|-&lt;br /&gt;
|unk1&lt;br /&gt;
|Unknown&lt;br /&gt;
&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|scale&lt;br /&gt;
|Effect scale&lt;br /&gt;
&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|unk2&lt;br /&gt;
|Unknown&lt;br /&gt;
&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|unk3&lt;br /&gt;
|Unknown&lt;br /&gt;
&lt;br /&gt;
|int&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== BAR_TIME_SET ===&lt;br /&gt;
Sets the length of a measure.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;BAR_TIME_SET(bpm, beats);&amp;lt;/code&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
!Parameter&lt;br /&gt;
!Description&lt;br /&gt;
&lt;br /&gt;
!Type&lt;br /&gt;
|-&lt;br /&gt;
|bpm&lt;br /&gt;
|Beats per minute&lt;br /&gt;
&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|beats&lt;br /&gt;
|Number of quarter note beats minus 1. eg: &amp;lt;code&amp;gt;3&amp;lt;/code&amp;gt; for 4/4.&lt;br /&gt;
&lt;br /&gt;
|int&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== BLOOM ===&lt;br /&gt;
Sets data from &amp;lt;code&amp;gt;bloom&amp;lt;/code&amp;gt; pv_param.&lt;br /&gt;
&lt;br /&gt;
FT, F2, X: &amp;lt;code&amp;gt;BLOOM(id, unk);&amp;lt;/code&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
!Parameter&lt;br /&gt;
!Description&lt;br /&gt;
&lt;br /&gt;
!Type&lt;br /&gt;
|-&lt;br /&gt;
|id&lt;br /&gt;
|ID matching the data in pv_param.&lt;br /&gt;
&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|unk&lt;br /&gt;
|Unknown&lt;br /&gt;
&lt;br /&gt;
|int&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== CHANGE_FIELD ===&lt;br /&gt;
Changes the field defined in &amp;lt;code&amp;gt;pv_field&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;pv_db&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;CHANGE_FIELD(id);&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
F2, X: &amp;lt;code&amp;gt;CHANGE_FIELD(id, unk);&amp;lt;/code&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
!Parameter&lt;br /&gt;
!Description&lt;br /&gt;
&lt;br /&gt;
!Type&lt;br /&gt;
|-&lt;br /&gt;
|id&lt;br /&gt;
|ID matching the field number in &amp;lt;code&amp;gt;pv_field&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;pv_db&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
|int&lt;br /&gt;
|}&lt;br /&gt;
=== CHARA_SIZE ===&lt;br /&gt;
Sets a character&#039;s scale/size.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;CHARA_SIZE(chara, size);&amp;lt;/code&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
!Parameter&lt;br /&gt;
!Description&lt;br /&gt;
&lt;br /&gt;
!Type&lt;br /&gt;
|-&lt;br /&gt;
|chara&lt;br /&gt;
|Character slot&lt;br /&gt;
&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|size&lt;br /&gt;
|Character scale&lt;br /&gt;
&lt;br /&gt;
|int&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== END ===&lt;br /&gt;
Ends reading of the script.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;END();&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== HAND_SCALE ===&lt;br /&gt;
Sets the size of a character&#039;s hand.&lt;br /&gt;
&lt;br /&gt;
FT: &amp;lt;code&amp;gt;HAND_SCALE(chara, hand, scale);&amp;lt;/code&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
!Parameter&lt;br /&gt;
!Description&lt;br /&gt;
&lt;br /&gt;
!Type&lt;br /&gt;
|-&lt;br /&gt;
|chara&lt;br /&gt;
|Character slot&lt;br /&gt;
&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|hand&lt;br /&gt;
|Which hand to scale:&lt;br /&gt;
&amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt;: left&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;2&amp;lt;/code&amp;gt;: right&lt;br /&gt;
&lt;br /&gt;
|enum&lt;br /&gt;
|-&lt;br /&gt;
|scale&lt;br /&gt;
|Hand scale in percentage times 10; eg. for &amp;lt;code&amp;gt;105%&amp;lt;/code&amp;gt; use &amp;lt;code&amp;gt;1050&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|int&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== LYRIC ===&lt;br /&gt;
Displays a lyric from &amp;lt;code&amp;gt;pv_db&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;LYRIC(id, color);&amp;lt;/code&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
!Parameter&lt;br /&gt;
!Description&lt;br /&gt;
&lt;br /&gt;
!Type&lt;br /&gt;
|-&lt;br /&gt;
|id&lt;br /&gt;
|ID matching the number of a lyric in &amp;lt;code&amp;gt;pv_db&amp;lt;/code&amp;gt;.&lt;br /&gt;
Use &amp;lt;code&amp;gt;-1&amp;lt;/code&amp;gt; as &amp;quot;disable&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|color&lt;br /&gt;
|&amp;lt;code&amp;gt;#AARRGGBB&amp;lt;/code&amp;gt; hex color code converted to decimal.&lt;br /&gt;
eg.: for a red lyric the command would be &amp;lt;code&amp;gt;LYRIC(id, 16711680);&amp;lt;/code&amp;gt; &lt;br /&gt;
&lt;br /&gt;
because Red: &amp;lt;code&amp;gt;#00FF0000&amp;lt;/code&amp;gt; → &amp;lt;code&amp;gt;0x00ff0000&amp;lt;/code&amp;gt; → &amp;lt;code&amp;gt;16711680&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Default: &amp;lt;code&amp;gt;-1&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|int&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== MIKU_DISP ===&lt;br /&gt;
Shows or hides a character in a PV.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;MIKU_DISP(chara, disp);&amp;lt;/code&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
!Parameter&lt;br /&gt;
!Description&lt;br /&gt;
&lt;br /&gt;
!Type&lt;br /&gt;
|-&lt;br /&gt;
|chara&lt;br /&gt;
|Character slot&lt;br /&gt;
&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|disp&lt;br /&gt;
|Whether to display the character or not. &lt;br /&gt;
&lt;br /&gt;
|bool&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== MIKU_MOVE ===&lt;br /&gt;
Moves a character in 3D space in a PV.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;MIKU_MOVE(chara, x, y, z);&amp;lt;/code&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
!Parameter&lt;br /&gt;
!Description&lt;br /&gt;
&lt;br /&gt;
!Type&lt;br /&gt;
|-&lt;br /&gt;
|chara&lt;br /&gt;
|Character slot&lt;br /&gt;
&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|x&lt;br /&gt;
|X coordinate&lt;br /&gt;
&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|y&lt;br /&gt;
|Y coordinate&lt;br /&gt;
&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|z&lt;br /&gt;
|Z coordinate&lt;br /&gt;
&lt;br /&gt;
|int&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== MIKU_ROT ===&lt;br /&gt;
Rotates a character in a PV.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;MIKU_ROT(chara, angle);&amp;lt;/code&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
!Parameter&lt;br /&gt;
!Description&lt;br /&gt;
&lt;br /&gt;
!Type&lt;br /&gt;
|-&lt;br /&gt;
|chara&lt;br /&gt;
|Character slot&lt;br /&gt;
&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|angle&lt;br /&gt;
|Angle value&lt;br /&gt;
&lt;br /&gt;
|int&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== MIKU_SHADOW ===&lt;br /&gt;
Shows or hides a character&#039;s shadow in a PV.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;MIKU_SHADOW(chara, disp);&amp;lt;/code&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
!Parameter&lt;br /&gt;
!Description&lt;br /&gt;
&lt;br /&gt;
!Type&lt;br /&gt;
|-&lt;br /&gt;
|chara&lt;br /&gt;
|Character slot&lt;br /&gt;
&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|disp&lt;br /&gt;
|Whether to display the character&#039;s shadow or not. &lt;br /&gt;
&lt;br /&gt;
|bool&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== MODE_SELECT ===&lt;br /&gt;
Starts or ends a special chart segment, such as Chance Time.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;MODE_SELECT(difficulty, mode);&amp;lt;/code&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
!Parameter&lt;br /&gt;
!Description&lt;br /&gt;
&lt;br /&gt;
!Type&lt;br /&gt;
|-&lt;br /&gt;
|difficulty&lt;br /&gt;
|Indicates under what difficulties the command will trigger in this exact script.&lt;br /&gt;
This value is a bit flag corresponding to a group of difficulties:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; - Easy&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;2&amp;lt;/code&amp;gt; - Normal&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;4&amp;lt;/code&amp;gt; - Hard&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;8&amp;lt;/code&amp;gt; - Extreme&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;16&amp;lt;/code&amp;gt; - Encore&lt;br /&gt;
&lt;br /&gt;
Adding the values up to each other results in a group: &amp;lt;code&amp;gt;6&amp;lt;/code&amp;gt; = Hard (4) and Normal (2).&lt;br /&gt;
&lt;br /&gt;
Use &amp;lt;code&amp;gt;31&amp;lt;/code&amp;gt; as a universal value (works on any difficulty).&lt;br /&gt;
&lt;br /&gt;
|bitfield enum&lt;br /&gt;
|-&lt;br /&gt;
|mode&lt;br /&gt;
|What segment to start/end:&lt;br /&gt;
&amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; - Challenge Time (Arcade games) / Chance Time (Console games) Start&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;3&amp;lt;/code&amp;gt; - Challenge Time (Arcade games) / Chance Time (Console games) End&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;8&amp;lt;/code&amp;gt; - Technical Zone Start&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;9&amp;lt;/code&amp;gt; - Technical Zone End&lt;br /&gt;
&lt;br /&gt;
Only used by the [https://divamodarchive.com/post/169 New Classics mod]:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;4&amp;lt;/code&amp;gt; - Chance Time Start&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;5&amp;lt;/code&amp;gt; - Chance Time End&lt;br /&gt;
&lt;br /&gt;
|enum&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== MOVIE_CUT_CHG ===&lt;br /&gt;
Plays, shows or hides the movie defined in &amp;lt;code&amp;gt;pv_db&amp;lt;/code&amp;gt; or a movie from &amp;lt;code&amp;gt;movie.list&amp;lt;/code&amp;gt; in &amp;lt;code&amp;gt;pv_db&amp;lt;/code&amp;gt;. It can be used as a fancier version of both &amp;lt;code&amp;gt;MOVIE_DISP&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;MOVIE_PLAY&amp;lt;/code&amp;gt; that allows more control. &lt;br /&gt;
&lt;br /&gt;
FT: &amp;lt;code&amp;gt;MOVIE_CUT_CHG(id, disp);&amp;lt;/code&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
!Parameter&lt;br /&gt;
!Description&lt;br /&gt;
&lt;br /&gt;
!Type&lt;br /&gt;
|-&lt;br /&gt;
|id&lt;br /&gt;
|The number in &amp;lt;code&amp;gt;movie.list&amp;lt;/code&amp;gt; of the movie to be played.&lt;br /&gt;
Playback starts at the moment the command is called for a newly called &amp;lt;code&amp;gt;movie.list&amp;lt;/code&amp;gt; item. Re-calling a movie again doesn&#039;t play it from the starting position.&lt;br /&gt;
&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|disp&lt;br /&gt;
|&amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; - display the movie layer&lt;br /&gt;
Any other value - hide the movie layer (playback keeps going)&lt;br /&gt;
&lt;br /&gt;
|bool&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== MOVIE_DISP ===&lt;br /&gt;
Shows or hides the movie layer in a PV.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;MOVIE_DISP(disp);&amp;lt;/code&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
!Parameter&lt;br /&gt;
!Description&lt;br /&gt;
&lt;br /&gt;
!Type&lt;br /&gt;
|-&lt;br /&gt;
|disp&lt;br /&gt;
|&amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; - display the movie layer&lt;br /&gt;
Any other value - hide the movie layer (playback keeps going)&lt;br /&gt;
&lt;br /&gt;
|bool&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== MOVIE_PLAY ===&lt;br /&gt;
Starts playing the movie defined in &amp;lt;code&amp;gt;pv_db&amp;lt;/code&amp;gt; or the first movie in &amp;lt;code&amp;gt;movie.list&amp;lt;/code&amp;gt; in &amp;lt;code&amp;gt;pv_db&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;MOVIE_PLAY(play);&amp;lt;/code&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
!Parameter&lt;br /&gt;
!Description&lt;br /&gt;
&lt;br /&gt;
!Type&lt;br /&gt;
|-&lt;br /&gt;
|play&lt;br /&gt;
|&amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; - plays the movie&lt;br /&gt;
Any other value doesn&#039;t do anything.&lt;br /&gt;
&lt;br /&gt;
|bool&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== MUSIC_PLAY ===&lt;br /&gt;
Starts playing the song file defined in &amp;lt;code&amp;gt;pv_db&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;MUSIC_PLAY();&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== PV_BRANCH_MODE ===&lt;br /&gt;
Make future DSC commands only be executed on either the &amp;lt;code&amp;gt;Global&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;Fail&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;Success&amp;lt;/code&amp;gt; branch.&lt;br /&gt;
&lt;br /&gt;
FT, F, F2, X: &amp;lt;code&amp;gt;PV_BRANCH_MODE(branch);&amp;lt;/code&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
!Parameter&lt;br /&gt;
!Description&lt;br /&gt;
&lt;br /&gt;
!Type&lt;br /&gt;
|-&lt;br /&gt;
|branch&lt;br /&gt;
|&amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt; - Global (commands are executed regardless of success state)&lt;br /&gt;
&amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; - Fail (commands are executed only if the PV is in the &#039;failed&#039; state)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;2&amp;lt;/code&amp;gt; - Success (commands are executed only if the PV is in the &#039;success&#039; state)&lt;br /&gt;
&lt;br /&gt;
|enum&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== PV_END ===&lt;br /&gt;
Ends PV playback.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;PV_END();&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== SATURATE ===&lt;br /&gt;
Changes color saturation in a PV.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;SATURATE(amount);&amp;lt;/code&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
!Parameter&lt;br /&gt;
!Description&lt;br /&gt;
&lt;br /&gt;
!Type&lt;br /&gt;
|-&lt;br /&gt;
|amount&lt;br /&gt;
|Saturation strength on a scale from 0 to 1000:&lt;br /&gt;
&amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt; - No color, perfect grayscale&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;1000&amp;lt;/code&amp;gt; - Regular colors&lt;br /&gt;
&lt;br /&gt;
|int&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== SCENE_FADE ===&lt;br /&gt;
Plays a screen fade effect during PVs.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;SCENE_FADE(speed, start, end, r, g, b)&amp;lt;/code&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
!Parameter&lt;br /&gt;
!Description&lt;br /&gt;
&lt;br /&gt;
!Type&lt;br /&gt;
|-&lt;br /&gt;
|speed&lt;br /&gt;
|Fade duration in seconds&lt;br /&gt;
eg:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;1000&amp;lt;/code&amp;gt;: 1 second&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;800&amp;lt;/code&amp;gt;: 0.8 seconds&lt;br /&gt;
&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|start&lt;br /&gt;
|The opacity the fade will start with&lt;br /&gt;
&amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt;: fully transparent&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;1000&amp;lt;/code&amp;gt;: fully opaque&lt;br /&gt;
&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|end&lt;br /&gt;
|The opacity the fade will end with&lt;br /&gt;
&amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt;: fully transparent&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;1000&amp;lt;/code&amp;gt;: fully opaque&lt;br /&gt;
&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|r&lt;br /&gt;
|Red color component scale, from 0 to 1000&lt;br /&gt;
&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|g&lt;br /&gt;
|Green color component scale, from 0 to 1000&lt;br /&gt;
&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|b&lt;br /&gt;
|Blue color component scale, from 0 to 1000&lt;br /&gt;
&lt;br /&gt;
|int&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== SE_EFFECT ===&lt;br /&gt;
Plays a sound effect in a PV defined in &amp;lt;code&amp;gt;pv_db&amp;lt;/code&amp;gt;. Normally used for success scenes but not restricted to them.&lt;br /&gt;
&lt;br /&gt;
FT, F, F2, X: &amp;lt;code&amp;gt;SE_EFFECT(id);&amp;lt;/code&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
!Parameter&lt;br /&gt;
!Description&lt;br /&gt;
&lt;br /&gt;
!Type&lt;br /&gt;
|-&lt;br /&gt;
|id&lt;br /&gt;
|number of a &amp;lt;code&amp;gt;effect_se_name_list&amp;lt;/code&amp;gt; item defined in &amp;lt;code&amp;gt;pv_db&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
|int&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== TARGET ===&lt;br /&gt;
Spawns a rhythm game note.&lt;br /&gt;
&lt;br /&gt;
FT: &amp;lt;code&amp;gt;TARGET(type, pos_x, pos_y, angle, dist, amp, freq);&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
F: &amp;lt;code&amp;gt;TARGET(type, duration, is_end, pos_x, pos_y, angle, freq, dist, amp, fly_time, sig);&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
F2, X: &amp;lt;code&amp;gt;TARGET(type, duration, is_end, pos_x, pos_y, angle, freq, dist, amp, fly_time, sig, hit_eff);&amp;lt;/code&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
!Parameter&lt;br /&gt;
!Description&lt;br /&gt;
&lt;br /&gt;
!Type&lt;br /&gt;
|-&lt;br /&gt;
|type&lt;br /&gt;
|ID corresponding to a note type.&lt;br /&gt;
Full ID list for each game on the dedicated [[Target]] page.&lt;br /&gt;
&lt;br /&gt;
|enum&lt;br /&gt;
|-&lt;br /&gt;
|pos_x&lt;br /&gt;
|X position of the note&#039;s target.&lt;br /&gt;
&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|pos_y&lt;br /&gt;
|Y position of the note&#039;s target.&lt;br /&gt;
&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|angle&lt;br /&gt;
|Angle of the note&#039;s path.&lt;br /&gt;
&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|distance&lt;br /&gt;
|Distance between the note&#039;s spawn position and the target&#039;s position.&lt;br /&gt;
Default: &amp;lt;code&amp;gt;300000&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|amp&lt;br /&gt;
|Amplitude of the note&#039;s path wave.&lt;br /&gt;
Default: &amp;lt;code&amp;gt;500&amp;lt;/code&amp;gt;&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|freq&lt;br /&gt;
|Frequency of the note&#039;s path wave.&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|duration&lt;br /&gt;
|(for F/F2/X formats)&lt;br /&gt;
Sustain and Rush Note duration.&lt;br /&gt;
Default (for notes other than Sustain and Rush): &amp;lt;code&amp;gt;-1&amp;lt;/code&amp;gt;&lt;br /&gt;
|DivaTime&lt;br /&gt;
|-&lt;br /&gt;
|is_end&lt;br /&gt;
|(for F/F2/X formats)&lt;br /&gt;
set to &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; for Sustain &#039;end&#039; notes, otherwise set to &amp;lt;code&amp;gt;-1&amp;lt;/code&amp;gt;&lt;br /&gt;
|bool&lt;br /&gt;
|-&lt;br /&gt;
|fly_time&lt;br /&gt;
|(for F/F2/X formats)&lt;br /&gt;
Target Flying Time value (same format as the TARGET_FLYING_TIME command)&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|sig&lt;br /&gt;
|(for F/F2/X formats)&lt;br /&gt;
Time Signature&lt;br /&gt;
&lt;br /&gt;
The same value that would otherwise go in &amp;lt;code&amp;gt;BAR_TIME_SET&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
Number of quarter note beats minus 1. eg: &amp;lt;code&amp;gt;3&amp;lt;/code&amp;gt; for 4/4.&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|hit_eff&lt;br /&gt;
|(for F2/X formats)&lt;br /&gt;
Assigns a hit effect to the note based on a local ID defined in a previous TARGET_EFFECT command.&lt;br /&gt;
|int&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== TARGET_FLYING_TIME ===&lt;br /&gt;
Sets the time it takes for the rhythm game notes to hit their targets.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;TARGET_FLYING_TIME(flytime);&amp;lt;/code&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
!Parameter&lt;br /&gt;
!Description&lt;br /&gt;
&lt;br /&gt;
!Type&lt;br /&gt;
|-&lt;br /&gt;
|flytime&lt;br /&gt;
|time value in DivaTime&lt;br /&gt;
&lt;br /&gt;
|DivaTime&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== TIME ===&lt;br /&gt;
Waits until a specified game time.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;TIME(t);&amp;lt;/code&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
!Parameter&lt;br /&gt;
!Description&lt;br /&gt;
&lt;br /&gt;
!Type&lt;br /&gt;
|-&lt;br /&gt;
|t&lt;br /&gt;
|time value in DivaTime&lt;br /&gt;
&lt;br /&gt;
|DivaTime&lt;br /&gt;
|}&amp;lt;!-- Please keep all the commands in alphabetical order!! --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= References =&lt;br /&gt;
somewhatlurker&#039;s [https://github.com/somewhatlurker/pydiva/blob/dsc/pydiva/pydsc_op_db.py pyDIVA/pyDSC]&lt;/div&gt;</summary>
		<author><name>GGAB3</name></author>
	</entry>
	<entry>
		<id>https://docs.divamodarchive.com/index.php?title=DivaScript&amp;diff=161</id>
		<title>DivaScript</title>
		<link rel="alternate" type="text/html" href="https://docs.divamodarchive.com/index.php?title=DivaScript&amp;diff=161"/>
		<updated>2025-09-28T13:07:01Z</updated>

		<summary type="html">&lt;p&gt;GGAB3: added References section&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;DivaScript&#039;&#039; (commonly referred to as &#039;&#039;DSC&#039;&#039;) is the file format used by all the &#039;&#039;Project DIVA&#039;&#039; games for storing various commands related to Music Videos/PVs and Rhythm Game Charts.&lt;br /&gt;
&lt;br /&gt;
The data inside &amp;lt;code&amp;gt;.dsc&amp;lt;/code&amp;gt; files is stored in a binary format. This means that they can not be edited with a text editor and instead require specialized programs that can decode them such as [[DSC Studio]] or [[ScriptEditor]]. Additionally, &amp;lt;code&amp;gt;.dsc&amp;lt;/code&amp;gt; files from &#039;&#039;Project DIVA F2nd&#039;&#039; and &#039;&#039;Project DIVA X&#039;&#039; are encrypted using DIVAFILE encryption. They need to be decrypted before editing.&lt;br /&gt;
&lt;br /&gt;
== DSC Formats ==&lt;br /&gt;
Every &#039;&#039;Project DIVA&#039;&#039; game uses a specific DivaScript format. The exact format of a &amp;lt;code&amp;gt;.dsc&amp;lt;/code&amp;gt; file is determined by the first 4 bytes of the file.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|}&amp;lt;!-- Needs an actual list of all the formats and their DSC headers. --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== List of DSC Commands &#039;&#039;(Incomplete)&#039;&#039; ==&lt;br /&gt;
List of commands that can be used in FT, F, F2/X DSC formats. Format-exclusive commands are marked individually.&lt;br /&gt;
&lt;br /&gt;
=== AGEAGE_CTRL ===&lt;br /&gt;
Controls the effect for the hair of the module &amp;quot;AgeAge Again&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
FT: &amp;lt;code&amp;gt;AGEAGE_CTRL(chara, side, unk1, scale, unk2, unk3, -1, -1);&amp;lt;/code&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
!Parameter&lt;br /&gt;
!Description&lt;br /&gt;
&lt;br /&gt;
!Type&lt;br /&gt;
|-&lt;br /&gt;
|chara&lt;br /&gt;
|Character slot&lt;br /&gt;
&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|side&lt;br /&gt;
|Side to control:&lt;br /&gt;
&amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt;: both&lt;br /&gt;
&amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt;: left&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;2&amp;lt;/code&amp;gt;: right&lt;br /&gt;
&lt;br /&gt;
|enum&lt;br /&gt;
|-&lt;br /&gt;
|unk1&lt;br /&gt;
|Unknown&lt;br /&gt;
&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|scale&lt;br /&gt;
|Effect scale&lt;br /&gt;
&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|unk2&lt;br /&gt;
|Unknown&lt;br /&gt;
&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|unk3&lt;br /&gt;
|Unknown&lt;br /&gt;
&lt;br /&gt;
|int&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== BAR_TIME_SET ===&lt;br /&gt;
Sets the length of a measure.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;BAR_TIME_SET(bpm, beats);&amp;lt;/code&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
!Parameter&lt;br /&gt;
!Description&lt;br /&gt;
&lt;br /&gt;
!Type&lt;br /&gt;
|-&lt;br /&gt;
|bpm&lt;br /&gt;
|Beats per minute&lt;br /&gt;
&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|beats&lt;br /&gt;
|Number of quarter note beats minus 1. eg.: &amp;lt;code&amp;gt;3&amp;lt;/code&amp;gt; for 4/4.&lt;br /&gt;
&lt;br /&gt;
|int&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== BLOOM ===&lt;br /&gt;
Sets data from &amp;lt;code&amp;gt;bloom&amp;lt;/code&amp;gt; pv_param.&lt;br /&gt;
&lt;br /&gt;
FT, F2, X: &amp;lt;code&amp;gt;BLOOM(id, unk);&amp;lt;/code&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
!Parameter&lt;br /&gt;
!Description&lt;br /&gt;
&lt;br /&gt;
!Type&lt;br /&gt;
|-&lt;br /&gt;
|id&lt;br /&gt;
|ID matching the data in pv_param.&lt;br /&gt;
&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|unk&lt;br /&gt;
|Unknown&lt;br /&gt;
&lt;br /&gt;
|int&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== CHANGE_FIELD ===&lt;br /&gt;
Changes the field defined in &amp;lt;code&amp;gt;pv_field&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;pv_db&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;CHANGE_FIELD(id);&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
F2, X: &amp;lt;code&amp;gt;CHANGE_FIELD(id, unk);&amp;lt;/code&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
!Parameter&lt;br /&gt;
!Description&lt;br /&gt;
&lt;br /&gt;
!Type&lt;br /&gt;
|-&lt;br /&gt;
|id&lt;br /&gt;
|ID matching the field number in &amp;lt;code&amp;gt;pv_field&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;pv_db&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
|int&lt;br /&gt;
|}&lt;br /&gt;
=== CHARA_SIZE ===&lt;br /&gt;
Sets a character&#039;s scale/size.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;CHARA_SIZE(chara, size);&amp;lt;/code&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
!Parameter&lt;br /&gt;
!Description&lt;br /&gt;
&lt;br /&gt;
!Type&lt;br /&gt;
|-&lt;br /&gt;
|chara&lt;br /&gt;
|Character slot&lt;br /&gt;
&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|size&lt;br /&gt;
|Character scale&lt;br /&gt;
&lt;br /&gt;
|int&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== END ===&lt;br /&gt;
Ends reading of the script.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;END();&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== HAND_SCALE ===&lt;br /&gt;
Sets the size of a character&#039;s hand.&lt;br /&gt;
&lt;br /&gt;
FT: &amp;lt;code&amp;gt;HAND_SCALE(chara, hand, scale);&amp;lt;/code&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
!Parameter&lt;br /&gt;
!Description&lt;br /&gt;
&lt;br /&gt;
!Type&lt;br /&gt;
|-&lt;br /&gt;
|chara&lt;br /&gt;
|Character slot&lt;br /&gt;
&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|hand&lt;br /&gt;
|Which hand to scale:&lt;br /&gt;
&amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt;: left&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;2&amp;lt;/code&amp;gt;: right&lt;br /&gt;
&lt;br /&gt;
|enum&lt;br /&gt;
|-&lt;br /&gt;
|scale&lt;br /&gt;
|Hand scale in percentage times 10; eg. for &amp;lt;code&amp;gt;105%&amp;lt;/code&amp;gt; use &amp;lt;code&amp;gt;1050&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|int&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== LYRIC ===&lt;br /&gt;
Displays a lyric from &amp;lt;code&amp;gt;pv_db&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;LYRIC(id, color);&amp;lt;/code&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
!Parameter&lt;br /&gt;
!Description&lt;br /&gt;
&lt;br /&gt;
!Type&lt;br /&gt;
|-&lt;br /&gt;
|id&lt;br /&gt;
|ID matching the number of a lyric in &amp;lt;code&amp;gt;pv_db&amp;lt;/code&amp;gt;.&lt;br /&gt;
Use &amp;lt;code&amp;gt;-1&amp;lt;/code&amp;gt; as &amp;quot;disable&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|color&lt;br /&gt;
|&amp;lt;code&amp;gt;#AARRGGBB&amp;lt;/code&amp;gt; hex color code converted to decimal.&lt;br /&gt;
eg.: for a red lyric the command would be &amp;lt;code&amp;gt;LYRIC(id, 16711680);&amp;lt;/code&amp;gt; &lt;br /&gt;
&lt;br /&gt;
because Red: &amp;lt;code&amp;gt;#00FF0000&amp;lt;/code&amp;gt; → &amp;lt;code&amp;gt;0x00ff0000&amp;lt;/code&amp;gt; → &amp;lt;code&amp;gt;16711680&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Default: &amp;lt;code&amp;gt;-1&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|int&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== MIKU_DISP ===&lt;br /&gt;
Shows or hides a character in a PV.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;MIKU_DISP(chara, disp);&amp;lt;/code&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
!Parameter&lt;br /&gt;
!Description&lt;br /&gt;
&lt;br /&gt;
!Type&lt;br /&gt;
|-&lt;br /&gt;
|chara&lt;br /&gt;
|Character slot&lt;br /&gt;
&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|disp&lt;br /&gt;
|Whether to display the character or not. &lt;br /&gt;
&lt;br /&gt;
|bool&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== MIKU_MOVE ===&lt;br /&gt;
Moves a character in 3D space in a PV.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;MIKU_MOVE(chara, x, y, z);&amp;lt;/code&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
!Parameter&lt;br /&gt;
!Description&lt;br /&gt;
&lt;br /&gt;
!Type&lt;br /&gt;
|-&lt;br /&gt;
|chara&lt;br /&gt;
|Character slot&lt;br /&gt;
&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|x&lt;br /&gt;
|X coordinate&lt;br /&gt;
&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|y&lt;br /&gt;
|Y coordinate&lt;br /&gt;
&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|z&lt;br /&gt;
|Z coordinate&lt;br /&gt;
&lt;br /&gt;
|int&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== MIKU_ROT ===&lt;br /&gt;
Rotates a character in a PV.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;MIKU_ROT(chara, angle);&amp;lt;/code&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
!Parameter&lt;br /&gt;
!Description&lt;br /&gt;
&lt;br /&gt;
!Type&lt;br /&gt;
|-&lt;br /&gt;
|chara&lt;br /&gt;
|Character slot&lt;br /&gt;
&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|angle&lt;br /&gt;
|Angle value&lt;br /&gt;
&lt;br /&gt;
|int&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== MIKU_SHADOW ===&lt;br /&gt;
Shows or hides a character&#039;s shadow in a PV.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;MIKU_SHADOW(chara, disp);&amp;lt;/code&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
!Parameter&lt;br /&gt;
!Description&lt;br /&gt;
&lt;br /&gt;
!Type&lt;br /&gt;
|-&lt;br /&gt;
|chara&lt;br /&gt;
|Character slot&lt;br /&gt;
&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|disp&lt;br /&gt;
|Whether to display the character&#039;s shadow or not. &lt;br /&gt;
&lt;br /&gt;
|bool&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== MODE_SELECT ===&lt;br /&gt;
Starts or ends a special chart segment, such as Chance Time.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;MODE_SELECT(difficulty, mode);&amp;lt;/code&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
!Parameter&lt;br /&gt;
!Description&lt;br /&gt;
&lt;br /&gt;
!Type&lt;br /&gt;
|-&lt;br /&gt;
|difficulty&lt;br /&gt;
|Indicates under what difficulties the command will trigger in this exact script.&lt;br /&gt;
This value is a bit flag corresponding to a group of difficulties:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; - Easy&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;2&amp;lt;/code&amp;gt; - Normal&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;4&amp;lt;/code&amp;gt; - Hard&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;8&amp;lt;/code&amp;gt; - Extreme&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;16&amp;lt;/code&amp;gt; - Encore&lt;br /&gt;
&lt;br /&gt;
Adding the values up to each other results in a group: &amp;lt;code&amp;gt;6&amp;lt;/code&amp;gt; = Hard (4) and Normal (2).&lt;br /&gt;
&lt;br /&gt;
Use &amp;lt;code&amp;gt;31&amp;lt;/code&amp;gt; as a universal value (works on any difficulty).&lt;br /&gt;
&lt;br /&gt;
|bitfield enum&lt;br /&gt;
|-&lt;br /&gt;
|mode&lt;br /&gt;
|What segment to start/end:&lt;br /&gt;
&amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; - Challenge Time (Arcade games) / Chance Time (Console games) Start&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;3&amp;lt;/code&amp;gt; - Challenge Time (Arcade games) / Chance Time (Console games) End&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;8&amp;lt;/code&amp;gt; - Technical Zone Start&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;9&amp;lt;/code&amp;gt; - Technical Zone End&lt;br /&gt;
&lt;br /&gt;
Only used by the [https://divamodarchive.com/post/169 New Classics mod]:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;4&amp;lt;/code&amp;gt; - Chance Time Start&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;5&amp;lt;/code&amp;gt; - Chance Time End&lt;br /&gt;
&lt;br /&gt;
|enum&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== MOVIE_CUT_CHG ===&lt;br /&gt;
Plays, shows or hides the movie defined in &amp;lt;code&amp;gt;pv_db&amp;lt;/code&amp;gt; or a movie from &amp;lt;code&amp;gt;movie.list&amp;lt;/code&amp;gt; in &amp;lt;code&amp;gt;pv_db&amp;lt;/code&amp;gt;. It can be used as a fancier version of both &amp;lt;code&amp;gt;MOVIE_DISP&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;MOVIE_PLAY&amp;lt;/code&amp;gt; that allows more control. &lt;br /&gt;
&lt;br /&gt;
FT: &amp;lt;code&amp;gt;MOVIE_CUT_CHG(id, disp);&amp;lt;/code&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
!Parameter&lt;br /&gt;
!Description&lt;br /&gt;
&lt;br /&gt;
!Type&lt;br /&gt;
|-&lt;br /&gt;
|id&lt;br /&gt;
|The number in &amp;lt;code&amp;gt;movie.list&amp;lt;/code&amp;gt; of the movie to be played.&lt;br /&gt;
Playback starts at the moment the command is called for a newly called &amp;lt;code&amp;gt;movie.list&amp;lt;/code&amp;gt; item. Re-calling a movie again doesn&#039;t play it from the starting position.&lt;br /&gt;
&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|disp&lt;br /&gt;
|&amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; - display the movie layer&lt;br /&gt;
Any other value - hide the movie layer (playback keeps going)&lt;br /&gt;
&lt;br /&gt;
|bool&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== MOVIE_DISP ===&lt;br /&gt;
Shows or hides the movie layer in a PV.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;MOVIE_DISP(disp);&amp;lt;/code&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
!Parameter&lt;br /&gt;
!Description&lt;br /&gt;
&lt;br /&gt;
!Type&lt;br /&gt;
|-&lt;br /&gt;
|disp&lt;br /&gt;
|&amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; - display the movie layer&lt;br /&gt;
Any other value - hide the movie layer (playback keeps going)&lt;br /&gt;
&lt;br /&gt;
|bool&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== MOVIE_PLAY ===&lt;br /&gt;
Starts playing the movie defined in &amp;lt;code&amp;gt;pv_db&amp;lt;/code&amp;gt; or the first movie in &amp;lt;code&amp;gt;movie.list&amp;lt;/code&amp;gt; in &amp;lt;code&amp;gt;pv_db&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;MOVIE_PLAY(play);&amp;lt;/code&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
!Parameter&lt;br /&gt;
!Description&lt;br /&gt;
&lt;br /&gt;
!Type&lt;br /&gt;
|-&lt;br /&gt;
|play&lt;br /&gt;
|&amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; - plays the movie&lt;br /&gt;
Any other value doesn&#039;t do anything.&lt;br /&gt;
&lt;br /&gt;
|bool&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== MUSIC_PLAY ===&lt;br /&gt;
Starts playing the song file defined in &amp;lt;code&amp;gt;pv_db&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;MUSIC_PLAY();&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== PV_BRANCH_MODE ===&lt;br /&gt;
Make future DSC commands only be executed on either the &amp;lt;code&amp;gt;Global&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;Fail&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;Success&amp;lt;/code&amp;gt; branch.&lt;br /&gt;
&lt;br /&gt;
FT, F, F2, X: &amp;lt;code&amp;gt;PV_BRANCH_MODE(branch);&amp;lt;/code&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
!Parameter&lt;br /&gt;
!Description&lt;br /&gt;
&lt;br /&gt;
!Type&lt;br /&gt;
|-&lt;br /&gt;
|branch&lt;br /&gt;
|&amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt; - Global (commands are executed regardless of success state)&lt;br /&gt;
&amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; - Fail (commands are executed only if the PV is in the &#039;failed&#039; state)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;2&amp;lt;/code&amp;gt; - Success (commands are executed only if the PV is in the &#039;success&#039; state)&lt;br /&gt;
&lt;br /&gt;
|enum&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== PV_END ===&lt;br /&gt;
Ends PV playback.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;PV_END();&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== SATURATE ===&lt;br /&gt;
Changes color saturation in a PV.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;SATURATE(amount);&amp;lt;/code&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
!Parameter&lt;br /&gt;
!Description&lt;br /&gt;
&lt;br /&gt;
!Type&lt;br /&gt;
|-&lt;br /&gt;
|amount&lt;br /&gt;
|Saturation strength on a scale from 0 to 1000:&lt;br /&gt;
&amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt; - No color, perfect grayscale&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;1000&amp;lt;/code&amp;gt; - Regular colors&lt;br /&gt;
&lt;br /&gt;
|int&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== SCENE_FADE ===&lt;br /&gt;
Plays a screen fade effect during PVs.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;SCENE_FADE(speed, start, end, r, g, b)&amp;lt;/code&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
!Parameter&lt;br /&gt;
!Description&lt;br /&gt;
&lt;br /&gt;
!Type&lt;br /&gt;
|-&lt;br /&gt;
|speed&lt;br /&gt;
|Fade duration in seconds&lt;br /&gt;
eg:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;1000&amp;lt;/code&amp;gt;: 1 second&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;800&amp;lt;/code&amp;gt;: 0.8 seconds&lt;br /&gt;
&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|start&lt;br /&gt;
|The opacity the fade will start with&lt;br /&gt;
&amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt;: fully transparent&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;1000&amp;lt;/code&amp;gt;: fully opaque&lt;br /&gt;
&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|end&lt;br /&gt;
|The opacity the fade will end with&lt;br /&gt;
&amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt;: fully transparent&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;1000&amp;lt;/code&amp;gt;: fully opaque&lt;br /&gt;
&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|r&lt;br /&gt;
|Red color component scale, from 0 to 1000&lt;br /&gt;
&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|g&lt;br /&gt;
|Green color component scale, from 0 to 1000&lt;br /&gt;
&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|b&lt;br /&gt;
|Blue color component scale, from 0 to 1000&lt;br /&gt;
&lt;br /&gt;
|int&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== SE_EFFECT ===&lt;br /&gt;
Plays a sound effect in a PV defined in &amp;lt;code&amp;gt;pv_db&amp;lt;/code&amp;gt;. Normally used for success scenes but not restricted to them.&lt;br /&gt;
&lt;br /&gt;
FT, F, F2, X: &amp;lt;code&amp;gt;SE_EFFECT(id);&amp;lt;/code&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
!Parameter&lt;br /&gt;
!Description&lt;br /&gt;
&lt;br /&gt;
!Type&lt;br /&gt;
|-&lt;br /&gt;
|id&lt;br /&gt;
|number of a &amp;lt;code&amp;gt;effect_se_name_list&amp;lt;/code&amp;gt; item defined in &amp;lt;code&amp;gt;pv_db&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
|int&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== TARGET ===&lt;br /&gt;
Spawns a rhythm game note.&lt;br /&gt;
&lt;br /&gt;
FT: &amp;lt;code&amp;gt;TARGET(type, pos_x, pos_y, angle, dist, amp, freq);&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
F: &amp;lt;code&amp;gt;TARGET(type, duration, is_end, pos_x, pos_y, angle, freq, dist, amp, fly_time, sig);&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
F2, X: &amp;lt;code&amp;gt;TARGET(type, duration, is_end, pos_x, pos_y, angle, freq, dist, amp, fly_time, sig, hit_eff);&amp;lt;/code&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
!Parameter&lt;br /&gt;
!Description&lt;br /&gt;
&lt;br /&gt;
!Type&lt;br /&gt;
|-&lt;br /&gt;
|type&lt;br /&gt;
|ID corresponding to a note type.&lt;br /&gt;
Full ID list for each game on the dedicated [[Target]] page.&lt;br /&gt;
&lt;br /&gt;
|enum&lt;br /&gt;
|-&lt;br /&gt;
|pos_x&lt;br /&gt;
|X position of the note&#039;s target.&lt;br /&gt;
&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|pos_y&lt;br /&gt;
|Y position of the note&#039;s target.&lt;br /&gt;
&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|angle&lt;br /&gt;
|Angle of the note&#039;s path.&lt;br /&gt;
&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|distance&lt;br /&gt;
|Distance between the note&#039;s spawn position and the target&#039;s position.&lt;br /&gt;
Default: &amp;lt;code&amp;gt;300000&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|amp&lt;br /&gt;
|Amplitude of the note&#039;s path wave.&lt;br /&gt;
Default: &amp;lt;code&amp;gt;500&amp;lt;/code&amp;gt;&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|freq&lt;br /&gt;
|Frequency of the note&#039;s path wave.&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|duration&lt;br /&gt;
|(for F/F2/X formats)&lt;br /&gt;
Sustain and Rush Note duration.&lt;br /&gt;
Default (for notes other than Sustain and Rush): &amp;lt;code&amp;gt;-1&amp;lt;/code&amp;gt;&lt;br /&gt;
|DivaTime&lt;br /&gt;
|-&lt;br /&gt;
|is_end&lt;br /&gt;
|(for F/F2/X formats)&lt;br /&gt;
set to &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; for Sustain &#039;end&#039; notes, otherwise set to &amp;lt;code&amp;gt;-1&amp;lt;/code&amp;gt;&lt;br /&gt;
|bool&lt;br /&gt;
|-&lt;br /&gt;
|fly_time&lt;br /&gt;
|(for F/F2/X formats)&lt;br /&gt;
Target Flying Time value (same format as the TARGET_FLYING_TIME command)&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|sig&lt;br /&gt;
|(for F/F2/X formats)&lt;br /&gt;
Signature&lt;br /&gt;
Doesn&#039;t affect gameplay.&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|hit_eff&lt;br /&gt;
|(for F2/X formats)&lt;br /&gt;
Assigns a hit effect to the note based on a local ID defined in a previous TARGET_EFFECT command.&lt;br /&gt;
|int&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== TARGET_FLYING_TIME ===&lt;br /&gt;
Sets the time it takes for the rhythm game notes to hit their targets.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;TARGET_FLYING_TIME(flytime);&amp;lt;/code&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
!Parameter&lt;br /&gt;
!Description&lt;br /&gt;
&lt;br /&gt;
!Type&lt;br /&gt;
|-&lt;br /&gt;
|flytime&lt;br /&gt;
|time value in DivaTime&lt;br /&gt;
&lt;br /&gt;
|DivaTime&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== TIME ===&lt;br /&gt;
Waits until a specified game time.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;TIME(t);&amp;lt;/code&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
!Parameter&lt;br /&gt;
!Description&lt;br /&gt;
&lt;br /&gt;
!Type&lt;br /&gt;
|-&lt;br /&gt;
|t&lt;br /&gt;
|time value in DivaTime&lt;br /&gt;
&lt;br /&gt;
|DivaTime&lt;br /&gt;
|}&amp;lt;!-- Please keep all the commands in alphabetical order!! --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= References =&lt;br /&gt;
somewhatlurker&#039;s [https://github.com/somewhatlurker/pydiva/blob/dsc/pydiva/pydsc_op_db.py pyDIVA/pyDSC]&lt;/div&gt;</summary>
		<author><name>GGAB3</name></author>
	</entry>
	<entry>
		<id>https://docs.divamodarchive.com/index.php?title=DivaScript&amp;diff=160</id>
		<title>DivaScript</title>
		<link rel="alternate" type="text/html" href="https://docs.divamodarchive.com/index.php?title=DivaScript&amp;diff=160"/>
		<updated>2025-09-28T12:58:12Z</updated>

		<summary type="html">&lt;p&gt;GGAB3: Added TIME, TARGET, TARGET_FLYING_TIME, SE_EFFECT, SATURATE, PV_END, PV_BRANCH_MODE. Removed &amp;quot;Required&amp;quot; column from the tables&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;DivaScript&#039;&#039; (commonly referred to as &#039;&#039;DSC&#039;&#039;) is the file format used by all the &#039;&#039;Project DIVA&#039;&#039; games for storing various commands related to Music Videos/PVs and Rhythm Game Charts.&lt;br /&gt;
&lt;br /&gt;
The data inside &amp;lt;code&amp;gt;.dsc&amp;lt;/code&amp;gt; files is stored in a binary format. This means that they can not be edited with a text editor and instead require specialized programs that can decode them such as [[DSC Studio]] or [[ScriptEditor]]. Additionally, &amp;lt;code&amp;gt;.dsc&amp;lt;/code&amp;gt; files from &#039;&#039;Project DIVA F2nd&#039;&#039; and &#039;&#039;Project DIVA X&#039;&#039; are encrypted using DIVAFILE encryption. They need to be decrypted before editing.&lt;br /&gt;
&lt;br /&gt;
== DSC Formats ==&lt;br /&gt;
Every &#039;&#039;Project DIVA&#039;&#039; game uses a specific DivaScript format. The exact format of a &amp;lt;code&amp;gt;.dsc&amp;lt;/code&amp;gt; file is determined by the first 4 bytes of the file.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|}&amp;lt;!-- Needs an actual list of all the formats and their DSC headers. --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== List of DSC Commands &#039;&#039;(Incomplete)&#039;&#039; ==&lt;br /&gt;
List of commands that can be used in FT, F, F2/X DSC formats. Format-exclusive commands are marked individually.&lt;br /&gt;
&lt;br /&gt;
=== AGEAGE_CTRL ===&lt;br /&gt;
Controls the effect for the hair of the module &amp;quot;AgeAge Again&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
FT: &amp;lt;code&amp;gt;AGEAGE_CTRL(chara, side, unk1, scale, unk2, unk3, -1, -1);&amp;lt;/code&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
!Parameter&lt;br /&gt;
!Description&lt;br /&gt;
&lt;br /&gt;
!Type&lt;br /&gt;
|-&lt;br /&gt;
|chara&lt;br /&gt;
|Character slot&lt;br /&gt;
&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|side&lt;br /&gt;
|Side to control:&lt;br /&gt;
&amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt;: both&lt;br /&gt;
&amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt;: left&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;2&amp;lt;/code&amp;gt;: right&lt;br /&gt;
&lt;br /&gt;
|enum&lt;br /&gt;
|-&lt;br /&gt;
|unk1&lt;br /&gt;
|Unknown&lt;br /&gt;
&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|scale&lt;br /&gt;
|Effect scale&lt;br /&gt;
&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|unk2&lt;br /&gt;
|Unknown&lt;br /&gt;
&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|unk3&lt;br /&gt;
|Unknown&lt;br /&gt;
&lt;br /&gt;
|int&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== BAR_TIME_SET ===&lt;br /&gt;
Sets the length of a measure.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;BAR_TIME_SET(bpm, beats);&amp;lt;/code&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
!Parameter&lt;br /&gt;
!Description&lt;br /&gt;
&lt;br /&gt;
!Type&lt;br /&gt;
|-&lt;br /&gt;
|bpm&lt;br /&gt;
|Beats per minute&lt;br /&gt;
&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|beats&lt;br /&gt;
|Number of quarter note beats minus 1. eg.: &amp;lt;code&amp;gt;3&amp;lt;/code&amp;gt; for 4/4.&lt;br /&gt;
&lt;br /&gt;
|int&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== BLOOM ===&lt;br /&gt;
Sets data from &amp;lt;code&amp;gt;bloom&amp;lt;/code&amp;gt; pv_param.&lt;br /&gt;
&lt;br /&gt;
FT, F2, X: &amp;lt;code&amp;gt;BLOOM(id, unk);&amp;lt;/code&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
!Parameter&lt;br /&gt;
!Description&lt;br /&gt;
&lt;br /&gt;
!Type&lt;br /&gt;
|-&lt;br /&gt;
|id&lt;br /&gt;
|ID matching the data in pv_param.&lt;br /&gt;
&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|unk&lt;br /&gt;
|Unknown&lt;br /&gt;
&lt;br /&gt;
|int&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== CHANGE_FIELD ===&lt;br /&gt;
Changes the field defined in &amp;lt;code&amp;gt;pv_field&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;pv_db&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;CHANGE_FIELD(id);&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
F2, X: &amp;lt;code&amp;gt;CHANGE_FIELD(id, unk);&amp;lt;/code&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
!Parameter&lt;br /&gt;
!Description&lt;br /&gt;
&lt;br /&gt;
!Type&lt;br /&gt;
|-&lt;br /&gt;
|id&lt;br /&gt;
|ID matching the field number in &amp;lt;code&amp;gt;pv_field&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;pv_db&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
|int&lt;br /&gt;
|}&lt;br /&gt;
=== CHARA_SIZE ===&lt;br /&gt;
Sets a character&#039;s scale/size.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;CHARA_SIZE(chara, size);&amp;lt;/code&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
!Parameter&lt;br /&gt;
!Description&lt;br /&gt;
&lt;br /&gt;
!Type&lt;br /&gt;
|-&lt;br /&gt;
|chara&lt;br /&gt;
|Character slot&lt;br /&gt;
&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|size&lt;br /&gt;
|Character scale&lt;br /&gt;
&lt;br /&gt;
|int&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== END ===&lt;br /&gt;
Ends reading of the script.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;END();&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== HAND_SCALE ===&lt;br /&gt;
Sets the size of a character&#039;s hand.&lt;br /&gt;
&lt;br /&gt;
FT: &amp;lt;code&amp;gt;HAND_SCALE(chara, hand, scale);&amp;lt;/code&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
!Parameter&lt;br /&gt;
!Description&lt;br /&gt;
&lt;br /&gt;
!Type&lt;br /&gt;
|-&lt;br /&gt;
|chara&lt;br /&gt;
|Character slot&lt;br /&gt;
&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|hand&lt;br /&gt;
|Which hand to scale:&lt;br /&gt;
&amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt;: left&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;2&amp;lt;/code&amp;gt;: right&lt;br /&gt;
&lt;br /&gt;
|enum&lt;br /&gt;
|-&lt;br /&gt;
|scale&lt;br /&gt;
|Hand scale in percentage times 10; eg. for &amp;lt;code&amp;gt;105%&amp;lt;/code&amp;gt; use &amp;lt;code&amp;gt;1050&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|int&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== LYRIC ===&lt;br /&gt;
Displays a lyric from &amp;lt;code&amp;gt;pv_db&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;LYRIC(id, color);&amp;lt;/code&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
!Parameter&lt;br /&gt;
!Description&lt;br /&gt;
&lt;br /&gt;
!Type&lt;br /&gt;
|-&lt;br /&gt;
|id&lt;br /&gt;
|ID matching the number of a lyric in &amp;lt;code&amp;gt;pv_db&amp;lt;/code&amp;gt;.&lt;br /&gt;
Use &amp;lt;code&amp;gt;-1&amp;lt;/code&amp;gt; as &amp;quot;disable&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|color&lt;br /&gt;
|&amp;lt;code&amp;gt;#AARRGGBB&amp;lt;/code&amp;gt; hex color code converted to decimal.&lt;br /&gt;
eg.: for a red lyric the command would be &amp;lt;code&amp;gt;LYRIC(id, 16711680);&amp;lt;/code&amp;gt; &lt;br /&gt;
&lt;br /&gt;
because Red: &amp;lt;code&amp;gt;#00FF0000&amp;lt;/code&amp;gt; → &amp;lt;code&amp;gt;0x00ff0000&amp;lt;/code&amp;gt; → &amp;lt;code&amp;gt;16711680&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Default: &amp;lt;code&amp;gt;-1&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|int&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== MIKU_DISP ===&lt;br /&gt;
Shows or hides a character in a PV.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;MIKU_DISP(chara, disp);&amp;lt;/code&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
!Parameter&lt;br /&gt;
!Description&lt;br /&gt;
&lt;br /&gt;
!Type&lt;br /&gt;
|-&lt;br /&gt;
|chara&lt;br /&gt;
|Character slot&lt;br /&gt;
&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|disp&lt;br /&gt;
|Whether to display the character or not. &lt;br /&gt;
&lt;br /&gt;
|bool&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== MIKU_MOVE ===&lt;br /&gt;
Moves a character in 3D space in a PV.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;MIKU_MOVE(chara, x, y, z);&amp;lt;/code&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
!Parameter&lt;br /&gt;
!Description&lt;br /&gt;
&lt;br /&gt;
!Type&lt;br /&gt;
|-&lt;br /&gt;
|chara&lt;br /&gt;
|Character slot&lt;br /&gt;
&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|x&lt;br /&gt;
|X coordinate&lt;br /&gt;
&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|y&lt;br /&gt;
|Y coordinate&lt;br /&gt;
&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|z&lt;br /&gt;
|Z coordinate&lt;br /&gt;
&lt;br /&gt;
|int&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== MIKU_ROT ===&lt;br /&gt;
Rotates a character in a PV.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;MIKU_ROT(chara, angle);&amp;lt;/code&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
!Parameter&lt;br /&gt;
!Description&lt;br /&gt;
&lt;br /&gt;
!Type&lt;br /&gt;
|-&lt;br /&gt;
|chara&lt;br /&gt;
|Character slot&lt;br /&gt;
&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|angle&lt;br /&gt;
|Angle value&lt;br /&gt;
&lt;br /&gt;
|int&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== MIKU_SHADOW ===&lt;br /&gt;
Shows or hides a character&#039;s shadow in a PV.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;MIKU_SHADOW(chara, disp);&amp;lt;/code&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
!Parameter&lt;br /&gt;
!Description&lt;br /&gt;
&lt;br /&gt;
!Type&lt;br /&gt;
|-&lt;br /&gt;
|chara&lt;br /&gt;
|Character slot&lt;br /&gt;
&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|disp&lt;br /&gt;
|Whether to display the character&#039;s shadow or not. &lt;br /&gt;
&lt;br /&gt;
|bool&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== MODE_SELECT ===&lt;br /&gt;
Starts or ends a special chart segment, such as Chance Time.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;MODE_SELECT(difficulty, mode);&amp;lt;/code&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
!Parameter&lt;br /&gt;
!Description&lt;br /&gt;
&lt;br /&gt;
!Type&lt;br /&gt;
|-&lt;br /&gt;
|difficulty&lt;br /&gt;
|Indicates under what difficulties the command will trigger in this exact script.&lt;br /&gt;
This value is a bit flag corresponding to a group of difficulties:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; - Easy&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;2&amp;lt;/code&amp;gt; - Normal&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;4&amp;lt;/code&amp;gt; - Hard&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;8&amp;lt;/code&amp;gt; - Extreme&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;16&amp;lt;/code&amp;gt; - Encore&lt;br /&gt;
&lt;br /&gt;
Adding the values up to each other results in a group: &amp;lt;code&amp;gt;6&amp;lt;/code&amp;gt; = Hard (4) and Normal (2).&lt;br /&gt;
&lt;br /&gt;
Use &amp;lt;code&amp;gt;31&amp;lt;/code&amp;gt; as a universal value (works on any difficulty).&lt;br /&gt;
&lt;br /&gt;
|bitfield enum&lt;br /&gt;
|-&lt;br /&gt;
|mode&lt;br /&gt;
|What segment to start/end:&lt;br /&gt;
&amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; - Challenge Time (Arcade games) / Chance Time (Console games) Start&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;3&amp;lt;/code&amp;gt; - Challenge Time (Arcade games) / Chance Time (Console games) End&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;8&amp;lt;/code&amp;gt; - Technical Zone Start&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;9&amp;lt;/code&amp;gt; - Technical Zone End&lt;br /&gt;
&lt;br /&gt;
Only used by the [https://divamodarchive.com/post/169 New Classics mod]:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;4&amp;lt;/code&amp;gt; - Chance Time Start&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;5&amp;lt;/code&amp;gt; - Chance Time End&lt;br /&gt;
&lt;br /&gt;
|enum&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== MOVIE_CUT_CHG ===&lt;br /&gt;
Plays, shows or hides the movie defined in &amp;lt;code&amp;gt;pv_db&amp;lt;/code&amp;gt; or a movie from &amp;lt;code&amp;gt;movie.list&amp;lt;/code&amp;gt; in &amp;lt;code&amp;gt;pv_db&amp;lt;/code&amp;gt;. It can be used as a fancier version of both &amp;lt;code&amp;gt;MOVIE_DISP&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;MOVIE_PLAY&amp;lt;/code&amp;gt; that allows more control. &lt;br /&gt;
&lt;br /&gt;
FT: &amp;lt;code&amp;gt;MOVIE_CUT_CHG(id, disp);&amp;lt;/code&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
!Parameter&lt;br /&gt;
!Description&lt;br /&gt;
&lt;br /&gt;
!Type&lt;br /&gt;
|-&lt;br /&gt;
|id&lt;br /&gt;
|The number in &amp;lt;code&amp;gt;movie.list&amp;lt;/code&amp;gt; of the movie to be played.&lt;br /&gt;
Playback starts at the moment the command is called for a newly called &amp;lt;code&amp;gt;movie.list&amp;lt;/code&amp;gt; item. Re-calling a movie again doesn&#039;t play it from the starting position.&lt;br /&gt;
&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|disp&lt;br /&gt;
|&amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; - display the movie layer&lt;br /&gt;
Any other value - hide the movie layer (playback keeps going)&lt;br /&gt;
&lt;br /&gt;
|bool&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== MOVIE_DISP ===&lt;br /&gt;
Shows or hides the movie layer in a PV.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;MOVIE_DISP(disp);&amp;lt;/code&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
!Parameter&lt;br /&gt;
!Description&lt;br /&gt;
&lt;br /&gt;
!Type&lt;br /&gt;
|-&lt;br /&gt;
|disp&lt;br /&gt;
|&amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; - display the movie layer&lt;br /&gt;
Any other value - hide the movie layer (playback keeps going)&lt;br /&gt;
&lt;br /&gt;
|bool&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== MOVIE_PLAY ===&lt;br /&gt;
Starts playing the movie defined in &amp;lt;code&amp;gt;pv_db&amp;lt;/code&amp;gt; or the first movie in &amp;lt;code&amp;gt;movie.list&amp;lt;/code&amp;gt; in &amp;lt;code&amp;gt;pv_db&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;MOVIE_PLAY(play);&amp;lt;/code&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
!Parameter&lt;br /&gt;
!Description&lt;br /&gt;
&lt;br /&gt;
!Type&lt;br /&gt;
|-&lt;br /&gt;
|play&lt;br /&gt;
|&amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; - plays the movie&lt;br /&gt;
Any other value doesn&#039;t do anything.&lt;br /&gt;
&lt;br /&gt;
|bool&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== MUSIC_PLAY ===&lt;br /&gt;
Starts playing the song file defined in &amp;lt;code&amp;gt;pv_db&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;MUSIC_PLAY();&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== PV_BRANCH_MODE ===&lt;br /&gt;
Make future DSC commands only be executed on either the &amp;lt;code&amp;gt;Global&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;Fail&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;Success&amp;lt;/code&amp;gt; branch.&lt;br /&gt;
&lt;br /&gt;
FT, F, F2, X: &amp;lt;code&amp;gt;PV_BRANCH_MODE(branch);&amp;lt;/code&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
!Parameter&lt;br /&gt;
!Description&lt;br /&gt;
&lt;br /&gt;
!Type&lt;br /&gt;
|-&lt;br /&gt;
|branch&lt;br /&gt;
|&amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt; - Global (commands are executed regardless of success state)&lt;br /&gt;
&amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; - Fail (commands are executed only if the PV is in the &#039;failed&#039; state)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;2&amp;lt;/code&amp;gt; - Success (commands are executed only if the PV is in the &#039;success&#039; state)&lt;br /&gt;
&lt;br /&gt;
|enum&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== PV_END ===&lt;br /&gt;
Ends PV playback.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;PV_END();&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== SATURATE ===&lt;br /&gt;
Changes color saturation in a PV.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;SATURATE(amount);&amp;lt;/code&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
!Parameter&lt;br /&gt;
!Description&lt;br /&gt;
&lt;br /&gt;
!Type&lt;br /&gt;
|-&lt;br /&gt;
|amount&lt;br /&gt;
|Saturation strength on a scale from 0 to 1000:&lt;br /&gt;
&amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt; - No color, perfect grayscale&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;1000&amp;lt;/code&amp;gt; - Regular colors&lt;br /&gt;
&lt;br /&gt;
|int&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== SCENE_FADE ===&lt;br /&gt;
Plays a screen fade effect during PVs.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;SCENE_FADE(speed, start, end, r, g, b)&amp;lt;/code&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
!Parameter&lt;br /&gt;
!Description&lt;br /&gt;
&lt;br /&gt;
!Type&lt;br /&gt;
|-&lt;br /&gt;
|speed&lt;br /&gt;
|Fade duration in seconds&lt;br /&gt;
eg:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;1000&amp;lt;/code&amp;gt;: 1 second&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;800&amp;lt;/code&amp;gt;: 0.8 seconds&lt;br /&gt;
&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|start&lt;br /&gt;
|The opacity the fade will start with&lt;br /&gt;
&amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt;: fully transparent&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;1000&amp;lt;/code&amp;gt;: fully opaque&lt;br /&gt;
&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|end&lt;br /&gt;
|The opacity the fade will end with&lt;br /&gt;
&amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt;: fully transparent&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;1000&amp;lt;/code&amp;gt;: fully opaque&lt;br /&gt;
&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|r&lt;br /&gt;
|Red color component scale, from 0 to 1000&lt;br /&gt;
&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|g&lt;br /&gt;
|Green color component scale, from 0 to 1000&lt;br /&gt;
&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|b&lt;br /&gt;
|Blue color component scale, from 0 to 1000&lt;br /&gt;
&lt;br /&gt;
|int&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== SE_EFFECT ===&lt;br /&gt;
Plays a sound effect in a PV defined in &amp;lt;code&amp;gt;pv_db&amp;lt;/code&amp;gt;. Normally used for success scenes but not restricted to them.&lt;br /&gt;
&lt;br /&gt;
FT, F, F2, X: &amp;lt;code&amp;gt;SE_EFFECT(id);&amp;lt;/code&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
!Parameter&lt;br /&gt;
!Description&lt;br /&gt;
&lt;br /&gt;
!Type&lt;br /&gt;
|-&lt;br /&gt;
|id&lt;br /&gt;
|number of a &amp;lt;code&amp;gt;effect_se_name_list&amp;lt;/code&amp;gt; item defined in &amp;lt;code&amp;gt;pv_db&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
|int&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== TARGET ===&lt;br /&gt;
Spawns a rhythm game note.&lt;br /&gt;
&lt;br /&gt;
FT: &amp;lt;code&amp;gt;TARGET(type, pos_x, pos_y, angle, dist, amp, freq);&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
F: &amp;lt;code&amp;gt;TARGET(type, duration, is_end, pos_x, pos_y, angle, freq, dist, amp, fly_time, sig);&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
F2, X: &amp;lt;code&amp;gt;TARGET(type, duration, is_end, pos_x, pos_y, angle, freq, dist, amp, fly_time, sig, hit_eff);&amp;lt;/code&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
!Parameter&lt;br /&gt;
!Description&lt;br /&gt;
&lt;br /&gt;
!Type&lt;br /&gt;
|-&lt;br /&gt;
|type&lt;br /&gt;
|ID corresponding to a note type.&lt;br /&gt;
Full ID list for each game on the dedicated [[Target]] page.&lt;br /&gt;
&lt;br /&gt;
|enum&lt;br /&gt;
|-&lt;br /&gt;
|pos_x&lt;br /&gt;
|X position of the note&#039;s target.&lt;br /&gt;
&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|pos_y&lt;br /&gt;
|Y position of the note&#039;s target.&lt;br /&gt;
&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|angle&lt;br /&gt;
|Angle of the note&#039;s path.&lt;br /&gt;
&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|distance&lt;br /&gt;
|Distance between the note&#039;s spawn position and the target&#039;s position.&lt;br /&gt;
Default: &amp;lt;code&amp;gt;300000&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|amp&lt;br /&gt;
|Amplitude of the note&#039;s path wave.&lt;br /&gt;
Default: &amp;lt;code&amp;gt;500&amp;lt;/code&amp;gt;&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|freq&lt;br /&gt;
|Frequency of the note&#039;s path wave.&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|duration&lt;br /&gt;
|(for F/F2/X formats)&lt;br /&gt;
Sustain and Rush Note duration.&lt;br /&gt;
Default (for notes other than Sustain and Rush): &amp;lt;code&amp;gt;-1&amp;lt;/code&amp;gt;&lt;br /&gt;
|DivaTime&lt;br /&gt;
|-&lt;br /&gt;
|is_end&lt;br /&gt;
|(for F/F2/X formats)&lt;br /&gt;
set to &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; for Sustain &#039;end&#039; notes, otherwise set to &amp;lt;code&amp;gt;-1&amp;lt;/code&amp;gt;&lt;br /&gt;
|bool&lt;br /&gt;
|-&lt;br /&gt;
|fly_time&lt;br /&gt;
|(for F/F2/X formats)&lt;br /&gt;
Target Flying Time value (same format as the TARGET_FLYING_TIME command)&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|sig&lt;br /&gt;
|(for F/F2/X formats)&lt;br /&gt;
Signature&lt;br /&gt;
Doesn&#039;t affect gameplay.&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|hit_eff&lt;br /&gt;
|(for F2/X formats)&lt;br /&gt;
Assigns a hit effect to the note based on a local ID defined in a previous TARGET_EFFECT command.&lt;br /&gt;
|int&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== TARGET_FLYING_TIME ===&lt;br /&gt;
Sets the time it takes for the rhythm game notes to hit their targets.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;TARGET_FLYING_TIME(flytime);&amp;lt;/code&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
!Parameter&lt;br /&gt;
!Description&lt;br /&gt;
&lt;br /&gt;
!Type&lt;br /&gt;
|-&lt;br /&gt;
|flytime&lt;br /&gt;
|time value in DivaTime&lt;br /&gt;
&lt;br /&gt;
|DivaTime&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== TIME ===&lt;br /&gt;
Waits until a specified game time.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;TIME(t);&amp;lt;/code&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
!Parameter&lt;br /&gt;
!Description&lt;br /&gt;
&lt;br /&gt;
!Type&lt;br /&gt;
|-&lt;br /&gt;
|t&lt;br /&gt;
|time value in DivaTime&lt;br /&gt;
&lt;br /&gt;
|DivaTime&lt;br /&gt;
|}&amp;lt;!-- Please keep all the commands in alphabetical order!! --&amp;gt;&lt;/div&gt;</summary>
		<author><name>GGAB3</name></author>
	</entry>
	<entry>
		<id>https://docs.divamodarchive.com/index.php?title=DivaScript&amp;diff=158</id>
		<title>DivaScript</title>
		<link rel="alternate" type="text/html" href="https://docs.divamodarchive.com/index.php?title=DivaScript&amp;diff=158"/>
		<updated>2025-09-27T10:56:05Z</updated>

		<summary type="html">&lt;p&gt;GGAB3: Formatting Change&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;DivaScript&#039;&#039; (commonly referred to as &#039;&#039;DSC&#039;&#039;) is the file format used by all the &#039;&#039;Project DIVA&#039;&#039; games for storing various commands related to Music Videos/PVs and Rhythm Game Charts.&lt;br /&gt;
&lt;br /&gt;
The data inside &amp;lt;code&amp;gt;.dsc&amp;lt;/code&amp;gt; files is stored in a binary format. This means that they can not be edited with a text editor and instead require specialized programs that can decode them such as [[DSC Studio]] or [[ScriptEditor]]. Additionally, &amp;lt;code&amp;gt;.dsc&amp;lt;/code&amp;gt; files from &#039;&#039;Project DIVA F2nd&#039;&#039; and &#039;&#039;Project DIVA X&#039;&#039; are encrypted using DIVAFILE encryption. They need to be decrypted before editing.&lt;br /&gt;
&lt;br /&gt;
== DSC Formats ==&lt;br /&gt;
Every &#039;&#039;Project DIVA&#039;&#039; game uses a specific DivaScript format. The exact format of a &amp;lt;code&amp;gt;.dsc&amp;lt;/code&amp;gt; file is determined by the first 4 bytes of the file.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|}&amp;lt;!-- Needs an actual list of all the formats and their DSC headers. --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== List of DSC Commands &#039;&#039;(Incomplete)&#039;&#039; ==&lt;br /&gt;
List of commands that can be used in FT, F, F2/X DSC formats. Format-exclusive commands are marked individually.&lt;br /&gt;
&lt;br /&gt;
=== AGEAGE_CTRL ===&lt;br /&gt;
Controls the effect for the hair of the module &amp;quot;AgeAge Again&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
AFT: &amp;lt;code&amp;gt;AGEAGE_CTRL(chara, side, unk1, scale, unk2, unk3, -1, -1);&amp;lt;/code&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
!Parameter&lt;br /&gt;
!Description&lt;br /&gt;
!Required&lt;br /&gt;
!Type&lt;br /&gt;
|-&lt;br /&gt;
|chara&lt;br /&gt;
|Character slot&lt;br /&gt;
|True&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|side&lt;br /&gt;
|Side to control&lt;br /&gt;
|True&lt;br /&gt;
|enum: &lt;br /&gt;
0: both&lt;br /&gt;
1: left&lt;br /&gt;
2: right&lt;br /&gt;
|-&lt;br /&gt;
|unk1&lt;br /&gt;
|Unknown&lt;br /&gt;
|True&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|scale&lt;br /&gt;
|Effect scale&lt;br /&gt;
|True&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|unk2&lt;br /&gt;
|Unknown&lt;br /&gt;
|False&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|unk3&lt;br /&gt;
|Unknown&lt;br /&gt;
|True&lt;br /&gt;
|int&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== BAR_TIME_SET ===&lt;br /&gt;
Sets the length of a measure.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;BAR_TIME_SET(bpm, beats);&amp;lt;/code&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
!Parameter&lt;br /&gt;
!Description&lt;br /&gt;
!Required&lt;br /&gt;
!Type&lt;br /&gt;
|-&lt;br /&gt;
|bpm&lt;br /&gt;
|Beats per minute&lt;br /&gt;
|True&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|beats&lt;br /&gt;
|Number of quarter note beats minus 1. eg.: &amp;lt;code&amp;gt;3&amp;lt;/code&amp;gt; for 4/4.&lt;br /&gt;
|True&lt;br /&gt;
|int&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== BLOOM ===&lt;br /&gt;
Sets data from &amp;lt;code&amp;gt;bloom&amp;lt;/code&amp;gt; pv_param.&lt;br /&gt;
&lt;br /&gt;
AFT, F2, X: &amp;lt;code&amp;gt;BLOOM(id, unk);&amp;lt;/code&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
!Parameter&lt;br /&gt;
!Description&lt;br /&gt;
!Required&lt;br /&gt;
!Type&lt;br /&gt;
|-&lt;br /&gt;
|id&lt;br /&gt;
|ID matching the data in pv_param.&lt;br /&gt;
|True&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|unk&lt;br /&gt;
|Unknown&lt;br /&gt;
|True&lt;br /&gt;
|int&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== CHANGE_FIELD ===&lt;br /&gt;
Changes the field defined in &amp;lt;code&amp;gt;pv_field&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;pv_db&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;CHANGE_FIELD(id);&amp;lt;/code&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
!Parameter&lt;br /&gt;
!Description&lt;br /&gt;
!Required&lt;br /&gt;
!Type&lt;br /&gt;
|-&lt;br /&gt;
|id&lt;br /&gt;
|ID matching the field number in &amp;lt;code&amp;gt;pv_field&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;pv_db&amp;lt;/code&amp;gt;.&lt;br /&gt;
|True&lt;br /&gt;
|int&lt;br /&gt;
|}&lt;br /&gt;
F2, X: &amp;lt;code&amp;gt;CHANGE_FIELD(id, unk);&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== CHARA_SIZE ===&lt;br /&gt;
Sets a character&#039;s scale/size.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;CHARA_SIZE(chara, size);&amp;lt;/code&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
!Parameter&lt;br /&gt;
!Description&lt;br /&gt;
!Required&lt;br /&gt;
!Type&lt;br /&gt;
|-&lt;br /&gt;
|chara&lt;br /&gt;
|Character slot&lt;br /&gt;
|True&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|size&lt;br /&gt;
|Character scale&lt;br /&gt;
|True&lt;br /&gt;
|int&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== END ===&lt;br /&gt;
Ends reading of the script.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;END();&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== HAND_SCALE ===&lt;br /&gt;
Set the size of a character&#039;s hand.&lt;br /&gt;
&lt;br /&gt;
AFT: &amp;lt;code&amp;gt;HAND_SCALE(chara, hand, scale);&amp;lt;/code&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
!Parameter&lt;br /&gt;
!Description&lt;br /&gt;
!Required&lt;br /&gt;
!Type&lt;br /&gt;
|-&lt;br /&gt;
|chara&lt;br /&gt;
|Character slot&lt;br /&gt;
|True&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|hand&lt;br /&gt;
|Which hand&lt;br /&gt;
|True&lt;br /&gt;
|enum:&lt;br /&gt;
1: left&lt;br /&gt;
2: right&lt;br /&gt;
|-&lt;br /&gt;
|scale&lt;br /&gt;
|Hand scale in percentage times 10; eg. for &amp;lt;code&amp;gt;105%&amp;lt;/code&amp;gt; use &amp;lt;code&amp;gt;1050&amp;lt;/code&amp;gt;&lt;br /&gt;
|True&lt;br /&gt;
|int&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== LYRIC ===&lt;br /&gt;
Displays a lyric from &amp;lt;code&amp;gt;pv_db&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;LYRIC(id, color);&amp;lt;/code&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
!Parameter&lt;br /&gt;
!Description&lt;br /&gt;
!Required&lt;br /&gt;
!Type&lt;br /&gt;
|-&lt;br /&gt;
|id&lt;br /&gt;
|ID matching the number of a lyric in &amp;lt;code&amp;gt;pv_db&amp;lt;/code&amp;gt;.&lt;br /&gt;
Use &amp;lt;code&amp;gt;-1&amp;lt;/code&amp;gt; as &amp;quot;disable&amp;quot;.&lt;br /&gt;
|True&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|color&lt;br /&gt;
|&amp;lt;code&amp;gt;#AARRGGBB&amp;lt;/code&amp;gt; hex color code converted to decimal.&lt;br /&gt;
eg.: for a red lyric the command would be &amp;lt;code&amp;gt;LYRIC(id, 16711680);&amp;lt;/code&amp;gt; because&lt;br /&gt;
Red: &amp;lt;code&amp;gt;#00FF0000&amp;lt;/code&amp;gt; → &amp;lt;code&amp;gt;0x00ff0000&amp;lt;/code&amp;gt; → &amp;lt;code&amp;gt;16711680&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Default: &amp;lt;code&amp;gt;-1&amp;lt;/code&amp;gt;&lt;br /&gt;
|False&lt;br /&gt;
|int&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== MIKU_DISP ===&lt;br /&gt;
Show or hide a character in a PV.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;MIKU_DISP(chara, disp);&amp;lt;/code&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
!Parameter&lt;br /&gt;
!Description&lt;br /&gt;
!Required&lt;br /&gt;
!Type&lt;br /&gt;
|-&lt;br /&gt;
|chara&lt;br /&gt;
|Character slot&lt;br /&gt;
|True&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|disp&lt;br /&gt;
|Whether to display the character or not. &lt;br /&gt;
|True&lt;br /&gt;
|bool&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== MIKU_MOVE ===&lt;br /&gt;
Moves a character in 3D space in a PV.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;MIKU_MOVE(chara, x, y, z);&amp;lt;/code&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
!Parameter&lt;br /&gt;
!Description&lt;br /&gt;
!Required&lt;br /&gt;
!Type&lt;br /&gt;
|-&lt;br /&gt;
|chara&lt;br /&gt;
|Character slot&lt;br /&gt;
|True&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|x&lt;br /&gt;
|X coordinate&lt;br /&gt;
|True&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|y&lt;br /&gt;
|Y coordinate&lt;br /&gt;
|True&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|z&lt;br /&gt;
|Z coordinate&lt;br /&gt;
|True&lt;br /&gt;
|int&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== MIKU_ROT ===&lt;br /&gt;
Rotates a character in a PV.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;MIKU_ROT(chara, angle);&amp;lt;/code&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
!Parameter&lt;br /&gt;
!Description&lt;br /&gt;
!Required&lt;br /&gt;
!Type&lt;br /&gt;
|-&lt;br /&gt;
|chara&lt;br /&gt;
|Character slot&lt;br /&gt;
|True&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|angle&lt;br /&gt;
|Angle value&lt;br /&gt;
|True&lt;br /&gt;
|int&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== MIKU_SHADOW ===&lt;br /&gt;
Show or hide a character&#039;s shadow in a PV.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;MIKU_SHADOW(chara, disp);&amp;lt;/code&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
!Parameter&lt;br /&gt;
!Description&lt;br /&gt;
!Required&lt;br /&gt;
!Type&lt;br /&gt;
|-&lt;br /&gt;
|chara&lt;br /&gt;
|Character slot&lt;br /&gt;
|True&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|disp&lt;br /&gt;
|Whether to display the character&#039;s shadow or not. &lt;br /&gt;
|True&lt;br /&gt;
|bool&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== MODE_SELECT ===&lt;br /&gt;
Starts or ends a special chart segment, such as Chance Time.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;MODE_SELECT(difficulty, mode);&amp;lt;/code&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
!Parameter&lt;br /&gt;
!Description&lt;br /&gt;
!Required&lt;br /&gt;
!Type&lt;br /&gt;
|-&lt;br /&gt;
|difficulty&lt;br /&gt;
|Indicates under what difficulties the command will trigger in this exact script.&lt;br /&gt;
This value is a bit flag corresponding to a group of difficulties:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; - Easy&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;2&amp;lt;/code&amp;gt; - Normal&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;4&amp;lt;/code&amp;gt; - Hard&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;8&amp;lt;/code&amp;gt; - Extreme&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;16&amp;lt;/code&amp;gt; - Encore&lt;br /&gt;
&lt;br /&gt;
Adding the values up to each other results in a group: &amp;lt;code&amp;gt;6&amp;lt;/code&amp;gt; = Hard (4) and Normal (2).&lt;br /&gt;
&lt;br /&gt;
Use &amp;lt;code&amp;gt;31&amp;lt;/code&amp;gt; as a universal value (works on any difficulty).&lt;br /&gt;
|True&lt;br /&gt;
|bitfield enum&lt;br /&gt;
|-&lt;br /&gt;
|mode&lt;br /&gt;
|What segment to start/end:&lt;br /&gt;
&amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; - Challenge Time (Arcade games) / Chance Time (Console games) Start&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;3&amp;lt;/code&amp;gt; - Challenge Time (Arcade games) / Chance Time (Console games) End&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;8&amp;lt;/code&amp;gt; - Technical Zone Start&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;9&amp;lt;/code&amp;gt; - Technical Zone End&lt;br /&gt;
&lt;br /&gt;
Only used by the [https://divamodarchive.com/post/169 New Classics mod]:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;4&amp;lt;/code&amp;gt; - Chance Time Start&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;5&amp;lt;/code&amp;gt; - Chance Time End&lt;br /&gt;
|True&lt;br /&gt;
|enum&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== MOVIE_CUT_CHG ===&lt;br /&gt;
Play, show or hide the movie defined in &amp;lt;code&amp;gt;pv_db&amp;lt;/code&amp;gt; or a movie from &amp;lt;code&amp;gt;movie.list&amp;lt;/code&amp;gt; in &amp;lt;code&amp;gt;pv_db&amp;lt;/code&amp;gt;. It can be used as a fancier version of both &amp;lt;code&amp;gt;MOVIE_DISP&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;MOVIE_PLAY&amp;lt;/code&amp;gt; that allows more control. &lt;br /&gt;
&lt;br /&gt;
AFT: &amp;lt;code&amp;gt;MOVIE_CUT_CHG(id, disp);&amp;lt;/code&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
!Parameter&lt;br /&gt;
!Description&lt;br /&gt;
!Required&lt;br /&gt;
!Type&lt;br /&gt;
|-&lt;br /&gt;
|id&lt;br /&gt;
|The number in &amp;lt;code&amp;gt;movie.list&amp;lt;/code&amp;gt; of the movie to be played.&lt;br /&gt;
Playback starts at the moment the command is called for a newly called &amp;lt;code&amp;gt;movie.list&amp;lt;/code&amp;gt; item. Re-calling a movie again doesn&#039;t play it from the starting position.&lt;br /&gt;
|True&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|disp&lt;br /&gt;
|&amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; - display the movie layer&lt;br /&gt;
Any other value - hide the movie layer (playback keeps going)&lt;br /&gt;
|True&lt;br /&gt;
|bool&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== MOVIE_DISP ===&lt;br /&gt;
Show or hide the movie layer in a PV.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;MOVIE_DISP(disp);&amp;lt;/code&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
!Parameter&lt;br /&gt;
!Description&lt;br /&gt;
!Required&lt;br /&gt;
!Type&lt;br /&gt;
|-&lt;br /&gt;
|disp&lt;br /&gt;
|&amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; - display the movie layer&lt;br /&gt;
Any other value - hide the movie layer (playback keeps going)&lt;br /&gt;
|True&lt;br /&gt;
|bool&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== MOVIE_PLAY ===&lt;br /&gt;
Start playing the movie defined in &amp;lt;code&amp;gt;pv_db&amp;lt;/code&amp;gt; or the first movie in &amp;lt;code&amp;gt;movie.list&amp;lt;/code&amp;gt; in &amp;lt;code&amp;gt;pv_db&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;MOVIE_PLAY(play);&amp;lt;/code&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
!Parameter&lt;br /&gt;
!Description&lt;br /&gt;
!Required&lt;br /&gt;
!Type&lt;br /&gt;
|-&lt;br /&gt;
|play&lt;br /&gt;
|&amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; - plays the movie&lt;br /&gt;
Any other value doesn&#039;t do anything.&lt;br /&gt;
|True&lt;br /&gt;
|bool&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== MUSIC_PLAY ===&lt;br /&gt;
Starts playing the song file defined in &amp;lt;code&amp;gt;pv_db&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;MUSIC_PLAY();&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== SCENE_FADE ===&lt;br /&gt;
Plays a screen fade effect during PVs.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;SCENE_FADE(speed, start, end, r, g, b)&amp;lt;/code&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
!Parameter&lt;br /&gt;
!Description&lt;br /&gt;
!Required&lt;br /&gt;
!Type&lt;br /&gt;
|-&lt;br /&gt;
|speed&lt;br /&gt;
|Fade duration in seconds&lt;br /&gt;
eg:&lt;br /&gt;
&amp;lt;code&amp;gt;1000&amp;lt;/code&amp;gt;: 1 second&lt;br /&gt;
&amp;lt;code&amp;gt;800&amp;lt;/code&amp;gt;: 0.8 seconds&lt;br /&gt;
|True&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|start&lt;br /&gt;
|The opacity the fade will start with&lt;br /&gt;
&amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt;: fully transparent&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;1000&amp;lt;/code&amp;gt;: fully opaque&lt;br /&gt;
|True&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|end&lt;br /&gt;
|The opacity the fade will end with&lt;br /&gt;
&amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt;: fully transparent&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;1000&amp;lt;/code&amp;gt;: fully opaque&lt;br /&gt;
|True&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|r&lt;br /&gt;
|Red color component scale, from 0 to 1000&lt;br /&gt;
|True&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|g&lt;br /&gt;
|Green color component scale, from 0 to 1000&lt;br /&gt;
|True&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|b&lt;br /&gt;
|Blue color component scale, from 0 to 1000&lt;br /&gt;
|True&lt;br /&gt;
|int&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;!-- Please keep all the commands in alphabetical order!! --&amp;gt;&lt;/div&gt;</summary>
		<author><name>GGAB3</name></author>
	</entry>
	<entry>
		<id>https://docs.divamodarchive.com/index.php?title=DivaScript&amp;diff=157</id>
		<title>DivaScript</title>
		<link rel="alternate" type="text/html" href="https://docs.divamodarchive.com/index.php?title=DivaScript&amp;diff=157"/>
		<updated>2025-09-27T10:54:04Z</updated>

		<summary type="html">&lt;p&gt;GGAB3: Improved formatting&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;DivaScript&#039;&#039; (commonly referred to as &#039;&#039;DSC&#039;&#039;) is the file format used by all the &#039;&#039;Project DIVA&#039;&#039; games for storing various commands related to Music Videos/PVs and Rhythm Game Charts.&lt;br /&gt;
&lt;br /&gt;
The data inside &amp;lt;code&amp;gt;.dsc&amp;lt;/code&amp;gt; files is stored in a binary format. This means that they can not be edited with a text editor and instead require specialized programs that can decode them such as [[DSC Studio]] or [[ScriptEditor]]. Additionally, &amp;lt;code&amp;gt;.dsc&amp;lt;/code&amp;gt; files from &#039;&#039;Project DIVA F2nd&#039;&#039; and &#039;&#039;Project DIVA X&#039;&#039; are encrypted using DIVAFILE encryption. They need to be decrypted before editing.&lt;br /&gt;
&lt;br /&gt;
== DSC Formats ==&lt;br /&gt;
Every &#039;&#039;Project DIVA&#039;&#039; game uses a specific DivaScript format. The exact format of a &amp;lt;code&amp;gt;.dsc&amp;lt;/code&amp;gt; file is determined by the first 4 bytes of the file.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|}&amp;lt;!-- Needs an actual list of all the formats and their DSC headers. --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== List of DSC Commands &#039;&#039;(Incomplete)&#039;&#039; ==&lt;br /&gt;
List of commands that can be used in FT, F, F2/X DSC formats. Format-exclusive commands are marked individually.&lt;br /&gt;
&lt;br /&gt;
=== AGEAGE_CTRL ===&lt;br /&gt;
Controls the effect for the hair of the module &amp;quot;AgeAge Again&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
AFT: &amp;lt;code&amp;gt;AGEAGE_CTRL(chara, side, unk1, scale, unk2, unk3, -1, -1);&amp;lt;/code&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
!Parameter&lt;br /&gt;
!Description&lt;br /&gt;
!Required&lt;br /&gt;
!Type&lt;br /&gt;
|-&lt;br /&gt;
|chara&lt;br /&gt;
|Character slot&lt;br /&gt;
|True&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|side&lt;br /&gt;
|Side to control&lt;br /&gt;
|True&lt;br /&gt;
|enum: &lt;br /&gt;
0: both&lt;br /&gt;
1: left&lt;br /&gt;
2: right&lt;br /&gt;
|-&lt;br /&gt;
|unk1&lt;br /&gt;
|Unknown&lt;br /&gt;
|True&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|scale&lt;br /&gt;
|Effect scale&lt;br /&gt;
|True&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|unk2&lt;br /&gt;
|Unknown&lt;br /&gt;
|False&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|unk3&lt;br /&gt;
|Unknown&lt;br /&gt;
|True&lt;br /&gt;
|int&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== BAR_TIME_SET ===&lt;br /&gt;
Sets the length of a measure.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;BAR_TIME_SET(bpm, beats);&amp;lt;/code&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
!Parameter&lt;br /&gt;
!Description&lt;br /&gt;
!Required&lt;br /&gt;
!Type&lt;br /&gt;
|-&lt;br /&gt;
|bpm&lt;br /&gt;
|Beats per minute&lt;br /&gt;
|True&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|beats&lt;br /&gt;
|Number of quarter note beats minus 1. eg.: &amp;lt;code&amp;gt;3&amp;lt;/code&amp;gt; for 4/4.&lt;br /&gt;
|True&lt;br /&gt;
|int&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== BLOOM ===&lt;br /&gt;
Sets data from &amp;lt;code&amp;gt;bloom&amp;lt;/code&amp;gt; pv_param.&lt;br /&gt;
&lt;br /&gt;
AFT, F2, X: &amp;lt;code&amp;gt;BLOOM(id, unk);&amp;lt;/code&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
!Parameter&lt;br /&gt;
!Description&lt;br /&gt;
!Required&lt;br /&gt;
!Type&lt;br /&gt;
|-&lt;br /&gt;
|id&lt;br /&gt;
|ID matching the data in pv_param.&lt;br /&gt;
|True&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|unk&lt;br /&gt;
|Unknown&lt;br /&gt;
|True&lt;br /&gt;
|int&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== CHANGE_FIELD ===&lt;br /&gt;
Changes the field defined in &amp;lt;code&amp;gt;pv_field&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;pv_db&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;CHANGE_FIELD(id);&amp;lt;/code&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
!Parameter&lt;br /&gt;
!Description&lt;br /&gt;
!Required&lt;br /&gt;
!Type&lt;br /&gt;
|-&lt;br /&gt;
|id&lt;br /&gt;
|ID matching the field number in &amp;lt;code&amp;gt;pv_field&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;pv_db&amp;lt;/code&amp;gt;.&lt;br /&gt;
|True&lt;br /&gt;
|int&lt;br /&gt;
|}&lt;br /&gt;
F2, X: &amp;lt;code&amp;gt;CHANGE_FIELD(id, unk);&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== CHARA_SIZE ===&lt;br /&gt;
Sets a character&#039;s scale/size.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;CHARA_SIZE(chara, size);&amp;lt;/code&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
!Parameter&lt;br /&gt;
!Description&lt;br /&gt;
!Required&lt;br /&gt;
!Type&lt;br /&gt;
|-&lt;br /&gt;
|chara&lt;br /&gt;
|Character slot&lt;br /&gt;
|True&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|size&lt;br /&gt;
|Character scale&lt;br /&gt;
|True&lt;br /&gt;
|int&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== END ===&lt;br /&gt;
Ends reading of the script.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;END();&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== HAND_SCALE ===&lt;br /&gt;
Set the size of a character&#039;s hand.&lt;br /&gt;
&lt;br /&gt;
AFT: &amp;lt;code&amp;gt;HAND_SCALE(chara, hand, scale);&amp;lt;/code&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
!Parameter&lt;br /&gt;
!Description&lt;br /&gt;
!Required&lt;br /&gt;
!Type&lt;br /&gt;
|-&lt;br /&gt;
|chara&lt;br /&gt;
|Character slot&lt;br /&gt;
|True&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|hand&lt;br /&gt;
|Which hand&lt;br /&gt;
|True&lt;br /&gt;
|enum:&lt;br /&gt;
1: left&lt;br /&gt;
2: right&lt;br /&gt;
|-&lt;br /&gt;
|scale&lt;br /&gt;
|Hand scale in percentage times 10; eg. for &amp;lt;code&amp;gt;105%&amp;lt;/code&amp;gt; use &amp;lt;code&amp;gt;1050&amp;lt;/code&amp;gt;&lt;br /&gt;
|True&lt;br /&gt;
|int&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== LYRIC ===&lt;br /&gt;
Displays a lyric from &amp;lt;code&amp;gt;pv_db&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;LYRIC(id, color);&amp;lt;/code&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
!Parameter&lt;br /&gt;
!Description&lt;br /&gt;
!Required&lt;br /&gt;
!Type&lt;br /&gt;
|-&lt;br /&gt;
|id&lt;br /&gt;
|ID matching the number of a lyric in &amp;lt;code&amp;gt;pv_db&amp;lt;/code&amp;gt;.&lt;br /&gt;
Use &amp;lt;code&amp;gt;-1&amp;lt;/code&amp;gt; as &amp;quot;disable&amp;quot;.&lt;br /&gt;
|True&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|color&lt;br /&gt;
|&amp;lt;code&amp;gt;#AARRGGBB&amp;lt;/code&amp;gt; hex color code converted to decimal.&lt;br /&gt;
eg.: for a red lyric the command would be &amp;lt;code&amp;gt;LYRIC(id, 16711680);&amp;lt;/code&amp;gt; because&lt;br /&gt;
Red: &amp;lt;code&amp;gt;#00FF0000&amp;lt;/code&amp;gt; → &amp;lt;code&amp;gt;0x00ff0000&amp;lt;/code&amp;gt; → &amp;lt;code&amp;gt;16711680&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Default: &amp;lt;code&amp;gt;-1&amp;lt;/code&amp;gt;&lt;br /&gt;
|False&lt;br /&gt;
|int&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== MIKU_DISP ===&lt;br /&gt;
Show or hide a character in a PV.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;MIKU_DISP(chara, disp);&amp;lt;/code&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
!Parameter&lt;br /&gt;
!Description&lt;br /&gt;
!Required&lt;br /&gt;
!Type&lt;br /&gt;
|-&lt;br /&gt;
|chara&lt;br /&gt;
|Character slot&lt;br /&gt;
|True&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|disp&lt;br /&gt;
|Whether to display the character or not. &lt;br /&gt;
|True&lt;br /&gt;
|bool&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== MIKU_MOVE ===&lt;br /&gt;
Moves a character in 3D space in a PV.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;MIKU_MOVE(chara, x, y, z);&amp;lt;/code&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
!Parameter&lt;br /&gt;
!Description&lt;br /&gt;
!Required&lt;br /&gt;
!Type&lt;br /&gt;
|-&lt;br /&gt;
|chara&lt;br /&gt;
|Character slot&lt;br /&gt;
|True&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|x&lt;br /&gt;
|X coordinate&lt;br /&gt;
|True&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|y&lt;br /&gt;
|Y coordinate&lt;br /&gt;
|True&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|z&lt;br /&gt;
|Z coordinate&lt;br /&gt;
|True&lt;br /&gt;
|int&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== MIKU_ROT ===&lt;br /&gt;
Rotates a character in a PV.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;MIKU_ROT(chara, angle);&amp;lt;/code&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
!Parameter&lt;br /&gt;
!Description&lt;br /&gt;
!Required&lt;br /&gt;
!Type&lt;br /&gt;
|-&lt;br /&gt;
|chara&lt;br /&gt;
|Character slot&lt;br /&gt;
|True&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|angle&lt;br /&gt;
|Angle value&lt;br /&gt;
|True&lt;br /&gt;
|int&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== MIKU_SHADOW ===&lt;br /&gt;
Show or hide a character&#039;s shadow in a PV.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;MIKU_SHADOW(chara, disp);&amp;lt;/code&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
!Parameter&lt;br /&gt;
!Description&lt;br /&gt;
!Required&lt;br /&gt;
!Type&lt;br /&gt;
|-&lt;br /&gt;
|chara&lt;br /&gt;
|Character slot&lt;br /&gt;
|True&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|disp&lt;br /&gt;
|Whether to display the character&#039;s shadow or not. &lt;br /&gt;
|True&lt;br /&gt;
|bool&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== MODE_SELECT ===&lt;br /&gt;
Starts or ends a special chart segment, such as Chance Time.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;MODE_SELECT(difficulty, mode);&amp;lt;/code&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
!Parameter&lt;br /&gt;
!Description&lt;br /&gt;
!Required&lt;br /&gt;
!Type&lt;br /&gt;
|-&lt;br /&gt;
|difficulty&lt;br /&gt;
|Indicates under what difficulties the command will trigger in this exact script.&lt;br /&gt;
This value is a bit flag corresponding to a group of difficulties:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; - Easy&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;2&amp;lt;/code&amp;gt; - Normal&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;4&amp;lt;/code&amp;gt; - Hard&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;8&amp;lt;/code&amp;gt; - Extreme&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;16&amp;lt;/code&amp;gt; - Encore&lt;br /&gt;
&lt;br /&gt;
Adding the values up to each other results in a group: &amp;lt;code&amp;gt;6&amp;lt;/code&amp;gt;:Hard(4) and Normal (2).&lt;br /&gt;
&lt;br /&gt;
Use &amp;lt;code&amp;gt;31&amp;lt;/code&amp;gt; as a universal value (works on any difficulty).&lt;br /&gt;
|True&lt;br /&gt;
|bitfield enum&lt;br /&gt;
|-&lt;br /&gt;
|mode&lt;br /&gt;
|What segment to start/end:&lt;br /&gt;
&amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; - Challenge Time (Arcade games) / Chance Time (Console games) Start&lt;br /&gt;
&amp;lt;code&amp;gt;3&amp;lt;/code&amp;gt; - Challenge Time (Arcade games) / Chance Time (Console games) End&lt;br /&gt;
&amp;lt;code&amp;gt;8&amp;lt;/code&amp;gt; - Technical Zone Start&lt;br /&gt;
&amp;lt;code&amp;gt;9&amp;lt;/code&amp;gt; - Technical Zone End&lt;br /&gt;
Only used by the [https://divamodarchive.com/post/169 New Classics mod]:&lt;br /&gt;
&amp;lt;code&amp;gt;4&amp;lt;/code&amp;gt; - Chance Time Start&lt;br /&gt;
&amp;lt;code&amp;gt;5&amp;lt;/code&amp;gt; - Chance Time End&lt;br /&gt;
|True&lt;br /&gt;
|enum&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== MOVIE_CUT_CHG ===&lt;br /&gt;
Play, show or hide the movie defined in &amp;lt;code&amp;gt;pv_db&amp;lt;/code&amp;gt; or a movie from &amp;lt;code&amp;gt;movie.list&amp;lt;/code&amp;gt; in &amp;lt;code&amp;gt;pv_db&amp;lt;/code&amp;gt;. It can be used as a fancier version of both &amp;lt;code&amp;gt;MOVIE_DISP&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;MOVIE_PLAY&amp;lt;/code&amp;gt; that allows more control. &lt;br /&gt;
&lt;br /&gt;
AFT: &amp;lt;code&amp;gt;MOVIE_CUT_CHG(id, disp);&amp;lt;/code&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
!Parameter&lt;br /&gt;
!Description&lt;br /&gt;
!Required&lt;br /&gt;
!Type&lt;br /&gt;
|-&lt;br /&gt;
|id&lt;br /&gt;
|The number in &amp;lt;code&amp;gt;movie.list&amp;lt;/code&amp;gt; of the movie to be played.&lt;br /&gt;
Playback starts at the moment the command is called for a newly called &amp;lt;code&amp;gt;movie.list&amp;lt;/code&amp;gt; item. Re-calling a movie again doesn&#039;t play it from the starting position.&lt;br /&gt;
|True&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|disp&lt;br /&gt;
|&amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; - display the movie layer&lt;br /&gt;
Any other value - hide the movie layer (playback keeps going)&lt;br /&gt;
|True&lt;br /&gt;
|bool&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== MOVIE_DISP ===&lt;br /&gt;
Show or hide the movie layer in a PV.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;MOVIE_DISP(disp);&amp;lt;/code&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
!Parameter&lt;br /&gt;
!Description&lt;br /&gt;
!Required&lt;br /&gt;
!Type&lt;br /&gt;
|-&lt;br /&gt;
|disp&lt;br /&gt;
|&amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; - display the movie layer&lt;br /&gt;
Any other value - hide the movie layer (playback keeps going)&lt;br /&gt;
|True&lt;br /&gt;
|bool&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== MOVIE_PLAY ===&lt;br /&gt;
Start playing the movie defined in &amp;lt;code&amp;gt;pv_db&amp;lt;/code&amp;gt; or the first movie in &amp;lt;code&amp;gt;movie.list&amp;lt;/code&amp;gt; in &amp;lt;code&amp;gt;pv_db&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;MOVIE_PLAY(play);&amp;lt;/code&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
!Parameter&lt;br /&gt;
!Description&lt;br /&gt;
!Required&lt;br /&gt;
!Type&lt;br /&gt;
|-&lt;br /&gt;
|play&lt;br /&gt;
|&amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; - plays the movie&lt;br /&gt;
Any other value doesn&#039;t do anything.&lt;br /&gt;
|True&lt;br /&gt;
|bool&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== MUSIC_PLAY ===&lt;br /&gt;
Starts playing the song file defined in &amp;lt;code&amp;gt;pv_db&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;MUSIC_PLAY();&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== SCENE_FADE ===&lt;br /&gt;
Plays a screen fade effect during PVs.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;SCENE_FADE(speed, start, end, r, g, b)&amp;lt;/code&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
!Parameter&lt;br /&gt;
!Description&lt;br /&gt;
!Required&lt;br /&gt;
!Type&lt;br /&gt;
|-&lt;br /&gt;
|speed&lt;br /&gt;
|Fade duration in seconds&lt;br /&gt;
eg:&lt;br /&gt;
&amp;lt;code&amp;gt;1000&amp;lt;/code&amp;gt;: 1 second&lt;br /&gt;
&amp;lt;code&amp;gt;800&amp;lt;/code&amp;gt;: 0.8 seconds&lt;br /&gt;
|True&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|start&lt;br /&gt;
|The opacity the fade will start with&lt;br /&gt;
&amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt;: fully transparent&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;1000&amp;lt;/code&amp;gt;: fully opaque&lt;br /&gt;
|True&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|end&lt;br /&gt;
|The opacity the fade will end with&lt;br /&gt;
&amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt;: fully transparent&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;1000&amp;lt;/code&amp;gt;: fully opaque&lt;br /&gt;
|True&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|r&lt;br /&gt;
|Red color component scale, from 0 to 1000&lt;br /&gt;
|True&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|g&lt;br /&gt;
|Green color component scale, from 0 to 1000&lt;br /&gt;
|True&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|b&lt;br /&gt;
|Blue color component scale, from 0 to 1000&lt;br /&gt;
|True&lt;br /&gt;
|int&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;!-- Please keep all the commands in alphabetical order!! --&amp;gt;&lt;/div&gt;</summary>
		<author><name>GGAB3</name></author>
	</entry>
	<entry>
		<id>https://docs.divamodarchive.com/index.php?title=DivaScript&amp;diff=156</id>
		<title>DivaScript</title>
		<link rel="alternate" type="text/html" href="https://docs.divamodarchive.com/index.php?title=DivaScript&amp;diff=156"/>
		<updated>2025-09-27T10:48:39Z</updated>

		<summary type="html">&lt;p&gt;GGAB3: added MIKU_ROT, MIKU_DISP, MIKU_MOVE, MIKU_SHADOW, MOVIE_ commands. Improved some descriptions.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;DivaScript&#039;&#039; (commonly referred to as &#039;&#039;DSC&#039;&#039;) is the file format used by all the &#039;&#039;Project DIVA&#039;&#039; games for storing various commands related to Music Videos/PVs and Rhythm Game Charts.&lt;br /&gt;
&lt;br /&gt;
The data inside &amp;lt;code&amp;gt;.dsc&amp;lt;/code&amp;gt; files is stored in a binary format. This means that they can not be edited with a text editor and instead require specialized programs that can decode them such as [[DSC Studio]] or [[ScriptEditor]]. Additionally, &amp;lt;code&amp;gt;.dsc&amp;lt;/code&amp;gt; files from &#039;&#039;Project DIVA F2nd&#039;&#039; and &#039;&#039;Project DIVA X&#039;&#039; are encrypted using DIVAFILE encryption. They need to be decrypted before editing.&lt;br /&gt;
&lt;br /&gt;
== DSC Formats ==&lt;br /&gt;
Every &#039;&#039;Project DIVA&#039;&#039; game uses a specific DivaScript format. The exact format of a &amp;lt;code&amp;gt;.dsc&amp;lt;/code&amp;gt; file is determined by the first 4 bytes of the file.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|}&amp;lt;!-- Needs an actual list of all the formats and their DSC headers. --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== List of DSC Commands &#039;&#039;(Incomplete)&#039;&#039; ==&lt;br /&gt;
List of commands that can be used in FT, F, F2/X DSC formats. Format-exclusive commands are marked individually.&lt;br /&gt;
&lt;br /&gt;
=== AGEAGE_CTRL ===&lt;br /&gt;
Controls the effect for the hair of the module &amp;quot;AgeAge Again&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
AFT: &amp;lt;code&amp;gt;AGEAGE_CTRL(chara, side, unk1, scale, unk2, unk3, -1, -1);&amp;lt;/code&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
!Parameter&lt;br /&gt;
!Description&lt;br /&gt;
!Required&lt;br /&gt;
!Type&lt;br /&gt;
|-&lt;br /&gt;
|chara&lt;br /&gt;
|Character slot&lt;br /&gt;
|True&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|side&lt;br /&gt;
|Side to control&lt;br /&gt;
|True&lt;br /&gt;
|enum: &lt;br /&gt;
0: both&lt;br /&gt;
1: left&lt;br /&gt;
2: right&lt;br /&gt;
|-&lt;br /&gt;
|unk1&lt;br /&gt;
|Unknown&lt;br /&gt;
|True&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|scale&lt;br /&gt;
|Effect scale&lt;br /&gt;
|True&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|unk2&lt;br /&gt;
|Unknown&lt;br /&gt;
|False&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|unk3&lt;br /&gt;
|Unknown&lt;br /&gt;
|True&lt;br /&gt;
|int&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== BAR_TIME_SET ===&lt;br /&gt;
Sets the length of a measure.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;BAR_TIME_SET(bpm, beats);&amp;lt;/code&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
!Parameter&lt;br /&gt;
!Description&lt;br /&gt;
!Required&lt;br /&gt;
!Type&lt;br /&gt;
|-&lt;br /&gt;
|bpm&lt;br /&gt;
|Beats per minute&lt;br /&gt;
|True&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|beats&lt;br /&gt;
|Number of quarter note beats minus 1. eg.: &amp;lt;code&amp;gt;3&amp;lt;/code&amp;gt; for 4/4.&lt;br /&gt;
|True&lt;br /&gt;
|int&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== BLOOM ===&lt;br /&gt;
Sets data from &amp;lt;code&amp;gt;bloom&amp;lt;/code&amp;gt; pv_param.&lt;br /&gt;
&lt;br /&gt;
AFT, F2, X: &amp;lt;code&amp;gt;BLOOM(id, unk);&amp;lt;/code&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
!Parameter&lt;br /&gt;
!Description&lt;br /&gt;
!Required&lt;br /&gt;
!Type&lt;br /&gt;
|-&lt;br /&gt;
|id&lt;br /&gt;
|ID matching the data in pv_param.&lt;br /&gt;
|True&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|unk&lt;br /&gt;
|Unknown&lt;br /&gt;
|True&lt;br /&gt;
|int&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== CHANGE_FIELD ===&lt;br /&gt;
Changes the field defined in &amp;lt;code&amp;gt;pv_field&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;pv_db&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;CHANGE_FIELD(id);&amp;lt;/code&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
!Parameter&lt;br /&gt;
!Description&lt;br /&gt;
!Required&lt;br /&gt;
!Type&lt;br /&gt;
|-&lt;br /&gt;
|id&lt;br /&gt;
|ID matching the field number in &amp;lt;code&amp;gt;pv_field&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;pv_db&amp;lt;/code&amp;gt;.&lt;br /&gt;
|True&lt;br /&gt;
|int&lt;br /&gt;
|}&lt;br /&gt;
F2, X: &amp;lt;code&amp;gt;CHANGE_FIELD(id, unk);&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== CHARA_SIZE ===&lt;br /&gt;
Sets a character&#039;s scale/size.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;CHARA_SIZE(chara, size);&amp;lt;/code&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
!Parameter&lt;br /&gt;
!Description&lt;br /&gt;
!Required&lt;br /&gt;
!Type&lt;br /&gt;
|-&lt;br /&gt;
|chara&lt;br /&gt;
|Character slot&lt;br /&gt;
|True&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|size&lt;br /&gt;
|Character scale&lt;br /&gt;
|True&lt;br /&gt;
|int&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== END ===&lt;br /&gt;
Ends reading of the script.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;END();&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== HAND_SCALE ===&lt;br /&gt;
Set the size of a character&#039;s hand.&lt;br /&gt;
&lt;br /&gt;
AFT: &amp;lt;code&amp;gt;HAND_SCALE(chara, hand, scale);&amp;lt;/code&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
!Parameter&lt;br /&gt;
!Description&lt;br /&gt;
!Required&lt;br /&gt;
!Type&lt;br /&gt;
|-&lt;br /&gt;
|chara&lt;br /&gt;
|Character slot&lt;br /&gt;
|True&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|hand&lt;br /&gt;
|Which hand&lt;br /&gt;
|True&lt;br /&gt;
|enum:&lt;br /&gt;
1: left&lt;br /&gt;
2: right&lt;br /&gt;
|-&lt;br /&gt;
|scale&lt;br /&gt;
|Hand scale in percentage times 10; eg. for &amp;lt;code&amp;gt;105%&amp;lt;/code&amp;gt; use &amp;lt;code&amp;gt;1050&amp;lt;/code&amp;gt;&lt;br /&gt;
|True&lt;br /&gt;
|int&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== LYRIC ===&lt;br /&gt;
Displays a lyric from &amp;lt;code&amp;gt;pv_db&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;LYRIC(id, color);&amp;lt;/code&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
!Parameter&lt;br /&gt;
!Description&lt;br /&gt;
!Required&lt;br /&gt;
!Type&lt;br /&gt;
|-&lt;br /&gt;
|id&lt;br /&gt;
|ID matching the number of a lyric in &amp;lt;code&amp;gt;pv_db&amp;lt;/code&amp;gt;.&lt;br /&gt;
Use &amp;lt;code&amp;gt;-1&amp;lt;/code&amp;gt; as &amp;quot;disable&amp;quot;.&lt;br /&gt;
|True&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|color&lt;br /&gt;
|&amp;lt;code&amp;gt;#AARRGGBB&amp;lt;/code&amp;gt; hex color code converted to decimal.&lt;br /&gt;
eg.: for a red lyric the command would be &amp;lt;code&amp;gt;LYRIC(id, 16711680);&amp;lt;/code&amp;gt; because&lt;br /&gt;
Red: &amp;lt;code&amp;gt;#00FF0000&amp;lt;/code&amp;gt; → &amp;lt;code&amp;gt;0x00ff0000&amp;lt;/code&amp;gt; → &amp;lt;code&amp;gt;16711680&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Default: &amp;lt;code&amp;gt;-1&amp;lt;/code&amp;gt;&lt;br /&gt;
|False&lt;br /&gt;
|int&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== MIKU_DISP ===&lt;br /&gt;
Show or hide a character in a PV.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;MIKU_DISP(chara, disp);&amp;lt;/code&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
!Parameter&lt;br /&gt;
!Description&lt;br /&gt;
!Required&lt;br /&gt;
!Type&lt;br /&gt;
|-&lt;br /&gt;
|chara&lt;br /&gt;
|Character slot&lt;br /&gt;
|True&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|disp&lt;br /&gt;
|Whether to display the character or not. &lt;br /&gt;
|True&lt;br /&gt;
|bool&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== MIKU_MOVE ===&lt;br /&gt;
Moves a character in 3D space in a PV.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;MIKU_MOVE(chara, x, y, z);&amp;lt;/code&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
!Parameter&lt;br /&gt;
!Description&lt;br /&gt;
!Required&lt;br /&gt;
!Type&lt;br /&gt;
|-&lt;br /&gt;
|chara&lt;br /&gt;
|Character slot&lt;br /&gt;
|True&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|x&lt;br /&gt;
|X coordinate&lt;br /&gt;
|True&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|y&lt;br /&gt;
|Y coordinate&lt;br /&gt;
|True&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|z&lt;br /&gt;
|Z coordinate&lt;br /&gt;
|True&lt;br /&gt;
|int&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== MIKU_ROT ===&lt;br /&gt;
Rotates a character in a PV.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;MIKU_ROT(chara, angle);&amp;lt;/code&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
!Parameter&lt;br /&gt;
!Description&lt;br /&gt;
!Required&lt;br /&gt;
!Type&lt;br /&gt;
|-&lt;br /&gt;
|chara&lt;br /&gt;
|Character slot&lt;br /&gt;
|True&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|angle&lt;br /&gt;
|Angle value&lt;br /&gt;
|True&lt;br /&gt;
|int&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== MIKU_SHADOW ===&lt;br /&gt;
Show or hide a character&#039;s shadow in a PV.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;MIKU_SHADOW(chara, disp);&amp;lt;/code&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
!Parameter&lt;br /&gt;
!Description&lt;br /&gt;
!Required&lt;br /&gt;
!Type&lt;br /&gt;
|-&lt;br /&gt;
|chara&lt;br /&gt;
|Character slot&lt;br /&gt;
|True&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|disp&lt;br /&gt;
|Whether to display the character&#039;s shadow or not. &lt;br /&gt;
|True&lt;br /&gt;
|bool&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== MODE_SELECT ===&lt;br /&gt;
Starts or ends a special chart segment, such as Chance Time.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;MODE_SELECT(difficulty, mode);&amp;lt;/code&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
!Parameter&lt;br /&gt;
!Description&lt;br /&gt;
!Required&lt;br /&gt;
!Type&lt;br /&gt;
|-&lt;br /&gt;
|difficulty&lt;br /&gt;
|Indicates under what difficulties the command will trigger in this exact script.&lt;br /&gt;
This value is a bit flag corresponding to a group of difficulties:&lt;br /&gt;
&amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; - Easy&lt;br /&gt;
&amp;lt;code&amp;gt;2&amp;lt;/code&amp;gt; - Normal&lt;br /&gt;
&amp;lt;code&amp;gt;4&amp;lt;/code&amp;gt; - Hard&lt;br /&gt;
&amp;lt;code&amp;gt;8&amp;lt;/code&amp;gt; - Extreme&lt;br /&gt;
&amp;lt;code&amp;gt;16&amp;lt;/code&amp;gt; - Encore&lt;br /&gt;
Adding the values up to each other results in a group: &amp;lt;code&amp;gt;6&amp;lt;/code&amp;gt;:Hard(4) and Normal (2).&lt;br /&gt;
Use &amp;lt;code&amp;gt;31&amp;lt;/code&amp;gt; as a universal value (works on any difficulty).&lt;br /&gt;
|True&lt;br /&gt;
|bitfield enum&lt;br /&gt;
|-&lt;br /&gt;
|mode&lt;br /&gt;
|What segment to start/end:&lt;br /&gt;
&amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; - Challenge Time (Arcade games) / Chance Time (Console games) Start&lt;br /&gt;
&amp;lt;code&amp;gt;3&amp;lt;/code&amp;gt; - Challenge Time (Arcade games) / Chance Time (Console games) End&lt;br /&gt;
&amp;lt;code&amp;gt;8&amp;lt;/code&amp;gt; - Technical Zone Start&lt;br /&gt;
&amp;lt;code&amp;gt;9&amp;lt;/code&amp;gt; - Technical Zone End&lt;br /&gt;
Only used by the [https://divamodarchive.com/post/169 New Classics mod]:&lt;br /&gt;
&amp;lt;code&amp;gt;4&amp;lt;/code&amp;gt; - Chance Time Start&lt;br /&gt;
&amp;lt;code&amp;gt;5&amp;lt;/code&amp;gt; - Chance Time End&lt;br /&gt;
|True&lt;br /&gt;
|enum&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== MOVIE_CUT_CHG ===&lt;br /&gt;
Play, show or hide the movie defined in &amp;lt;code&amp;gt;pv_db&amp;lt;/code&amp;gt; or a movie from &amp;lt;code&amp;gt;movie.list&amp;lt;/code&amp;gt; in &amp;lt;code&amp;gt;pv_db&amp;lt;/code&amp;gt;. It can be used as a fancier version of both &amp;lt;code&amp;gt;MOVIE_DISP&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;MOVIE_PLAY&amp;lt;/code&amp;gt; that allows more control. &lt;br /&gt;
&lt;br /&gt;
AFT: &amp;lt;code&amp;gt;MOVIE_CUT_CHG(id, disp);&amp;lt;/code&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
!Parameter&lt;br /&gt;
!Description&lt;br /&gt;
!Required&lt;br /&gt;
!Type&lt;br /&gt;
|-&lt;br /&gt;
|id&lt;br /&gt;
|The number in &amp;lt;code&amp;gt;movie.list&amp;lt;/code&amp;gt; of the movie to be played.&lt;br /&gt;
Playback starts at the moment the command is called for a newly called &amp;lt;code&amp;gt;movie.list&amp;lt;/code&amp;gt; item. Re-calling a movie again doesn&#039;t play it from the starting position.&lt;br /&gt;
|True&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|disp&lt;br /&gt;
|&amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; - display the movie layer&lt;br /&gt;
Any other value - hide the movie layer (playback keeps going)&lt;br /&gt;
|True&lt;br /&gt;
|bool&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== MOVIE_DISP ===&lt;br /&gt;
Show or hide the movie layer in a PV.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;MOVIE_DISP(disp);&amp;lt;/code&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
!Parameter&lt;br /&gt;
!Description&lt;br /&gt;
!Required&lt;br /&gt;
!Type&lt;br /&gt;
|-&lt;br /&gt;
|disp&lt;br /&gt;
|&amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; - display the movie layer&lt;br /&gt;
Any other value - hide the movie layer (playback keeps going)&lt;br /&gt;
|True&lt;br /&gt;
|bool&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== MOVIE_PLAY ===&lt;br /&gt;
Start playing the movie defined in &amp;lt;code&amp;gt;pv_db&amp;lt;/code&amp;gt; or the first movie in &amp;lt;code&amp;gt;movie.list&amp;lt;/code&amp;gt; in &amp;lt;code&amp;gt;pv_db&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;MOVIE_PLAY(play);&amp;lt;/code&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
!Parameter&lt;br /&gt;
!Description&lt;br /&gt;
!Required&lt;br /&gt;
!Type&lt;br /&gt;
|-&lt;br /&gt;
|play&lt;br /&gt;
|&amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; - plays the movie&lt;br /&gt;
Any other value doesn&#039;t do anything.&lt;br /&gt;
|True&lt;br /&gt;
|bool&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== MUSIC_PLAY ===&lt;br /&gt;
Starts playing the song file defined in &amp;lt;code&amp;gt;pv_db&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;MUSIC_PLAY();&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== SCENE_FADE ===&lt;br /&gt;
Plays a screen fade effect during PVs.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;SCENE_FADE(speed, start, end, r, g, b)&amp;lt;/code&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
!Parameter&lt;br /&gt;
!Description&lt;br /&gt;
!Required&lt;br /&gt;
!Type&lt;br /&gt;
|-&lt;br /&gt;
|speed&lt;br /&gt;
|Fade duration in seconds&lt;br /&gt;
eg:&lt;br /&gt;
&amp;lt;code&amp;gt;1000&amp;lt;/code&amp;gt;: 1 second&lt;br /&gt;
&amp;lt;code&amp;gt;800&amp;lt;/code&amp;gt;: 0.8 seconds&lt;br /&gt;
|True&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|start&lt;br /&gt;
|The opacity the fade will start with&lt;br /&gt;
&amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt;: fully transparent&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;1000&amp;lt;/code&amp;gt;: fully opaque&lt;br /&gt;
|True&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|end&lt;br /&gt;
|The opacity the fade will end with&lt;br /&gt;
&amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt;: fully transparent&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;1000&amp;lt;/code&amp;gt;: fully opaque&lt;br /&gt;
|True&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|r&lt;br /&gt;
|Red color component scale, from 0 to 1000&lt;br /&gt;
|True&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|g&lt;br /&gt;
|Green color component scale, from 0 to 1000&lt;br /&gt;
|True&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|b&lt;br /&gt;
|Blue color component scale, from 0 to 1000&lt;br /&gt;
|True&lt;br /&gt;
|int&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;!-- Please keep all the commands in alphabetical order!! --&amp;gt;&lt;/div&gt;</summary>
		<author><name>GGAB3</name></author>
	</entry>
	<entry>
		<id>https://docs.divamodarchive.com/index.php?title=DivaScript&amp;diff=128</id>
		<title>DivaScript</title>
		<link rel="alternate" type="text/html" href="https://docs.divamodarchive.com/index.php?title=DivaScript&amp;diff=128"/>
		<updated>2025-09-20T12:50:48Z</updated>

		<summary type="html">&lt;p&gt;GGAB3: Added more DSC commands&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;DivaScript&#039;&#039; (commonly referred to as &#039;&#039;DSC&#039;&#039;) is the file format used by all the &#039;&#039;Project DIVA&#039;&#039; games for storing various commands related to Music Videos/PVs and Rhythm Game Charts.&lt;br /&gt;
&lt;br /&gt;
The data inside &amp;lt;code&amp;gt;.dsc&amp;lt;/code&amp;gt; files is stored in a binary format. This means that they can not be edited with a text editor and instead require specialized programs that can decode them such as [[DSC Studio]] or [[ScriptEditor]]. Additionally, &amp;lt;code&amp;gt;.dsc&amp;lt;/code&amp;gt; files from &#039;&#039;Project DIVA F2nd&#039;&#039; and &#039;&#039;Project DIVA X&#039;&#039; are encrypted using DIVAFILE encryption. They need to be decrypted before editing.&lt;br /&gt;
&lt;br /&gt;
== DSC Formats ==&lt;br /&gt;
Every &#039;&#039;Project DIVA&#039;&#039; game uses a specific DivaScript format. The exact format of a &amp;lt;code&amp;gt;.dsc&amp;lt;/code&amp;gt; file is determined by the first 4 bytes of the file.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|}&amp;lt;!-- Needs an actual list of all the formats and their DSC headers. --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== List of DSC Commands &#039;&#039;(Incomplete)&#039;&#039; ==&lt;br /&gt;
&lt;br /&gt;
=== AGEAGE_CTRL ===&lt;br /&gt;
Controls the effect for the hair of the module &amp;quot;AgeAge Again&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
AFT: &amp;lt;code&amp;gt;AGEAGE_CTRL(chara, side, unk1, scale, unk2, unk3, -1, -1);&amp;lt;/code&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
!Parameter&lt;br /&gt;
!Description&lt;br /&gt;
!Required&lt;br /&gt;
!Type&lt;br /&gt;
|-&lt;br /&gt;
|chara&lt;br /&gt;
|Character slot&lt;br /&gt;
|True&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|side&lt;br /&gt;
|Side to control&lt;br /&gt;
|True&lt;br /&gt;
|enum: &lt;br /&gt;
0: both&lt;br /&gt;
1: left&lt;br /&gt;
2: right&lt;br /&gt;
|-&lt;br /&gt;
|unk1&lt;br /&gt;
|Unknown&lt;br /&gt;
|True&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|scale&lt;br /&gt;
|Effect scale&lt;br /&gt;
|True&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|unk2&lt;br /&gt;
|Unknown&lt;br /&gt;
|False&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|unk3&lt;br /&gt;
|Unknown&lt;br /&gt;
|True&lt;br /&gt;
|int&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== BAR_TIME_SET ===&lt;br /&gt;
Sets the length of a measure.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;BAR_TIME_SET(bpm, beats);&amp;lt;/code&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
!Parameter&lt;br /&gt;
!Description&lt;br /&gt;
!Required&lt;br /&gt;
!Type&lt;br /&gt;
|-&lt;br /&gt;
|bpm&lt;br /&gt;
|Beats per minute&lt;br /&gt;
|True&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|beats&lt;br /&gt;
|Number of quarter note beats minus 1. eg.: &amp;lt;code&amp;gt;3&amp;lt;/code&amp;gt; for 4/4.&lt;br /&gt;
|True&lt;br /&gt;
|int&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== BLOOM ===&lt;br /&gt;
Sets data from &amp;lt;code&amp;gt;bloom&amp;lt;/code&amp;gt; pv_param.&lt;br /&gt;
&lt;br /&gt;
AFT, F2, X: &amp;lt;code&amp;gt;BLOOM(id, unk);&amp;lt;/code&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
!Parameter&lt;br /&gt;
!Description&lt;br /&gt;
!Required&lt;br /&gt;
!Type&lt;br /&gt;
|-&lt;br /&gt;
|id&lt;br /&gt;
|ID matching the data in pv_param.&lt;br /&gt;
|True&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|unk&lt;br /&gt;
|Unknown&lt;br /&gt;
|True&lt;br /&gt;
|int&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== CHANGE_FIELD ===&lt;br /&gt;
Changes the field defined in &amp;lt;code&amp;gt;pv_field&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;pv_db&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;CHANGE_FIELD(id);&amp;lt;/code&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
!Parameter&lt;br /&gt;
!Description&lt;br /&gt;
!Required&lt;br /&gt;
!Type&lt;br /&gt;
|-&lt;br /&gt;
|id&lt;br /&gt;
|ID matching the field number in &amp;lt;code&amp;gt;pv_field&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;pv_db&amp;lt;/code&amp;gt;.&lt;br /&gt;
|True&lt;br /&gt;
|int&lt;br /&gt;
|}&lt;br /&gt;
F2, X: &amp;lt;code&amp;gt;CHANGE_FIELD(id, unk);&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== CHARA_SIZE ===&lt;br /&gt;
Sets a character&#039;s scale/size.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;CHARA_SIZE(chara, size);&amp;lt;/code&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
!Parameter&lt;br /&gt;
!Description&lt;br /&gt;
!Required&lt;br /&gt;
!Type&lt;br /&gt;
|-&lt;br /&gt;
|chara&lt;br /&gt;
|Character slot&lt;br /&gt;
|True&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|size&lt;br /&gt;
|Character scale&lt;br /&gt;
|True&lt;br /&gt;
|int&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== END ===&lt;br /&gt;
Ends reading of the script.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;END();&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== HAND_SCALE ===&lt;br /&gt;
Set the size of a character&#039;s hand.&lt;br /&gt;
&lt;br /&gt;
AFT: &amp;lt;code&amp;gt;HAND_SCALE(chara, hand, scale);&amp;lt;/code&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
!Parameter&lt;br /&gt;
!Description&lt;br /&gt;
!Required&lt;br /&gt;
!Type&lt;br /&gt;
|-&lt;br /&gt;
|chara&lt;br /&gt;
|Character slot&lt;br /&gt;
|True&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|hand&lt;br /&gt;
|Which hand&lt;br /&gt;
|True&lt;br /&gt;
|enum:&lt;br /&gt;
1: left&lt;br /&gt;
2: right&lt;br /&gt;
|-&lt;br /&gt;
|scale&lt;br /&gt;
|Hand scale in percentage times 10; eg.: for &amp;lt;code&amp;gt;105%&amp;lt;/code&amp;gt; use &amp;lt;code&amp;gt;1050&amp;lt;/code&amp;gt;&lt;br /&gt;
|True&lt;br /&gt;
|int&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== LYRIC ===&lt;br /&gt;
Display a lyric from &amp;lt;code&amp;gt;pv_db&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;LYRIC(id, color);&amp;lt;/code&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
!Parameter&lt;br /&gt;
!Description&lt;br /&gt;
!Required&lt;br /&gt;
!Type&lt;br /&gt;
|-&lt;br /&gt;
|id&lt;br /&gt;
|ID matching the number of a lyric in &amp;lt;code&amp;gt;pv_db&amp;lt;/code&amp;gt;.&lt;br /&gt;
Use &amp;lt;code&amp;gt;-1&amp;lt;/code&amp;gt; as &amp;quot;disable&amp;quot;.&lt;br /&gt;
|True&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|color&lt;br /&gt;
|&amp;lt;code&amp;gt;#AARRGGBB&amp;lt;/code&amp;gt; hex color code converted to decimal.&lt;br /&gt;
eg.: for a red lyric the command would be &amp;lt;code&amp;gt;LYRIC(id, 16711680);&amp;lt;/code&amp;gt; because&lt;br /&gt;
Red: &amp;lt;code&amp;gt;#00FF0000&amp;lt;/code&amp;gt; → &amp;lt;code&amp;gt;0x00ff0000&amp;lt;/code&amp;gt; → &amp;lt;code&amp;gt;16711680&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Default: &amp;lt;code&amp;gt;-1&amp;lt;/code&amp;gt;&lt;br /&gt;
|False&lt;br /&gt;
|int&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>GGAB3</name></author>
	</entry>
	<entry>
		<id>https://docs.divamodarchive.com/index.php?title=Documentation&amp;diff=126</id>
		<title>Documentation</title>
		<link rel="alternate" type="text/html" href="https://docs.divamodarchive.com/index.php?title=Documentation&amp;diff=126"/>
		<updated>2025-09-19T18:20:46Z</updated>

		<summary type="html">&lt;p&gt;GGAB3: Added DivaScript&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Assorted information about things from the games and how they work goes here!&lt;br /&gt;
&lt;br /&gt;
== Models ==&lt;br /&gt;
* [[Ex Data]]&lt;br /&gt;
* [[Shaders]]&lt;br /&gt;
* [[Materials]]&lt;br /&gt;
&lt;br /&gt;
== Script ==&lt;br /&gt;
&lt;br /&gt;
* [[DivaScript]]&lt;/div&gt;</summary>
		<author><name>GGAB3</name></author>
	</entry>
	<entry>
		<id>https://docs.divamodarchive.com/index.php?title=DivaScript&amp;diff=125</id>
		<title>DivaScript</title>
		<link rel="alternate" type="text/html" href="https://docs.divamodarchive.com/index.php?title=DivaScript&amp;diff=125"/>
		<updated>2025-09-19T18:18:19Z</updated>

		<summary type="html">&lt;p&gt;GGAB3: Created page with &amp;quot;&amp;#039;&amp;#039;DivaScript&amp;#039;&amp;#039; (commonly referred to as &amp;#039;&amp;#039;DSC&amp;#039;&amp;#039;) is the file format used by all the &amp;#039;&amp;#039;Project DIVA&amp;#039;&amp;#039; games for storing various commands related to Music Videos/PVs and Rhythm Game Charts.  The data inside &amp;lt;code&amp;gt;.dsc&amp;lt;/code&amp;gt; files is stored in a binary format. This means that they can not be edited with a text editor and instead require specialized programs that can decode them such as DSC Studio or ScriptEditor. Additionally, &amp;lt;code&amp;gt;.dsc&amp;lt;/code&amp;gt; files from &amp;#039;&amp;#039;Project...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;DivaScript&#039;&#039; (commonly referred to as &#039;&#039;DSC&#039;&#039;) is the file format used by all the &#039;&#039;Project DIVA&#039;&#039; games for storing various commands related to Music Videos/PVs and Rhythm Game Charts.&lt;br /&gt;
&lt;br /&gt;
The data inside &amp;lt;code&amp;gt;.dsc&amp;lt;/code&amp;gt; files is stored in a binary format. This means that they can not be edited with a text editor and instead require specialized programs that can decode them such as [[DSC Studio]] or [[ScriptEditor]]. Additionally, &amp;lt;code&amp;gt;.dsc&amp;lt;/code&amp;gt; files from &#039;&#039;Project DIVA F2nd&#039;&#039; and &#039;&#039;Project DIVA X&#039;&#039; are encrypted using DIVAFILE encryption. They need to be decrypted before editing.&lt;br /&gt;
&lt;br /&gt;
== DSC Formats ==&lt;br /&gt;
Every &#039;&#039;Project DIVA&#039;&#039; game uses a specific DivaScript format. The exact format of a &amp;lt;code&amp;gt;.dsc&amp;lt;/code&amp;gt; file is determined by the first 4 bytes of the file.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|}&amp;lt;!-- Needs an actual list of all the formats and their DSC headers. --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== List of DSC Commands &#039;&#039;(Incomplete)&#039;&#039; ==&lt;br /&gt;
&lt;br /&gt;
=== AGEAGE_CTRL ===&lt;br /&gt;
Controls the effect for the hair of the module &amp;quot;AgeAge Again&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
AFT: &amp;lt;code&amp;gt;AGEAGE_CTRL(chara, side, unk1, scale, unk2, unk3, -1, -1);&amp;lt;/code&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
!Parameter&lt;br /&gt;
!Description&lt;br /&gt;
!Required&lt;br /&gt;
!Type&lt;br /&gt;
|-&lt;br /&gt;
|chara&lt;br /&gt;
|Character Slot&lt;br /&gt;
|True&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|side&lt;br /&gt;
|Side to control&lt;br /&gt;
|True&lt;br /&gt;
|enum: &lt;br /&gt;
0: both&lt;br /&gt;
1: left&lt;br /&gt;
2: right&lt;br /&gt;
|-&lt;br /&gt;
|unk1&lt;br /&gt;
|Unknown&lt;br /&gt;
|True&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|scale&lt;br /&gt;
|Effect Scale&lt;br /&gt;
|True&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|unk2&lt;br /&gt;
|Unknown&lt;br /&gt;
|False&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|unk3&lt;br /&gt;
|Unknown&lt;br /&gt;
|True&lt;br /&gt;
|int&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== BAR_TIME_SET ===&lt;br /&gt;
Sets the length of a measure.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;BAR_TIME_SET(bpm, beats);&amp;lt;/code&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
!Parameter&lt;br /&gt;
!Description&lt;br /&gt;
!Required&lt;br /&gt;
!Type&lt;br /&gt;
|-&lt;br /&gt;
|bpm&lt;br /&gt;
|Beats per minute&lt;br /&gt;
|True&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|beats&lt;br /&gt;
|Number of quarter note beats minus 1. eg.: &amp;lt;code&amp;gt;3&amp;lt;/code&amp;gt; for 4/4.&lt;br /&gt;
|True&lt;br /&gt;
|int&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== BLOOM ===&lt;br /&gt;
Sets data from &amp;lt;code&amp;gt;bloom&amp;lt;/code&amp;gt; pv_param.&lt;br /&gt;
&lt;br /&gt;
AFT, F2, X: &amp;lt;code&amp;gt;BLOOM(id, unk);&amp;lt;/code&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
!Parameter&lt;br /&gt;
!Description&lt;br /&gt;
!Required&lt;br /&gt;
!Type&lt;br /&gt;
|-&lt;br /&gt;
|id&lt;br /&gt;
|ID matching the data in pv_param.&lt;br /&gt;
|True&lt;br /&gt;
|int&lt;br /&gt;
|-&lt;br /&gt;
|unk&lt;br /&gt;
|Unknown&lt;br /&gt;
|True&lt;br /&gt;
|int&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== CHANGE_FIELD ===&lt;br /&gt;
Changes the field defined in &amp;lt;code&amp;gt;pv_field&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;pv_db&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;CHANGE_FIELD(id);&amp;lt;/code&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
!Parameter&lt;br /&gt;
!Description&lt;br /&gt;
!Required&lt;br /&gt;
!Type&lt;br /&gt;
|-&lt;br /&gt;
|id&lt;br /&gt;
|ID matching the field number in &amp;lt;code&amp;gt;pv_field&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;pv_db&amp;lt;/code&amp;gt;.&lt;br /&gt;
|True&lt;br /&gt;
|int&lt;br /&gt;
|}&lt;br /&gt;
F2, X: &amp;lt;code&amp;gt;CHANGE_FIELD(id, unk);&amp;lt;/code&amp;gt;&lt;/div&gt;</summary>
		<author><name>GGAB3</name></author>
	</entry>
	<entry>
		<id>https://docs.divamodarchive.com/index.php?title=DSC_Studio&amp;diff=124</id>
		<title>DSC Studio</title>
		<link rel="alternate" type="text/html" href="https://docs.divamodarchive.com/index.php?title=DSC_Studio&amp;diff=124"/>
		<updated>2025-09-19T14:00:40Z</updated>

		<summary type="html">&lt;p&gt;GGAB3: TARGET IDs, not TARGET commands for (almost) all the console DIVA games&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;&#039;&#039;DSC Studio&#039;&#039;&#039;&#039;&#039; (formerly known as &#039;&#039;DSC Editor&#039;&#039;) is a cross-platform editor for [[DivaScript]] files (&amp;lt;code&amp;gt;*.dsc&amp;lt;/code&amp;gt;) created by Nastys. It is based off of Samyuu&#039;s &#039;&#039;ScriptEditor&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
&#039;&#039;DSC Studio&#039;&#039; is a browser based program that can be accessed by visiting https://nastys.github.io/dsceditor/. Each browser may have different features depending on what is supported by that browser:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Browser&lt;br /&gt;
!Offline Support&lt;br /&gt;
!Desktop Integration&lt;br /&gt;
!File Associations&lt;br /&gt;
!&amp;quot;Save&amp;quot; Support&lt;br /&gt;
!&amp;quot;Save As... Support&lt;br /&gt;
|-&lt;br /&gt;
|Microsoft Edge&lt;br /&gt;
| &amp;lt;div style=&amp;quot;text-align: center;&amp;quot;&amp;gt; ✓ &amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div style=&amp;quot;text-align: center;&amp;quot;&amp;gt; ✓ &amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div style=&amp;quot;text-align: center;&amp;quot;&amp;gt; ✓ &amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div style=&amp;quot;text-align: center;&amp;quot;&amp;gt; ✓ &amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div style=&amp;quot;text-align: center;&amp;quot;&amp;gt; ✓ &amp;lt;/div&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Google Chrome&lt;br /&gt;
| &amp;lt;div style=&amp;quot;text-align: center;&amp;quot;&amp;gt; ✓ &amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div style=&amp;quot;text-align: center;&amp;quot;&amp;gt; ✓ &amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div style=&amp;quot;text-align: center;&amp;quot;&amp;gt; ✓ &amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div style=&amp;quot;text-align: center;&amp;quot;&amp;gt; ✓ &amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div style=&amp;quot;text-align: center;&amp;quot;&amp;gt; ✓ &amp;lt;/div&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Mozilla Firefox&lt;br /&gt;
| &amp;lt;div style=&amp;quot;text-align: center;&amp;quot;&amp;gt; ✓ &amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div style=&amp;quot;text-align: center;&amp;quot;&amp;gt; ⨉ &amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div style=&amp;quot;text-align: center;&amp;quot;&amp;gt; ⨉ &amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div style=&amp;quot;text-align: center;&amp;quot;&amp;gt; ⨉ &amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div style=&amp;quot;text-align: center;&amp;quot;&amp;gt; ✓ &amp;lt;/div&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Safari&lt;br /&gt;
| &amp;lt;div style=&amp;quot;text-align: center;&amp;quot;&amp;gt; ✓ &amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div style=&amp;quot;text-align: center;&amp;quot;&amp;gt; ⨉ &amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div style=&amp;quot;text-align: center;&amp;quot;&amp;gt; ⨉ &amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div style=&amp;quot;text-align: center;&amp;quot;&amp;gt; ⨉ &amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div style=&amp;quot;text-align: center;&amp;quot;&amp;gt; ✓ &amp;lt;/div&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Brave&lt;br /&gt;
| &amp;lt;div style=&amp;quot;text-align: center;&amp;quot;&amp;gt; ✓ &amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div style=&amp;quot;text-align: center;&amp;quot;&amp;gt; ✓ &amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div style=&amp;quot;text-align: center;&amp;quot;&amp;gt; ⨉ &amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div style=&amp;quot;text-align: center;&amp;quot;&amp;gt; ⨉ &amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div style=&amp;quot;text-align: center;&amp;quot;&amp;gt; ✓ &amp;lt;/div&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
Once the program is loaded, you can either start typing or pasting commands or load in your own [[DivaScript]] file (&amp;lt;code&amp;gt;*.dsc&amp;lt;/code&amp;gt;) . &lt;br /&gt;
&lt;br /&gt;
== Features ==&lt;br /&gt;
&lt;br /&gt;
* An implementation of [https://microsoft.github.io/monaco-editor/ Monaco Editor] with inlay hints and Find &amp;amp; Replace options supporting regular expressions.&lt;br /&gt;
* Bookmarks&lt;br /&gt;
* Removing, isolating, and splitting specific commands&lt;br /&gt;
* Management of &amp;lt;code&amp;gt;TIME();&amp;lt;/code&amp;gt; commands, including normalizing commands and removing unused commands&lt;br /&gt;
* Swapping _OLD motions from &#039;&#039;Hatsune Miku: Project DIVA Arcade&#039;&#039; with their new equivalents (eg. hand and face animations)&lt;br /&gt;
* Exporting specific facial animation related commands into &amp;lt;code&amp;gt;*.DEX&amp;lt;/code&amp;gt; format&lt;br /&gt;
* Converting &amp;lt;code&amp;gt;EDIT_&amp;lt;/code&amp;gt; commands to their standard equivalent&lt;br /&gt;
* Merging commands from more than one &amp;lt;code&amp;gt;*.dsc&amp;lt;/code&amp;gt; file&lt;br /&gt;
* Backwards compatability with Samyuu&#039;s &#039;&#039;ScriptEditor&#039;&#039;, so that saves from &#039;&#039;Edit Mode&#039;&#039; can be converted into &amp;lt;code&amp;gt;*.dsc&amp;lt;/code&amp;gt; format and directly loaded into &#039;&#039;DSC Studio&#039;&#039;&lt;br /&gt;
* Converting TARGET IDs specific to &#039;&#039;Hatsune Miku: Project DIVA 2nd/Extend/Dreamy Theater 2nd/Dreamy Theater Extend/f/F/f2nd/F2nd/X&#039;&#039; for use with the &#039;&#039;New Classics&#039;&#039; mod for &#039;&#039;Hatsune Miku: Project DIVA Mega Mix+&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== External Links ==&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/nastys/nastys.github.io GitHub repository]&lt;br /&gt;
&lt;br /&gt;
[[Category:Tools]]&lt;/div&gt;</summary>
		<author><name>GGAB3</name></author>
	</entry>
</feed>