Merging mods (many images within)

Does the Stream2Update program have any prerequisites? When I launch it, it briefly shows a message about an Unhandled Exception and closes itself before I can finish reading the error message.
 
Does the Stream2Update program have any prerequisites? When I launch it, it briefly shows a message about an Unhandled Exception and closes itself before I can finish reading the error message.

I'm assuming you meant this error?:
Screenshot.png
That's because you're not supposed to run it normally since it's a command-line and not a GUI based tool.

Here's the information on it:
Screenshot 2.png
As you can see, the tool requires for you to input the source of the base game directory.
It also says that if left blank, it will auto-detect it but I think it is failing to do so for some reason.

Regardless, make sure you've got file extensions visible then you need to create a batch script inside the same folder you have ThomasJepp SaintsRow IV Tools. You can do that by creating a new text file and renaming the extension from ".txt" to ".bat". (Example: TJSR-Stream2Update.bat)

Now you need to edit the batch file by opening it with Notepad++
Copy paste the following code: (Make sure to replace the string set in "SRVIDir=" to the location where you've installed the game.)
Code:
@echo off
set ToolDir=%~dp0
set SRIVDir=D:\Games\Steam\steamapps\common\Saints Row IV
echo.
"%ToolDir%ThomasJepp.SaintsRow.Stream2Update.exe" "%SRIVDir%"
echo.
pause

Save the file and make sure you've got all the ".str2_pc" files in the base game directory before you run the batch file and it will be updated successfully.
 
I'm assuming you meant this error?:
View attachment 29489
That's because you're not supposed to run it normally since it's a command-line and not a GUI based tool.

Here's the information on it:
View attachment 29490
As you can see, the tool requires for you to input the source of the base game directory.
It also says that if left blank, it will auto-detect it but I think it is failing to do so for some reason.

Regardless, make sure you've got file extensions visible then you need to create a batch script inside the same folder you have ThomasJepp SaintsRow IV Tools. You can do that by creating a new text file and renaming the extension from ".txt" to ".bat". (Example: TJSR-Stream2Update.bat)

Now you need to edit the batch file by opening it with Notepad++
Copy paste the following code: (Make sure to replace the string set in "SRVIDir=" to the location where you've installed the game.)
Code:
@echo off
set ToolDir=%~dp0
set SRIVDir=D:\Games\Steam\steamapps\common\Saints Row IV
echo.
"%ToolDir%ThomasJepp.SaintsRow.Stream2Update.exe" "%SRIVDir%"
echo.
pause

Save the file and make sure you've got all the ".str2_pc" files in the base game directory before you run the batch file and it will be updated successfully.
Thank you!
 
...the game crashes with the pretty print format.
There's a post from me back when fiddling with SR4 format and checking recently it works there -- however, can confirm now that it crashes with SR2. Haven't played with SR2 format previously so I have no idea that it isn't working there.

Here's how SR4's klassic_radio.XTBL is looking with pretty-print that works on my end --
XML:
<!--
    _eb_'s "Custom_Radio_102_4_Klassic_FM"
 
    Name                Size        Duration
    StatutoryApe        3.83 MB        227724
    PointsOfAuthority    3.37 MB        200321
    TakeALookAround        5.37 MB        319152
    Unstoppable            3.29 MB        195515
    416                    3.22 MB        191439
    FreakOnALeash        4.47 MB        265523
    BreakOnThrough        2.49 MB        147919
    ActAppalled            3.38 MB        200817
    Bliss                3.95 MB        234907
    Abstract            2.65 MB        157611
    Demiurge            6.33 MB        376386
    FastLane            3.51 MB        208759
    Minerva                4.53 MB        269128
    Justin                4.33 MB        257634
    Papercut            3.10 MB        184125
    Nookie                4.48 MB        266097
    GimmeWhatYouGot        2.82 MB        167381
    -->
<root>
    <Table>
        <NewEntity>
            <_Editor>
                <Category>Entries</Category>
            </_Editor>
            <Name>Klassic</Name>
            <Radio_Station_Settings>
                <Intro_percent>40</Intro_percent>
                <Callin_percent>0</Callin_percent>
                <Station_switch>KLASSIC</Station_switch>
                <Outro_percent>40</Outro_percent>
                <Game_display_resource>LOGO_KLASSIC</Game_display_resource>
                <Interface_image>ui_radio_1024_klassic</Interface_image>
            </Radio_Station_Settings>
            <Sweeper_list/>
            <Commercial_list>
                <Info>
                    <Length>111936</Length>
                    <Cue>KLASSIC_READING_AARON</Cue>
                </Info>
                <Info>
                    <Length>126600</Length>
                    <Cue>KLASSIC_READING_IAGO</Cue>
                </Info>
                <Info>
                    <Length>327712</Length>
                    <Cue>KLASSIC_READING_PRIDE</Cue>
                </Info>
                <Info>
                    <Length>264234</Length>
                    <Cue>KLASSIC_READING_ROMEO_BALCONY</Cue>
                </Info>
                <Info>
                    <Length>162899</Length>
                    <Cue>KLASSIC_READING_ROMEO_BALL</Cue>
                </Info>
            </Commercial_list>
            <Station_Playlist>
                <Playlist_entry>Song</Playlist_entry>
                <Playlist_entry>Song</Playlist_entry>
                <Playlist_entry>Song</Playlist_entry>
                <Playlist_entry>Commercial</Playlist_entry>
                <Playlist_entry>Song</Playlist_entry>
            </Station_Playlist>
            <Intro_list>
                <Info>
                    <Length>8370</Length>
                    <Delay>5000</Delay>
                    <Cue>KLASSIC_ARAGONAISE_INTRO_01</Cue>
                </Info>
                <Info>
                    <Length>9952</Length>
                    <Delay>5000</Delay>
                    <Cue>KLASSIC_ARAGONAISE_INTRO_02</Cue>
                </Info>
                <Info>
                    <Length>8384</Length>
                    <Delay>5000</Delay>
                    <Cue>KLASSIC_BARBER_INTRO_01</Cue>
                </Info>
                <Info>
                    <Length>5566</Length>
                    <Delay>5000</Delay>
                    <Cue>KLASSIC_BARBER_INTRO_02</Cue>
                </Info>
                <Info>
                    <Length>5436</Length>
                    <Delay>5000</Delay>
                    <Cue>KLASSIC_BRILLIANTE_INTRO_01</Cue>
                </Info>
                <Info>
                    <Length>6775</Length>
                    <Delay>5000</Delay>
                    <Cue>KLASSIC_BRILLIANTE_INTRO_02</Cue>
                </Info>
                <Info>
                    <Length>8277</Length>
                    <Delay>5000</Delay>
                    <Cue>KLASSIC_DONNA_INTRO_01</Cue>
                </Info>
                <Info>
                    <Length>9705</Length>
                    <Delay>5000</Delay>
                    <Cue>KLASSIC_DONNA_INTRO_02</Cue>
                </Info>
                <Info>
                    <Length>10195</Length>
                    <Delay>5000</Delay>
                    <Cue>KLASSIC_DRACULA_INTRO_01</Cue>
                </Info>
                <Info>
                    <Length>11019</Length>
                    <Delay>5000</Delay>
                    <Cue>KLASSIC_DRACULA_INTRO_02</Cue>
                </Info>
                <Info>
                    <Length>10205</Length>
                    <Delay>5000</Delay>
                    <Cue>KLASSIC_FLEDERMAUS_INTRO_01</Cue>
                </Info>
                <Info>
                    <Length>7581</Length>
                    <Delay>5000</Delay>
                    <Cue>KLASSIC_FLEDERMAUS_INTRO_02</Cue>
                </Info>
                <Info>
                    <Length>4175</Length>
                    <Delay>2000</Delay>
                    <Cue>KLASSIC_GENERIC_INTRO_01</Cue>
                </Info>
                <Info>
                    <Length>6474</Length>
                    <Delay>2500</Delay>
                    <Cue>KLASSIC_GENERIC_INTRO_02</Cue>
                </Info>
                <Info>
                    <Length>7074</Length>
                    <Delay>3000</Delay>
                    <Cue>KLASSIC_GENERIC_INTRO_03</Cue>
                </Info>
                <Info>
                    <Length>6848</Length>
                    <Delay>3000</Delay>
                    <Cue>KLASSIC_GENERIC_INTRO_04</Cue>
                </Info>
                <Info>
                    <Length>6692</Length>
                    <Delay>3000</Delay>
                    <Cue>KLASSIC_GENERIC_INTRO_05</Cue>
                </Info>
                <Info>
                    <Length>14216</Length>
                    <Delay>8000</Delay>
                    <Cue>KLASSIC_GENERIC_INTRO_06</Cue>
                </Info>
                <Info>
                    <Length>9549</Length>
                    <Delay>5000</Delay>
                    <Cue>KLASSIC_GENERIC_INTRO_07</Cue>
                </Info>
                <Info>
                    <Length>9192</Length>
                    <Delay>5000</Delay>
                    <Cue>KLASSIC_GENERIC_INTRO_08</Cue>
                </Info>
                <Info>
                    <Length>6491</Length>
                    <Delay>5000</Delay>
                    <Cue>KLASSIC_GENERIC_INTRO_09</Cue>
                </Info>
                <Info>
                    <Length>9763</Length>
                    <Delay>5000</Delay>
                    <Cue>KLASSIC_GENERIC_INTRO_10</Cue>
                </Info>
                <Info>
                    <Length>10288</Length>
                    <Delay>5000</Delay>
                    <Cue>KLASSIC_GENERIC_INTRO_11</Cue>
                </Info>
                <Info>
                    <Length>3539</Length>
                    <Delay>2500</Delay>
                    <Cue>KLASSIC_GENERIC_INTRO_12</Cue>
                </Info>
                <Info>
                    <Length>4325</Length>
                    <Delay>2500</Delay>
                    <Cue>KLASSIC_GENERIC_INTRO_13</Cue>
                </Info>
                <Info>
                    <Length>9340</Length>
                    <Delay>5000</Delay>
                    <Cue>KLASSIC_GENERIC_INTRO_14</Cue>
                </Info>
                <Info>
                    <Length>8745</Length>
                    <Delay>5000</Delay>
                    <Cue>KLASSIC_GENERIC_INTRO_15</Cue>
                </Info>
                <Info>
                    <Length>6940</Length>
                    <Delay>5000</Delay>
                    <Cue>KLASSIC_HABANERA_INTRO_01</Cue>
                </Info>
                <Info>
                    <Length>6806</Length>
                    <Delay>3200</Delay>
                    <Cue>KLASSIC_HABANERA_INTRO_02</Cue>
                </Info>
                <Info>
                    <Length>9613</Length>
                    <Delay>5000</Delay>
                    <Cue>KLASSIC_JOY_INTRO_01</Cue>
                </Info>
                <Info>
                    <Length>11710</Length>
                    <Delay>5000</Delay>
                    <Cue>KLASSIC_JOY_INTRO_02</Cue>
                </Info>
                <Info>
                    <Length>7670</Length>
                    <Delay>5000</Delay>
                    <Cue>KLASSIC_LIBERTY_INTRO_01</Cue>
                </Info>
                <Info>
                    <Length>6433</Length>
                    <Delay>5000</Delay>
                    <Cue>KLASSIC_LIBERTY_INTRO_02</Cue>
                </Info>
                <Info>
                    <Length>5775</Length>
                    <Delay>2500</Delay>
                    <Cue>KLASSIC_MARS_INTRO_01</Cue>
                </Info>
                <Info>
                    <Length>11218</Length>
                    <Delay>5000</Delay>
                    <Cue>KLASSIC_MARS_INTRO_02</Cue>
                </Info>
                <Info>
                    <Length>2325</Length>
                    <Delay>1500</Delay>
                    <Cue>KLASSIC_MOUNTAIN_INTRO_01</Cue>
                </Info>
                <Info>
                    <Length>9794</Length>
                    <Delay>5000</Delay>
                    <Cue>KLASSIC_MOUNTAIN_INTRO_02</Cue>
                </Info>
                <Info>
                    <Length>6776</Length>
                    <Delay>3000</Delay>
                    <Cue>KLASSIC_NUTCRACKER_INTRO_01</Cue>
                </Info>
                <Info>
                    <Length>5245</Length>
                    <Delay>3000</Delay>
                    <Cue>KLASSIC_NUTCRACKER_INTRO_02</Cue>
                </Info>
                <Info>
                    <Length>4701</Length>
                    <Delay>2500</Delay>
                    <Cue>KLASSIC_ORPHEUS_INTRO_01</Cue>
                </Info>
                <Info>
                    <Length>7545</Length>
                    <Delay>3000</Delay>
                    <Cue>KLASSIC_ORPHEUS_INTRO_02</Cue>
                </Info>
                <Info>
                    <Length>6247</Length>
                    <Delay>3000</Delay>
                    <Cue>KLASSIC_RADETZKY_INTRO_01</Cue>
                </Info>
                <Info>
                    <Length>6223</Length>
                    <Delay>3000</Delay>
                    <Cue>KLASSIC_RADETZKY_INTRO_02</Cue>
                </Info>
                <Info>
                    <Length>6824</Length>
                    <Delay>3000</Delay>
                    <Cue>KLASSIC_ROYAL_INTRO_02</Cue>
                </Info>
                <Info>
                    <Length>7120</Length>
                    <Delay>3000</Delay>
                    <Cue>KLASSIC_ROYAL_INTRO_01</Cue>
                </Info>
                <Info>
                    <Length>8128</Length>
                    <Delay>5000</Delay>
                    <Cue>KLASSIC_SWAN_INTRO_01</Cue>
                </Info>
                <Info>
                    <Length>8077</Length>
                    <Delay>5000</Delay>
                    <Cue>KLASSIC_SWAN_INTRO_02</Cue>
                </Info>
                <Info>
                    <Length>11495</Length>
                    <Delay>5000</Delay>
                    <Cue>KLASSIC_TOREADORS_INTRO_01</Cue>
                </Info>
                <Info>
                    <Length>9354</Length>
                    <Delay>5000</Delay>
                    <Cue>KLASSIC_TOREADORS_INTRO_02</Cue>
                </Info>
                <Info>
                    <Length>14985</Length>
                    <Delay>13985</Delay>
                    <Cue>KLASSIC_ZINYAK_READING_INTRO</Cue>
                </Info>
            </Intro_list>
            <Outro_list>
                <Info>
                    <Length>5969</Length>
                    <Prestart>2500</Prestart>
                    <Cue>KLASSIC_ARAGONAISE_OUTRO_01</Cue>
                </Info>
                <Info>
                    <Length>11268</Length>
                    <Prestart>2500</Prestart>
                    <Cue>KLASSIC_ARAGONAISE_OUTRO_02</Cue>
                </Info>
                <Info>
                    <Length>3657</Length>
                    <Prestart>2500</Prestart>
                    <Cue>KLASSIC_BARBER_OUTRO_01</Cue>
                </Info>
                <Info>
                    <Length>8912</Length>
                    <Prestart>2500</Prestart>
                    <Cue>KLASSIC_BARBER_OUTRO_02</Cue>
                </Info>
                <Info>
                    <Length>7536</Length>
                    <Prestart>2500</Prestart>
                    <Cue>KLASSIC_BRILLIANTE_OUTRO_01</Cue>
                </Info>
                <Info>
                    <Length>5441</Length>
                    <Prestart>2500</Prestart>
                    <Cue>KLASSIC_BRILLIANTE_OUTRO_02</Cue>
                </Info>
                <Info>
                    <Length>4369</Length>
                    <Prestart>2500</Prestart>
                    <Cue>KLASSIC_DONNA_OUTRO_01</Cue>
                </Info>
                <Info>
                    <Length>5818</Length>
                    <Prestart>2500</Prestart>
                    <Cue>KLASSIC_DONNA_OUTRO_02</Cue>
                </Info>
                <Info>
                    <Length>5732</Length>
                    <Prestart>2500</Prestart>
                    <Cue>KLASSIC_DRACULA_OUTRO_01</Cue>
                </Info>
                <Info>
                    <Length>11098</Length>
                    <Prestart>2500</Prestart>
                    <Cue>KLASSIC_DRACULA_OUTRO_02</Cue>
                </Info>
                <Info>
                    <Length>5014</Length>
                    <Prestart>2500</Prestart>
                    <Cue>KLASSIC_FLEDERMAUS_OUTRO_01</Cue>
                </Info>
                <Info>
                    <Length>6865</Length>
                    <Prestart>2500</Prestart>
                    <Cue>KLASSIC_FLEDERMAUS_OUTRO_02</Cue>
                </Info>
                <Info>
                    <Length>15052</Length>
                    <Prestart>2500</Prestart>
                    <Cue>KLASSIC_HABANERA_OUTRO_01</Cue>
                </Info>
                <Info>
                    <Length>3040</Length>
                    <Prestart>2500</Prestart>
                    <Cue>KLASSIC_HABANERA_OUTRO_02</Cue>
                </Info>
                <Info>
                    <Length>5622</Length>
                    <Prestart>2500</Prestart>
                    <Cue>KLASSIC_JOY_OUTRO_01</Cue>
                </Info>
                <Info>
                    <Length>4507</Length>
                    <Prestart>2500</Prestart>
                    <Cue>KLASSIC_JOY_OUTRO_02</Cue>
                </Info>
                <Info>
                    <Length>5420</Length>
                    <Prestart>2500</Prestart>
                    <Cue>KLASSIC_LIBERTY_OUTRO_01</Cue>
                </Info>
                <Info>
                    <Length>6796</Length>
                    <Prestart>2500</Prestart>
                    <Cue>KLASSIC_LIBERTY_OUTRO_02</Cue>
                </Info>
                <Info>
                    <Length>5956</Length>
                    <Prestart>2500</Prestart>
                    <Cue>KLASSIC_MARS_OUTRO_01</Cue>
                </Info>
                <Info>
                    <Length>8187</Length>
                    <Prestart>2500</Prestart>
                    <Cue>KLASSIC_MARS_OUTRO_02</Cue>
                </Info>
                <Info>
                    <Length>6063</Length>
                    <Prestart>2500</Prestart>
                    <Cue>KLASSIC_MOUNTAIN_OUTRO_01</Cue>
                </Info>
                <Info>
                    <Length>5403</Length>
                    <Prestart>2500</Prestart>
                    <Cue>KLASSIC_MOUNTAIN_OUTRO_02</Cue>
                </Info>
                <Info>
                    <Length>4851</Length>
                    <Prestart>2500</Prestart>
                    <Cue>KLASSIC_NUTCRACKER_OUTRO_01</Cue>
                </Info>
                <Info>
                    <Length>8068</Length>
                    <Prestart>2500</Prestart>
                    <Cue>KLASSIC_NUTCRACKER_OUTRO_02</Cue>
                </Info>
                <Info>
                    <Length>6018</Length>
                    <Prestart>2500</Prestart>
                    <Cue>KLASSIC_ORPHEUS_OUTRO_01</Cue>
                </Info>
                <Info>
                    <Length>9576</Length>
                    <Prestart>2500</Prestart>
                    <Cue>KLASSIC_ORPHEUS_OUTRO_02</Cue>
                </Info>
                <Info>
                    <Length>7296</Length>
                    <Prestart>2500</Prestart>
                    <Cue>KLASSIC_RADETZKY_OUTRO_01</Cue>
                </Info>
                <Info>
                    <Length>7105</Length>
                    <Prestart>2500</Prestart>
                    <Cue>KLASSIC_RADETZKY_OUTRO_02</Cue>
                </Info>
                <Info>
                    <Length>7432</Length>
                    <Prestart>2500</Prestart>
                    <Cue>KLASSIC_ROYAL_OUTRO_01</Cue>
                </Info>
                <Info>
                    <Length>3970</Length>
                    <Prestart>2500</Prestart>
                    <Cue>KLASSIC_ROYAL_OUTRO_02</Cue>
                </Info>
                <Info>
                    <Length>4586</Length>
                    <Prestart>2500</Prestart>
                    <Cue>KLASSIC_SWAN_OUTRO_01</Cue>
                </Info>
                <Info>
                    <Length>5756</Length>
                    <Prestart>2500</Prestart>
                    <Cue>KLASSIC_SWAN_OUTRO_02</Cue>
                </Info>
                <Info>
                    <Length>7247</Length>
                    <Prestart>2500</Prestart>
                    <Cue>KLASSIC_TOREADORS_OUTRO_01</Cue>
                </Info>
                <Info>
                    <Length>5188</Length>
                    <Prestart>2500</Prestart>
                    <Cue>KLASSIC_TOREADORS_OUTRO_02</Cue>
                </Info>
                <Info>
                    <Length>15183</Length>
                    <Prestart>500</Prestart>
                    <Cue>KLASSIC_ZINYAK_BALCONY_OUTRO_01</Cue>
                </Info>
                <Info>
                    <Length>10573</Length>
                    <Prestart>500</Prestart>
                    <Cue>KLASSIC_ZINYAK_BALL_OUTRO_01</Cue>
                </Info>
            </Outro_list>
            <!--Custom_Radio_102_4_Klassic_FM START-->
            <Song_List>
                <!--StatutoryApe-->
                <Info>
                    <Buyable>False</Buyable>
                    <!--<Length>197347</Length> <!--Default-->
                    <Length>227724</Length>
                    <Cue>KLASSIC_ARTIST___DIE_FLEDERMAUS_OVERTURE</Cue>
                    <Intros>
                        <Cue>KLASSIC_FLEDERMAUS_INTRO_01</Cue>
                        <Cue>KLASSIC_FLEDERMAUS_INTRO_02</Cue>
                        <Cue>KLASSIC_GENERIC_INTRO_01</Cue>
                    </Intros>
                    <CallIns/>
                    <Outros>
                        <Cue>KLASSIC_FLEDERMAUS_OUTRO_01</Cue>
                        <Cue>KLASSIC_FLEDERMAUS_OUTRO_02</Cue>
                    </Outros>
                    <Sing_along/>
                </Info>
                <!--PointsOfAuthority-->
                <Info>
                    <Buyable>False</Buyable>
                    <!--<Length>203324</Length> <!--Default-->
                    <Length>200321</Length>
                    <Cue>KLASSIC_ARTIST___SWAN_LAKE_SCENE_FINALE</Cue>
                    <Intros>
                        <Cue>KLASSIC_SWAN_INTRO_01</Cue>
                        <Cue>KLASSIC_SWAN_INTRO_02</Cue>
                        <Cue>KLASSIC_GENERIC_INTRO_02</Cue>
                    </Intros>
                    <CallIns/>
                    <Outros>
                        <Cue>KLASSIC_SWAN_OUTRO_01</Cue>
                        <Cue>KLASSIC_SWAN_OUTRO_02</Cue>
                    </Outros>
                    <Sing_along/>
                </Info>
                <!--TakeALookAround-->
                <Info>
                    <Buyable>False</Buyable>
                    <!--<Length>158010</Length> <!--Default-->
                    <Length>319152</Length>
                    <Cue>KLASSIC_ARTIST___THE_NUTCRACKER_SUITE_OVERTURE</Cue>
                    <Intros>
                        <Cue>KLASSIC_NUTCRACKER_INTRO_01</Cue>
                        <Cue>KLASSIC_NUTCRACKER_INTRO_02</Cue>
                        <Cue>KLASSIC_GENERIC_INTRO_03</Cue>
                    </Intros>
                    <CallIns/>
                    <Outros>
                        <Cue>KLASSIC_NUTCRACKER_OUTRO_01</Cue>
                        <Cue>KLASSIC_NUTCRACKER_OUTRO_02</Cue>
                    </Outros>
                    <Sing_along/>
                </Info>
                <!--Unstoppable-->
                <Info>
                    <Buyable>False</Buyable>
                    <!--<Length>129427</Length> <!--Default-->
                    <Length>195515</Length>
                    <Cue>KLASSIC_ARTIST___ARAGONAISE</Cue>
                    <Intros>
                        <Cue>KLASSIC_ARAGONAISE_INTRO_01</Cue>
                        <Cue>KLASSIC_ARAGONAISE_INTRO_02</Cue>
                        <Cue>KLASSIC_GENERIC_INTRO_04</Cue>
                    </Intros>
                    <CallIns/>
                    <Outros>
                        <Cue>KLASSIC_ARAGONAISE_OUTRO_01</Cue>
                        <Cue>KLASSIC_ARAGONAISE_OUTRO_02</Cue>
                    </Outros>
                    <Sing_along/>
                </Info>
                <!--416-->
                <Info>
                    <Buyable>False</Buyable>
                    <!--<Length>132645</Length> <!--Default-->
                    <Length>191439</Length>
                    <Cue>KLASSIC_ARTIST___CARMEN_SUITE_LES_TOREADORS</Cue>
                    <Intros>
                        <Cue>KLASSIC_TOREADORS_INTRO_01</Cue>
                        <Cue>KLASSIC_TOREADORS_INTRO_02</Cue>
                        <Cue>KLASSIC_GENERIC_INTRO_05</Cue>
                    </Intros>
                    <CallIns/>
                    <Outros>
                        <Cue>KLASSIC_TOREADORS_OUTRO_01</Cue>
                        <Cue>KLASSIC_TOREADORS_OUTRO_02</Cue>
                    </Outros>
                    <Sing_along/>
                </Info>
                <!--FreakOnALeash-->
                <Info>
                    <Buyable>False</Buyable>
                    <!--<Length>136909</Length> <!--Default-->
                    <Length>265523</Length>
                    <Cue>KLASSIC_ARTIST___HABANERA</Cue>
                    <Intros>
                        <Cue>KLASSIC_HABANERA_INTRO_01</Cue>
                        <Cue>KLASSIC_HABANERA_INTRO_02</Cue>
                        <Cue>KLASSIC_GENERIC_INTRO_06</Cue>
                    </Intros>
                    <CallIns/>
                    <Outros>
                        <Cue>KLASSIC_HABANERA_OUTRO_01</Cue>
                        <Cue>KLASSIC_HABANERA_OUTRO_02</Cue>
                    </Outros>
                    <Sing_along/>
                </Info>
                <!--BreakOnThrough-->
                <Info>
                    <Buyable>False</Buyable>
                    <!--<Length>165293</Length> <!--Default-->
                    <Length>147919</Length>
                    <Cue>KLASSIC_ARTIST___DRACULA_PLAYS</Cue>
                    <Intros>
                        <Cue>KLASSIC_DRACULA_INTRO_02</Cue>
                        <Cue>KLASSIC_DRACULA_INTRO_01</Cue>
                        <Cue>KLASSIC_GENERIC_INTRO_07</Cue>
                    </Intros>
                    <CallIns/>
                    <Outros>
                        <Cue>KLASSIC_DRACULA_OUTRO_01</Cue>
                        <Cue>KLASSIC_DRACULA_OUTRO_02</Cue>
                    </Outros>
                    <Sing_along/>
                </Info>
                <!--ActAppalled-->
                <Info>
                    <Buyable>False</Buyable>
                    <!--<Length>117912</Length> <!--Default-->
                    <Length>200817</Length>
                    <Cue>KLASSIC_ARTIST___LA_DONNA_E_MOBILE</Cue>
                    <Intros>
                        <Cue>KLASSIC_DONNA_INTRO_01</Cue>
                        <Cue>KLASSIC_DONNA_INTRO_02</Cue>
                        <Cue>KLASSIC_GENERIC_INTRO_08</Cue>
                    </Intros>
                    <CallIns/>
                    <Outros>
                        <Cue>KLASSIC_DONNA_OUTRO_01</Cue>
                        <Cue>KLASSIC_DONNA_OUTRO_02</Cue>
                    </Outros>
                    <Sing_along/>
                </Info>
                <!--Bliss-->
                <Info>
                    <Buyable>False</Buyable>
                    <!--<Length>252206</Length> <!--Default-->
                    <Length>234907</Length>
                    <Cue>KLASSIC_ARTIST___LARGO_AL_FACTOTUM</Cue>
                    <Intros>
                        <Cue>KLASSIC_GENERIC_INTRO_09</Cue>
                        <Cue>KLASSIC_BARBER_INTRO_01</Cue>
                        <Cue>KLASSIC_BARBER_INTRO_02</Cue>
                    </Intros>
                    <CallIns/>
                    <Outros>
                        <Cue>KLASSIC_BARBER_OUTRO_02</Cue>
                        <Cue>KLASSIC_BARBER_OUTRO_01</Cue>
                    </Outros>
                    <Sing_along/>
                </Info>
                <!--Abstract-->
                <Info>
                    <Buyable>False</Buyable>
                    <!--<Length>206192</Length> <!--Default-->
                    <Length>157611</Length>
                    <Cue>KLASSIC_ARTIST___MARS</Cue>
                    <Intros>
                        <Cue>KLASSIC_MARS_INTRO_01</Cue>
                        <Cue>KLASSIC_MARS_INTRO_02</Cue>
                        <Cue>KLASSIC_GENERIC_INTRO_10</Cue>
                    </Intros>
                    <CallIns/>
                    <Outros>
                        <Cue>KLASSIC_MARS_OUTRO_01</Cue>
                        <Cue>KLASSIC_MARS_OUTRO_02</Cue>
                    </Outros>
                    <Sing_along/>
                </Info>
                <!--Demiurge-->
                <Info>
                    <Buyable>False</Buyable>
                    <!--<Length>151089</Length> <!--Default-->
                    <Length>376386</Length>
                    <Cue>KLASSIC_ARTIST___NIGHT_ON_BARE_MOUNTAIN</Cue>
                    <Intros>
                        <Cue>KLASSIC_MOUNTAIN_INTRO_01</Cue>
                        <Cue>KLASSIC_MOUNTAIN_INTRO_02</Cue>
                        <Cue>KLASSIC_GENERIC_INTRO_11</Cue>
                    </Intros>
                    <CallIns/>
                    <Outros>
                        <Cue>KLASSIC_MOUNTAIN_OUTRO_01</Cue>
                        <Cue>KLASSIC_MOUNTAIN_OUTRO_02</Cue>
                    </Outros>
                    <Sing_along/>
                </Info>
                <!--FastLane-->
                <Info>
                    <Buyable>False</Buyable>
                    <!--<Length>151657</Length> <!--Default-->
                    <Length>208759</Length>
                    <Cue>KLASSIC_ARTIST___ODE_TO_JOY</Cue>
                    <Intros>
                        <Cue>KLASSIC_JOY_INTRO_02</Cue>
                        <Cue>KLASSIC_JOY_INTRO_01</Cue>
                        <Cue>KLASSIC_GENERIC_INTRO_12</Cue>
                    </Intros>
                    <CallIns/>
                    <Outros>
                        <Cue>KLASSIC_JOY_OUTRO_01</Cue>
                        <Cue>KLASSIC_JOY_OUTRO_02</Cue>
                    </Outros>
                    <Sing_along/>
                </Info>
                <!--Minerva-->
                <Info>
                    <Buyable>False</Buyable>
                    <!--<Length>97710</Length> <!--Default-->
                    <Length>269128</Length>
                    <Cue>KLASSIC_ARTIST___ORPHEUS_CAN_CAN</Cue>
                    <Intros>
                        <Cue>KLASSIC_ORPHEUS_INTRO_01</Cue>
                        <Cue>KLASSIC_ORPHEUS_INTRO_02</Cue>
                        <Cue>KLASSIC_GENERIC_INTRO_13</Cue>
                    </Intros>
                    <CallIns/>
                    <Outros>
                        <Cue>KLASSIC_ORPHEUS_OUTRO_01</Cue>
                        <Cue>KLASSIC_ORPHEUS_OUTRO_02</Cue>
                    </Outros>
                    <Sing_along/>
                </Info>
                <!--Justin-->
                <Info>
                    <Buyable>False</Buyable>
                    <!--<Length>207350</Length> <!--Default-->
                    <Length>257634</Length>
                    <Cue>KLASSIC_ARTIST___THE_LIBERTY_BELL</Cue>
                    <Intros>
                        <Cue>KLASSIC_LIBERTY_INTRO_01</Cue>
                        <Cue>KLASSIC_LIBERTY_INTRO_02</Cue>
                        <Cue>KLASSIC_GENERIC_INTRO_14</Cue>
                    </Intros>
                    <CallIns/>
                    <Outros>
                        <Cue>KLASSIC_LIBERTY_OUTRO_01</Cue>
                        <Cue>KLASSIC_LIBERTY_OUTRO_02</Cue>
                    </Outros>
                    <Sing_along/>
                </Info>
                <!--Papercut-->
                <Info>
                    <Buyable>False</Buyable>
                    <!--<Length>174075</Length> <!--Default-->
                    <Length>184125</Length>
                    <Cue>KLASSIC_ARTIST___RADETZKY_MARCH</Cue>
                    <Intros>
                        <Cue>KLASSIC_GENERIC_INTRO_01</Cue>
                        <Cue>KLASSIC_GENERIC_INTRO_15</Cue>
                    </Intros>
                    <CallIns/>
                    <Outros/>
                    <Sing_along/>
                </Info>
                <!--Nookie-->
                <Info>
                    <Buyable>False</Buyable>
                    <!--<Length>107039</Length> <!--Default-->
                    <Length>266097</Length>
                    <Cue>KLASSIC_ARTIST___MUSIC_FOR_THE_ROYAL_FIREWORKS</Cue>
                    <Intros>
                        <Cue>KLASSIC_ROYAL_INTRO_02</Cue>
                        <Cue>KLASSIC_ROYAL_INTRO_01</Cue>
                        <Cue>KLASSIC_GENERIC_INTRO_02</Cue>
                    </Intros>
                    <CallIns/>
                    <Outros>
                        <Cue>KLASSIC_ROYAL_OUTRO_01</Cue>
                        <Cue>KLASSIC_ROYAL_OUTRO_02</Cue>
                    </Outros>
                    <Sing_along/>
                </Info>
                <!--GimmeWhatYouGot-->
                <Info>
                    <Buyable>False</Buyable>
                    <!--<Length>118353</Length> <!--Default-->
                    <Length>167381</Length>
                    <Cue>KLASSIC_ARTIST___VALSE_BRILLIANTE_IN_EB</Cue>
                    <Intros>
                        <Cue>KLASSIC_BRILLIANTE_INTRO_01</Cue>
                        <Cue>KLASSIC_BRILLIANTE_INTRO_02</Cue>
                        <Cue>KLASSIC_GENERIC_INTRO_03</Cue>
                    </Intros>
                    <CallIns/>
                    <Outros>
                        <Cue>KLASSIC_BRILLIANTE_OUTRO_01</Cue>
                        <Cue>KLASSIC_BRILLIANTE_OUTRO_02</Cue>
                    </Outros>
                    <Sing_along/>
                </Info>
            </Song_List>
            <!--Custom_Radio_102_4_Klassic_FM END-->
            <CallIn_list/>
            <Singalong_list/>
        </NewEntity>
    </Table>
    <TableTemplates>
    </TableTemplates>
    <TableDescription>
        <Name>NewEntity</Name>
        <Type>TableDescription</Type>
        <Element>
            <Name>Name</Name>
            <Type>String</Type>
        </Element>
        <Element>
            <Name>Radio_Station_Settings</Name>
            <Type>Element</Type>
            <Display_Name>Settings</Display_Name>
            <Element>
                <Name>Station_switch</Name>
                <Type>Reference</Type>
                <Display_Name>Station</Display_Name>
                <Required>false</Required>
                <Reference>
                    <File>audio_syncs.xtbl</File>
                    <Type>NewEntity.Switches.RADIO_STATIONS.Values.Entry.Name</Type>
                    <OpenSeparate>False</OpenSeparate>
                </Reference>
            </Element>
            <Element>
                <Name>Game_display_resource</Name>
                <Type>String</Type>
                <Display_Name>In-Game Display Resource</Display_Name>
                <Description>This will correspond to an in-game localized string - Leave Blank for no display (Like Hotel Lobby)</Description>
                <Required>false</Required>
                <Default>Station_Name</Default>
            </Element>
            <Element>
                <Name>Intro_percent</Name>
                <Type>Int</Type>
                <Display_Name>Introduction probability</Display_Name>
                <Description>% chance that the intro will be played.
                    If Intro is played, Call-In and Outro will NOT be played.</Description>
                <Default>0</Default>
                <MinValue>0</MinValue>
                <MaxValue>100</MaxValue>
            </Element>
            <Element>
                <Name>Callin_percent</Name>
                <Type>Int</Type>
                <Display_Name>Listener call In probability</Display_Name>
                <Description>% chance that the listener call-in will be played.
                    If ICall-In is played, Intro and Outro will NOT be played.</Description>
                <Default>0</Default>
                <MinValue>0</MinValue>
                <MaxValue>100</MaxValue>
            </Element>
            <Element>
                <Name>Outro_percent</Name>
                <Type>Int</Type>
                <Display_Name>Outro Probability</Display_Name>
                <Description>% chance that the intro will be played.
                    If Outro is played, Intro and  Call-In will NOT be played.</Description>
                <Default>0</Default>
                <MinValue>0</MinValue>
                <MaxValue>100</MaxValue>
            </Element>
            <Element>
                <Name>Interface_image</Name>
                <Type>String</Type>
            </Element>
        </Element>
        <Element>
            <Name>Sweeper_list</Name>
            <Type>Grid</Type>
            <Element>
                <Name>Info</Name>
                <Type>Element</Type>
                <Element>
                    <Name>Length</Name>
                    <Type>Int</Type>
                    <Description>Length of the sweeper in milliseconds.</Description>
                    <Default>0</Default>
                </Element>
                <Element>
                    <Name>Cue</Name>
                    <Type>Reference</Type>
                    <Description>Wwise Name for this sweeper</Description>
                    <Reference>
                        <File>audio_syncs.xtbl</File>
                        <Type>NewEntity.Switches.RADIO_SWEEPERS.Values.Entry.Name</Type>
                        <OpenSeparate>False</OpenSeparate>
                    </Reference>
                </Element>
            </Element>
            <Num_Display_Rows>8</Num_Display_Rows>
        </Element>
        <Element>
            <Name>Commercial_list</Name>
            <Type>Grid</Type>
            <Element>
                <Name>Info</Name>
                <Type>Element</Type>
                <Element>
                    <Name>Length</Name>
                    <Type>Int</Type>
                    <Description>Length of the commercial in milliseconds.</Description>
                    <Default>0</Default>
                </Element>
                <Element>
                    <Name>Cue</Name>
                    <Type>Reference</Type>
                    <Description>Wwise Name for this commercial</Description>
                    <Reference>
                        <File>audio_syncs.xtbl</File>
                        <Type>NewEntity.Switches.RADIO_COMMERCIALS.Values.Entry.Name</Type>
                        <OpenSeparate>False</OpenSeparate>
                    </Reference>
                </Element>
            </Element>
            <Num_Display_Rows>8</Num_Display_Rows>
        </Element>
        <Element>
            <Name>Intro_list</Name>
            <Type>Grid</Type>
            <Element>
                <Name>Info</Name>
                <Type>Element</Type>
                <Element>
                    <Name>Length</Name>
                    <Type>Int</Type>
                    <Description>Length of the Intro in milliseconds.</Description>
                    <Default>0</Default>
                </Element>
                <Element>
                    <Name>Delay</Name>
                    <Type>Int</Type>
                    <Description>Delay before we start the song we are introducing</Description>
                    <Default>0</Default>
                    <MinValue>0</MinValue>
                </Element>
                <Element>
                    <Name>Cue</Name>
                    <Type>Reference</Type>
                    <Description>Wwise Name of this Intro</Description>
                    <Reference>
                        <File>audio_syncs.xtbl</File>
                        <Type>NewEntity.Switches.RADIO_INTROS.Values.Entry.Name</Type>
                        <OpenSeparate>False</OpenSeparate>
                    </Reference>
                </Element>
            </Element>
            <Num_Display_Rows>8</Num_Display_Rows>
        </Element>
        <Element>
            <Name>CallIn_list</Name>
            <Type>Grid</Type>
            <Display_Name>Call In List</Display_Name>
            <Element>
                <Name>Info</Name>
                <Type>Element</Type>
                <Element>
                    <Name>Length</Name>
                    <Type>Int</Type>
                    <Description>Length of this Call in</Description>
                    <Default>0</Default>
                </Element>
                <Element>
                    <Name>Delay</Name>
                    <Type>Int</Type>
                    <Description>Delay before we start the song we are introducing</Description>
                    <Default>0</Default>
                </Element>
                <Element>
                    <Name>Cue</Name>
                    <Type>Reference</Type>
                    <Description>Wwise Name for this Call in</Description>
                    <Reference>
                        <File>audio_syncs.xtbl</File>
                        <Type>NewEntity.Switches.RADIO_CALLINS.Values.Entry.Name</Type>
                        <OpenSeparate>False</OpenSeparate>
                    </Reference>
                </Element>
            </Element>
            <Num_Display_Rows>8</Num_Display_Rows>
        </Element>
        <Element>
            <Name>Outro_list</Name>
            <Type>Grid</Type>
            <Element>
                <Name>Info</Name>
                <Type>Element</Type>
                <Element>
                    <Name>Length</Name>
                    <Type>Int</Type>
                    <Description>Length of this Outro</Description>
                    <Default>0</Default>
                </Element>
                <Element>
                    <Name>Prestart</Name>
                    <Type>Int</Type>
                    <Description>Negative time !!! How far back from the end of the song do we start this Outro clip. Enter a positive number.</Description>
                    <Default>0</Default>
                    <MinValue>0</MinValue>
                </Element>
                <Element>
                    <Name>Cue</Name>
                    <Type>Reference</Type>
                    <Description>Wwise Name of this Outro</Description>
                    <Reference>
                        <File>audio_syncs.xtbl</File>
                        <Type>NewEntity.Switches.RADIO_OUTROS.Values.Entry.Name</Type>
                        <OpenSeparate>False</OpenSeparate>
                    </Reference>
                </Element>
            </Element>
            <Num_Display_Rows>8</Num_Display_Rows>
        </Element>
        <Element>
            <Name>Singalong_list</Name>
            <Type>Grid</Type>
            <Element>
                <Name>Info</Name>
                <Type>Element</Type>
                <Element>
                    <Name>Length</Name>
                    <Type>Int</Type>
                    <Description>Length of this Singalong</Description>
                    <Default>0</Default>
                </Element>
                <Element>
                    <Name>Cue</Name>
                    <Type>Reference</Type>
                    <Description>Wwise Name of this Singalong</Description>
                    <Reference>
                        <File>audio_syncs.xtbl</File>
                        <Type>NewEntity.Switches.RADIO_SING_ALONGS.Values.Entry.Name</Type>
                        <OpenSeparate>False</OpenSeparate>
                    </Reference>
                </Element>
            </Element>
            <Num_Display_Rows>8</Num_Display_Rows>
        </Element>
        <Element>
            <Name>Song_List</Name>
            <Type>Grid</Type>
            <Element>
                <Name>Info</Name>
                <Type>Element</Type>
                <Element>
                    <Name>Buyable</Name>
                    <Type>Selection</Type>
                    <Description>Player can purchase this song for their "My Radio" playlist.</Description>
                    <Default>False</Default>
                    <Choice>True</Choice>
                    <Choice>False</Choice>
                </Element>
                <Element>
                    <Name>Length</Name>
                    <Type>Int</Type>
                    <Description>Length of this Song</Description>
                    <Default>0</Default>
                </Element>
                <Element>
                    <Name>Cue</Name>
                    <Type>Reference</Type>
                    <Reference>
                        <File>audio_syncs.xtbl</File>
                        <Type>NewEntity.Switches.RADIO_SONGS.Values.Entry.Name</Type>
                        <OpenSeparate>False</OpenSeparate>
                    </Reference>
                </Element>
                <Element>
                    <Name>Intros</Name>
                    <Type>Grid</Type>
                    <Element>
                        <Name>Cue</Name>
                        <Type>Reference</Type>
                        <Description>Cue of the possible intros for this song</Description>
                        <Reference>
                            <File>radio_stations\Klassic_radio.xtbl</File>
                            <Type>NewEntity.Intro_list.Info.Cue</Type>
                            <OpenSeparate>False</OpenSeparate>
                        </Reference>
                    </Element>
                    <Num_Display_Rows>8</Num_Display_Rows>
                </Element>
                <Element>
                    <Name>CallIns</Name>
                    <Type>Grid</Type>
                    <Description>Call In cues for this Song</Description>
                    <Element>
                        <Name>Cue</Name>
                        <Type>Reference</Type>
                        <Reference>
                            <File>radio_stations\Klassic_radio.xtbl</File>
                            <Type>NewEntity.CallIn_list.Info.Cue</Type>
                            <OpenSeparate>False</OpenSeparate>
                        </Reference>
                    </Element>
                    <Num_Display_Rows>8</Num_Display_Rows>
                </Element>
                <Element>
                    <Name>Outros</Name>
                    <Type>Grid</Type>
                    <Element>
                        <Name>Cue</Name>
                        <Type>Reference</Type>
                        <Description>Outro Cues for this Song</Description>
                        <Reference>
                            <File>radio_stations\Klassic_radio.xtbl</File>
                            <Type>NewEntity.Outro_list.Info.Cue</Type>
                            <OpenSeparate>False</OpenSeparate>
                        </Reference>
                    </Element>
                    <Num_Display_Rows>8</Num_Display_Rows>
                </Element>
                <Element>
                    <Name>Sing_along</Name>
                    <Type>Grid</Type>
                    <Display_Name>Sing Along</Display_Name>
                    <Element>
                        <Name>Info</Name>
                        <Type>Element</Type>
                        <Element>
                            <Name>percent</Name>
                            <Type>Int</Type>
                            <Display_Name>%</Display_Name>
                            <Description>Play chance percentage</Description>
                            <Default>0</Default>
                            <MinValue>0</MinValue>
                            <MaxValue>100</MaxValue>
                        </Element>
                        <Element>
                            <Name>Persona</Name>
                            <Type>Reference</Type>
                            <Reference>
                                <File>audio_personas.xtbl</File>
                                <Type>Audio_Persona.Name</Type>
                                <OpenSeparate>False</OpenSeparate>
                            </Reference>
                        </Element>
                        <Element>
                            <Name>Cue</Name>
                            <Type>Reference</Type>
                            <Reference>
                                <File>radio_stations\Klassic_radio.xtbl</File>
                                <Type>NewEntity.Singalong_list.Info.Cue</Type>
                                <OpenSeparate>False</OpenSeparate>
                            </Reference>
                        </Element>
                    </Element>
                    <Num_Display_Rows>8</Num_Display_Rows>
                </Element>
            </Element>
            <Num_Display_Rows>8</Num_Display_Rows>
        </Element>
        <Element>
            <Name>Station_Playlist</Name>
            <Type>Grid</Type>
            <Display_Name>Playlist</Display_Name>
            <Description>List sequence of station entry chunks</Description>
            <Element>
                <Name>Playlist_entry</Name>
                <Type>Selection</Type>
                <Display_Name>Play Type</Display_Name>
                <Default>Song</Default>
                <Choice>Song</Choice>
                <Choice>Sweeper</Choice>
                <Choice>Commercial</Choice>
            </Element>
            <Num_Display_Rows>10</Num_Display_Rows>
        </Element>
        <Single_Line_XML>False</Single_Line_XML>
    </TableDescription>
    <EntryCategories>
        <Category>
            <Name>Entries</Name>
        </Category>
    </EntryCategories>
</root>
No idea at all why it works on SR4 but not with SR2 though. If someone can chime in and give insights about that it'd be much appreciated. I mean, not a big deal anyway without pretty-print, it's just--well as it said--looks prettier with that, hahah.

Edit: Oh, I get it. It removes every function with undefined value like <Particle_Systems></Particle_Systems> then PP format it to <Particle_Systems/> instead -- and that's why it's crashing in SR2, probably.
 
Last edited:
There's a post from me back when fiddling with SR4 format and checking recently it works there -- however, can confirm now that it crashes with SR2. Haven't played with SR2 format previously so I have no idea that it isn't working there.

No idea at all why it works on SR4 but not with SR2 though. If someone can chime in and give insights about that it'd be much appreciated. I mean, not a big deal anyway without pretty-print, it's just--well as it said--looks prettier with that, hahah.

Edit: Oh, I get it. It removes every function with undefined value like <Particle_Systems></Particle_Systems> then PP format it to <Particle_Systems/> instead -- and that's why it's crashing in SR2, probably.

I was talking about it crashing on SRIV though.
And if it removed any function, I'm pretty sure it wouldn't add those back when you linearize them.
Regardless, it's not really a big deal since pretty print is purely for human readability.
 
I'm assuming you meant this error?:
View attachment 29489
That's because you're not supposed to run it normally since it's a command-line and not a GUI based tool.

Here's the information on it:
View attachment 29490
As you can see, the tool requires for you to input the source of the base game directory.
It also says that if left blank, it will auto-detect it but I think it is failing to do so for some reason.

Regardless, make sure you've got file extensions visible then you need to create a batch script inside the same folder you have ThomasJepp SaintsRow IV Tools. You can do that by creating a new text file and renaming the extension from ".txt" to ".bat". (Example: TJSR-Stream2Update.bat)

Now you need to edit the batch file by opening it with Notepad++
Copy paste the following code: (Make sure to replace the string set in "SRVIDir=" to the location where you've installed the game.)
Code:
@echo off
set ToolDir=%~dp0
set SRIVDir=D:\Games\Steam\steamapps\common\Saints Row IV
echo.
"%ToolDir%ThomasJepp.SaintsRow.Stream2Update.exe" "%SRIVDir%"
echo.
pause

Save the file and make sure you've got all the ".str2_pc" files in the base game directory before you run the batch file and it will be updated successfully.
The batch file managed to find the game, but I get this error when I'm updating the asm files.
Screenshot 2022-09-20 234748.png
 
Back
Top