This mod provides numerous teleport destinations and the ability to add your own.
BEWARE SPOILERS. You have been warned. This mod makes no attempt whatsoever to protect you from things you don't know.
Comes pre-built with numerous predefined destinations, including the primary orbs, all bosses, and the holy mountains.
- All ten (eleven in New Game+) orbs in the main world.
- All Holy Mountains in the main world.
- All bosses.
- Static item or perk locations (experimental wand, evil eye, essences, essence eaters, and more).
- Noteworthy places of interest (sky temples, portal rooms and their destinations, and more).
- The secret eye glyphs, assuming you have Disable Mod Restrictions.
This mod requires Noita-Dear-ImGui, which must be above this mod in the load order. Download and extract the archive into your Noita/mods folder.
This mod leverages (but does not require) Disable Mod Restrictions. Download and extract the archive into your Noita/mods folder. Note that Disable Mod Restrictions needs to be updated every time a new version of Noita is released.
If you don't have Noita-Dear-ImGui, download it and extract the archive into your Noita/mods folder. https://github.com/dextercd/Noita-Dear-ImGui/releases
Next, download this repository and extract the archive into your Noita/mods folder. https://github.com/Kaedenn/noita-teleport/archive/refs/heads/main.zip
Because Noita-Dear-ImGui is a mod with compiled code, it requires enabling the unsafe mods option. This is also why it's not available via the Steam workshop. Also, Noita-Dear-ImGui needs to be placed above this mod in the mod list so that it gets loaded before this mod.
Mods can add their own custom teleport locations by leveraging the public API. Here's an example:
function OnWorldInitialized()
dofile_once("mods/kae_waypoint/data/kae/poi.lua")
add_poi("My Special Location", 1000, 2000)
add_grouped_poi("My Locations", "Location One", 2000, 2000)
add_grouped_poi("My Locations", "Location Two", 2000, 4000)
add_grouped_poi("My Locations", "Location Three", 2000, 4000, 1) -- East 1
end
The mods/kae_waypoint/data/kae/poi.lua
file exports a few functions for adding (or removing) custom locations.
For both add
functions, x
and y
must be numbers. world
, if specified, must be a number with 0
denoting the center world, positive numbers denoting East worlds, and negative numbers denoting West worlds.
If world
is specified, then the following calculation is performed to obtain the final coordinates:
world_width = BiomeMapGetSize() * 512
final_x = input_x + world_width * input_world
final_y = input_y
There is no checking to ensure the input_x
location is within the main world. This mod simply converts the world offset to a change in X
coordinate and adds that to the X
coordinate.
add_poi(name, x, y, world=nil) -> boolean, error_message:string
- Add a single item to the Places
menu
name
typeLabel
: POI display name; see Labels below for structure.x
typenumber
:X
pixel locationy
typenumber
:Y
pixel locationworld
typenumber
: World number for world-relative locations; optional
Returns true, nil
on success.
Returns false, error_message:string
on failure if the POI is invalid (parameters have incorrect types).
Returns false, nil
if the teleport destination duplicates an existing location. This is so that mods can add their custom locations upon mod startup without needing to check if they already exist.
add_grouped_poi(group, name, x, y, world=nil) -> boolean, error_message:string
- Add a grouped item to the Places
menu
group
typeLabel
: Group name; menu display textname
typeLabel
: POI display name; see Labels below for structure.x
typenumber
:X
pixel locationy
typenumber
:Y
pixel locationworld
typenumber
: World number for world-relative locations; optional
Returns true, nil
on success.
Returns false, error_message:string
on failure if the POI is invalid (parameters have incorrect types).
Returns false, nil
if the teleport destination duplicates an existing location. This is so that mods can add their custom locations upon mod startup without needing to check if they already exist.
remove_poi(name) -> boolean
- Remove teleport destination(s) by name
name
typestring
orLabel
: POI display name; see Labels below for structure.
Returns true
if the operation actually removed one or more locations.
remove_poi_group(group) -> boolean
- Remove a teleport destination group
group
typestring
: Group name; menu display text
Returns true
if the operation actually removed one or more locations.
remove_poi_at(x, y, world) -> boolean
- Remove a teleport destination by location
This function converts world-relative coordinates (if world
~= 0 and world
~= nil) to absolute coordinates.
x
typenumber
:X
pixel locationy
typenumber
:Y
pixel locationworld
typenumber
: World number for world-relative locations; optional
Returns true
if the operation actually removed one or more locations.
force_places_update()
- Force a UI refresh
This function forces a refresh of the entire UI and a recalculation of all teleport destinations.
The group
and name
parameters to add_poi
and add_grouped_poi
accept both string
s and table
s to facilitate localization. Examples:
add_poi("My $biome_coalmine place", x, y)
add_poi({"$biome_winter"}, x, y)
add_poi({"$biome_west", {"$biome_winter"}}, x, y)
- GUI fallback if Noita-Dear-ImGui isn't installed or isn't available (help wanted!).
- Indication whether or not the Cauldron contains void liquid if generated that day. Note that this won't necessarily mean the Cauldron will contain void liquid if the chunk was generated on a prior day. See
utility/get_cauldron_bit.py
.