Overview#
Observable is a powerful diagnostic tool designed to help players and server administrators pinpoint performance bottlenecks within Minecraft. Unlike traditional profilers that output complex text files, Observable provides a user-friendly graphical interface and an in-world visual overlay. It tracks the execution time of various game elements, including entities (mobs, items, projectiles), block entities (chests, furnaces, machines), and scheduled events.
The mod is essential for troubleshooting 'TPS' (Ticks Per Second) drops, allowing users to see exactly which objects are consuming the most processing power in microseconds (µs).
Getting Started#
To begin using Observable, you must use the designated keybind to open the profiler menu.
- Default Keybind:
R
If the R key is already bound to another action (such as inventory sorting or sprinting), you must rebind it. Navigate to Options > Controls > Key Binds and search for "Observable" or "Show profiler screen" to set a new key.
Once the menu is open, you can initiate a profiling session. The mod will sample the game's performance over a set duration (typically 30 seconds) to provide an accurate average of resource consumption.
Profiling Mechanics#
Observable functions by intercepting the tick calls of various game objects and measuring the time taken for each to complete its logic.
Profiling Types
| Type | Description |
|---|---|
| Entities | Tracks all living mobs, dropped items, experience orbs, and projectiles. |
| Block Entities | Tracks blocks with complex logic, such as hoppers, furnaces, and modded machinery. |
| Events | Tracks specific game events and listeners that may be firing frequently. |
The Profiler Screen
When a profile is completed, the results are displayed in a sortable list. The columns include:
- Name: The identifier of the object (e.g.,
minecraft:zombieorironchests:diamond_chest). - Total Time: The cumulative time spent processing this object type during the sample period.
- Average Time: The mean time taken per individual instance per tick, measured in microseconds (µs).
- Count: The total number of instances of that object currently loaded in the world.
Visual Overlay#
One of the standout features of Observable is the real-time in-world overlay. After running a profile, you can toggle the overlay to see performance data rendered directly in the game world.
Color Coding System
The mod uses a color-coded box system to indicate the performance impact of objects:
- Green: Low impact. The object is performing efficiently.
- Yellow/Orange: Moderate impact. These objects are starting to consume noticeable resources.
- Red: High impact. These objects are significant contributors to lag and should be investigated or removed.
This visual feedback allows players to walk through their base and immediately see which specific machine or animal farm is causing their frame rate or server speed to drop.
Commands#
Observable includes several commands for server administrators to manage profiling remotely or via scripts.
| Command | Description |
|---|---|
/observable start |
Begins a new profiling session on the server. |
/observable stop |
Ends the current profiling session early and compiles results. |
/observable results |
Displays the results of the last completed profile in the chat or console. |
/observable settings |
Allows for the adjustment of profiling parameters like duration and sample rate. |
Configuration#
The mod can be configured to suit different hardware capabilities and diagnostic needs. Configuration options are typically found in the observable-client.toml and observable-common.toml files.
Key Settings
- Sampling Duration: Determines how long the profiler runs (default is 600 ticks / 30 seconds).
- Overlay Visibility: Toggles whether the in-world boxes are visible by default after a profile.
- Microsecond Thresholds: Users can define the specific µs values that trigger the color changes (e.g., setting the 'Red' threshold lower for high-performance servers).
- Privacy Settings: On servers, administrators can restrict who has permission to run profiles to prevent potential exploitation of entity location data.