- A working game, with dongle and QR reader emulation. You can use [TaikoArcadeLoader](https://github.com/BroGamer4256/TaikoArcadeLoader) for these if you haven't.
2. From the game files, copy `music_order.bin`, `musicinfo.bin`, `wordlist.bin`, `don_cos_reward.bin`, `shougou.bin`,`neiro.bin` to `wwwroot/data/datatable` folder.
3. (Optional) In `Certificates` folder, import `root.pfx` to trusted root store, `cert.pfx` to personal store. All the other import options can be kept default.
- dan_data.json: This is used customize normal dans.
```
[
{
"danId":1, // The danId of the dan, has to be unique in all dans in dan_data.json
"verupNo":1, // Used to control whether the client should update to a new dan when offline cache files are still present
"title":"5kyuu", // Title of the dan, for example, "5kyuu" = 5級, "9dan" = 九段, "14dan" = 達人, etc.
"aryOdaiSong":[
{
"songNo":420, // The uniqueId of the first song
"level":2, // The level of the first song, 1 = easy, 4 = oni, 5 = ura, etc.
"isHiddenSongName":false // If set to true, the song name will be displayed as ??? in dani selection in-game
},
{
"songNo":881, // The uniqueId of the second song
"level":2,
"isHiddenSongName":false
},
{
"songNo":995, // The uniqueId of the third song
"level":2,
"isHiddenSongName":false
}
],
"aryOdaiBorder":[
{
"odaiType":1, // The odai type, 1 = soul gauge percentage, 2 = good count, 3 = ok count, 4 = bad count, 5 = combo count, 6 = renda count, 7 = score, 8 = hit count
"borderType":1, // Controls whether this odai requirement is shared, 1 means all 3 songs share this same odai requirement, 2 means 3 songs have separate odai requirements, to see how to set separate odai requirements, see the next dan example
"redBorderTotal":92, // The odai requirement to get a red pass for this dan
"goldBorderTotal":95 // The odai requirement to get a gold pass for this dan
},
{
"odaiType":8,
"borderType":1,
"redBorderTotal":884,
"goldBorderTotal":936
}
]
},
{
"danId":14,
"verupNo":1,
"title":"9dan",
"aryOdaiSong":[
{
"songNo":568,
"level":4,
"isHiddenSongName":false
},
{
"songNo":117,
"level":4,
"isHiddenSongName":false
},
{
"songNo":21,
"level":4,
"isHiddenSongName":false
}
],
"aryOdaiBorder":[
{
"odaiType":1,
"borderType":1,
"redBorderTotal":100,
"goldBorderTotal":100
},
{
"odaiType":2,
"borderType":1,
"redBorderTotal":2045,
"goldBorderTotal":2100
},
{
"odaiType":4,
"borderType":1,
"redBorderTotal":10,
"goldBorderTotal":5
},
{
"odaiType":6, // This is set to 6, which means this is the renda requirement odai
"borderType":2, // This is set to 2, which means the 3 songs have individual odai requirements
"redBorder_1":107, // This means to get a red pass, you have to get above or equal to 107 rendas in song 1
"goldBorder_1":114, // This means to get a gold pass, you have to get above or equal to 114 rendas in song 1
"redBorder_2":74, // This means to get a red pass, you have to get above or equal to 74 rendas in song 2
"goldBorder_2":79, // This means to get a gold pass, you have to get above or equal to 79 rendas in song 2
"redBorder_3":54, // This means to get a red pass, you have to get above or equal to 54 rendas in song 3
"goldBorder_3":59 // This means to get a gold pass, you have to get above or equal to 59 rendas in song 3
}
]
}
]
```
- event_folder_data.json: This is used to populate event folders/genres
```
[
{
"folderId": 1, // The folderId of the event folder, find corresponding folderId in wordlist.bin by searching keys called folder_eventX, where X is the folderId
"verupNo": 1, // Used to control whether the client should update to a new event folder when offline cache files are still present
"priority": 1,
"songNo": [] // The uniqueId of the songs to be added to this event folder, if left empty, this folder will not show up in-game
"verupNo":1, // Used to control whether the client should update to a new dan when offline cache files are still present
"title":"[JPN]=復活!ブルー十段,[ENG]=Blue 10Dan", // The title of the gaiden dan, which will be displayed when scanning the QR code and in dani select interface. Use language code to specify each language's entry. [JPN], [CHS], [CHT], [KOR], [ENG] are supported. Use comma to separate each language's entry.
"aryOdaiSong":[ // Starting from here, it uses the same format as dan_data.json
// Songs locked will not be visible in-game to players(including guest) without the corresponding entry in UnlockedSongIdList in UserData, but may still show up in the shop folder
"shopTokenId": -1, // The token id used in shop, a.k.a. don coin, can be from 1 to 11, 1=spring, 2=summer, 3=autumn, 4=winter, 5=spring(again), etc. By default, this is turned off by setting it to -1
"kaTokenId": -1, // The token id of ka coins, can be 1000 or 1001, corresponding to reward entrys in reward.bin in the client's datatable. By default, this is turned off by setting it to -1
"onePieceTokenId": 100100, // The token id representing onePiece collab mode's win count, should not be changed
"soshinaTokenId": 100200 // The token id representing soshina collab mode's win count, should not be changed
This section is for configuring the TaikoWebUI appsettings.json file found under the ```wwwroot``` folder.
This file is used to configure the web UI.
```
{
"WebUiSettings": {
"LoginRequired": "false", // Whether a login is required to access personal profiles, default to false
"AdminUserName": "admin", // The username of the admin account, if LoginRequired is set to false, this is ignored, admin account can always access all personal profiles
"AdminPassword": "admin", // The password of the admin account, if LoginRequired is set to false, this is ignored
"OnlyAdmin": "false" // Whether only the admin account can access personal profiles, if set to true, register will be unavailable and only admins can login, default to false