Skip to content
/ HCsCR Public

HCsCR: Remove your end crystals before the server even knows you hit 'em!

License

Notifications You must be signed in to change notification settings

VidTu/HCsCR

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

582 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

HCsCR Icon

HCsCR

Remove your end crystals before the server even knows you hit 'em!

Language

Downloads

Dependencies

  • Fabric Loader, Quilt Loader, Forge, or NeoForge
  • Minecraft (1.16.5, 1.17.1, 1.18.2, 1.19.2, 1.19.4, 1.20.1, 1.20.2, 1.20.4, 1.20.6, 1.21.1, 1.21.3, 1.21.4, 1.21.5, 1.21.8, 1.21.10, or 1.21.11)
  • Fabric/Quilt only: Fabric API or QFAPI/QSL (Required)
  • Fabric/Quilt only: Mod Menu (Optional)

About

Crystal PvP ("cpvp") has become a pretty popular combat mode in Minecraft. Crystals themselves were never designed to be used in combat. Because of this, a client ping (latency) plays a significant role in a crystal PvP fight, affecting how fast you can spam. This mod helps to reduce (but does NOT fully remove) the ping factor from crystal PvP fights. This is commonly called a client-side crystal optimizer mod. It also removes the ping factor for PvP with anchors, though the ping doesn't play a big role in anchor fights, and it might even be beneficial to have high ping in these fights. This is not the only crystal optimizer mod available, but it's the most configurable out there.

NOTE: A server-side crystal optimizer plugin (not this mod) is much more effective. Consider checking the /fastcrystals command or similar commands on your server. Ask the admins to install one if the command doesn't exist.

FAQ

For Players

Q: I need help, have some questions, or have some other feedback.
A: You can join the Discord server.

Q: Where can I download this mod?
A: GitHub Releases. You can also find unstable builds at GitHub Actions. You'll need a GitHub account to download these.

Q: Which mod loaders are supported?
A: Fabric, Forge, and NeoForge are supported. Quilt should work too.

Q: Which Minecraft versions are supported?
A: Minecraft 1.16.5, 1.17.1, 1.18.2, 1.19.2, 1.19.4, 1.20.1, 1.20.2, 1.20.4, 1.20.6, 1.21.1, 1.21.3, 1.21.4, 1.21.5, 1.21.8, 1.21.10, and 1.21.11.

Q: Which Minecraft versions were previously supported?
A: Previously supported Minecraft versions were 1.19.3 (Fabric/Quilt only), 1.21.2 (Fabric/Quilt only), 1.21.6/1.21.7, and 1.21.9. NOTE: These versions are NOT supported and are included "as-is". They are probably buggy, laggy, and don't have new features.

Q: Why support so many Minecraft versions?
A: Because I can.

Q: Do I need Fabric API or Quilt Standard Libraries?
A: Yes, you'll need Fabric API for Fabric and QFAPI/QSL for Quilt. Obviously, you don't need them for Forge or NeoForge.

Q: Is this mod client-side or server-side?
A: This mod works on the client side. There is no server-side version.

Q: Is this a hack?
A: It depends on your opinion on what's a hack and what's not. This mod reduces the role that ping (latency) plays in combat with crystals. Specifically, it does affect how fast the crystals are removed. Crystal placement is NOT affected. It cannot be affected in a way that's considered legitimate.

Q: Is this designed to be a hack?
A: No.

Q: I've found a bug.
A: Report it here. If you are not sure whether this is a bug or a simple question, you can join the Discord. Report security vulnerabilities here.

Q: Can I use this in my modpack?
A: Sure. Credit (e.g., a link to the mod's GitHub page) is appreciated but is not required. Monetization and redistribution are allowed as per the Apache 2.0 License. BEWARE: This mod may be considered a hack by some people.

Q: Why is this mod not on Modrinth or CurseForge?
A: Modrinth says it violates their rules. CurseForge has a terrible API and I don't want to deal with it.

Q: Why does this mod exist, when there are server-side crystal optimizers?
A: Firstly, this mod was created in 2023 before the server-side crystal optimizers. Secondly, not every server has a server-side crystal optimizer. Thirdly, I updated it in 2025 because I needed to learn the Stonecutter preprocessor. Now it's not hard to maintain, so why not.

Q: How fast is it?
A: It should be pretty fast. No precise numbers, it depends on the ping, server MSPT, etc.

Totally Real™ Reviews From Happy Users Grandma is happy with the crystal optimizer

For Developers

Q: Is this mod open source?
A: Yes. (Licensed under the Apache 2.0 License)

Q: I want to block this mod as a server owner, can I do this?
A: A plugin channel called hcscr:imhere is registered by this mod. Older versions used a different channel, but the namespace was always hcscr. BEWARE: Other mods similar to this one don't offer a way to block them. Consider investing your time/resources into an anti-cheat plugin if you want to block all of them.

Q: How to compile for only one Minecraft version? I can't stand waiting hours for the project to initialize.
A: Run the ./gradlew script with the ru.vidtu.hcscr.only system property set to the desired <version>-<loader> combination, for example: ./gradlew -Dru.vidtu.hcscr.only=1.16.5-fabric build. Note that due to the Stonecutter requirements, the latest version may still be initialized because it is the VCS Version of HCsCR by design.

Q: Why so much yapping in this README?
A: I paid for the whole LLM, I'm going to use the whole LLM. Because writing READMEs (even though I don't use AI except for grammar checks) is easier than writing actual code.

Q: Do you use AI/LLM/Code Generation/Copilot/etc.?
A: Except for the aforementioned grammar checkers above, no. I use only the laggiest IntelliJ IDEA inspections based on the buggiest algorithms. Can't be sure for contributors, but most of the code is written by the project author. Also, I don't care about AI personally.

Q: Does HCsCR have a public API?
A: Nope. Except for the plugin channel mentioned above, there's no public-facing API in this mod. All classes/packages are marked as @ApiStatus.Internal for that reason.

Q: Can I still link/compile against to the mod? What about the SemVer versioning used by the mod?
A: You can, at your own risk. SemVer-compatible versioning is used by HCsCR for ease of use (and also Fabric uses it internally to compare versions), but it is used arbitrarily, that is: major version usually bumps after a huge code refactoring or a major change, minor version usually bumps after a minor code addition, patch version usually bumps after bug fixes/optimizations/ports to newer versions. This mod does not declare a public API, therefore, breaking source/binary changes may and will occur even between minor and patch versions.

License

This project is provided under the Apache 2.0 License. Check out NOTICE and LICENSE for more information.

Credits

This mod is developed primarily by VidTu, but it wouldn't be possible without:

It also uses Gradle and Java.

Development

Building (Compiling)

All Versions (Slower)

To compile all versions of the mod from the source code:

  1. Have 8 GB of free RAM, 20 GB of free disk space, and an active internet connection.
  2. Install Java 25 and dump it into PATH and/or JAVA_HOME.
  3. Run ./gradlew assemble from the terminal/PowerShell.
  4. Grab the JARs from the ./build/libs/ folder.

One Version (Faster)

To compile one specific Minecraft version of the mod from the source code:

  1. Have 4 GB of free RAM, 5 GB of free disk space, and an active internet connection.
  2. Install Java 25 and dump it into PATH and/or JAVA_HOME.
  3. Run ./gradlew -Dru.vidtu.hcscr.only=<version>-<loader> <version>-<loader>:assemble from the terminal/PowerShell. (for example: ./gradlew -Dru.vidtu.hcscr.only=1.16.5-fabric 1.16.5-fabric:assemble )
  4. Grab the JAR from the ./build/libs/ folder.

Developing/Debugging

Run the ./launch <version>1 (e.g. ./launch 1.16.5-fabric) command to launch the game client. You can attach a debugger to that process. Hotswap is supported. "Enhanced" hotswap (class redefinition) and hotswap agent will work if supported by your JVM.

Switch the current active Stonecutter version by using ./switch <version>2 command. It is discouraged to modify code commented out by the preprocessor, switch to the required version instead.

Reset to the VCS Stonecutter version before committing changes via ./reset3 command to avoid a diff mess.

Running the client via generated tasks (e.g., for IntelliJ IDEA) may work, but you might need to make some adjustments. Launching the game directly (without Gradle) might also work, but it is also not supported.

The development environment has stricter preconditions: Mixin checks, Netty detector, Java assertions, etc. Code with bugs might (and probably will) fail faster here than in a production environment.

The recommended IDE for development is IntelliJ IDEA (Community or Ultimate) with the Minecraft Development plugin. This is not a strict requirement, however. Any IDE/editor should work just fine.

Footnotes

  1. This is a shortcut for ./gradlew "<version>:runClient".

  2. This is a shortcut for ./gradlew "Set active project to <version>".

  3. This is a shortcut for ./gradlew "Reset active project".