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;
}
}
@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