Accurate stronghold calculator for Minecraft speedrunning.

Overview

Ninjabrain Bot

An accurate stronghold calculator for minecraft speedrunning. Achieves better results than regular calculators by accounting for user error and stronghold generation mechanics. See triangulation.pdf for an explanation of the underlying mathematics.

NinjabrainBot

Getting started

Download the latest release and run the jar. To use the calculator, throw an ender eye, look at it, and press F3+C, and repeat for as many eyes as you like. The calculator will give you a certainty percentage of how confident it is that the predicted location is correct. If you want the certainty improved you should also change the standard deviation in the settings (see the FAQ down below for how to do this).

If you are used to perfect travel and want the same accuracy you need to set hotkeys for "+0.01/-0.01 to last angle" in the advanced options, and calibrate your standard deviation (can also be done in the advanced options).

History

Ninjabrain bot was first created in November 2020, in the era of Throwpro. The bot was created because the calculators at the time were too inaccurate, especially for calculated travel which was just beeing pioneered at the time. The two most common alternatives, Throwpro and FastStronghold, used models that were too simple and were not accurate at long distances. However, back then Ninjabrain bot only existed in a more primitive form, as a twitch chat bot. The first example of it being used in a real run can be seen here.

FAQ

Is this legal to use in speedruns?

Yes, as of the calculator unban 2021-12-09 it is legal for runs submitted on speedrun.com.

The calculator said it was 100% certain but still missed the stronghold, what went wrong?

You most likely moved when you were throwing one of the eyes. It takes way longer than most people think for the player to fully come to a stop, even when your coordinates in F3 are completely stationary you still have to wait a while before throwing the eye (I think this happens because of client-server desync, but i'm not sure). If you want to come to a stop quickly I recommend pushing yourself into a corner between two blocks.

Can I do subpixel adjustment, like in perfect travel, with the bot?

Yes. Under advanced options in the settings you can set hotkeys for "+0.01 to last angle" and "-0.01 to last angle". Pressing those hotkeys will manually change the angle of the last F3+C you did. So for example, if your resolution is 1920x1027 and your eye has a wide middle eye-slit, you would press the "+0.01 to last angle"-hotkey to adjust the angle. See the perfect travel document for more details.

What does the "Display stronghold location" setting mean?

It is just a setting that says how the stronghold location should be presented, it does not impact the accuracy of the calculator in any way.

  • (4, 4) will show you the coordinates of the starter staircase
  • (8, 8) will show you the coordinates of (8, 8) in the stronghold chunk (the center of the chunk)
  • Chunk will show you the chunk coordinates of the stronghold

What is "Standard deviation" in the settings?

Simply put, the standard deviation describes how accuretely you measure ender eye angles. The better you are at measuring ender eyes the lower the standard deviation should be. Setting the standard deviation to a small value means that the bot will trust your readings more, but setting the standard deviation too low means that the bot will be overconfident in its results. To find out your optimal standard deviation you can use the "Calibrate standard deviation" funciton available in the settings. Each players own standard deviation depends on a lot of factors such as FOV, resolution, mouse sensitivity, and experience measuring ender eyes, but the value should typically be in the range

  • 0.050 - 0.200, if you're measuring eyes in quake pro
  • 0.020 - 0.040, if you're measuring eyes in 30 FOV
  • 0.005 - 0.010, if you're measuring eyes in 30 FOV and use subpixel adjustment

What is "Show angle errors" in the settings?

Angle errors tell you how wrongly you measured each ender eye (assuming that the predicted stronghold location is correct). This can be used to practice your ender eye measuring accuracy by trying to get as low errors as possible. It can also be used as a sanity check in runs, if the angle errors are abnormally large you may have measured something wrong, or moved while you were throwing one of the eyes.

What is "Use advanced stronghold statistics" in the settings?

"Advanced stronghold statistics" will use the existence of other strongholds and the fact that the eye points towards the closest one to make a better prediction. This improves the accuracy and it should be turned on for 99.9% of users.

Comments
  • Inaccurate Trangulation

    Inaccurate Trangulation

    Ive been trying this for about an hour or three and about 2/5 times I throw an eye The stronghold triangulation is inaccurate. Even though I wasnt moving and sometimes It would be inaccurate for about 2000 blocks

    help wanted 
    opened by Eimerplayz127 5
  • Chinese language support

    Chinese language support

    Chinese language support. In our country, many friends are using this software, so we have made multi-language support, but there may be some problems due to the large changes in the code.

    opened by LingMuQingYu 4
  • Issue with calibration for macOS

    Issue with calibration for macOS

    I am not sure how it works, but while calibrating the copy-paste doesn't seem to work for macOS, it seems to copy the commands, but it doesn't paste the commands to the Minecraft window. Is there a way to solve this?

    opened by abhinavac 2
  • Add lock hotkey and distance/angle updates

    Add lock hotkey and distance/angle updates

    Changes

    • Add lock hotkey
      • Prevents reset hotkey functionality
      • Allows F3+C without adding new data points for distance and angle updates
      • Updates the title text to show whether the bot is in locked mode or not
    • Separate handling of F3+C when looking downward
      • Updates distance and angle, whether locked or not
    • New logic for handling F3+C in nether
      • F3+C in nether with no eyes thrown will still count as a blind result
      • If eyes thrown already, will update distance and angle
    • Distance and angle updates
      • Optional, can be enabled with "Show Angle Updates" checkbox in basic settings tab
      • On basic view
        • Shows distance in both overworld and nether for best prediction
        • Shows raw angle needed to travel at and also how much you need to adjust your current angle by at the time of F3+C
      • On detailed view
        • Now shows angle updates and distance in nether for all top 5 predictions
        • Had to increase window width a little bit to fit the new angle information on detailed view

    My discord is BlueSmoke#4228 for further in-depth discussion.

    opened by Blu3Smoke 1
  • Are divine coords for 0divine correct

    Are divine coords for 0divine correct

    I'm pretty sure I didn't mess up the F3+c part and it sent me to coords for divine 3 and not 0. If you don't have seed with divine 0 to check here is a seed: 2108312397911699510.
    Screenshot (253)

    opened by simeguy 1
  • Variables ak and bk not defined in triangulation.pdf

    Variables ak and bk not defined in triangulation.pdf

    The variables a subscript k and b subscript k, which represent the inner and outer bounds of the stronghold ring, are not defined in the paper, reducing its readability

    documentation 
    opened by Gregor0410 1
  • High Precision Implementation

    High Precision Implementation

    Changes:

    • Added settings tab 'High precision'
      • Column for tall res pixel corrections
        • Checkbox to enable/disable
        • Textbox for screen res height
      • Column for precise angle measurement
        • Checkbox to enable/disable
        • Textbox for sensitivity
        • Hotkey to indicate resetting angle with a boat
    • Correction offset for yaw-based eye error
    • Increased decimals shown in various displays
    opened by ExeRSolver 1
  • Problem of minecraft on the system linux

    Problem of minecraft on the system linux

    I tried to use this plugin with minecraft on the system linux. I found that when I press "k", the command line will show "/" or "/k" (this may be the problem of minecraft) Secondly, jnativehook has many wrong keycode and rawcode for linux, so the F3 + C can't be truely detected

    opened by JINZhao2000 7
Releases(1.3.2)
  • 1.3.2(Oct 1, 2022)

    New features

    • Support for Minecraft 1.9-1.12. In these versions F3+C doesn't work, but now you can also input eye throws into the bot by typing your x, z, and angle in chat and copying it to your clipboard, e.g. -180 213 63.2 if the following are your coordinates (Important, use Block coords, not XYZ): A new setting has been added, Standard deviation 1.9-1.12 which is the standard deviation that will be used if you use this method of inputting ender eye throws. It defaults to 0.03, and it is not recommended to go any lower than this, as the angle only has 1 decimal point of precision when you input it this way, as opposed to 2 with F3+C. Any ender eye throws that are inputted this way will have a cyan dot next to it, to show that it uses the standard deviation for 1.9-1.12, as shown in the following image.
    • Language options (thanks to @LingMuQingYu). It is now possible to change the language of the bot to any of the supported languages, in case you dont want to use your default language.

    Changes

    • Pressing F3+C in the nether when you have already inputted ender eye throws will now show the distance in the nether to the stronghold, as opposed to the distance in the overworld.
    • Hotkeys which dont use any modifiers (Shift/Ctrl/Mouse buttons/etc.) will now work even if modifiers are pressed down. Previously this would cause hotkeys to become unresponsive if you pressed them while holding down e.g. Shift or a mouse button.
    Source code(tar.gz)
    Source code(zip)
    Ninjabrain-Bot-1.3.2.jar(2.74 MB)
  • 1.3.1(Jun 28, 2022)

    New features

    • Support for Minecraft 1.19 (toggleable in settings). In 1.19 the ender eyes seem to be a few pixels off about 50% of the time, without a known explanation yet. To get reliable results it is recommended to move a lot more to the side between eye throws.
    • Italian translation (thanks to @Dar9586)
    Source code(tar.gz)
    Source code(zip)
    Ninjabrain-Bot-1.3.1.jar(2.73 MB)
  • 1.3.0(May 21, 2022)

    New features

    • Direction help. If you press F3+C while looking down the bot will tell you what direction the stronghold is from your current position (and in parentheses how many degrees you need to turn), which is useful if you have gone off angle while traveling. This will also update the distance to the stronghold, and can be done in both the overworld and the nether (in the nether you don't have to look down, however). This feature has to be enabled in the settings by checking "Show direction to stronghold".
    • Locked mode. By pressing a configurable hotkey you can toggle "locked mode", in which the calculator will not respond to reset/undo/subpixel adjustment hotkeys, so that you do not change the result by accident. If you press F3+C in locked mode it will not act as a new eye throw, but it will update the distance and angle to the stronghold (for the purposes of "Direction help").
    • Overlay auto hide options. There is now an option to auto hide the OBS overlay after it has not updated in a while, and another option to hide the overlay when in locked mode. Both of these options are useful if you dont want the overlay to show for an extended period of time, but you still want to keep the result for yourself (e.g. in all advancements).
    • Korean translation

    Small changes

    • New larger text size option.
    • Improved look of text (less blurry).
    • Split settings menu into tabs.
    • Minor optimizations.

    Fixes

    • Calibration now works on Mac OS.
    • Calibration now doesn't change your FOV (previously it would ask you to fly in creative, which increases your FOV).
    • Subpixel adjusting an eye throw that uses alt. std. will no longer disable alt. std. for that throw.

    Thanks to @Blu3Smoke for adding most of the features of locked mode and direction help, and @RedLime for translating to Korean.

    Source code(tar.gz)
    Source code(zip)
    Ninjabrain-Bot-1.3.0.jar(2.73 MB)
  • 1.2.0(Jan 28, 2022)

    This version has been approved and is legal for runs submited on speedrun.com. New features

    • Added fossil divine.
      • Target the fossil start and press F3+I to get the divine coords.
      • The blind feature (press F3+C anywhere in the nether) also works with divine, accurately showing how good your current coords are if you have a fossil. You will also be told where to go to improve your coords.
      • Finally, the calculator will combine divine and eye throws to improve the accuracy of triangulation, which can be particularly useful for one-eye triangulation.
    • OBS Overlay. For a livestream it can enhance the viewer experience if the viewers see what the bot tells the streamer, but having it on screen all the time just wastes space. The overlay shows exactly what the window shows, but will automatically hide when the bot is not showing anything (e.g. after a reset). Enable it in the settings and add to OBS using an image source.
    • Chinese translation thanks to @liuzhengjin and @Crsuh2er0.
    Source code(tar.gz)
    Source code(zip)
    Ninjabrain-Bot-1.2.0.jar(1.14 MB)
  • 1.1.1-pre1(Dec 27, 2021)

  • 1.1.0(Dec 16, 2021)

    New features

    • Added standard deviation toggle. In addition to your normal standard deviation, you can now set an altervative standard deviation in the settings. By pressing a hotkey you can make your last angle use the alternative standard deviation instead of your normal one. This can be used if you want to combine measurements that have different precision, e.g. one angle that is subpixel adjusted and another one for distance checking. alt_std
    • Added blind travel support, press F3+C in the nether to evaluate your blind coords. blind
    • Added detailed view, which shows the top 5 predictions of the stronghold, instead of just one. This mode can be turned on in the settings. detailed_mode
    • Added crosshair correction, which can be used to correct crosshair misalignment. Usually the crosshair is aligned correctly but on certain resolutions combined with certain in-game settings it's not. On 1440p Fullscreen GUI scale 3 (31 FOV) you should set it to 0.026, and on 1440p Fullscreen GUI scale 0 (31 FOV) you should set it to 0.104. No other resolutions are currently known to cause crosshair misalignment.

    Fixes

    • Added the option to turn on "alternative clipboard reader", which may fix responsitivity issues for some users.
    Source code(tar.gz)
    Source code(zip)
    Ninjabrain-Bot-1.1.0.jar(1.11 MB)
  • 1.0.1(Dec 9, 2021)

  • 1.0.0(Dec 9, 2021)

Owner
Filip R
Filip R
Keep up to date with your legal speedrunning mods!

ModCheck Keep up to date with your legal speedrunning mods! If you are just starting out, you can use this to download all legal mods! Or, you can use

Meera 2 Apr 10, 2022
Slicer4J is an accurate, low-overhead dynamic slicer for Java programs.

Slicer4J This repository hosts Slicer4J, an accurate, low-overhead dynamic slicer for Java programs. Slicer4J automatically generates a backward dynam

The Reliable, Secure, and Sustainable Software Lab 25 Dec 19, 2022
A fast and accurate POS and morphological tagging toolkit (EACL 2014)

RDRPOSTagger RDRPOSTagger is a robust and easy-to-use toolkit for POS and morphological tagging. It employs an error-driven approach to automatically

Dat Quoc Nguyen 137 Sep 9, 2022
Inspect pmap -X output of a java process, requires Java11, likely not 100% accurate

java-pmap-inspector Inspect pmap -X output of a java process, requires Java 11, likely not 100% accurate. Usage examples $ pmap -X pid > pmap.txt; jav

Brice Dutheil 7 Jul 6, 2022
java math accurate implementation & experiments

Marlin-Math Accurate and fastest Math functions in java, like the Marlin renderer ! Rationale Java supports Quadratic & Cubic curves in Java2D & JavaF

Laurent Bourgès 7 Nov 18, 2021
👄 The most accurate natural language detection library for Java and the JVM, suitable for long and short text alike

Quick Info this library tries to solve language detection of very short words and phrases, even shorter than tweets makes use of both statistical and

Peter M. Stahl 532 Dec 28, 2022
Official React Native client for FingerprintJS PRO. 100% accurate device identification for fraud detection.

FingerprintJS PRO React Native Official React Native module for 100% accurate device identification, created for the FingerprintJS Pro Server API. Thi

FingerprintJS 26 Nov 22, 2022
A simple calculator GUI

Calculator A simple calculator GUI Description Lets you use a standard calculator in a GUI, these are some features that this calculator supports. Mad

Raymart 3 Sep 29, 2021
calculator when you be using a model that employs RPN (Reverse Polish Notation)

calculator when you be using a model that employs RPN (Reverse Polish Notation) in its calculations and be a custom build all at the same time? The kids may have colour TFTs and graphing functions, but your keyboard has no equals sign, and that means something.

Eslam ElBeak 8 Oct 28, 2021
Race pace calculator for distance runnning events.

Overview This website creates pacing charts for distance running. It includes route profile as well as a fade as the runner gets tired towards the end

null 1 Dec 18, 2021
Calculator with terminal-based user interface

Calculator-TUI Calculator with terminal-based user interface (My first Java project) Dependencies -Windows- JDK: https://download.oracle.com/java/17/l

Dr. Bruh 2 Apr 30, 2022
With the games: brick breakers, tic-tac-toe, snake and tetris With the apps: calculator, stopwatch and text editor Themes, and hyperlinks

Game-Launcher --------------------- ABOUT THE GAME LAUNCHER ------------------------- With the games: brick breakers, tic-tac-toe, snake and tetris Wi

João Devesa 2 Dec 26, 2021
Option-Price Calculator - Black-Scholes Option Pricing Model With Option Greeks

Option-Price_Calculator Black-Scholes Option Pricing Model With Option Greeks To begin with, an option is like any other financial instrument, should

Manan Patel 0 Jan 13, 2022
A calculator that performs various operations such as addition, subtraction, multiplication and division of positive and negative values

A calculator that performs various operations such as addition, subtraction, multiplication and division of positive and negative values The calculator also does percentages, square roots and squares

Andrey Fabricio 1 Jan 31, 2022
A mixin based ghost client for Minecraft 1.8.9 built on Minecraft Forge.

A mixin based ghost client for Minecraft 1.8.9 built on Minecraft Forge. Originally designed as a MCP Client (called Tephra), it is now being ported t

Peanut 130 Jan 1, 2023
An efficient map viewer for Minecraft seed in a nice GUI with utilities without ever needing to install Minecraft.

To download it head to the Releases section. To run it: either double click it on it if you have the Java Runtime (JRE) or use the command line (shift

Neil 127 Dec 24, 2022
A Minecraft library for working with minecraft packets on various platforms, using MCProtocolLib

BetterProtocol A Minecraft library for working with minecraft packets on various platforms, using MCProtocolLib This library is still based on the pro

John 8 Jul 2, 2022
A free mixin-based injection hacked-client for Minecraft using Minecraft Forge.

Custom LiquidBounce 1.8.9 build that aims to improve original visuals and bypasses, along with built-in ViaVersion to help you change from 1.8 to 1.17.1 without creating any other version branch.

epic group of paster 123 Jan 2, 2023
Small mod for Minecraft Forge 1.16.5 that sends messages of in-game events to a channel in your Discord server. This mod also enables cross-chatting between Minecraft and Discord.

DiscordSync Small mod for Minecraft Forge 1.16.5 that sends messages of in-game events to a channel in your Discord server. This mod also enables cros

AeonLucid 4 Dec 20, 2022
Minecraft Utility Mod for the latest release of Minecraft developed by Cypphi.

Minecraft Utility Mod for the latest release of Minecraft developed by Cypphi.

Haze 18 Jan 1, 2023