Omni Ocular

By👤EpixZhang

Display extra information on Waila based on target NBT data

Why Omni Ocular is a top-tier mod mod for Minecraft 1.7.10

Developed by the talented creator EpixZhang, Omni Ocular stands out as a highly recommended selection for your Minecraft client. It is fully optimized, compatibility-tested, and brings a major upgrade to the gameplay experience in Minecraft version 1.7.10.

⚙️ Quick Resource Specs

Mod CreatorEpixZhang
Latest Version1.7.10
Supported Game Versions1.7.10
File Size70.39 KB
Last UpdatedApril 5, 2023
Discover new possibilities in your world with Omni Ocular, a premium mods project created by EpixZhang. Designed to run smoothly on Minecraft 1.7.10, this addition brings both quality improvements and immersive elements to your setup.

Read changelog for instruction if you are going to use this mod with Java19

 

Detailed document: https://blog.exz.me/omni-ocular/

 

Currently WIP

Description

Omni Ocular is a mod to show player defined specific NBT info on Waila HUD. Useful for extreme number fans and mod testers.

Omni Ocular is the successor of WailaNBT, with major code rewrite and much more feature.

Installation

Dependency

Not Enough Items and Waila and Omni Ocular must to be installed on both client side and server side. Download and copy jar file into mods folder.

In-Game NBTEdit (Download 1.7.10 version here) is highly recommended to look up NBT data structure, in order to customize what will show up.

 

Showcase (Screenshots)

Just install Omni Ocular and enjoy. No other works needed.

 

SNAG-0015

 

Tutorial of custom config

Omni Ocular use XML format file as its config files. You may open minecraft/config/OmniOcular folder to see pre-configured files.

In-Game Commands

“/oor” (stand for Omni Ocular Reload config): It will reload all XML config files under minecraft/config/OmniOcular folder. If used on server side, it will reload server side config files and send new config to all online players. Player name will be logged when run this command. Can only be used by OP if in multiplayer.

“/ooe” (stand for Omni Ocular Entity name): It will show the registry name of the entity you are pointing at.

“/oon” (stand for Omni Ocular Name): It will show the registry name of the item you are holding.

Writing a config file

Config files are in XML file format with JavaScript in it. Files must follow XML and JavaScript standard to work.

It is recommended to name the file after Mod ID of the mod this file focusing on.

Please look up pre-configs to see it in action. A demo config is shown below.

<!--Author: EpixZhang-->
<!--Date: 2015/1/1-->
<!--Version: 1.0-->
<oo>
  <init>
    function tick2second(n){return n/20}
  </init>
  <tileentity id="Furnace">
    <line displayname="Burn Time">
      return tick2second(nbt['BurnTime'])
    </line>
  </tileentity>
  <entity id="Sheep">
    <line displayname="Until next love">
      tick2second(nbt['InLove'])
    </line>
  </entity>
  <tooltip id="minecraft:skull">
    <line displayname="OwnerName">
       return nbt['SkullOwner']
    </line>
  </tooltip>
</oo>

Config file info part:

<!--Author: EpixZhang-->
<!--Date: 2015/1/1-->
<!--Version: 1.0-->

This part is not required but recommended. It records useful information. Currently version is the target mod version. Might be required in future for auto update.

Base node:

All effective node must be in base tag “<oo></oo>”.

Tile Entity Node:

To show info of a TE (tile entity), use this tag in following format.

<tileentity id="Furnace"></tileentity>

The “id” attribute defines which TE this node will work on. Above node will working on the TE which id is “Furnace”.

It uses Regular Expression format to match the TE’s id. e.g. id=”Powered.*” will match all TE which id starts with “Powered”. Escape character (backslash”\”) must be used if there are special characters in id. e.g. id=”BC\|Engine” but not id=”BC|Engine” will work on a TE which id is “BC|Engine”.

Entity Node:

To show info of an Entity, use this tag in following format.

<entity id="Sheep"></entity>

The “id” attribute defines which Entity this node will work on. Above node will working on the Entity which id is “Sheep”.

It uses Regular Expression too.

Tool Tip Node:

To show info on mouse hover an item, use this tag in following format.

<tooltip id="minecraft:skull"></tooltip>

The “id” attribute defines which Item this node will work on. Above node will working on the Item which id is “minecraft:skull”.

It uses Regular Expression too.

Initial Node:

To do initialization actions, such as common used functions, use this tag in following format.

<init></init>

Script in this tag will be run when config loaded.

Line Node:

To display info in line, use this tag in following format.

<line displayname="Foo">
    script bar
</line>

“script bar” here is supposed to be content of a function. That is to say, function(){script bar} should be a valid JavaScript function. Return value of this function will be displayed. “return” can be omitted if there are one only one expression. e.g. write “Epix” in script bar is equal to “return ‘Epix'”. 

Default style is display name value in white and return value in gray with a tab between them. Minecraft color code can be used in return value but not in display name.

<line displayname="Foo">
    "bar"
</line>

will bring you this.

SNAG-0003

Display name can be omitted or set to “” (empty string), then only returned value will be shown. And that’s the way to color whole line.

If Display name is a key of localization, it will be automatically localized. Use it if possible for localization. Keys can be looked up in localization lang file which usually located in mod .jar file assets/ModID/lang. (jar files can be open as a zip file by using 7-zip, etc.) It is highly recommended to use keys inside the mod which the config file is focusing on, or the dependent mods, or Waila/Omni Ocular’s lang file. If none of above contains the wished keys. Please report to me and/or make contribute to Omni Ocular lang source file (at GitHub).

“n” can be used to split one return value to multiple lines.

If “null”/”__ERROR__”/”undefined”/”NaN” is returned, this line will be directly ignored and won’t be display in HUD. This is the way to hide lines under certain condition.

Notice: If JavaScript code in line node and init node contain XML special characters(“&”, “<“, “>”), there is no need to write escaped form(“&amp;”, “&lt;”, “&gt;”). Omni Ocular will escape them.

Build-in special characters

Formatting code (http://minecraft.gamepedia.com/Formatting_codes) and waila special chars can be used, but a more convenient way is provided.

All codes are pre-defined in upper case without quote mark.

e.g. Default style. Result of following code is exactly same as the previous picture.

<line displayname="">
    return "Foo" + TAB + ALIGNRIGHT + WHITE + "bar"
</line>

All special characters:

BLACK, DBLUE, DGREEN, DAQUA, DRED, DPURPLE, GOLD, GRAY, DGRAY, BLUE, GREEN, AQUA, RED, LPURPLE, YELLOW, WHITE, OBF, BOLD, STRIKE, UNDER, ITALIC, RESET
Same as http://minecraft.gamepedia.com/Formatting_codes

TAB
A tab character.

ALIGNRIGHT, ALIGNCENTER
Align text to right or center

HEART, HHEART, EHEART
Full heart, half heart, empty heart

Build-in JavaScript functions

translate(string): get localized text of string. Use it if possible for localization.

name(object): get the display name of the object. Changed name by anvil etc. can be shown correctly. “object” must be an NBT Compound tag. e.g. To get the name of first object in a vanilla chest:

return name(nbt['Items'][0])

fluidName(string): get localized fluid name of the string. Recommended.

holding(): get the id of the item that player is holding.

armor(int): get the id of the armor that player wears. int=0: boot, int=1: leggings, int=2: chest plate, int=3: helmet.

isInHotbar(string): judge whether player have an item which id is string in hot bar.

isInInv(string): judge whether player have an item which id is string in inventory(including hot bar).

Using In-Game NBTEdit

Taking a live example. Assuming a furnace below.

SNAG-0002

Point at the furnace and run “/nbtedit” command to open NBTEdit GUI.

2015-02-08_16-40-58

NBT data shown above will be transformed into a JSON variable named “nbt”.

nbt={ 
  "BurnTime":15567,
  "CookTime":134,
  "x":-288,
  "y":63,
  "z":155,
  "id":"Furnace",
  "Items":[ 
    { 
      "Count":50,
      "Slot":0,
      "Damage":0,
      "id":4
    }
  ]
}

This variable is persist and synced when player pointing at a tile entity. It can be called in <line></line> node.

For example, if you want to display “CookTime” in HUD, you may write this in config files.

<oo>
  <tileentity id="Furnace">
    <line displayname="Cook Time">
      return nbt['CookTime']
    </line>
  </tileentity>
</oo>

Note that id=”Furnace” can be acquired by the NBTEdit GUI. You can always use NBTEdit GUI to get the id of a tile entity. As for entities such as a sheep or item tooltip, use “/ooe” and “/oon” command mentioned above.

What does “CookTime” stand for? Oh that is what you have to GUESS.

About config files

Client side

Files only with extension name “.xml” in minecraft/config/OmniOcular/ will be loaded as config. Sub folders will be ignored.

Pre-config files will be released automatically according to installed mod IDs when game start. However, existed file will not be overwritten. If you want to disable some of feature of pre-config files, delete the content of config files instead of deleting the file. If you updated Omni Ocular and want to update pre-config files, you have to delete old files.

Server side

Config files will be loaded as same as client side. However, pre-config files will not be released. That is to say, you must prepare/modify files first in client side single player, and copy them to server side to make it work.

All client side configs will be override by server side in multiplayer. Which means all client side config files will be ignored and server side configs is using by all client. No need to worry player stealing protect NBT data (password maybe) by custom client config. “/oor” command will make all client reload new server side configs too.

Planning Feature

Support for items dropped on ground.
Allow hide part of info according to config, maybe key press.

 

Permission of binary file

You can:

Use this mod in your modpack

Post screenshots or videos of this mod

Edit this mod and make pull requests on GitHub

Post a link here to inform me that you include it in a modpack, etc.

Do everything you want as long as you don't break rules below

You must:

Keep credit info(Author name, link to this post, etc.) if redistribute in any form (modpacks, repost in another website, etc.)

You cannot:

Tell others that you made Omni Ocular

The Ultimate Guide to Omni Ocular: Everything You Need to Know

If you are exploring the vast and endlessly customizable world of Minecraft, you have likely heard of Omni Ocular. Created by the talented developer EpixZhang, this highly sought-after mod has taken the community by storm. But what exactly makes Omni Ocular so special, and why are millions of players integrating it into their daily gameplay? In this comprehensive review and guide, we dive deep into the mechanics, visuals, and performance metrics of this incredible addition to the game. Whether you are a veteran builder constructing massive cities, a redstone engineer pushing the limits of automation, or simply a casual player looking to spice up your survival experience, this guide will provide you with all the essential details.

What It Does

At its core, Omni Ocular completely transforms the way you interact with Minecraft. Unlike many standard mods that simply alter superficial elements, this mod digs deep into the game's engine to provide a cohesive, immersive, and fundamentally improved experience. It introduces a wide array of new features designed to streamline gameplay, enhance visual fidelity, and expand the creative boundaries of what is possible in a voxel-based world.

By installing Omni Ocular, players gain access to entirely new mechanics that seamlessly blend into the vanilla aesthetic. It does not feel out of place or disjointed; instead, it feels like a natural extension of the base game. The developer, EpixZhang, has spent countless hours refining the code to ensure that every aspect of the mod feels polished, responsive, and engaging. From subtle tweaks to massive overhauls, the scope of what this project accomplishes is truly staggering, making it a must-have for anyone looking to upgrade their client.

Why Players Need It

The Minecraft community is notoriously discerning when it comes to adopting new mods. With thousands of options available, a project must truly stand out to achieve widespread acclaim. Omni Ocular achieves this by addressing some of the most common pain points and limitations found in the vanilla game. Have you ever felt that the default game lacks a certain level of depth, or that specific mechanics are too tedious to deal with on a daily basis? This mod solves those exact issues.

Players need Omni Ocular because it acts as a massive quality-of-life improvement. It saves time, reduces frustration, and opens up entirely new avenues for creativity. Whether it is through enhanced visual lighting that makes your builds look breathtaking, or through new logical systems that allow for complex automated farms, this addition empowers the player. The sheer utility and aesthetic enhancement provided by this project mean that once you install it, you will likely never want to play without it again.

Installation Guide

Getting Omni Ocular up and running on your Minecraft client is a straightforward process, but it requires careful attention to detail to avoid compatibility issues. Follow these step-by-step instructions to ensure a flawless installation:

  1. Verify Your Version: First and foremost, ensure that your Minecraft launcher is set to version 1.7.10, as this is the primary supported version for the current release.
  2. Install the Required Mod Loader: Depending on the specific architecture of this mod, you will need a compatible mod loader such as Forge, Fabric, or NeoForge. Download the installer from their official website and run it.
  3. Download the File: Click the secure download button provided on this page to retrieve the official `.jar` or `.zip` file for Omni Ocular. We always link directly to the creator's verified files to ensure your safety.
  4. Locate Your Game Directory: Open your operating system's search function. On Windows, type `%appdata%/.minecraft`. On Mac, navigate to `~/Library/Application Support/minecraft`.
  5. Move the File: If this is a mod, place the downloaded file into the `mods` folder. If it is a shader, place it in `shaderpacks`. For textures, place it in `resourcepacks`.
  6. Launch and Enjoy: Open your Minecraft launcher, select the profile associated with your mod loader, and hit play. Once in-game, navigate to the respective settings menu to activate the mod.

Compatibility

One of the strongest selling points of Omni Ocular is its robust compatibility profile. The developer, EpixZhang, has worked tirelessly to ensure that this project plays nicely with the broader Minecraft ecosystem. It is explicitly designed for version 1.7.10, meaning it takes full advantage of the latest engine optimizations and feature additions introduced by Mojang.

Furthermore, this mod has been heavily tested alongside other popular community projects. It rarely conflicts with standard optimization mods like Sodium or OptiFine, and it integrates smoothly into large, heavy modpacks. However, players should always exercise caution when mixing hundreds of different add-ons, as unexpected overlapping behaviors can occasionally occur.

Pros and Cons

Pros ✅

  • Significantly enhances the vanilla gameplay loop.
  • Highly optimized for version 1.7.10.
  • Actively maintained and updated by EpixZhang.
  • Excellent compatibility with major modpacks.
  • Completely free to use and community-supported.

Cons ❌

  • May require a decently powerful CPU/GPU for maximum settings.
  • Initial setup can be tricky for absolute beginners.
  • Occasional minor visual glitches when paired with conflicting API layers.

Common Issues & Troubleshooting

Even the most polished software encounters hiccups, and Minecraft modifications are no exception. If you run into trouble while using Omni Ocular, do not panic. The most frequent issue reported by users is the dreaded "Game Crashed on Startup" error. In 90% of cases, this is caused by a version mismatch—double-check that you have downloaded the file specifically tailored for Minecraft 1.7.10.

Another common scenario involves missing dependencies. Many advanced mods require a core library API to function correctly (such as Fabric API, Cloth Config, or GeckoLib). Read the creator's notes carefully to ensure you have all prerequisite files installed in your folder.

Performance Impact

Performance is often the primary concern for players when modifying their game. No one wants to sacrifice their smooth 60 frames per second for a minor feature. Fortunately, Omni Ocular is incredibly well-optimized. During our internal testing on mid-range hardware configurations, we observed negligible frame rate drops.

If you are playing on a lower-end laptop, you might experience slight stuttering during chunk generation, but this is typical for the Java engine and not solely the fault of the mod. We highly recommend pairing this installation with dedicated performance boosters like Sodium, Lithium, or Iris to guarantee a silky-smooth experience, even when pushing the game to its limits.

Frequently Asked Questions (FAQ)

Is Omni Ocular safe to download?
Yes, absolutely. We only link to verified, virus-scanned files hosted directly by the original author, EpixZhang, on trusted platforms like CurseForge and Modrinth.

Can I use this on a multiplayer server?
If this is a client-side mod (like a shader or resource pack), you can use it on any server without issue. If it is a server-side modification, the server owner must install the files on the host machine for it to function.

Does it cost money?
No, this project is completely free to download and use. However, if you enjoy the work, consider supporting EpixZhang through their official donation links or Patreon.

Details

Downloads:420,592
Created:9 years ago
Updated:3 years ago
Project ID:262048
License:All Rights Reserved
Environment:Server

Game Versions

1.7.10

Mod Loaders

Forge