positions = { --{{Teleport Marker-BLip 1 X, Teleport Marker-Blip 1 Y, Teleport Marker-Blip 1 Z, Teleport Marker 1 Heading}, {Teleport 2 X, Teleport 2 Y, Teleport 2 Z, Teleport 2 Heading}, {Red, Green, Blue}, "Text for Teleport", Vehicle can, Marker type, Blip status, {Blip id, Blip scale, Blip colour, Blip show text}, Press Key} -- Marker Types: https://docs.fivem.net/docs/game-references/markers/ -- Blips types, colour: https://docs.fivem.net/docs/game-references/blips/ -- Press key types: https://docs.fivem.net/docs/game-references/controls/ -- Blip scale optimal is 0.9 -- Vehicle can: true or false -- Blip status: true or false --BETWEEN SPAGYM AND ASSMOSPHERE {{-151.43,-987.57,173.95, 0.0},{-154.96,-982.58,253.45, 0.0} ,{159,125,66}, "Press ~INPUT_CONTEXT~ to go the Assmosphere Restaurant", false, 1, false, {12,0.9,0,"Location teleport name"}, 38, {1.501, 1.5001, 0.5001}}, {{-154.96,-982.58,253.45, 0.0},{-151.43,-987.57,173.95, 0.0} ,{159,125,66}, "Press ~INPUT_CONTEXT~ to go the Spa&GYM", false, 1, false, {12,0.9,0,"Location teleport name"}, 38, {1.501, 1.5001, 0.5001}}, -- SPAGYM {{-150.19,-984.16,28.37, 0}, {-150.04,-984.13,173.95, 0},{159,125,66}, "Press ~INPUT_CONTEXT~ to go the Spa&GYM", false, 1, false, {12,0.9,0,"Location teleport name"}, 38, {1.501, 1.5001, 0.5001}}, {{-150.04,-984.13,173.95, 0.0},{-150.19,-984.16,28.3, 0} ,{159,125,66}, "Press ~INPUT_CONTEXT~ to go the Lobby", false, 1, false, {12,0.9,0,"Location teleport name"}, 38, {1.501, 1.5001, 0.5001}}, -- ASSMOSPHERE {{-151.52,-987.7,28.37, 0}, {-156.23,-985.99,253.45, 0},{159,125,66}, "Press ~INPUT_CONTEXT~ to go the Assmosphere Restaurant", false, 1, false, {12,0.9,0,"Location teleport name"}, 38, {1.501, 1.5001, 0.5001}}, {{-156.23,-985.99,253.45, 0}, {-151.52,-987.7,28.37, 0},{159,125,66}, "Press ~INPUT_CONTEXT~ to go the Lobby", false, 1, false, {12,0.9,0,"Location teleport name"}, 38, {1.501, 1.5001, 0.5001}}, -- POOL FLOOR #1 {{-154.51,-982.62,28.37, 0}, {-151.4412, -987.4249, 52.05, 254.6108},{159,125,66}, "Press ~INPUT_CONTEXT~ to go the Pool Floor #1", false, 1, false, {12,0.9,0,"Location teleport name"}, 38, {1.501, 1.5001, 0.5001}}, {{-151.4412, -987.4249, 52.05, 254.6108}, {-154.51,-982.62,28.37, 0},{47,186,209}, "Press ~INPUT_CONTEXT~ to go the Lobby", false, 1, false, {12,0.9,0,"Location teleport name"}, 38, {1.501, 1.5001, 0.5001}}, -- POOL FLOOR #2 {{-150.4815, -983.9965, 52.05, 254.3290}, {-125.76,-977.34,114.41, 0},{47,186,209}, "Press ~INPUT_CONTEXT~ to go the Pool Floor #2", false, 1, false, {12,0.9,0,"Location teleport name"}, 38, {1.501, 1.5001, 0.5001}}, {{-125.76,-977.34,114.41, 0}, {-150.4815, -983.9965, 52.05, 254.3290},{47,186,209}, "Press ~INPUT_CONTEXT~ to go the Pool Floor #1", false, 1, false, {12,0.9,0,"Location teleport name"}, 38, {1.501, 1.5001, 0.5001}}, -- HOTEL FLOOR #1 {{-139.1111, -995.6613, 28.37, 68.0750}, {-150.4733, -984.2389, 181.1790, 246.1586},{101,85,71}, "Press ~INPUT_CONTEXT~ to go the Hotel Floor #1", false, 1, false, {12,0.9,0,"Location teleport name"}, 38, {1.501, 1.5001, 0.5001}}, {{-150.4733, -984.2389, 180.1790, 246.1586}, {-139.1111, -995.6613, 28.37, 68.0750},{159,125,66}, "Press ~INPUT_CONTEXT~ to go the Lobby", false, 1, false, {12,0.9,0,"Location teleport name"}, 38, {1.501, 1.5001, 0.5001}}, -- HOTEL FLOOR #2 {{-138.3533, -993.6991,28.37, 73.8493}, {-150.4733, -984.2389, 186.4232, 246.1586},{115,81,74}, "Press ~INPUT_CONTEXT~ to go the Hotel Floor #2", false, 1, false, {12,0.9,0,"Location teleport name"}, 38, {1.501, 1.5001, 0.5001}}, {{-150.4733, -984.2389, 186.4232, 246.1586}, {-138.3533, -993.6991,28.37, 73.8493},{159,125,66}, "Press ~INPUT_CONTEXT~ to go the Lobby", false, 1, false, {12,0.9,0,"Location teleport name"}, 38, {1.501, 1.5001, 0.5001}}, -- HOTEL FLOOR #3 {{-137.5969, -991.6126, 28.37, 72.5683}, {-150.4733, -984.2389, 192.6710, 246.1586},{82,103,82}, "Press ~INPUT_CONTEXT~ to go the Hotel Floor #3", false, 1, false, {12,0.9,0,"Location teleport name"}, 38, {1.501, 1.5001, 0.5001}}, {{-150.4733, -984.2389, 192.6710, 246.1586}, {-137.5969, -991.6126, 28.37, 72.5683},{159,125,66}, "Press ~INPUT_CONTEXT~ to go the Lobby", false, 1, false, {12,0.9,0,"Location teleport name"}, 38, {1.501, 1.5001, 0.5001}}, -- HOTEL FLOOR #4 {{-136.8937, -989.6326, 28.37, 70.6296}, {-150.4733, -984.2389,198.8940, 246.1586},{178,138,107}, "Press ~INPUT_CONTEXT~ to go the Hotel Floor #4", false, 1, false, {12,0.9,0,"Location teleport name"}, 38, {1.501, 1.5001, 0.5001}}, {{-150.4733, -984.2389,198.8940, 246.1586}, {-136.8937, -989.6326, 28.37, 70.6296},{159,125,66}, "Press ~INPUT_CONTEXT~ to go the Lobby", false, 1, false, {12,0.9,0,"Location teleport name"}, 38, {1.501, 1.5001, 0.5001}}, -- HOTEL FLOOR #5 {{-136.1411, -987.6219, 28.37, 65.8729}, {-150.3941, -984.3033, 205.1889, 228.6465},{69,62,101}, "Press ~INPUT_CONTEXT~ to go the Hotel Floor #5", false, 1, false, {12,0.9,0,"Location teleport name"}, 38, {1.501, 1.5001, 0.5001}}, {{-150.3941, -984.3033, 205.1889, 228.6465}, {-136.1411, -987.6219, 28.37, 65.8729},{159,125,66}, "Press ~INPUT_CONTEXT~ to go the Lobby", false, 1, false, {12,0.9,0,"Location teleport name"}, 38, {1.501, 1.5001, 0.5001}}, -- HOTEL FLOOR #6 {{-135.4332, -985.7117, 28.37, 62.6124}, {-150.3941, -984.3033, 211.3975, 246.1092},{250,251,247}, "Press ~INPUT_CONTEXT~ to go the Hotel Floor #6", false, 1, false, {12,0.9,0,"Location teleport name"}, 38, {1.501, 1.5001, 0.5001}}, {{-150.3941, -984.3033, 211.3975, 246.1092}, {-135.4332, -985.7117, 28.37, 62.6124},{159,125,66}, "Press ~INPUT_CONTEXT~ to go the Lobby", false, 1, false, {12,0.9,0,"Location teleport name"}, 38, {1.501, 1.5001, 0.5001}}, } vehicle_message = "~r~You can't do it with the vehicle!" novehcile_message = "~r~You are entering/leaving without a vehicle" Citizen.CreateThread(function () while true do Citizen.Wait(5) local player = GetPlayerPed(-1) local playerLoc = GetEntityCoords(player) for _,location in ipairs(positions) do teleport_text = location[4] pos1 = { x=location[1][1], y=location[1][2], z=location[1][3], heading=location[1][4] } pos2 = { x=location[2][1], y=location[2][2], z=location[2][3], heading=location[2][4] } ColorRed = location[3][1] ColorGreen = location[3][2] ColorBlue = location[3][3] vechicle = location[5] MarkerType = location[6] PressKey = location[9] range = { p1=location[10][1], p2=location[10][2], p3=location[10][3], } DrawMarker(MarkerType, pos1.x, pos1.y, pos1.z, 0, 0, 0, 0, 0, 0, range.p1, range.p2, range.p3, ColorRed, ColorGreen, ColorBlue, 200, 0, 0, 0, 1) if position_verf(playerLoc.x, playerLoc.y, playerLoc.z, pos1.x, pos1.y, pos1.z, 2) then help_message(teleport_text) if IsControlJustReleased(1, PressKey) then if vechicle == true then if IsPedInAnyVehicle(player, true) then FreezeEntityPosition(player, true) DoScreenFadeOut(500) Citizen.Wait(500) DoScreenFadeIn(500) FreezeEntityPosition(player, false) SetEntityCoords(GetVehiclePedIsUsing(player), pos2.x, pos2.y, pos2.z) SetEntityHeading(GetVehiclePedIsUsing(player), pos2.heading) else FreezeEntityPosition(player, true) DoScreenFadeOut(500) Citizen.Wait(500) DoScreenFadeIn(500) FreezeEntityPosition(player, false) SetEntityCoords(player, pos2.x, pos2.y, pos2.z) SetEntityHeading(player, pos2.heading) notify_message(novehcile_message) end elseif vechicle == false then if IsPedInAnyVehicle(player, true) then notify_message(vehicle_message) else FreezeEntityPosition(player, true) DoScreenFadeOut(500) Citizen.Wait(500) DoScreenFadeIn(500) FreezeEntityPosition(player, false) SetEntityCoords(player, pos2.x, pos2.y, pos2.z) SetEntityHeading(player, pos2.heading) if playerLoc.z < 31 or playerLoc.z > 250 then TriggerEvent("playerSpawnedRnR") else TriggerEvent("playerSpawnedToLobby") end end end end end end end end) Citizen.CreateThread(function() for _,location in ipairs(positions) do pos1 = { x=location[1][1], y=location[1][2], z=location[1][3], heading=location[1][4] } blip_status = location[7] blip_id = location[8][1] blip_scale = location[8][2] blip_colour = location[8][3] blip_title = location[8][4] if blip_status == true then infoblip = AddBlipForCoord(pos1.x, pos1.y, pos1.z) SetBlipSprite(infoblip, blip_id) SetBlipDisplay(infoblip, 4) SetBlipScale(infoblip, blip_scale) SetBlipColour(infoblip, blip_colour) SetBlipAsShortRange(infoblip, true) BeginTextCommandSetBlipName("STRING") AddTextComponentString(blip_title) EndTextCommandSetBlipName(infoblip) end end end) function position_verf(x, y, z, cx, cy, cz, radius) local t1 = x - cx local t12 = t1^2 local t2 = y-cy local t21 = t2^2 local t3 = z - cz local t31 = t3^2 return (t12 + t21 + t31) <= radius^2 end function help_message(msg) SetTextComponentFormat("STRING") AddTextComponentString(msg) DisplayHelpTextFromStringLabel(0,0,1,-1) end function notify_message(msg) SetNotificationTextEntry("STRING") AddTextComponentString(msg) DrawNotification(true, false) end