{"id":18187326,"url":"https://github.com/cao-awa/conium","last_synced_at":"2025-07-18T17:03:13.570Z","repository":{"id":258418762,"uuid":"873893138","full_name":"cao-awa/Conium","owner":"cao-awa","description":"Conium is a datapack and script framework for modern Minecraft, it provides very diverse features without Java coding, Conium lets you complete your mods only using datapacks.","archived":false,"fork":false,"pushed_at":"2024-11-02T11:27:41.000Z","size":525,"stargazers_count":9,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2024-11-02T11:27:55.643Z","etag":null,"topics":["datapack","fabric","framework","javascript","kotlin-script","minecraft","minecraft-mod","script","scripting","translation","translator","typescript"],"latest_commit_sha":null,"homepage":"","language":"Kotlin","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/cao-awa.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-10-16T22:46:04.000Z","updated_at":"2024-11-02T11:27:45.000Z","dependencies_parsed_at":"2024-11-02T11:34:41.137Z","dependency_job_id":null,"html_url":"https://github.com/cao-awa/Conium","commit_stats":null,"previous_names":["cao-awa/conium"],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cao-awa%2FConium","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cao-awa%2FConium/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cao-awa%2FConium/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cao-awa%2FConium/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/cao-awa","download_url":"https://codeload.github.com/cao-awa/Conium/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":222792013,"owners_count":17038322,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["datapack","fabric","framework","javascript","kotlin-script","minecraft","minecraft-mod","script","scripting","translation","translator","typescript"],"created_at":"2024-11-03T01:03:22.292Z","updated_at":"2025-07-18T17:03:13.558Z","avatar_url":"https://github.com/cao-awa.png","language":"Kotlin","funding_links":[],"categories":[],"sub_categories":[],"readme":"# What is Conium\n\n\u003e 新世代を呼ぶハロー、声はまだ途切れないだろう、 \\\n\u003e 新世界の扉を、ほら叩き続けよう！\n\nConium is a datapack and script framework for modern Minecraft, it provides very diverse features without Java coding, Conium lets you complete your mods only using the datapacks.\n\n![](https://count.getloli.com/@@cao-awa.conium?name=%40cao-awa.conium\u0026padding=7\u0026offset=0\u0026align=top\u0026scale=1\u0026pixelated=1\u0026darkmode=auto)\n\n## Warning\n\nConium is currently as 'on client' mode, the server needs to synchronize the datapacks and scripts to client but are not completed this feature now.\n\n## Requirements\n\n|            Requirement |        Version        |   Installs   |            Notes             |\n|-----------------------:|:---------------------:|:------------:|:----------------------------:|\n|                   Java |          21+          | 21 Or higher |      21 Or higher is ok      |\n|              Minecraft |       \u003e=1.21.6        |     Need     | 1.21.6 or higher can be use  |\n| Fabric language kotlin | 1.13.4+kotlin.2.2.0!! |     Need     | Only kotlin 2.2.0 can be use |\n|             Fabric API |           ?           |     Need     |      Any version is ok       |\n|                 Fluxia |     1.1.4-fix4!!      | Unnecessary  | Built-in contents translator |\n\n### Build requirements\n\nConium has configured whole project, just clone the repository, and reload project then run the gradle task ```remapJar```.\n\n| Requirement |    Version    |                Notes                |\n|------------:|:-------------:|:-----------------------------------:|\n|        Java |      21+      |            21 Or higher             |\n|      Gradle |    8.14.2     |    8.14.2 or higher could be use    |\n|      Kotlin |    2.2.0!!    |        Only 2.2.0 can be use        |\n| Fabric loom | 1.10-SNAPSHOT | 1.10-SNAPSHOT or other could be use |\n|   Minecraft |   \\\u003e=1.21.6   |  Only 1.21.6 or higher can be use   |\n\n### NeoForge\n\nAbout supporting of NeoForge, currently cannot be completed because the secure jar handler in NeoForge has conflict to kotlin native.\n\nAnd Conium cannot remove kotlin native because scripting running needs, Conium may try to run script evaluator without NeoForge environment in the future.\n\n## Discord server\n\nYou can join ours [discord](https://discord.com/invite/BUY2xQr37N) server to chat with Conium community！\n\n## Data driven\n\nSee the [Data driven](./document/data-driven/README.md)\n\n## Conium script APIs\n\nSee the [Conium scripting](./document/script/kotlin/README.md).\n\n## Bedrock script APIs\n\nNot completed bedrock script APIs supports now, only framework able to run the samples.\n\n### Grammars\n\nAbout typescript grammar, supported by ```structring-translator``` or called ```fluxia```: [Typescript supports](https://github.com/cao-awa/structring-translator/tree/main/doc/typescript)\n\n### APIs\n\nCurrently, there APIs are available:\n\nIn context:\n\n|   Name |                                                   Conium API type                                                   | Gametest API type |      Status      |\n|-------:|:-------------------------------------------------------------------------------------------------------------------:|:-----------------:|:----------------:|\n| system | [AbstractBedrockSystem](./common/src/main/kotlin/com/github/cao/awa/conium/bedrock/system/AbstractBedrockSystem.kt) |      System       | Alpha (Unstable) |\n|  world |  [AbstractBedrockWorld](./common/src/main/kotlin/com/github/cao/awa/conium/bedrock/world/AbstractBedrockWorld.kt)   |       World       | Alpha (Unstable) |\n\nIn APIs:\n\n+ world\n    + [AbstractBedrockWorld](./common/src/main/kotlin/com/github/cao/awa/conium/bedrock/world/AbstractBedrockWorld.kt) impl by [BedrockWorld](./common/src/main/kotlin/com/github/cao/awa/conium/bedrock/world/BedrockWorld.kt) as known as 'World' in SAPI\n        + player\n            + [BedrockPlayer](./common/src/main/kotlin/com/github/cao/awa/conium/bedrock/world/player/BedrockPlayer.kt) as known as 'Player' in SAPI\n                + delegate\n                    + [BedrockPlayerDelegate](./common/src/main/kotlin/com/github/cao/awa/conium/bedrock/world/player/delegate/BedrockPlayerDelegate.kt) as known as 'Player[]' in SAPI\n                + screen\n                    + [BedrockOnScreenDisplay](./common/src/main/kotlin/com/github/cao/awa/conium/bedrock/world/player/screen/BedrockOnScreenDisplay.kt) as known as 'ScreenDisplay' in SAPI\n    + dimension\n        + [BedrockDimensionLocation](./common/src/main/kotlin/com/github/cao/awa/conium/bedrock/world/dimension/BedrockDimensionLocation.kt) as known as 'DimensionLocation' in SAPI\n+ system\n    + [AbstractBedrockSystem](./common/src/main/kotlin/com/github/cao/awa/conium/bedrock/system/AbstractBedrockSystem.kt) impl by [BedrockSystem](./common/src/main/kotlin/com/github/cao/awa/conium/bedrock/system/BedrockSystem.kt) as known as 'System' in SAPI\n+ item\n    + stack\n        + [BedrockItemStack](./common/src/main/kotlin/com/github/cao/awa/conium/bedrock/item/stack/BedrockItemStack.kt) as known as 'ItemStack' in SAPI\n+ script\n    + [BedrockScriptAnonymousObjectMap](./common/src/main/kotlin/com/github/cao/awa/conium/bedrock/item/stack/BedrockItemStack.kt) as known as 'anonymous object' in Javascript\n+ event\n    + [BedrockBeforeEvents](./common/src/main/kotlin/com/github/cao/awa/conium/bedrock/event/BedrockBeforeEvents.kt) as known as 'WorldBeforeEvents' in SAPI\n        + context\n            + [BedrockEventContext](./common/src/main/kotlin/com/github/cao/awa/conium/bedrock/event/context/BedrockEventContext.kt)\n            + item\n                + use\n                    + [BedrockItemUseOnEventContext](./common/src/main/kotlin/com/github/cao/awa/conium/bedrock/event/context/item/use/BedrockItemUseOnEventContext.kt) as known as 'ItemUseOnBeforeEvent' and 'ItemUseOnAfterEvent' in SAPI\n    + item\n        + use\n            + [BedrockItemUseOnBeforeEvent](./common/src/main/kotlin/com/github/cao/awa/conium/bedrock/event/before/item/use/on/BedrockItemUseOnBeforeEvent.kt) as known as 'ItemUseOnBeforeEventSignal' in SAPI\n\nBy bedrock script APIs:\n\n+ [world](./common/src/main/kotlin/com/github/cao/awa/conium/bedrock/world/AbstractBedrockWorld.kt)\n    + ```fun``` [getPlayers()](./common/src/main/kotlin/com/github/cao/awa/conium/bedrock/world/AbstractBedrockWorld.kt): [BedrockPlayerDelegate](./common/src/main/kotlin/com/github/cao/awa/conium/bedrock/world/player/delegate/BedrockPlayerDelegate.kt)\n        + ```operator fun``` [get](./common/src/main/kotlin/com/github/cao/awa/conium/bedrock/world/player/delegate/BedrockPlayerDelegate.kt): [BedrockPlayer](./common/src/main/kotlin/com/github/cao/awa/conium/bedrock/world/player/BedrockPlayer.kt)(index: Int)\n    + ```val``` [onScreenDisplay](./common/src/main/kotlin/com/github/cao/awa/conium/bedrock/world/player/delegate/BedrockPlayerDelegate.kt): [BedrockOnScreenDisplay](./common/src/main/kotlin/com/github/cao/awa/conium/bedrock/world/player/screen/BedrockOnScreenDisplay.kt)\n        + ```fun``` [setTitle](./common/src/main/kotlin/com/github/cao/awa/conium/bedrock/world/player/screen/BedrockOnScreenDisplay.kt)(title: String, properties: [BedrockScriptAnonymousObjectMap](./common/src/main/kotlin/com/github/cao/awa/conium/bedrock/script/BedrockScriptAnonymousObjectMap.kt))\n        + ```fun``` [updateSubtitle](./common/src/main/kotlin/com/github/cao/awa/conium/bedrock/world/player/screen/BedrockOnScreenDisplay.kt)(title: String)\n    + ```val``` [eventsBefore](./common/src/main/kotlin/com/github/cao/awa/conium/bedrock/world/AbstractBedrockWorld.kt) = ```get()```: [BedrockBeforeEvents](./common/src/main/kotlin/com/github/cao/awa/conium/bedrock/event/BedrockBeforeEvents.kt)\n        + ```val``` [itemUseOn](./common/src/main/kotlin/com/github/cao/awa/conium/bedrock/event/BedrockBeforeEvents.kt): [BedrockItemUseOnEvent](./common/src/main/kotlin/com/github/cao/awa/conium/bedrock/event/item/use/BedrockItemUseOnBeforeEvent.kt)\n            + ```fun``` [subscribe](./common/src/main/kotlin/com/github/cao/awa/conium/bedrock/event/item/use/BedrockItemUseOnBeforeEvent.kt)(action: ([BedrockItemUseOnEventContext](./common/src/main/kotlin/com/github/cao/awa/conium/bedrock/event/context/item/use/BedrockItemUseOnEventContext.kt)) -\u003e\n              Unit)\n+ [system](./common/src/main/kotlin/com/github/cao/awa/conium/bedrock/system/AbstractBedrockSystem.kt)\n    + ```fun``` [runInterval](./common/src/main/kotlin/com/github/cao/awa/conium/bedrock/system/AbstractBedrockSystem.kt)(callback: () -\u003e Unit, tickInterval: Int): IntegerReceptacle\n    + ```fun``` [clearRun](./common/src/main/kotlin/com/github/cao/awa/conium/bedrock/system/AbstractBedrockSystem.kt)(runId: IntegerReceptacle)\n\n# Source code and commit\n\nConium has large and complex source codes and architectures.\\\nRead source codes still very challenging even though we are completing documents and comments try we best.\n\nSo if you are willing to contribute to Conium, please do conversations with Conium developers to learn the details and specifications.\\\nWe will reject all pull requests that not after discussion.\n\nIf it is not necessary, avoid directly reading source codes.\n\n## Hitokoto\n\nConium will randomly roll a [Hitokoto](https://en.wiktionary.org/wiki/%E4%B8%80%E8%A8%80#Japanese) in console every time launching, the list of Hitokotos receives pull requests, only allow in English and Japanese, don't take other languages, don't accept nonsense sentences.\n\nFor the list, see [ConiumHitokoto.kt](/common/src/main/java/com/github/cao/awa/conium/hitokoto/ConiumHitokoto.kt).\n\n# Chinese wiki\n\nThe [Hyacinth wiki](https://www.hyacinthwiki.com/index.php?title=Conium_(模组)).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcao-awa%2Fconium","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcao-awa%2Fconium","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcao-awa%2Fconium/lists"}