Skip to content

Noita mod for teleporting to any boss, orb, and place of interest

Notifications You must be signed in to change notification settings

Kaedenn/noita-teleport

Repository files navigation

Waypoints & Teleport

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.

Dependencies

This mod requires Noita-Dear-ImGui, which must be above this mod in the load order. This mod can be downloaded via the following link: https://github.com/dextercd/Noita-Dear-ImGui/releases. Download and extract the archive into your Noita/mods folder.

This mod leverages (but does not require) Disable Mod Restrictions, which you can find via the following link: [https://modworkshop.net/mod/38530](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.

Installation

If you don't have Noita-Dear-ImGui, download it [https://github.com/dextercd/Noita-Dear-ImGui/releases](by clicking this link) and extract the archive into your Noita/mods folder.

Next, download this repository [https://github.com/Kaedenn/noita-teleport/archive/refs/heads/main.zip](by clicking this link) and extract the archive into your Noita/mods folder.

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.

Custom Locations

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

Custom Location API

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.

add_poi(name, x, y, world=nil) -> boolean, error_message:string - Add a single item to the Places menu
  • name type string or Label: POI display name; see Labels below for structure.
  • x type number: X pixel location
  • y type number: Y pixel location
  • world type number: 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) or if the teleport destination duplicates an existing location.

add_grouped_poi(group, name, x, y, world=nil) -> boolean, error_message:string - Add a grouped item to the Places menu
  • group type string: Group name; menu display text
  • name type string or Label: POI display name; see Labels below for structure.
  • x type number: X pixel location
  • y type number: Y pixel location
  • world type number: 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) or if the teleport destination duplicates an existing location.

remove_poi(name) -> boolean - Remove teleport destination(s) by name
  • name type string or Label: POI display name; see Labels below for structure.

Returns true if the operation actually removed one or more locations, false otherwise.

remove_poi_group(group) -> boolean - Remove a teleport destination group
  • group type string: Group name; menu display text

Returns true if the operation actually removed one or more locations, false otherwise.

remove_poi_at(x, y, world) -> boolean - Remove a teleport destination by location

This function does not interpret between relative (world ~= 0) and absolute (world = nil) coordinates. Passing nil for world removes all teleport destinations with the given X and Y location, regardless of the world value.

  • x type number: X pixel location
  • y type number: Y pixel location
  • world type number: World number for world-relative locations; optional

Returns true if the operation actually removed one or more locations, false otherwise.

force_places_update() - Force a UI refresh

This function forces a refresh of the entire UI and a recalculation of all teleport destinations.

Labels

The name parameters to add_poi and add_grouped_poi accept both strings and tables 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)

Planned features

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

About

Noita mod for teleporting to any boss, orb, and place of interest

Resources

Stars

Watchers

Forks

Packages