Adds a highly-configurable zoom key for Quilt. The zoom is yours!
New projects are created as drafts and can be found under your profile page.
Adds a highly-configurable zoom key for Quilt. The zoom is yours!
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 (such as its client tags system and its better config system) and in the future, will allow for much more (such as 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.
On the interim between the beginning of the Quilt toolchain's development and its release, Ok Zoomer was already adopting parts of Quilt that were ready at the time. On 5.0.0-beta.4, this resulted into the adoption of a JiJ'd Quilt Standard Libraries, which was needed in order to make a feature work. It ran on the Fabric Loader due to the Quilt Loader not being ready yet. While at the time, I could carefully watch for any issues and eventually fix them through an update (a good example is an issue affecting Continuity being fixed on 5.0.0-beta.6), after 5.0.0-beta.6 happened, Quilt Loader was ready, and therefore, QSL has migrated to it. With that migration, many of its code hacks used for running on Fabric could finally be removed, and so, they were.
With Fabric Loader 0.14.x, one of those hacks was broken, and therefore, the dreaded crash happens. This was not an intentional crash, and since QSL had long migrated to the Quilt Loader, I can't really do anything about it anyway. This is a big reason why the Fabric versions are unsupported, because it's no longer practical to maintain them on its current state. While those issues are solved on the Quilt versions, if you'd rather stick with the Fabric Loader, I would advise removing the mod, before the issues get worse as time passes by.
The reason why I've migrated to the Quilt toolchain is explained on the below testimonial:
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.
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
/ok_zoomer 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.
Mod Menu is optional but it might be a more convenient way to access the config screen.
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 (
/ok_zoomer) is also available as a method of configuring the mod.
Here's a list featuring all of them:
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.
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.
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.
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).
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.
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/ok_zoomer/textures/misc/zoom_overlay.png. With the "Use Spyglass Texture" option, this is replaced with Minecraft's spyglass overlay texture.
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
ok_zoomer: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.
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.
The multiplier which is applied to the cinematic camera while the Multiplied mode is used.
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.
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" key bind if 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
/ok_zoomer 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.
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
/ok_zoomer client command.
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.