You only need to talk with ScriptIrc’s intelligent Agent in a web page and describe your gameplay and requirements.
The Agent will design and generate a complete Bukkit plugin project for you (exported as a .sirc project file).
Then, the ScriptIrc compiler plugin on your server will compile this project into a loadable plugin JAR.
- No need to prepare any local IDE, build tool, or JDK project template
- You mainly focus on discussing “how the plugin should work” with the Agent
- The compiler plugin only takes care of “safely and reliably turning the Agent‑generated project into a runnable Bukkit plugin”
Note: In this document, the combination of “Agent + compiler plugin” is collectively referred to as ScriptIrc.
We only introduce the main features and usage here, without going into low‑level implementation details.
- Open ScriptIrc’s chat/project interface in your browser (
https://scriptirc.io/chat) and talk with the Agent:- Explain your server type, version, and existing plugin ecosystem
- Describe the gameplay, rules, and commands you want
- Tell the Agent how you expect configuration, permissions, and player experience to work
- The Agent will create or modify a Bukkit plugin project based on your conversation:
- Plan
plugin.yml, commands, permissions, dependency plugins, etc. - Generate or adjust core logic code and necessary resource files
- Keep the whole project centered on the goal of “running as a Bukkit plugin on the server”
- Plan
- When the project reaches a stage you are satisfied with, click “Export Plugin Project (.sirc)” in the web UI to obtain a
.sircproject file. - Provide the
.sircfile to the ScriptIrc compiler plugin on your server:- Use the compiler command to turn the
.sircproject into a Bukkit plugin JAR - Use dynamic loading/reloading to deploy or update the plugin without restarting the server
- Use the compiler command to turn the
- Whenever you want to change the plugin’s behavior later, just go back to the chat interface, continue talking with the Agent, export a new version
.sirc, and compile again.
In simple terms: the Agent in the browser is responsible for “designing and coding”, while ScriptIrc on the server is responsible for “compiling and loading”.
- Obtain the latest ScriptIrc compiler plugin JAR from the author’s distribution channel.
- Place the JAR file into your server’s
plugins/directory (for exampleplugins/ScriptIrc-x.x.x.jar). - Start or restart the server.
- In the server console or in‑game (with sufficient permission), run a command to confirm the plugin has been loaded, for example:
/scriptirc helpor/si help(if you configured a short alias)
- On the first startup, the plugin will automatically create default configs, script directories, and related resources under
plugins/ScriptIrc/.
ScriptIrc only relies on the running Minecraft server environment.
You do not need to set up any extra local Maven/Gradle project or IDE.
The examples below use
/scriptircas the main command. In some environments you can also use the alias/si.
-
/scriptirc help
Show help information and the list of available sub‑commands. -
/scriptirc list
List currently managed external plugins under ScriptIrc. -
/scriptirc load <plugin name or JAR file name>
Load the specified plugin from ScriptIrc’s external plugin directory. -
/scriptirc unload <plugin name>
Unload the specified external plugin. -
/scriptirc reload <plugin name>
Reload the specified external plugin (equivalent to unloading then loading).
-
/scriptirc compiler <script name>
Compile a single‑file Java script (.java) in the scripts directory.- Example:
/scriptirc compiler HelloWorldor/scriptirc compiler HelloWorld.java
- Example:
-
/scriptirc compiler <script name> fixreport
When compilation fails, generate a dependency fix suggestion report to help you locate missing libraries or misconfigured dependencies. -
/scriptirc compiler <project name>.sirc
Directly unpack and compile from a local.sircproject file.- Example:
/scriptirc compiler MyProject.sirc
- Example:
-
/scriptirc compiler sirc:<session ID>
Fetch a.sircproject from an online session over ScriptIrc Engine WebSocket and compile it.- Example:
/scriptirc compiler sirc:123456 - Suitable when you have finished editing in the online builder and want to compile the latest project on the server using the session ID.
- Example:
-
/scriptirc search <class name>or/scriptirc findclass <class name>
Search the current server and dependency libraries for the specified class’s fully qualified name, helping you confirm whether a dependency exists. -
/scriptirc sirctree <project name>
View the virtual directory tree of a.sircproject without unpacking it to disk, for quickly understanding the internal file layout.
/ai-builder
Output a clickable link in‑game, guiding players or admins to open the ScriptIrc online builder page (e.g.http://scriptirc.io/) for graphical / conversational project creation and editing.
Actual available commands and arguments may change slightly as versions evolve.
Please refer to/scriptirc helpinside the plugin as the final reference.
After installing and running ScriptIrc for the first time, the plugin will create a standard directory structure under plugins/ScriptIrc/.
Common directories include:
-
plugins/ScriptIrc/
Root data directory of the plugin. -
plugins/ScriptIrc/scripts/
Script and project workspace, which includes the following subdirectories:src/- Directory for single‑file Java scripts.
- You can write scripts here and compile them via
/scriptirc compiler <script name>.
lib/- Custom dependency library directory.
- Put additional JARs that should participate in compilation (such as third‑party APIs) here; they will automatically be added to the classpath.
output/(default configured asscripts/output)- Output directory for JAR plugins compiled by ScriptIrc.
- Commands like
/scriptirc load <plugin name>will load plugins from here.
-
plugins/ScriptIrc/scripts/output/Data/
When “data folder redirection” is enabled, this directory is used as the root data folder for external plugins:
every plugin loaded by ScriptIrc will get its own data subdirectory here. -
plugins/ScriptIrc/messages/
Directory for multi‑language message files, used to customize logs and prompts (e.g.zh_CN.properties/en_US.properties). -
Other auxiliary directories and configuration files (such as
config.yml)- Control auto‑reload, log level, localization, and other behaviors.
- In most cases, the default configuration is sufficient.
When compiling scripts or .sirc projects, ScriptIrc automatically constructs a compilation classpath that is “as close as possible to the real server environment”, so you don’t have to manage dependencies manually in most cases:
-
Server‑side Dependencies
- Automatically include the API provided by the currently running Minecraft server core (such as Spigot/Paper).
- You can directly use Bukkit/Spigot APIs in your scripts without extra configuration.
-
ScriptIrc Internal Dependencies
- ScriptIrc shades and relocates some third‑party libraries internally (such as
byte-buddy), which are automatically available at compile time and runtime.
- ScriptIrc shades and relocates some third‑party libraries internally (such as
-
Custom JARs under
scripts/lib- If your script or project needs extra third‑party libraries (for example, Vault API or some custom SDK),
just put the corresponding JARs intoplugins/ScriptIrc/scripts/lib/. They will be included in the classpath automatically during compilation.
- If your script or project needs extra third‑party libraries (for example, Vault API or some custom SDK),
-
Dependency Diagnosis & Fix Suggestions
- When compilation fails due to missing dependencies, you can use:
/scriptirc compiler <plugin name> fixreport
- ScriptIrc will analyze the compilation errors and give hints like “which dependencies might be missing”, helping you decide which JARs should be placed under
scripts/lib/or how to adjust your script.
- When compilation fails due to missing dependencies, you can use:
ScriptIrc does not download dependencies from the internet.
It only builds the dependency chain based on the current server environment and the contents ofscripts/lib.
ScriptIrc’s compiler can handle two types of input:
.java: single‑file Java scripts.sirc: project files (packaged full plugin projects)
In ScriptIrc’s terminology:
- “Script” specifically refers to a
.javasource file - “Project file” or “project” specifically refers to a
.sircfile
Below we introduce the characteristics and recommended usage of both formats.
.sircis ScriptIrc’s project packaging format, exported by the online editor.- In the ScriptIrc web interface, you can click “Export Plugin Project (.sirc)” at the bottom of the “Files” tab; the browser will download a
.sircfile named after the current project. - In essence,
.sircis:- A piece of Base64‑encoded JSON;
- The JSON contains:
fileSystem: the virtual file system treemetadata: project metadata (name, version, dependencies, commands, etc.)
More formally:
.sirc= Base64( JSON({ fileSystem, metadata }) )
fileSystem- Describes the entire project’s directory and files in a tree structure.
- Directories: objects (nested multiple levels)
- Files: strings, where each value is
gzip(file content)encoded again with Base64
metadata- Includes project name, description, target game version, version number, dependency plugins, commands, permissions, and more.
- These metadata values are mapped to
plugin.ymland related configuration during compilation.
The general decoding process is:
- Read the
.sirctext - Base64 decode to get the JSON string
- Parse the JSON to obtain
fileSystemandmetadata - Recursively traverse
fileSystem, and for each file node perform “Base64 decode → gzip decompress → write to disk”
Inside ScriptIrc, a dedicated decoder is responsible for this process; you usually do not need to handle it manually.
-
Main Path for Project Development
- In the online editor, you create a “project” around a specific gameplay or feature, and split files and configs by modules.
- When you are satisfied with the project, you export it as a
.sircfile.
-
Compile
.sircon the Server- Place the
.sircfile where ScriptIrc can access it, then use for example:/scriptirc compiler MyProject.sirc
- Or pull and compile directly from the online Engine via session ID:
/scriptirc compiler sirc:<session ID>
- Place the
-
Project Migration & Sharing
.sircis a standalone file that can be moved between environments:- You can back it up, share it with others, or compile it again on another server.
scriptirc.io/chat is ScriptIrc’s public online builder interface (the exact URL may vary by official announcement). Here you can:
- Describe gameplay and rules in natural language, and let the AI assist in generating and adjusting the project structure and code
- Manage the virtual file system (add / delete / edit files, preview contents)
- Configure project metadata (name, version, dependencies, commands, permissions, etc.)
- Export a
.sircproject file with one click for use by the ScriptIrc compiler on the server
In short: you build the “project” in the browser and compile the .sirc on the server with ScriptIrc.
In ScriptIrc, only .java source files are called “scripts”.
Scripts are a lightweight entry point compared to .sirc project files and are suitable for users familiar with Java to implement small features quickly.
- On the server:
plugins/ScriptIrc/scripts/src/ - Each
.javafile in this directory can be treated as an independent script. - Current design requirement: one script = one source file; please do not split the logic into multiple source files.
(The following summarizes the main points of the script development guidelines.
For full details, please refer to the script development guide document in this repository.)
- The script’s main class must extend
JavaPlugin, making it a standard Bukkit/Spigot plugin main class. - You can provide metadata (used to generate
plugin.yml) in two ways:- Static field approach: such as
VERSION,DESCRIPTION,AUTHOR,COMMANDS,PERMISSIONS, etc. - Comment/tag approach: use tags like
@pluginName,@version,@description,[command]...[/command],[permission]...[/permission]in the class JavaDoc.
- Static field approach: such as
- Commands and permissions can be declared collectively through array fields or comment tags, and ScriptIrc will automatically fill them into the generated
plugin.yml.
-
Compile script:
/scriptirc compiler <script file name>- For example:
/scriptirc compiler HelloWorld.javaor/scriptirc compiler HelloWorld
-
Get dependency suggestions when compilation fails:
/scriptirc compiler <script file name> fixreport
-
Load the compiled plugin:
/scriptirc load <plugin name>- For example:
/scriptirc load HelloWorld
Compared with
.sircprojects, scripts are better suited for small tools or quickly testing ideas.
For full gameplay features and long‑term maintenance, we recommend the “project +.sirc” path.
| Item | Script (.java file) |
Project file (.sirc) |
|---|---|---|
| Form | Single Java source file | Full project snapshot with multiple files and configs |
| Development entry | Write code directly under scripts/src |
Build project in the online editor via chat and file views |
| Complexity | Suitable for small features and simple logic | Suitable for mid‑to‑large gameplay and long‑term maintained plugins |
| Metadata management | Provided by fields or comments in the script | Centrally managed by project metadata |
| Portability | Requires manually packing or copying multiple files | Single .sirc file carries the full project |
| Recommended scenario | Java‑savvy users writing helper tools | Main server gameplay and plugins intended for sharing |
| Role in ScriptIrc | Supplementary, lightweight | Primary, core format |
You can remember it briefly as:
Scripts = you write the code yourself; .sirc project files = you co‑develop the plugin with ScriptIrc Engine.
No.
ScriptIrc’s main feature set is designed around the “project + .sirc” workflow.
You can primarily use the online editor via natural language and UI operations to develop projects, with ScriptIrc helping to handle code and structure.
Scripts are only an additional entry point for users already familiar with Java.
.sircis better for complex gameplay and long‑term maintenance, with full directory structure, config, and documentation.- It is easier to share and migrate among multiple people and environments, and more convenient for ScriptIrc to manage versions and generate documentation.
- Scripts are more suitable for “small tools”.
- Check the error information returned by ScriptIrc and the server console logs.
- For scripts, you can use
/scriptirc compiler <script name> fixreportto obtain dependency fix suggestions. - Verify that all required third‑party libraries have been placed into
scripts/lib/. - For
.sircprojects, confirm that the exported file is not truncated or corrupted; re‑export it from the online editor if necessary.
- This usually means ScriptIrc Engine is not connected to the server’s WebSocket service, or there is currently no online local compiler client.
- You can still export the
.sircfile from the online editor, upload it to the server manually, and then compile it using/scriptirc compiler MyProject.sirc.
Yes.
You can run plugins compiled from .sirc projects and script‑based plugins on the same server.
ScriptIrc does not force you to choose only one approach.
ScriptIrc is currently provided in closed‑source form.
The specific terms of use, commercial licensing, and limitations for the plugin and related services are subject to the latest official statements from the author.
- Without authorization, please do not decompile, redistribute, or use ScriptIrc beyond the permitted commercial scope.
- For commercial cooperation or deeper integration, please contact the author through the designated channels.
This document is for usage instructions only and does not constitute a complete legal license agreement.
- Thanks to the Minecraft / Bukkit / Spigot / Paper communities for maintaining their ecosystems and documentation over the long term.
- Thanks to the server owners, developers, and players who participated in ScriptIrc’s testing and feedback; your suggestions directly pushed the system forward.
If you are using ScriptIrc, you are welcome to briefly introduce it to players or peers in appropriate situations,
so more people can turn their gameplay ideas into real, running plugins on servers without being blocked by tedious environment setup.
