+ What Is Mikado?
+
+ Mikado is a .dll
file that hooks into SDVX and automatically sends
+ the scores to a server. {TachiConfig.name} is compatible with what Mikado sends,
+ so you can use it to submit scores!
+
+
+ Setup Instructions
+
+ -
+ Download the latest version of
mikado.dll
from{" "}
+
+ here
+
+ .
+
+ -
+ Download your
mikado.toml
config file{" "}
+ here
+ .
+
+ This file contains an API Key, which is meant to be kept secret!
+
+
+ -
+ Drop both files inside your SDVX folder, next to your
.bat
file.
+
+
+ -
+ BemaniTools: Add
-K mikado.dll
to your .bat
{" "}
+ file.
+
+ -
+ SpiceTools: Add
-k mikado.dll
to your .bat
file.
+
+
+ - Your scores and dans now automatically upload to {TachiConfig.name}!
+
+
+ );
+}
diff --git a/client/src/app/pages/dashboard/misc/CreditsPage.tsx b/client/src/app/pages/dashboard/misc/CreditsPage.tsx
index 1a9e7ff4ac..fbb40d9ca9 100644
--- a/client/src/app/pages/dashboard/misc/CreditsPage.tsx
+++ b/client/src/app/pages/dashboard/misc/CreditsPage.tsx
@@ -161,6 +161,9 @@ export default function CreditsPage() {
{a("Chunitachi", "CHUNITHM Black Magic")}: tomatosoup
+
+ {a("Mikado", "SDVX Pocky")}: adamaq01
+
{a("Server", "Ethereum Mining Solutions")}: viddy
diff --git a/client/src/app/routes/ImportRoutes.tsx b/client/src/app/routes/ImportRoutes.tsx
index 19bd9a9887..4be04b57df 100644
--- a/client/src/app/routes/ImportRoutes.tsx
+++ b/client/src/app/routes/ImportRoutes.tsx
@@ -1,4 +1,5 @@
import BarbatosPage from "app/pages/dashboard/import/BarbatosPage";
+import MikadoPage from "app/pages/dashboard/import/MikadoPage";
import BatchManualPage from "app/pages/dashboard/import/BatchManualPage";
import LR2orajaDBPage from "app/pages/dashboard/import/LR2orajaDBPage";
import BeatorajaIRPage from "app/pages/dashboard/import/BeatorajaIRPage";
@@ -118,6 +119,9 @@ export default function ImportRoutes() {
+
+
+
diff --git a/server/src/lib/builtin-clients/builtin-clients.ts b/server/src/lib/builtin-clients/builtin-clients.ts
index e40df3caa8..cdcbfb74e0 100644
--- a/server/src/lib/builtin-clients/builtin-clients.ts
+++ b/server/src/lib/builtin-clients/builtin-clients.ts
@@ -124,6 +124,43 @@ apikey = %%TACHI_KEY%%`,
requestedPermissions: ["submit_score"],
webhookUri: null,
},
+ {
+ name: "Mikado",
+ webhookUri: null,
+ redirectUri: null,
+ requestedPermissions: ["submit_score"],
+ clientID: "CXMikado",
+ apiKeyFilename: "mikado.toml",
+ apiKeyTemplate: `[general]
+# Set to 'false' to disable the hook
+enable = true
+# Whether the hook should export your class (skill level) or not
+export_class = true
+# Whether the hook should should inject your Tachi PBs in place of Cloud PBs
+inject_cloud_pbs = true
+# Timeout for web requests, in milliseconds
+timeout = 3000
+
+[cards]
+# Card numbers that should be whitelisted
+# If this is empty, all cards will be whitelisted
+# E000 format, should be in single quotes and separated by commas
+# Example: whitelist = ['E000000000', 'E000000001']
+whitelist = []
+
+[tachi]
+# Tachi instance base URL
+base_url = '${ServerConfig.OUR_URL}'
+# Tachi status endpoint
+status = '/api/v1/status'
+# Tachi score import endpoint
+import = '/ir/direct-manual/import'
+# Tachi pbs endpoint
+pbs = '/api/v1/users/{}/games/sdvx/Single/pbs/all'
+# Your Tachi API key
+api_key = '%%TACHI_KEY%%'
+`,
+ },
];
const BtchiDefaultClients: DefaultClients = [