Ok Zoomer has migrated to the Quilt toolchain!
Since 5.0.0-beta.7, Ok Zoomer has completely switched to the Quilt toolchain! This will allow us to take advantage of its new APIs and in the future, will allow for much more (such as a better config system and better key bind integration with Quilt Key Binds API).
This means that all Fabric versions (including 5.0.0-beta.6) are no longer supported! I won't be able to fix any issues afflicting them. If you attempt to run 5.0.0-beta.7+ on Fabric, this mod will warn you on startup about it through a carefully-crafted Fabric-only part of the mod, which will show a screen.
Why is 5.0.0-beta.6 (the last Fabric version) not working on Fabric???
The reason why I've migrated to the Quilt toolchain is explained on the below testimonial:
Hello! I've been part of the Modded Minecraft community for quite a few years, and even before then, I've always been playing with mods as a kid.
Watching all the new innovations that those people always keep creating has always fun to me! To tinker with new mechanics to simply causing havoc on Creative Mode, modding has always been quite magic to me, and being able to be one of those magic people meant that I could finally contribute to improving this experience not just for players, but for everyone in general.
However, unfortunately the past year hasn't been great. I have witnessed fellow modders being hurt by those who were meant to protect the community, I have witnessed innovation being drowned by those meant to promote it, I have witnessed a downward spiral going on and on until everything hit the rock bottom, with myself having migraines just from seeing everything falling apart. I felt like I couldn't support that place anymore, and I felt like if there's no way forward, I'd might as well retire from modding, except that I don't want to retire, I still believe that there's more to do!
Thankfully, the Quilt community has popped up as the answer to where to go: A place that can really be called a community for everyone, a place where innovation is encouraged, and a place in which I could call home. If not for it, I don't believe that I would have continued to develop my mods.
On my own mods, especially Ok Zoomer, I've already began to use its innovations, its better decompiler, its mappings, its ergonomic and new API, but with the beta release of the Quilt toolchain, I can finally complete this switch to Quilt. While it's still its first days, I've always loved experimenting with new things! If I didn't, I wouldn't have created Ok Zoomer with a young and new Fabric on the first place!
The Quilt toolchain is still a beta, with many things still being worked on, but together, we'll explore this new horizon of modding, and with it, the expanded opportunities out there.
Description:
Ok Zoomer is a mod that adds a configurable feature-packed zoom key, which allows for zooming. By default, the zoom key is bound to C with the zoom itself being different, with features like zoom scrolling, smooth transitions and reduced mouse sensitivity.
However, this isn't the end of the story, because here, you are in charge of your own zoom! Through the config screen, which is accessible through either the /okzoomer client command or the Mod Menu, the zoom is completely configurable, and if the default behavior isn't exactly what you want, you can change the smallest details or even restore the OptiFine zoom with a press of a button!
The 4.0.0 presentation video can be seen here, although a lot has changed since then.
Dependencies:
This mod requires the Quilt Standard Libraries to be installed and currently works on Minecraft 1.18.2+ with the Quilt Loader.
Mod Menu is optional but it might be a more convenient way to access the config screen.
Configuration:
Ok Zoomer has a lot of features and all of them can be tweaked! The configuration screen is accessible through Mod Menu, however, a client-side command (/okzoomer) is also available as a method of configuring the mod.
Here's a list featuring all of them:
Features:
Cinematic Camera
The classic way of moving the camera around which OptiFine uses, but more compatible with Vanilla's cinematic camera itself! It has 3 modes: off, vanilla and multiplied. Vanilla is exactly like the game's cinematic camera feature, and Multiplied multiplies the values used for the smoothiness, reducing or increasing the lingering.
Reduce Sensitivity
The alternative way of moving the camera around. When zoomed in, the mouse sensitivity is divided dynamically, the further is zoomed in, the slower the mouse is, allowing for more precision. Can be enabled or disabled.
Zoom Transitions
A feature from this mod itself, it adds transitions between zooming in and out instead of a sudden change. It has 3 modes: off, smooth and linear. Smooth transitions are similar to Vanilla's dynamic FOV while linear transitions takes constant steps until it reaches the state.
Zoom Mode
The behavior of the zoom key itself. It has 3 modes: Hold, Toggle and Persistent. Hold needs the key to be hold in order to zoom, Toggle allows for toggling the zoom with the key, Persistent makes the zoom permanent, with the key being used in order to scroll the zoom (recommended with a 1.0 zoom divisor).
Zoom Scrolling
This feature allows for using the mouse wheel in order to zoom in or zoom out. Its specifics can be adjusted in both the Values and the Tweaks section.
Extra Key Binds
Adds more 3 key binds, "Increase Zoom", "Decrease Zoom" and "Reset Zoom". Best used in combination of a toggled or persistent zoom. Can be disabled or enabled, but requires a Minecraft restart in order to apply the changes.
Zoom Overlay
Adds a overlay while zoomed in. There are two modes: Vignette and Spyglass. Vignette is similar to Minecraft's vignette, Spyglass imitates the Spyglass overlay. The texture is a vignette by default, but it can be changed with a resource pack. The texture path is "assets/okzoomer/textures/misc/zoom_overlay.png". With the "Use Spyglass Texture" option, this is replaced with Minecraft's spyglass overlay texture.
Spyglass Dependency
Makes the Ok Zoomer zoom depend on the spyglass through different ways. There are 4 options: "Off", "Require Item", "Replace Zoom" and "Both". With "Require Item", the zoom will require a spyglass (and other items inside the "okzoomer:spyglass_dependencies" item tag) before zooming. With "Replace Zoom", the spyglass' zoom is instead replaced with Ok Zoomer's zoom (the zoom key will still work). "Both" imposes both restrictions, making a spyglass item required but with both the zoom key and the spyglass using the Ok Zoomer zoom.
Values:
Zoom Divisor
The divisor which is ultimately applied to the FOV while zoomed in.
Minimum/Maximum Zoom Divisor
The minimum zoom divisor which zoom scrolling or the extra key binds can reach.
Upper/Lower Scroll Steps
The number of steps between the zoom divisor and the maximum/minimum zoom divisor. This is used by zoom scrolling, with the scroll step being the unit of change.
Cinematic Multiplier
The multiplier which is applied to the cinematic camera while the Multiplied mode is used.
Smooth Multiplier
The multiplier used by the smooth transition, higher is faster, lower is slower.
Minimum/Maximum Linear Step
The limits of the linear transition's step, used in order to stop a linear transition from going too fast or too slow.
Tweaks:
Reset Zoom With Mouse
Allows for resetting the zoom with the mouse's middle button, meant to be used along with zoom scrolling or extra key binds, effective with a persistent zoom.
Unbind Conflicting Key
Unbinds the "Save Toolbar Activator" is both it and the zoom key are set to C, it's enabled when the config file is created but it disables itself once the key's unbound. It can be triggered in the config screen in case the automatic unbinding doesn't work.
Use Spyglass Texture
Replaces the zoom overlay's vignette texture with Minecraft's spyglass texture.
Use Spyglass Sounds
Adds spyglass sounds on zooming in and out. Compatible with other zoom modes!
Show Restriction Toasts
If disabled, toasts warning the player about imposed server restrictions will no longer appear, although they can still be seen through the "/okzoomer" client command.
Print owo on Start
When enabled, this mod will print "[Ok Zoomer] owo what's this" or variations of it in the console log when config is loaded. Originally meant as a signal that this is an indev version of the mod, it can be enabled, independently of the mod's version cycle.
Presets:
Allows for changing the config with presets that already have the values filled, the preset is applied once the config is saved. Has 3 presets: Default, Classic and Persistent. Default changes the values to the config screen's defaults, Classic changes the values to match OptiFine's zoom. Persistent changes the values to behave more like a FOV change mod than a zoom mod. Spyglass makes the zoom just like a spyglass one.
If you are worried about the cheaty potential of features such as 50x zoom scrolling, don't worry! The server is able to instruct the client to temporarily restrict potentially cheaty features, with them being removed once leaving the server. They can be viewed with the "/okzoomer" client command.
License
This mod is licensed under the MIT license. You can freely include the mod on any modpack with no permission. Usage of this mod's code on other projects is allowed as long as attribution is given.
This mod's icon makes usage of Twemoji assets, which are licensed under CC BY 4.0.
In reply to tr1gonometry:
I'm working on a thing.
For now I'd recommend WI Zoom, has less framerate issues. :>
In reply to tr1gonometry:
Due to limitations on CurseForge's comment system, I couldn't post the complete comment here, so I've written a gist that should answer this. Hopefully, this should explain everything
I just had a user report an issue with my mod, because he used the Quilt version on Fabric. Because you JiJ parts of quilted fabric, those parts of the Fabric API were going to QSL instead of Fabric's implementation. This meant that most mods still work, but it causes some resource loading issues.
1. If the Quilt version is Quilt only, please make it crash on Fabric
2. Why are you JiJ-ing standard libraries
In reply to florensie:
Making it intentionally crash on fabric is a bad idea and it would be a big let down to people in the Fabric community.
In reply to Sildur1:
If it doesn't work properly on Fabric, wasn't intended to, and breaks random core fabric APIs, then it definitely should crash when launched on Fabric
In reply to florensie:
You are confusing the Quilt-powered Fabric version (5.0.0-beta.6) with the pure Quilt version (5.0.0-beta.7); 5.0.0-beta.6 was meant to work with Fabric while already migrating to Quilt (hence why I JiJ'd the QSL, it was still not released), however, there were issues that were only solved after switching to the Quilt Loader (with further more, such as the 0.14.x crash, popping up later on Fabric); If you attempt to use the 5.0.0-beta.7 (Quilt-only) JAR on a Fabric instance, the mod itself won't be loaded and instead, it will show a custom screen warning about the mod's migration
Ok Zoomer causes Minecraft to crash on 1.18.2 with Fabric version higher than 0.13.3.
In reply to nuzza:
Since 5.0.0-beta.7, Ok Zoomer no longer supports Fabric. The underlying issue has been fixed on the migration to Quilt; Consider either migrating to Quilt (a process in which a great majority of Fabric mods should still work) or remove the mod in order to fix the crash
Okzoomer beta 6 crashes my game. Fabric's support team thinks it is your handling of the brigadier
When using both OK Zoomer and Vanilla Hammers (a tool mod), the Trinkets mod suddenly stops working (none of the trinket slots are available). If I remove either OK Zoomer or Vanilla Hammers, all of the Trinkets slots start working normally. On a server there aren't any issues, but kindof makes sense since OK Zoomer is client-side only.
While Trinkets doesn't seem to be the issue, I reached out to the dev of Trinkets because it's the only one of these three mods that has a Discord. They mentioned that OK Zoomer and / or Vanilla Hammers might be breaking packets, but didn't have much other advice. Any help is appreciated. Thanks!
Latest version of OkZoomer is causing my game to not even start. Please fix!
The latest version is not compatible with the starter
Incompatible mod set!Incompatible mod set!net.fabricmc.loader.impl.FormattedException: Mod resolution encountered an incompatible mod set!A potential solution has been determined: - Replace mod 'Quilt Lifecycle Events' (quilt_lifecycle_events) 1.0.0+1.18.2-SNAPSHOT with any version that is compatible with:Unmet dependency listing: - Mod 'Quilt Tags API' (quilt_tags) 1.0.0+1.18.2-SNAPSHOT requires any version of mod 'Quilt Lifecycle Events' (quilt_lifecycle_events), but only the wrong version is present: 1.0.0+1.18.2-SNAPSHOT! at net.fabricmc.loader.impl.FabricLoaderImpl.load(FabricLoaderImpl.java:190) at net.fabricmc.loader.impl.launch.knot.Knot.init(Knot.java:142) at net.fabricmc.loader.impl.launch.knot.Knot.launch(Knot.java:71) at net.fabricmc.loader.impl.launch.knot.KnotClient.main(KnotClient.java:23)
Game crashes when using Zoom in the last version
java.lang.ClassCastException: class java.lang.Double cannot be cast to class net.minecraft.class_746 (java.lang.Double is in module java.base of loader 'bootstrap'; net.minecraft.class_746 is in unnamed module of loader net.fabricmc.loader.impl.launch.knot.KnotClassLoader @ebaa6cb)java.lang.ClassCastException: class java.lang.Double cannot be cast to class net.minecraft.class_746 (java.lang.Double is in module java.base of loader 'bootstrap'; net.minecraft.class_746 is in unnamed module of loader net.fabricmc.loader.impl.launch.knot.KnotClassLoader @ebaa6cb) at org.spongepowered.asm.synthetic.args.Args$4.set(Args$4.java) at net.minecraft.class_312.args$bkb000$modifyLookDirection(class_312.java:6602) at net.minecraft.class_312.method_1606(class_312.java:266) at net.minecraft.class_310.method_1523(class_310.java:1096) at net.minecraft.class_310.method_1514(class_310.java:737) at net.minecraft.client.main.Main.main(Main.java:236) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.base/java.lang.reflect.Method.invoke(Method.java:568) at net.fabricmc.loader.impl.game.minecraft.MinecraftGameProvider.launch(MinecraftGameProvider.java:416) at net.fabricmc.loader.impl.launch.knot.Knot.launch(Knot.java:77) at net.fabricmc.loader.impl.launch.knot.KnotClient.main(KnotClient.java:23)
1.18.2 version breaks optifines connected textures on stained/tinted glass, but everything else works as intended.
Hey there, for some reason the mod doesn't seem to be working with "continuity". The zoom itself and other parts of the mod work just fine, but continuity just doesn't work, the textures don't connect. When you have continuity and ok zoomer together the connected textures just disable.
In reply to aquapotato42:
It's a known conflict between Quilt Standard Libraries (bundled by Ok Zoomer) and Continuity; There are plans to fix this on both sides, however, it may take a while until that happens; I'll probably release a QSL-less version of the mod in the meantime as an alternative version, however, the parts where QSL is necessary will break, although it won't affect basic zooming
In reply to EnnuiLangeweile:
Glad to hear that, any ETA on when we'll get that QSL-less version of the mod? Thanks
In reply to karthikbalaji:
I've changed my own plans from QSL-less to merely QSL-not-included, which could still allow for issues to be solved, because yeah, JiJs are a mess; It'll probably be tomorrow, or something like that
The Continuity problem was eventually fixed on QSL's side (the mentioned two-side solution will still improve the situation by formally covering Continuity's usecase, but it's no longer mandatory for it to work), and therefore, 5.0.0-beta.6 should no longer have that issue
In reply to aquapotato42:
I'm facing the same issue as well... I use both okzoomer and continuity
I have an issue where the mod crashes anytime I open my inventory or go into 3rd person on the latest 1.18 version. Checked all the mods and this is the only one it happens with, even when there are no other mods installed.