diff --git a/mirai-console/tools/intellij-plugin/src/wizard/KotlinStdlibVersion.kt b/mirai-console/tools/intellij-plugin/src/wizard/KotlinStdlibVersion.kt
new file mode 100644
index 000000000..bfd472daa
--- /dev/null
+++ b/mirai-console/tools/intellij-plugin/src/wizard/KotlinStdlibVersion.kt
@@ -0,0 +1,118 @@
+/*
+ * Copyright 2019-2022 Mamoe Technologies and contributors.
+ *
+ * 此源代码的使用受 GNU AFFERO GENERAL PUBLIC LICENSE version 3 许可证的约束, 可以在以下链接找到该许可证.
+ * Use of this source code is governed by the GNU AGPLv3 license that can be found through the following link.
+ *
+ * https://github.com/mamoe/mirai/blob/dev/LICENSE
+ */
+
+
+package net.mamoe.mirai.console.intellij.wizard
+
+import org.jetbrains.kotlin.tools.projectWizard.Versions
+import org.jsoup.Jsoup
+import org.jsoup.nodes.Document
+import java.io.IOException
+
+typealias KotlinStdlibVersion = String
+
+object KotlinStdlibVersionFetcher {
+    @Throws(IOException::class)
+    fun getKotlinStdlibVersion(miraiVersion: MiraiVersion): KotlinStdlibVersion {
+        fun download(url: String): Document {
+            return Jsoup.connect(url)
+                .followRedirects(true)
+                .ignoreContentType(true)
+                .ignoreHttpErrors(true)
+                .get()
+        }
+
+        val path = "net/mamoe/mirai-core/$miraiVersion/mirai-core-$miraiVersion.pom"
+        return kotlin.runCatching {
+            download("https://maven.aliyun.com/repository/central/$path")
+        }.recoverCatching {
+            download("https://repo.maven.apache.org/maven2/$path")
+        }.map { document ->
+            val xml = document.toString()
+
+            Regex("""<artifactid>\s*kotlin-stdlib-[A-Za-z0-9-]+\s*</artifactid>\s*<version>\s*(.*?)\s*</version>""")
+                .findAll(xml)
+                .mapNotNull {
+                    it.groupValues.getOrNull(1)
+                }
+                .firstOrNull() ?: Versions.KOTLIN.text
+        }.getOrThrow()
+    }
+}
+
+/*
+
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+  <!-- This module was also published with a richer model, Gradle metadata,  -->
+  <!-- which should be used instead. Do not delete the following line which  -->
+  <!-- is to indicate to Gradle or any Gradle module metadata file consumer  -->
+  <!-- that they should prefer consuming it instead. -->
+  <!-- do_not_remove: published-with-gradle-metadata -->
+  <modelVersion>4.0.0</modelVersion>
+  <groupId>net.mamoe</groupId>
+  <artifactId>mirai-core</artifactId>
+  <version>2.12.2</version>
+  <packaging>pom</packaging>
+  <licenses>
+    <license>
+      <name>GNU AGPLv3</name>
+      <url>https://github.com/mamoe/mirai/blob/master/LICENSE</url>
+    </license>
+  </licenses>
+  <developers>
+    <developer>
+      <id>mamoe</id>
+      <name>Mamoe Technologies</name>
+      <email>support@mamoe.net</email>
+    </developer>
+  </developers>
+  <scm>
+    <connection>scm:https://github.com/mamoe/mirai.git</connection>
+    <developerConnection>scm:git://github.com/mamoe/mirai.git</developerConnection>
+    <url>https://github.com/mamoe/mirai</url>
+  </scm>
+  <dependencies>
+    <dependency>
+      <groupId>net.mamoe</groupId>
+      <artifactId>mirai-core-api</artifactId>
+      <version>2.12.2</version>
+      <scope>runtime</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.jetbrains.kotlinx</groupId>
+      <artifactId>kotlinx-serialization-core-jvm</artifactId>
+      <version>1.3.2</version>
+      <scope>runtime</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.jetbrains.kotlinx</groupId>
+      <artifactId>kotlinx-serialization-json-jvm</artifactId>
+      <version>1.3.2</version>
+      <scope>runtime</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.jetbrains.kotlinx</groupId>
+      <artifactId>kotlinx-coroutines-core-jvm</artifactId>
+      <version>1.6.1</version>
+      <scope>runtime</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.jetbrains.kotlin</groupId>
+      <artifactId>kotlin-stdlib-jdk8</artifactId>
+      <version>1.6.21</version>
+      <scope>runtime</scope>
+    </dependency>
+  </dependencies>
+  <description>Mirai Protocol implementation for QQ Android</description>
+  <name>mirai-core</name>
+  <url>https://github.com/mamoe/mirai</url>
+</project>
+
+ */
diff --git a/mirai-console/tools/intellij-plugin/src/wizard/MiraiModuleBuilder.kt b/mirai-console/tools/intellij-plugin/src/wizard/MiraiModuleBuilder.kt
index dd0aaef5d..562e4a62a 100644
--- a/mirai-console/tools/intellij-plugin/src/wizard/MiraiModuleBuilder.kt
+++ b/mirai-console/tools/intellij-plugin/src/wizard/MiraiModuleBuilder.kt
@@ -77,7 +77,7 @@ class MiraiModuleBuilder : StarterModuleBuilder() {
             val projectCoordinates = projectCoordinates
             val pluginCoordinates = pluginCoordinates
             return mapOf<String, Any>(
-                "KOTLIN_VERSION" to KotlinVersion.CURRENT.toString(),
+                "KOTLIN_VERSION" to kotlinVersion,
                 "MIRAI_VERSION" to miraiVersion,
                 "GROUP_ID" to projectCoordinates.groupId,
                 "VERSION" to projectCoordinates.version,
diff --git a/mirai-console/tools/intellij-plugin/src/wizard/MiraiProjectModel.kt b/mirai-console/tools/intellij-plugin/src/wizard/MiraiProjectModel.kt
index efe2762bd..a147a6423 100644
--- a/mirai-console/tools/intellij-plugin/src/wizard/MiraiProjectModel.kt
+++ b/mirai-console/tools/intellij-plugin/src/wizard/MiraiProjectModel.kt
@@ -34,6 +34,7 @@ class MiraiProjectModel(
     val projectCoordinates: ProjectCoordinates,
     val pluginCoordinates: PluginCoordinates,
     val miraiVersion: String,
+    val kotlinVersion: String,
 
     val buildSystemType: BuildSystemType,
     val languageType: LanguageType,
diff --git a/mirai-console/tools/intellij-plugin/src/wizard/MiraiProjectWizardInitialStep.kt b/mirai-console/tools/intellij-plugin/src/wizard/MiraiProjectWizardInitialStep.kt
index be9994c5e..4d83f7d16 100644
--- a/mirai-console/tools/intellij-plugin/src/wizard/MiraiProjectWizardInitialStep.kt
+++ b/mirai-console/tools/intellij-plugin/src/wizard/MiraiProjectWizardInitialStep.kt
@@ -26,6 +26,7 @@ import com.intellij.ui.dsl.builder.*
 import net.mamoe.mirai.console.intellij.wizard.MiraiProjectWizardBundle.message
 import org.jetbrains.concurrency.Promise
 import org.jetbrains.concurrency.runAsync
+import org.jetbrains.kotlin.tools.projectWizard.Versions
 
 private val log = logger<MiraiProjectWizardInitialStep>()
 
@@ -49,6 +50,8 @@ class MiraiProjectWizardInitialStep(contextProvider: StarterContextProvider) : S
     var miraiVersionKind by miraiVersionKindProperty
     var miraiVersion by miraiVersionProperty
 
+    var kotlinStdlibVersion = Versions.KOTLIN.text
+
     private lateinit var miraiVersionCell: Cell<ComboBox<String>>
 
     override fun addFieldsAfter(layout: Panel) {
@@ -117,6 +120,18 @@ class MiraiProjectWizardInitialStep(contextProvider: StarterContextProvider) : S
                     .enabled(false)
                     .bindItem(miraiVersionProperty)
 
+                miraiVersionProperty.afterChange {
+                    kotlinStdlibVersion = "Loading"
+                    runAsync {
+                        KotlinStdlibVersionFetcher.getKotlinStdlibVersion(miraiVersion)
+                    }.onError {
+                        log.error(it)
+                        kotlinStdlibVersion = Versions.KOTLIN.text
+                    }.onProcessed {
+                        kotlinStdlibVersion = it
+                    }
+                }
+
                 miraiVersionKindProperty.afterChange {
                     if (!miraiVersionCell.component.isEnabled) return@afterChange
 
@@ -156,6 +171,7 @@ class MiraiProjectWizardInitialStep(contextProvider: StarterContextProvider) : S
                     dependsOn = pluginDependencies.trim()
                 ),
                 miraiVersion = miraiVersion,
+                kotlinVersion = kotlinStdlibVersion,
                 buildSystemType = when (val projectType = projectTypeProperty.get()) {
                     MiraiModuleBuilder.GRADLE_KTS_PROJECT -> BuildSystemType.GradleKt
                     MiraiModuleBuilder.GRADLE_GROOVY_PROJECT -> BuildSystemType.GradleGroovy
@@ -171,7 +187,7 @@ class MiraiProjectWizardInitialStep(contextProvider: StarterContextProvider) : S
     }
 
     override fun validate(): Boolean {
-        if (miraiVersion == message("label.mirai.version.loading")) {
+        if (miraiVersion == message("label.mirai.version.loading") || kotlinStdlibVersion == "Loading") {
             JBPopupFactory.getInstance()
                 .createHtmlTextBalloonBuilder(
                     message("error.please.wait.for.mirai.version"),
@@ -186,7 +202,6 @@ class MiraiProjectWizardInitialStep(contextProvider: StarterContextProvider) : S
                 )
             return false
         }
-
         return super.validate()
     }