Skip to content

Instantly share code, notes, and snippets.

@VariableVixen
Last active March 19, 2026 21:36
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 UnityEngine;
using HarmonyLib;
using Pug.UnityExtensions;
[HarmonyPatch]
class teleportmod {
[HarmonyPrefix, HarmonyPatch(typeof(MapMarkerUIElement), nameof(MapMarkerUIElement.OnLeftClicked))]
public static bool OnLeftClicked(MapMarkerUIElement __instance) {
if (!Input.GetKey(KeyCode.LeftShift)) {
return true;
}
if (__instance.markerType == MapMarkerType.Portal
|| __instance.markerType == MapMarkerType.Waypoint
|| __instance.markerType == MapMarkerType.PlayerGrave
|| __instance.markerType == MapMarkerType.Ping
|| __instance.markerType == MapMarkerType.UniqueBoss
|| __instance.markerType == MapMarkerType.TitanShrine
|| __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;
}
}
}
}
return false;
}
}
@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.)

@VariableVixen
Copy link
Author

Missed that notification, but I finally updated the file to use the correct enum entry (UniqueUniqueBoss) and also add the left-shift requirement. It compiles and loads properly, so if anything isn't working then I'm not sure why.

@NightFright2k19
Copy link

Better late than never, I guess! By now someone else has apparently continued working on this mod, to keep it functional with latest game versions. Will check if their code reflects your adjustments.

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