diff --git a/src/lua_baselib.c b/src/lua_baselib.c
index 0a119f40e59cb048340be9d8d861094ace40ca47..25296a99fab66b726f2f7f3c82624c701dd0fe5f 100644
--- a/src/lua_baselib.c
+++ b/src/lua_baselib.c
@@ -33,6 +33,7 @@
 #include "k_color.h"
 #include "k_hud.h"
 #include "k_waypoint.h"
+#include "k_respawn.h"
 #include "d_netcmd.h" // IsPlayerAdmin
 #include "k_menu.h" // Player Setup menu color stuff
 #include "p_spec.h" // P_StartQuake
@@ -4058,6 +4059,19 @@ static int lib_vsRandomPointOnArena(lua_State *L)
 	return 2;
 }
 
+static int lib_kRespawnOffset(lua_State *L)
+{
+	player_t *player = *((player_t **)luaL_checkudata(L, 1, META_PLAYER));
+	boolean flip = lua_optboolean(L, 2);
+	
+	INLEVEL
+	if (!player)
+		return LUA_ErrInvalid(L, "player_t");
+	
+	lua_pushfixed(L, K_RespawnOffset(player, flip));
+	return 1;
+}
+
 static int lib_kGetFinishLineWaypoint(lua_State *L)
 {
 	INLEVEL
@@ -4654,6 +4668,9 @@ static luaL_Reg lib[] = {
 	{"VS_PredictAroundArena", lib_vsPredictAroundArena},
 	{"VS_RandomPointOnArena", lib_vsRandomPointOnArena},
 	
+	// k_respawn
+	{"K_RespawnOffset", lib_kRespawnOffset},
+	
 	// k_waypoint
 	{"K_GetFinishLineWaypoint", lib_kGetFinishLineWaypoint},
 	{"K_GetStartingWaypoint", lib_kGetStartingWaypoint},