Skip to content

Instantly share code, notes, and snippets.

@VariableVixen
Created June 14, 2025 20:02
Show Gist options
  • Select an option

  • Save VariableVixen/527ba8f547bba85ac9db30245d020a2c to your computer and use it in GitHub Desktop.

Select an option

Save VariableVixen/527ba8f547bba85ac9db30245d020a2c to your computer and use it in GitHub Desktop.
Core Keeper - Teleport to anywhere at anytime - SCRIPT FIX
using Unity.Mathematics;
using Unity.Transforms;
using Pug.UnityExtensions;
using HarmonyLib;
[HarmonyPatch]
class teleportmod {
[HarmonyPrefix, HarmonyPatch(typeof(MapMarkerUIElement), "OnLeftClicked")]
public static bool OnLeftClicked(MapMarkerUIElement __instance) {
if (__instance.markerType == MapMarkerType.Portal ||
__instance.markerType == MapMarkerType.Waypoint ||
__instance.markerType == MapMarkerType.PlayerGrave ||
__instance.markerType == MapMarkerType.Ping ||
__instance.markerType == MapMarkerType.Unique ||
__instance.markerType == MapMarkerType.UserPlacedMarker)
{
PlayerController playerController = Manager.main.player;
float2 rhs = EntityUtility.GetObjectData(__instance.mapMarkerEntity, __instance.world).variation == 20
? new float2(1f, 1f)
: new float2(1f, -0.25f);
playerController.QueueInputAction(new UIInputActionData {
action = UIInputAction.Teleport,
position = EntityUtility.GetComponentData<LocalTransform>(__instance.mapMarkerEntity, __instance.world).Position.ToFloat2() + rhs
});
if (Manager.ui.isShowingMap) {
Manager.ui.OnMapToggle();
}
}
return false;
}
}
@VariableVixen
Copy link
Author

Until the author updates the mod.io version, you can download this file and overwrite the original. I don't play Core Keeper on linux, but on windows the path is C:\Users\Public\mod.io\5289\mods\4464472_5741032\Scripts\TeleportMod.cs.

@NightFright2k19
Copy link

Thanks a lot for this, highly appreciated!

Unfortunately, only very few authors of existing mods are still around to keep them functional with latest versions of the game. I don't know if you are willing to look into it, but maybe you could also fix the following mods:

  • Auto Door Rework (by Maskoliver)
  • Bind4Consumables (by GwendalT35)
  • Keep Inventory on Death (by EllieAU)

I'm aware some of these are included in some other QoL mods, but they all include features I don't need. I tried to install the CK SDK to do all this by myself, but TBH it's pretty confusing and I am preoccupied with my own projects. You'd be doing God's work!

@VariableVixen
Copy link
Author

I don't actually have the CK SDK, I just decompiled the mod on a lark to see if there was anything obviously broken when linked against the game's live assets. It turned out to be a very simple mod, and IIRC the issue was a missing using statement or two, which I was able to track down. I tested it by editing the source file on my local drive and launching the game, and when it worked I decided to upload the fix for others.

I can't guarantee I'll have the mental energy to look into anything, and even if I do I also can't guarantee I'll be able to do anything, but I'll keep it in mind.

@NightFright2k19
Copy link

NightFright2k19 commented Nov 6, 2025

Referring to this mod for a change:

  • Jumping to a ping marker doesn't seem to be working, at least not with latest CK version.
  • It would be better if another key, e.g. LShift, had to be pressed together with LMB to avoid accidental teleports while panning the map. I have tried this and it seems to work:

Add on top: using UnityEngine;
Add after public static bool OnLeftClicked(MapMarkerUIElement __instance) {:

		if (!Input.GetKey(KeyCode.LeftShift)) {
            		return true;
        	}

(Basically just aborts OnLeftClicked if LShift is not held down.)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment