OkZoomer

OkZoomer is a zoom mod similar to the OptiFine zoom feature (other zoom mods but with it's own differences to set it apparent) and for various Fabric versions.



My official statement about 1.17:
My official statement about 1.17

Ok Zoomer will continue to be maintained as-is, however, the original plan of having a server-side part of the mod which could restrict the client-side's capabilities will be refreshed as a separate mod which will have more options than just disabling the zoom (like making the functional parts of the zoom behave like OptiFine's). This is being done due to the addition of spyglasses.

If you are worried about losing the advantages of Ok Zoomer like its transitions, do not worry, because its logic is being split into LibZoomer, a library that can be used by other mods, such as mods that add custom spyglasses.

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 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!

A presentation video can be seen here.

Dependencies
This mod requires the Fabric API to be installed and currently works on Minecraft 1.17.1+ (1.18 included), Mod Menu is optional but is the only way which this mod's config screen can be opened. Configuration

Ok Zoomer has a lot of features and all of them can be tweaked! Here's a list featuring all of them:

Features:
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, introduced by WI Zoom. 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:

Another feature introduced by WI Zoom, it allows for using the mouse wheel in order to zoom in or zoom out, its specifics can be adjusted in the Values section.

Extra Keybinds:

Adds more 3 keybinds, "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.

Values:
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 keybinds can reach.

(Lesser) Scroll Steps:

The amount which decreases or increases the zoom divisor when scrolled or when the extra keybinds are used, the lesser scroll step is used when the zoom divisor is below the default and the regular when above it.

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 the transition from going too fast or too slow.

Tweaks:
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 keybinds, 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!

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, independent of the stability.

Presets:
Presets

Reset to Preset:

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. 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.