
Modrinth · Minecraft mod
ctjs
An in-progress rewrite of the ChatTriggers mod in Fabric 1.21
Quick answer
Which ctjs release should I use?
ctjs 2.2.2-1.8.9 targets 1.8.9 with Forge. It must be installed on the client. Do not install it on the dedicated server. No extra mods listed for this file.
Where it goes
Is ctjs required on the client, server, or both?
It must be installed on the client. Do not install it on the dedicated server.
This file is marked client-only.
What else does ctjs 2.2.2-1.8.9 need?
2.2.2-1.8.9. Change the file and its required mods may change too.
This file does not list any required mods. Do not add a library just because a different file uses it.
This file does not list any required or optional mods.
Before you install it
Add ctjs without breaking your instance.
Built for ctjs 2.2.2-1.8.9. Pick another file and the loader, install side or required mods may change.
- 01
Stick to this file
Use 2.2.2-1.8.9. It targets 1.8.9 with Forge; another release may have different loader, side or dependency requirements.
- 02
Bring the mods it needs
This file does not list any required mods. Do not add a library just because a different file uses it.
- 03
Put it on the correct side
It must be installed on the client. Do not install it on the dedicated server.
- 04
Pick the file you checked
Use the “Get this file” button beside 2.2.2-1.8.9. It opens that exact file at the source.
About this project
What does ctjs add?
NOTE
This project is a fork from the original mod, for the original github you can head over to https://github.com/ChatTriggers/ctjs
ChatTriggers (CT) is a framework for Minecraft that enables live scripting and client modification using JavaScript. We provide libraries, wrappers, objects, and more to make your life as a modder as easy as possible. Even if we don't support something you need, you can still access any Java classes and native fields/methods.
With CT, you have all the power of a modding environment with the benefit of an easy-to-use language and the ability to reload your scripts without restarting the game. CT also provides a way to define your own Mixins!
CT is currently written for Fabric 1.21.x. See this repo for the deprecated Forge 1.8.9 version.
Examples
Want to hide an annoying server message that you see every time you join a world?
register('chat', event => {
cancel(event);
}).setCriteria("Check out our store at www.some-mc-server.com for 50% off!");
How about automating a series of common commands into one?
register('command', () => {
ChatLib.command('command1');
ChatLib.command('command2');
ChatLib.command('command3');
}).setName('commandgroup');
Or even something silly like a calculator command
register('command', (...args) => {
// Evaluate all args the user gives us...
const result = new Function('return ' + args.join(' '))();
// ...and show the result is a nice green color
ChatLib.chat(`&aResult: ${result}`);
}).command('calc');
With CT's register system, you can listen to custom events that we emit and react to them. For example, we emit events when you switch worlds, click on a GUI, hit a block, hover over an item and see its tooltip, and much more! You can even provide custom events for other module authors to use.
Getting Started
To begin, download and install Fabric for one of the supported versions, then head over to our releases page and download the latest version. The mod is installed like any mod; just drag it into your mods folder. Once installed, you can import modules in-game by typing /ct import <moduleName>, where <moduleName> is the name of the module. You can browse the available modules on our website.
Writing Modules
If you can't find any modules on the website that do exactly what you want, which is quite likely, you'll have you write your own! Here are the steps you'll want to take:
Navigate to the
.minecraft/config/ChatTriggers/modulesfolder. If you don't know where this is, you can also execute/ct files, which will open the correct directory automatically.Create a new directory with the name of your module
Inside the directory, create a file called
metadata.json, and inside of that, put the following text:{ "name": "<module name>", "entry": "index.js" }This means that when our module first runs, CT will run the
index.jsfileNote that
<module name>must match the name of your folder exactly!Create the
index.jsfile, and put some code in there. What exactly you write will depend on what you want CT to do. To learn more about the available APIs, take a look at the Slate.- Some things on the Slate may be outdated, we are working on improving this
Documentation
- Slate, a guided tutorial that covers the basics
- Javadocs, a technical reference for all public APIs in the mod
- MIGRATION.md, a guide for upgrading modules from CT 2.X to 3.0
- CONTRIBUTING.md (TODO)
Project description from Modrinth.
Pick your setup
ctjs by Minecraft version and loader
Choose the version and loader you play, then open the matching release.
26.1.2
1 loader build26.1.1
1 loader build26.1
1 loader build1.21.11
1 loader build1.21.10
1 loader build1.21.9
1 loader build1.21.8
1 loader build1.21.7
1 loader build1.21.6
1 loader build1.21.5
1 loader build1.21.4
1 loader buildShowing the newest 12 of 13 game versions. Older files are in the list below.
Check the dependencies, then try the file in a copied instance before changing a world you care about.
Recent files
ctjs versions and loaders
26.2v1
ctjs-3.0.0-beta.jar
9 Aug 2026
26.1v2
ctjs-3.0.0-beta.jar
8 Aug 2026
26.1v1
ctjs-3.0.0-beta.jar
8 Aug 2026
1.21.11v1
ctjs-3.0.0-beta.jar
2 May 2026
3.0.0-beta.33
ctjs-3.0.0-beta.jar
28 Oct 2025
3.0.0-beta.32
ctjs-3.0.0-beta.jar
28 Oct 2025
2.2.2-1.8.9
ctjs-2.2.2-1.8.9.jar
26 Oct 2025
3.0.0-beta.31
ctjs-3.0.0-beta.jar
21 Oct 2025
3.0.0-beta.30
ctjs-3.0.0-beta.jar
18 Oct 2025
3.0.0-beta.29
ctjs-3.0.0-beta.jar
18 Oct 2025
3.0.0-beta.28
ctjs-3.0.0-beta.jar
18 Oct 2025
3.0.0-beta.27
ctjs-3.0.0-beta.jar
18 Oct 2025
Looking for an older file? The official Modrinth project page is in Resources.