[Release] Doors Control (vrp)

Hello ladies and gentlemen, I decided to share my implementation of the closing system for vRP. The resource allows you to interact with the doors on the item in the inventory (key) or on the perm in the player’s group. I also added a door position check before fixing it to prevent it from freezing in the semi-open position.
https://github.com/XXanderWP/vRP_doorsControl

11 Likes

Nice work man, I only had to change the language to English and the perm for the Captain’s office for it to work with Dunko’s 6.6v of vrp. Works great though!!

1 Like

is it possible to make a permisson so its locked for citizens, and its only police who can open it?

@Mikkel_Lonberg_Hanse
Everything is possible, it all depends on the task and free time :slight_smile:

Hey Nice script! :slight_smile:
How Can I make That only police Can open The Doors without A key?

@RekzGaming already included in module

1 Like

I have updated the code so that the keys work and made it compatible with vrpex, also language,fix notify, removed unnecessary {},key names/permissions names:

(police.key & captain.key)

  ["Captain Key"] = {"🔑 Captains Office", "", nil, 0.01},
  ["LSPD Key"] = {"🔑 LSPD", "", nil, 0.01}   

to fix for vanilla vrp do:

  if vRP.getInventoryItemAmount({user_id, "#"..doorList[id].key..".>0"}) or vRP.hasPermission({user_id,doorList[id].permission}) then

For VRPEX use:

server.lua

--[[-----------------
	vRP_doorsControl By XanderWP - Lee Fall VRPEX Edit from Ukraine & UK with <3
------------------------]]--
local Tunnel = module("vrp", "lib/Tunnel")
local Proxy = module("vrp", "lib/Proxy")
vRP = Proxy.getInterface("vRP")
vRPclient = Tunnel.getInterface("vRP","doorsControl")


doorList = {
    [1] = {freeze = true, key = "LSPD Key", permission="police.key", name = "LSPD"},
    [2] = {freeze = true, key = "LSPD Key", permission="police.key", name = "LSPD"},
    [3] = {freeze = true, key = "Captain Key", permission="captain.key", name = "Captain room"},
    [4] = {freeze = true, key = "LSPD key", permission="police.key", name = "LSPD"},
    [5] = {freeze = true, key = "LSPD Key", permission="police.key", name = "LSPD"},
    [6] = {freeze = true, key = "LSPD Key", permission="police.key", name = "LSPD"},
    [7] = {freeze = true, key = "LSPD Key", permission="police.key", name = "LSPD"},
    [8] = {freeze = true, key = "LSPD Key", permission="police.key", name = "LSPD"},
    [9] = {freeze = true, key = "LSPD Key", permission="police.key", name = "LSPD"},
    [10] = {freeze = true, key = "LSPD Key", permission="police.key", name = "LSPD"},
    [11] = {freeze = true, key = "LSPD Key", permission="police.key", name = "LSPD"},
    [12] = {freeze = true, key = "LSPD Key", permission="police.key", name = "LSPD"},
    [13] = {freeze = true, key = "LSPD Key", permission="police.key", name = "LSPD"},
    [14] = {freeze = true, key = "LSPD Key", permission="police.key", name = "LSPD"},
    [15] = {freeze = true, key = "LSPD Key", permission="police.key", name = "LSPD"},
    [16] = {freeze = true, key = "LSPD Key", permission="police.key", name = "LSPD"},
	[17] = {freeze = true, key = "LSPD Key", permission="police.key", name = "LSPD"},
	[18] = {freeze = true, key = "LSPD Key", permission="police.key", name = "LSPD"},
	[19] = {freeze = true, key = "LSPD Key", permission="police.key", name = "LSPD"},
	[20] = {freeze = true, key = "LSPD Key", permission="police.key", name = "LSPD"},
	[21] = {freeze = true, key = "LSPD Key", permission="police.key", name = "LSPD"},
	[22] = {freeze = true, key = "LSPD Key", permission="police.key", name = "LSPD"},
}

RegisterServerEvent('door:status')
AddEventHandler('door:status', function(id, status)
  user_id = vRP.getUserId(source)
  player = vRP.getUserSource(user_id)
  if vRP.hasPermission(user_id, "#"..doorList[id].key..".>0") or vRP.hasPermission(user_id,doorList[id].permission) then
    doorList[id].freeze=status
    TriggerClientEvent('door:statusSend', -1, id, status)
    if status then
      vRPclient._notify(player, "Door ~r~closed ~y~with ~b~Key "..doorList[id].name)
    else
      vRPclient._notify(player, "Door ~g~open ~y~with ~b~Key "..doorList[id].name)
    end
  else
    vRPclient._notify(player, "~r~Need ~b~Key "..doorList[id].name)
  end 
end)

RegisterServerEvent('door:load')
AddEventHandler('door:load', function(id, status)
  TriggerClientEvent('door:loadSend', -1, doorList) 
end)


local function doorSync() 
TriggerClientEvent('door:loadSend', -1, doorList) 
  SetTimeout(5000, doorSync)
end
doorSync()

client.lua

--[[-----------------
	vRP_doorsControl By XanderWP Lee Fall VRPEX Edit from Ukraine & UK with <3
------------------------]]--
local LockHotkey = {0,108}

doorList = {
    -- Mission Row To locker room & roof
    [1] = { ["ishash"] = 0, ["objName"] = "v_ilev_ph_gendoor004", ["x"]= 449.69815063477, ["y"]= -986.46911621094,["z"]= 30.689594268799,["locked"]= true,["txtX"]=450.104,["txtY"]=-986.388,["txtZ"]=31.739},
    -- Mission Row Armory
    [2] = { ["ishash"] = 0, ["objName"] = "v_ilev_arm_secdoor", ["x"]= 452.61877441406, ["y"]= -982.7021484375,["z"]= 30.689598083496,["locked"]= true,["txtX"]=453.079,["txtY"]=-982.600,["txtZ"]=31.739},
    -- Mission Row Captain Office
    [3] = { ["ishash"] = 0, ["objName"] = "v_ilev_ph_gendoor002", ["x"]= 447.23818969727, ["y"]= -980.63006591797,["z"]= 30.689598083496,["locked"]= true,["txtX"]=447.200,["txtY"]=-980.010,["txtZ"]=31.739},
    -- Mission Row To downstairs right
    [4] = { ["ishash"] = 0, ["objName"] = "v_ilev_ph_gendoor005", ["x"]= 443.97, ["y"]= -989.033,["z"]= 30.6896,["locked"]= true,["txtX"]=444.020,["txtY"]=-989.445,["txtZ"]=31.739},
    -- Mission Row To downstairs left
    [5] = { ["ishash"] = 0, ["objName"] = "v_ilev_ph_gendoor005", ["x"]= 445.37, ["y"]= -989.705,["z"]= 30.6896,["locked"]= true,["txtX"]=445.350,["txtY"]=-989.445,["txtZ"]=31.739},
    -- Mission Row Main cells
    [6] = { ["ishash"] = 0, ["objName"] = "v_ilev_ph_cellgate", ["x"]= 464.0, ["y"]= -992.265,["z"]= 24.9149,["locked"]= true,["txtX"]=463.465,["txtY"]=-992.664,["txtZ"]=25.064},
    -- Mission Row Cell 1
    [7] = { ["ishash"] = 0, ["objName"] = "v_ilev_ph_cellgate", ["x"]= 462.381, ["y"]= -993.651,["z"]= 24.9149,["locked"]= true,["txtX"]=461.806,["txtY"]=-993.308,["txtZ"]=25.064},
    -- Mission Row Cell 2
    [8] = { ["ishash"] = 0, ["objName"] = "v_ilev_ph_cellgate", ["x"]= 462.331, ["y"]= -998.152,["z"]= 24.9149,["locked"]= true,["txtX"]=461.806,["txtY"]=-998.800,["txtZ"]=25.064},
    -- Mission Row Cell 3
    [9] = { ["ishash"] = 0, ["objName"] = "v_ilev_ph_cellgate", ["x"]= 462.704, ["y"]= -1001.92,["z"]= 24.9149,["locked"]= true,["txtX"]=461.806,["txtY"]=-1002.450,["txtZ"]=25.064},
    -- Mission Row Backdoor in
    [10] = { ["ishash"] = 0, ["objName"] = "v_ilev_gtdoor", ["x"]= 464.126, ["y"]= -1002.78,["z"]= 24.9149,["locked"]= true,["txtX"]=464.100,["txtY"]=-1003.538,["txtZ"]=26.064},
    -- Mission Row Backdoor out
    [11] = { ["ishash"] = 0, ["objName"] = "v_ilev_gtdoor", ["x"]= 464.18, ["y"]= -1004.31,["z"]= 24.9152,["locked"]= true,["txtX"]=464.100,["txtY"]=-1003.538,["txtZ"]=26.064},
    -- Mission Row Rooftop In
    [12] = { ["ishash"] = 0, ["objName"] = "v_ilev_gtdoor02", ["x"]= 465.467, ["y"]= -983.446,["z"]= 43.6918,["locked"]= true,["txtX"]=464.361,["txtY"]=-984.050,["txtZ"]=44.834},
    -- Mission Row Rooftop Out
    [13] = { ["ishash"] = 0, ["objName"] = "v_ilev_gtdoor02", ["x"]= 462.979, ["y"]= -984.163,["z"]= 43.6919,["locked"]= true,["txtX"]=464.361,["txtY"]=-984.050,["txtZ"]=44.834},
	
	--- Центральные двери в ПД
	[14] = { ["ishash"] = 1, ["objName"] = 320433149, ["x"]= 434.7479, ["y"]= -982.2151,["z"]= 30.83926,["locked"]= true,["txtX"]=999999,["txtY"]=99999999,["txtZ"]=9999999},
	[15] = { ["ishash"] = 1, ["objName"] = -1215222675, ["x"]= 434.7479, ["y"]= -981.6184,["z"]= 30.83926,["locked"]= true,["txtX"]=434.427,["txtY"]=-981.95184,["txtZ"]=31.710},
	
	--- Брифинг комната
	[17] = { ["ishash"] = 1, ["objName"] = -131296141, ["x"]= 443.0298, ["y"]= -992.941,["z"]= 30.8393,["locked"]= true,["txtX"]=443.0298,["txtY"]=-992.941,["txtZ"]=31.8393},
	[16] = { ["ishash"] = 1, ["objName"] = -131296141, ["x"]= 443.0298, ["y"]= -993.5412,["z"]= 30.8393,["locked"]= true,["txtX"]=443.0298,["txtY"]=-993.5412,["txtZ"]=31.8393},
	
	--- Задние двери
	[19] = { ["ishash"] = 1, ["objName"] = -2023754432, ["x"]= 468.9679, ["y"]= -1014.452,["z"]= 26.53623,["locked"]= true,["txtX"]=468.9679,["txtY"]=-1014.452,["txtZ"]=27.53623},
	[18] = { ["ishash"] = 1, ["objName"] = -2023754432, ["x"]= 468.3716, ["y"]= -1014.452,["z"]= 26.53623,["locked"]= true,["txtX"]=468.3716,["txtY"]=-1014.452,["txtZ"]=27.53623},
	
	
	
	[21] = { ["ishash"] = 1, ["objName"] = 749848321, ["x"]= 461.2865, ["y"]= -985.3206,["z"]= 30.83926,["locked"]= true,["txtX"]=461.507,["txtY"]=-985.9053,["txtZ"]=31.6895},
	[20] = { ["ishash"] = 1, ["objName"] = -2023754432, ["x"]= 452.6248, ["y"]= -987.3626,["z"]= 30.83926,["locked"]= true,["txtX"]=451.95,["txtY"]=-987.230,["txtZ"]=31.6895},

	
	
	
	 [22] = { ["ishash"] = 0, ["objName"] = "v_ilev_ph_cellgate", ["x"]= 462.504, ["y"]= -1001.92,["z"]= 24.9149,["locked"]= true,["txtX"]=999999,["txtY"]=99999999,["txtZ"]=9999999},
}

local firstLoad = false
function DrawText3d(x,y,z, text)
    local onScreen,_x,_y=World3dToScreen2d(x,y,z)
    local px,py,pz=table.unpack(GetGameplayCamCoords())
    
    if onScreen then
        SetTextScale(0.2, 0.2)
        SetTextFont(0)
        SetTextProportional(1)
        SetTextColour(255, 255, 255, 255)
        SetTextDropshadow(0, 0, 0, 0, 55)
        SetTextEdge(2, 0, 0, 0, 150)
        SetTextDropShadow()
        SetTextOutline()
        SetTextEntry("STRING")
        SetTextCentre(1)
        AddTextComponentString(text)
         SetDrawOrigin(x,y,z, 0)
         DrawText(0.0, 0.0)
         ClearDrawOrigin()
    end
end

Citizen.CreateThread(function()
    

    while firstLoad == false do
	TriggerServerEvent('door:load')
	Citizen.Wait(1000)
	end
	
end)

RegisterNetEvent('door:statusSend')
AddEventHandler('door:statusSend', function(i, status)
doorList[i]["locked"]=status
local closeDoor = GetClosestObjectOfType(doorList[i]["x"], doorList[i]["y"], doorList[i]["z"], 1.0, hash, false, false, false)
locked, heading = GetStateOfClosestDoorOfType(hash, doorList[i]["x"], doorList[i]["y"], doorList[i]["z"], locked, heading)
if heading < -0.01 or heading > 0.01 then
			syncFail = true
			else
			syncFail = false
			end
	if doorList[i]["locked"] == true and syncFail == true then
				FreezeEntityPosition(closeDoor, false)
				else
			FreezeEntityPosition(closeDoor, doorList[i]["locked"])		
				end	
end)


RegisterNetEvent('door:loadSend')
AddEventHandler('door:loadSend', function(doorL)
for i,v in pairs(doorL) do
doorList[i]["locked"]=v.freeze
local closeDoor = GetClosestObjectOfType(doorList[i]["x"], doorList[i]["y"], doorList[i]["z"], 1.0, hash, false, false, false)
locked, heading = GetStateOfClosestDoorOfType(hash, doorList[i]["x"], doorList[i]["y"], doorList[i]["z"], locked, heading)
if heading < -0.01 or heading > 0.01 then
			syncFail = true
			else
			syncFail = false
			end
	if doorList[i]["locked"] == true and syncFail == true then
				FreezeEntityPosition(closeDoor, false)
				else
			FreezeEntityPosition(closeDoor, doorList[i]["locked"])		
				end			
end
firstLoad = true
end)

Citizen.CreateThread(function()
    

    while true do
        for i = 1, #doorList do
            local playerCoords = GetEntityCoords( GetPlayerPed(-1) )
			if doorList[i]["ishash"] == 0 then
			hash = GetHashKey(doorList[i]["objName"])
			else
			hash = doorList[i]["objName"]
			end
            local closeDoor = GetClosestObjectOfType(doorList[i]["x"], doorList[i]["y"], doorList[i]["z"], 1.0, hash, false, false, false)
            --SetEntityMaxHealth(closeDoor, 1000)
            local objectCoordsDraw = GetEntityCoords( closeDoor )            
            local playerDistance = GetDistanceBetweenCoords(playerCoords.x, playerCoords.y, playerCoords.z, doorList[i]["x"], doorList[i]["y"], doorList[i]["z"], true)
                  locked, heading = GetStateOfClosestDoorOfType(hash, doorList[i]["x"], doorList[i]["y"], doorList[i]["z"], locked, heading)       
            if(playerDistance < 1.15) then
                
                SetEntityHealth(closeDoor, 1000)
				ClearEntityLastDamageEntity(closeDoor)
				SetEntityCanBeDamaged(closeDoor, false)
				if doorList[i]["locked"] == true then
                    DrawText3d(doorList[i]["txtX"], doorList[i]["txtY"], doorList[i]["txtZ"], "~b~Door ~r~Locked")
                else
                    DrawText3d(doorList[i]["txtX"], doorList[i]["txtY"], doorList[i]["txtZ"], "~b~Door ~g~Is Unlocked")
                end
				
                
                if IsControlJustPressed(table.unpack(LockHotkey)) then
                    if doorList[i]["locked"] == true then
                        --FreezeEntityPosition(closeDoor, false)
						
							if(i==10 or i==11) then
                            TriggerServerEvent('door:status', 10, false)
							TriggerServerEvent('door:status', 11, false)
                        elseif(i==14 or i==15) then
                            TriggerServerEvent('door:status', 14, false)
							TriggerServerEvent('door:status', 15, false)
							 elseif(i==12 or i==13) then
                            TriggerServerEvent('door:status', 12, false)
							TriggerServerEvent('door:status', 13, false)
                        elseif(i==9 or i==21) then
                            TriggerServerEvent('door:status', 9, false)
							TriggerServerEvent('door:status', 21, false)
                        else
                            TriggerServerEvent('door:status', i, false)
                        end
                    else
                        --FreezeEntityPosition(closeDoor, true)
						if(i==10 or i==11) then
                            TriggerServerEvent('door:status', 10, true)
							TriggerServerEvent('door:status', 11, true)
                        elseif(i==14 or i==15) then
                            TriggerServerEvent('door:status', 14, true)
							TriggerServerEvent('door:status', 15, true)
							 elseif(i==12 or i==13) then
                            TriggerServerEvent('door:status', 12, true)
							TriggerServerEvent('door:status', 13, true)
                        elseif(i==9 or i==21) then
                            TriggerServerEvent('door:status', 9, true)
							TriggerServerEvent('door:status', 21, true)
                        else
                            TriggerServerEvent('door:status', i, true)
                        end

                    end
                end
			if heading < -0.01 or heading > 0.01 then
			syncFail = true
			else
			syncFail = false
			end
			
			
			
			
			if firstLoad == true then
				if doorList[i]["locked"] == true and syncFail == true then
				FreezeEntityPosition(closeDoor, false)
				else
			FreezeEntityPosition(closeDoor, doorList[i]["locked"])		
				end			
            end
			else
			if heading < -0.01 or heading > 0.01 then
			syncFail = true
			else
			syncFail = false
			end
			if doorList[i]["locked"] == true and syncFail == true then
				FreezeEntityPosition(closeDoor, false)
				else
			FreezeEntityPosition(closeDoor, doorList[i]["locked"])		
				end	
			
            end
			
        end

        Citizen.Wait(0)
    end
end)



Nice work Xander :wink:

4 Likes

vRP community love u Xander ! and for you itemdrops to !

On my server after reboot all door are close? Any idea ?

@XanderWP Hi there, first thank you for your scrip that’s an awesome idea :smiley: !!
I’m trying to add other doors so i have it door name but i don’t know how to find exact coord can you help me about this point ? Use a tool or idk ?

Modules save doors state in array, not in database. I think that no reason to save doors state after reboot, if realy

1 Like

Suffice it to specify approximate coordinates. Use the function to find the nearest object and not the coordinate object)

Thank you man! I realy forgot some Russian words in code (at first all users text was into Russian for my server). And about vrpex, thx too

is as follows, then everything works fine in VRP, you need to get the ‘Genrp’ code just below the XXander download file and replace the client and server.lua from the original ‘’ downloaded ‘’ files after you replace it, you should change the shortcut key that is at number 4 that is located on the local client.lua/ LockHotkey = {0,54}’ '0.54 is the letter ‘’ E ‘’, but the original comes with another key.

Once you have done this, you need to change the permissions that are on the server.lua

change the permissions for the name of the police command, ex …

[1] = {freeze = true, key = “LSPD Key”, permission = “Sargent police”, name = “Sargent police”}

Sorry, my English is bad, I’m Brazilian.

Brasil **********

2 Likes

Hi guys i hope that you can help put a bit here. I now tried for a few hours to add more doors, the pd in shady shores and the pd in north. But i cant seam to get them to work. I use CodeWalker do get the Name off the doors, and the cords, and i change the number to 23 foreksamble cause this is the next in row. But nothing. Anybody have an guide ore tell what i am doing wrong here. thanks

1 Like

Im wondering how i add it to because my police captains group is Police Captain what would i do for the permissions in vrp_doorcontrol

Is it poseble to add more doors in other places like “Michaels house, Franklings house and The Lost MC” If so, how do i add and find their “cords”

Awesome script tho!

1 Like

how did you translate to English bud sorry im still new to this
and i use dunkos 6.6 zap hosted server

server.lua (3.1 KB)
I take no credit at all for this script, this is all the work of @XanderWP . Literally all I did was change the language to English and updated the perm for the captain’s office so that it is unlockable for people that use Dunko’s 6.6 VRP

@county_ofblaine just replace the server.lua file with this if you like or use it to guide yourself through editing what you have

1 Like

@Carsten_Petersen

Added Sandy & Paleto PD and Michael’s mansion

server.lua

    [1] = {freeze = true, key = "LSPD Key", permission="police.key", name = "LSPD"},
    [2] = {freeze = true, key = "LSPD Key", permission="police.key", name = "LSPD"},
    [3] = {freeze = true, key = "Captain Key", permission="captain.key", name = "Captain room"},
    [4] = {freeze = true, key = "LSPD key", permission="police.key", name = "LSPD"},
    [5] = {freeze = true, key = "LSPD Key", permission="police.key", name = "LSPD"},
    [6] = {freeze = true, key = "LSPD Key", permission="police.key", name = "LSPD"},
    [7] = {freeze = true, key = "LSPD Key", permission="police.key", name = "LSPD"},
    [8] = {freeze = true, key = "LSPD Key", permission="police.key", name = "LSPD"},
    [9] = {freeze = true, key = "LSPD Key", permission="police.key", name = "LSPD"},
    [10] = {freeze = true, key = "LSPD Key", permission="police.key", name = "LSPD"},
    [11] = {freeze = true, key = "LSPD Key", permission="police.key", name = "LSPD"},
    [12] = {freeze = true, key = "LSPD Key", permission="police.key", name = "LSPD"},
    [13] = {freeze = true, key = "LSPD Key", permission="police.key", name = "LSPD"},
    [14] = {freeze = true, key = "LSPD Key", permission="police.key", name = "LSPD"},
    [15] = {freeze = true, key = "LSPD Key", permission="police.key", name = "LSPD"},
    [16] = {freeze = true, key = "LSPD Key", permission="police.key", name = "LSPD"},
	[17] = {freeze = true, key = "LSPD Key", permission="police.key", name = "LSPD"},
	[18] = {freeze = true, key = "LSPD Key", permission="police.key", name = "LSPD"},
	[19] = {freeze = true, key = "LSPD Key", permission="police.key", name = "LSPD"},
	[20] = {freeze = true, key = "LSPD Key", permission="police.key", name = "LSPD"},
	[21] = {freeze = true, key = "LSPD Key", permission="police.key", name = "LSPD"},
	[22] = {freeze = true, key = "LSPD Key", permission="police.key", name = "LSPD"},
	
	[23] = {freeze = true, key = "Mansion1", permission="police.key", name = "Mansion 1"},
        [24] = {freeze = true, key = "Mansion1", permission="police.key", name = "Mansion 1"},
	[25] = {freeze = true, key = "Mansion1", permission="police.key", name = "Mansion 1"},
	[26] = {freeze = true, key = "Mansion1", permission="police.key", name = "Mansion 1"},
	[27] = {freeze = true, key = "Mansion1", permission="police.key", name = "Mansion 1"},
        [28] = {freeze = true, key = "Mansion1", permission="police.key", name = "Mansion 1"},
	[29] = {freeze = true, key = "Mansion1", permission="police.key", name = "Mansion 1"},
	[30] = {freeze = true, key = "Mansion1", permission="police.key", name = "Mansion 1"},
	[31] = {freeze = true, key = "Mansion1", permission="police.key", name = "Mansion 1"},
	
	[32] = {freeze = true, key = "LSPD Key", permission="police.key", name = "LSPD"},
	[33] = {freeze = true, key = "LSPD Key", permission="police.key", name = "LSPD"},
	[34] = {freeze = true, key = "LSPD Key", permission="police.key", name = "LSPD"},
	[35] = {freeze = true, key = "LSPD Key", permission="police.key", name = "LSPD"},
	[36] = {freeze = true, key = "LSPD Key", permission="police.key", name = "LSPD"},
	[37] = {freeze = true, key = "LSPD Key", permission="police.key", name = "LSPD"},
	[38] = {freeze = true, key = "LSPD Key", permission="police.key", name = "LSPD"},
	[39] = {freeze = true, key = "LSPD Key", permission="police.key", name = "LSPD"},
	[40] = {freeze = true, key = "LSPD Key", permission="police.key", name = "LSPD"},
	[41] = {freeze = true, key = "LSPD Key", permission="police.key", name = "LSPD"},
	[42] = {freeze = true, key = "LSPD Key", permission="police.key", name = "LSPD"},
	[43] = {freeze = true, key = "LSPD Key", permission="police.key", name = "LSPD"},

Client

    -- Mission Row To locker room & roof
    [1] = { ["ishash"] = 0, ["objName"] = "v_ilev_ph_gendoor004", ["x"]= 449.69815063477, ["y"]= -986.46911621094,["z"]= 30.689594268799,["locked"]= true,["txtX"]=450.104,["txtY"]=-986.388,["txtZ"]=31.739},
    -- Mission Row Armory
    [2] = { ["ishash"] = 0, ["objName"] = "v_ilev_arm_secdoor", ["x"]= 452.61877441406, ["y"]= -982.7021484375,["z"]= 30.689598083496,["locked"]= true,["txtX"]=453.079,["txtY"]=-982.600,["txtZ"]=31.739},
    -- Mission Row Captain Office
    [3] = { ["ishash"] = 0, ["objName"] = "v_ilev_ph_gendoor002", ["x"]= 447.23818969727, ["y"]= -980.63006591797,["z"]= 30.689598083496,["locked"]= true,["txtX"]=447.200,["txtY"]=-980.010,["txtZ"]=31.739},
    -- Mission Row To downstairs right
    [4] = { ["ishash"] = 0, ["objName"] = "v_ilev_ph_gendoor005", ["x"]= 443.97, ["y"]= -989.033,["z"]= 30.6896,["locked"]= true,["txtX"]=444.020,["txtY"]=-989.445,["txtZ"]=31.739},
    -- Mission Row To downstairs left
    [5] = { ["ishash"] = 0, ["objName"] = "v_ilev_ph_gendoor005", ["x"]= 445.37, ["y"]= -989.705,["z"]= 30.6896,["locked"]= true,["txtX"]=445.350,["txtY"]=-989.445,["txtZ"]=31.739},
    -- Mission Row Main cells
    [6] = { ["ishash"] = 0, ["objName"] = "v_ilev_ph_cellgate", ["x"]= 464.0, ["y"]= -992.265,["z"]= 24.9149,["locked"]= true,["txtX"]=463.465,["txtY"]=-992.664,["txtZ"]=25.064},
    -- Mission Row Cell 1
    [7] = { ["ishash"] = 0, ["objName"] = "v_ilev_ph_cellgate", ["x"]= 462.381, ["y"]= -993.651,["z"]= 24.9149,["locked"]= true,["txtX"]=461.806,["txtY"]=-993.308,["txtZ"]=25.064},
    -- Mission Row Cell 2
    [8] = { ["ishash"] = 0, ["objName"] = "v_ilev_ph_cellgate", ["x"]= 462.331, ["y"]= -998.152,["z"]= 24.9149,["locked"]= true,["txtX"]=461.806,["txtY"]=-998.800,["txtZ"]=25.064},
    -- Mission Row Cell 3
    [9] = { ["ishash"] = 0, ["objName"] = "v_ilev_ph_cellgate", ["x"]= 462.704, ["y"]= -1001.92,["z"]= 24.9149,["locked"]= true,["txtX"]=461.806,["txtY"]=-1002.450,["txtZ"]=25.064},
    -- Mission Row Backdoor in
    [10] = { ["ishash"] = 0, ["objName"] = "v_ilev_gtdoor", ["x"]= 464.126, ["y"]= -1002.78,["z"]= 24.9149,["locked"]= true,["txtX"]=464.100,["txtY"]=-1003.538,["txtZ"]=26.064},
    -- Mission Row Backdoor out
    [11] = { ["ishash"] = 0, ["objName"] = "v_ilev_gtdoor", ["x"]= 464.18, ["y"]= -1004.31,["z"]= 24.9152,["locked"]= true,["txtX"]=464.100,["txtY"]=-1003.538,["txtZ"]=26.064},
    -- Mission Row Rooftop In
    [12] = { ["ishash"] = 0, ["objName"] = "v_ilev_gtdoor02", ["x"]= 465.467, ["y"]= -983.446,["z"]= 43.6918,["locked"]= true,["txtX"]=464.361,["txtY"]=-984.050,["txtZ"]=44.834},
    -- Mission Row Rooftop Out
    [13] = { ["ishash"] = 0, ["objName"] = "v_ilev_gtdoor02", ["x"]= 462.979, ["y"]= -984.163,["z"]= 43.6919,["locked"]= true,["txtX"]=464.361,["txtY"]=-984.050,["txtZ"]=44.834},
	
	--- Центральные двери в ПД
	[14] = { ["ishash"] = 1, ["objName"] = 320433149, ["x"]= 434.7479, ["y"]= -982.2151,["z"]= 30.83926,["locked"]= true,["txtX"]=999999,["txtY"]=99999999,["txtZ"]=9999999},
	[15] = { ["ishash"] = 1, ["objName"] = -1215222675, ["x"]= 434.7479, ["y"]= -981.6184,["z"]= 30.83926,["locked"]= true,["txtX"]=434.427,["txtY"]=-981.95184,["txtZ"]=31.710},
	
	--- Брифинг комната
	[17] = { ["ishash"] = 1, ["objName"] = -131296141, ["x"]= 443.0298, ["y"]= -992.941,["z"]= 30.8393,["locked"]= true,["txtX"]=443.0298,["txtY"]=-992.941,["txtZ"]=31.8393},
	[16] = { ["ishash"] = 1, ["objName"] = -131296141, ["x"]= 443.0298, ["y"]= -993.5412,["z"]= 30.8393,["locked"]= true,["txtX"]=443.0298,["txtY"]=-993.5412,["txtZ"]=31.8393},
	
	--- Задние двери
	[19] = { ["ishash"] = 1, ["objName"] = -2023754432, ["x"]= 468.9679, ["y"]= -1014.452,["z"]= 26.53623,["locked"]= true,["txtX"]=468.9679,["txtY"]=-1014.452,["txtZ"]=27.53623},
	[18] = { ["ishash"] = 1, ["objName"] = -2023754432, ["x"]= 468.3716, ["y"]= -1014.452,["z"]= 26.53623,["locked"]= true,["txtX"]=468.3716,["txtY"]=-1014.452,["txtZ"]=27.53623},
	
	
	
	[21] = { ["ishash"] = 1, ["objName"] = 749848321, ["x"]= 461.2865, ["y"]= -985.3206,["z"]= 30.83926,["locked"]= true,["txtX"]=461.507,["txtY"]=-985.9053,["txtZ"]=31.6895},
	[20] = { ["ishash"] = 1, ["objName"] = -2023754432, ["x"]= 452.6248, ["y"]= -987.3626,["z"]= 30.83926,["locked"]= true,["txtX"]=451.95,["txtY"]=-987.230,["txtZ"]=31.6895},	
	[22] = { ["ishash"] = 0, ["objName"] = "v_ilev_ph_cellgate", ["x"]= 462.504, ["y"]= -1001.92,["z"]= 24.9149,["locked"]= true,["txtX"]=999999,["txtY"]=99999999,["txtZ"]=9999999},
	
	---Michale slide Gate
	[23] = { ["ishash"] = 0, ["objName"] = "prop_lrggate_02_ld", ["x"]= -844.051, ["y"]= 155.9619,["z"]= 66.03221,["locked"]= true,["txtX"]=-844.051,["txtY"]=155.9619,["txtZ"]=68.03221},
	---front doors
	[24] = { ["ishash"] = 0, ["objName"] = "v_ilev_mm_doorm_l", ["x"]= -816.716, ["y"]= 179.098,["z"]= 72.82738,["locked"]= true,["txtX"]=-816.716,["txtY"]=179.098,["txtZ"]=72.82738},
	[25] = { ["ishash"] = 0, ["objName"] = "v_ilev_mm_doorm_r", ["x"]= -816.1068, ["y"]= 177.5109,["z"]= 72.82738,["locked"]= true,["txtX"]=-816.1068,["txtY"]=177.5109,["txtZ"]=72.82738},
	---garage
	[26] = { ["ishash"] = 0, ["objName"] = "prop_ld_garaged_01", ["x"]= -815.2816, ["y"]= 185.975,["z"]= 72.99993,["locked"]= true,["txtX"]=-815.2816,["txtY"]=185.975,["txtZ"]=72.99993},
	---BACKDOORS
	[27] = { ["ishash"] = 0, ["objName"] = "prop_bh1_48_backdoor_l", ["x"]= -793.3943, ["y"]= 180.5075,["z"]= 73.04045,["locked"]= true,["txtX"]=-793.3943,["txtY"]=180.5075,["txtZ"]=73.04045}, 
	[28] = { ["ishash"] = 0, ["objName"] = "prop_bh1_48_backdoor_r", ["x"]= -794.1853, ["y"]= 182.568,["z"]= 73.04045,["locked"]= true,["txtX"]=-794.1853,["txtY"]=182.568,["txtZ"]=73.04045},	
	[29] = { ["ishash"] = 0, ["objName"] = "prop_bh1_48_backdoor_l", ["x"]= -796.5657, ["y"]= 177.2214,["z"]= 73.04045,["locked"]= true,["txtX"]=-796.5657,["txtY"]=177.2214,["txtZ"]=73.04045}, 
	[30] = { ["ishash"] = 0, ["objName"] = "prop_bh1_48_backdoor_r", ["x"]= -794.5051, ["y"]= 178.0124,["z"]= 73.04045,["locked"]= true,["txtX"]=-794.5051,["txtY"]=178.0124,["txtZ"]=73.04045},
	---FRONT GATE
	[31] = { ["ishash"] = 0, ["objName"] = "prop_bh1_48_gate_1", ["x"]= -848.9343, ["y"]= 179.3079,["z"]= 70.0247,["locked"]= true,["txtX"]=-848.9343,["txtY"]=179.3079,["txtZ"]=70.0247},
	---BLANE PALETO PD
	[32] = { ["ishash"] = 0, ["objName"] = "v_ilev_shrfdoor", ["x"]= 1855.685, ["y"]= 3683.93,["z"]= 34.59282,["locked"]= true,["txtX"]=1855.685,["txtY"]=3683.93,["txtZ"]=34.59282},
	[33] = { ["ishash"] = 0, ["objName"] = "v_ilev_shrf2door", ["x"]= -442.66, ["y"]= 6015.222,["z"]= 31.86633,["locked"]= true,["txtX"]=-442.66,["txtY"]=6015.222,["txtZ"]=31.86633}, 
	[34] = { ["ishash"] = 0, ["objName"] = "v_ilev_shrf2door", ["x"]= -444.4985, ["y"]= 6017.06,["z"]= 31.86633,["locked"]= true,["txtX"]=-444.4985,["txtY"]=6017.06,["txtZ"]=31.86633}, 
	
	--Paleto Gate
	[35] = { ["ishash"] = 0, ["objName"] = "prop_gate_docks_ld", ["x"]= -455.9511, ["y"]= 6030.322,["z"]= 30.32649,["locked"]= true,["txtX"]=-455.9511,["txtY"]=6030.322,["txtZ"]=32.32649},
	---Sandy Gates
	[36] = { ["ishash"] = 0, ["objName"] = "prop_gate_docks_ld", ["x"]= 1859.391, ["y"]= 3672.711,["z"]= 32.88976,["locked"]= true,["txtX"]=1859.391,["txtY"]=3672.711,["txtZ"]=32.88976},
	[37] = { ["ishash"] = 0, ["objName"] = "prop_gate_docks_ld", ["x"]= 1848.789, ["y"]= 3666.619,["z"]= 32.99977,["locked"]= true,["txtX"]=1848.789,["txtY"]=3666.619,["txtZ"]=32.99977},	
	[38] = { ["ishash"] = 0, ["objName"] = "prop_gate_docks_ld", ["x"]= 1857.352, ["y"]= 3720.851,["z"]= 31.99996,["locked"]= true,["txtX"]=1857.352,["txtY"]=3720.851,["txtZ"]=31.99996},
	[39] = { ["ishash"] = 0, ["objName"] = "prop_gate_docks_ld", ["x"]= 1866.792, ["y"]= 3677.049,["z"]= 32.68667,["locked"]= true,["txtX"]=1866.792,["txtY"]=3677.049,["txtZ"]=32.68667},
	[40] = { ["ishash"] = 0, ["objName"] = "prop_gate_docks_ld", ["x"]= 1878.89, ["y"]= 3685.57,["z"]= 32.35416,["locked"]= true,["txtX"]=1878.89,["txtY"]=3685.57,["txtZ"]=32.35416}, 
	
	---mission row
	[41] = { ["ishash"] = 0, ["objName"] = "prop_gate_docks_ld", ["x"]= 415.19, ["y"]= -1014.893,["z"]= 28.21,["locked"]= true,["txtX"]=415.19,["txtY"]=-1014.893,["txtZ"]=30.21},
	[42] = { ["ishash"] = 0, ["objName"] = "prop_gate_docks_ld", ["x"]= 415.86, ["y"]= -1027.04,["z"]= 28.15,["locked"]= true,["txtX"]=415.86,["txtY"]=-1027.04,["txtZ"]=30.15}, 
	[43] = { ["ishash"] = 0, ["objName"] = "prop_fnclink_09gate1", ["x"]= 422.67, ["y"]= -999.96,["z"]= 31.00,["locked"]= true,["txtX"]=422.67,["txtY"]=-999.96,["txtZ"]=31.00,
1 Like

Someone else have a huge fps drop with this script? Like, without any resources only this my fps drop from 60 to like 30 ~ 35 @XanderWPcan u give me a light to fix this?

1 Like