← Назад к ресурсам

JSCore

Extend your game with JavaScript, create and publish commands, menus, toggles and much more!

Modrinth game-mechanics library utility

Описание

> # MOD BEING REWRITTEN, JOIN DISCORD INSTEAD > https://discord.gg/WAR9aKVFQJ BEFORE DOWNLOADINGRead the JSCore Player Guide and Join Discord # FabricMC + JavaScript = JSCore JSCore is a thin wrapper around FabricMC. ## What does this mod do? This mod provides full JavaScript support for Minecraft modding, you can create or use community modules to customise your game. In short, JSCore can do - Everything a typical JS runtime, such as KubeJS, can do. - Everything in FabricMC that does not use Mixins* - Interact with other mods. \*Mixins support depends on whether one guy on Discord can get it to work or not. ## How to use it? Just download the mod and run the game! Read the [Quickstart Guide](https://jscore.siri.ws/player/quickstart.html). ## How is it different from KubeJS/JSMacros? ### Access to Minecraft Internals JSCore allows access to classes in the **net.minecraft** package - anything that FabricMC can do (except Mixins), JSCore can also do it. ```js // client: net.minecraft.client.MinecraftClient let client = net.minecraft.client.MinecraftClient.getInstance(); // player: net.minecraft.client.network.ClientPlayerEntity let player = client.player; // position: net.minecraft.util.math.BlockPos let position = player.getBlockPos(); ``` ### Module System Similar to Node.js The module system from Node.js allows complex game mechanics to be built from small and managable chunks, so we brought it to JSCore. ```js // init.js let savePlayers = require("./savePlayers"); savePlayers(); ``` ```js // savePlayers.js let fs = require("fs"); let { getPlayers } = require("./getPlayers"); function savePlayers() { let players = getPlayers(); let content = JSON.stringify(players); fs.writeFileSync("./playerList.json", content); } module.exports = savePlayers; ``` ## What features does this mod have? This mod runs **init.js** on start. Additional features are provided by third-party modules, such as - **Rinode**: provide Node.js features such as `console.log` and `fs`. - **Command**: Declarative Minecraft command registration. - **Pully**: package manager for JSCore. A list of package can be found in the [package repository](https://github.com/FabricCore/jscore-openrepo?tab=readme-ov-file#all-packages), anyone can publish packages to this repository. ## How does this mod work? The Minecraft code is obfuscated and cannot be referred to by their real name. This mod uses Yarnwrap, which wraps all **net.minecraft** classes so their real name can be used instead of their obfuscated name. This mod is still in its early stages, please join [**Discord**](https://discord.gg/XfSZ5tc7Sk) for support or to sway its development.