How to define own Prison map?

Overview

  • This guide will walk you through the process of defining your custom Prison Map / not supported one.

Guide:

  • To define define new / modify current interactions - you need to nagive to this file path: rcore_prison\data\presets\standalone.lua

  1. Open the map configuration file

    • Navigate to the directory where the map configuration file is located: rcore_prison\data\presets\standalone.lua.

    • Open standalone.lua file

  2. Adjust the configuration

    • Prison break doesnt work on NYC maps / Alcatraz Prison map.

  3. Save your file and enjoy our Prison

Example structure of standalone file:

return {
    releasePos = vec4(1852.885, 2586.028, 45.671 - 1, 271.249),
    outfitMenu = vec4(402.704010, -996.795166, -99.000252, 180.0),
    prisonYard = vec4(1696.727, 2565.864, 45.564, 170),
    outfitCameraOffset = vector3(0.0, -8.0, 0.0),

    YardPosPool = {
        {pos = vec4(1775.348, 2550.491, 45.564, 88.863)},
        {pos = vec4(1775.259, 2553.737, 45.564, 88.912)},
        {pos = vec4(1715.949, 2525.946, 45.564, 203.378)},
        {pos = vec4(1705.124, 2521.298, 45.564, 114.265)},
    },

    BasketBallHoops = {
        {
            pos = vector3(1671.603149, 2502.791748, 44.557007), 
            rot = vector4(0.000000, 0.000000, 0.934286, 0.356523),
            State = nil,
            Model = `prop_basketball_net`,
            IsSubscribed = false,
            threePointFwdDist = 0.0,
            threePointSideDist = 0.0,
            threePointRadius = 30.0,
            hideBlip = true,
        },
        {
            pos = vector3(1689.082520, 2523.234863, 44.557262), 
            rot = vector4(0.000000, 0.000000, -0.318232, 0.948013),
            State = nil,
            Model = `prop_basketball_net`,
            IsSubscribed = false,
            threePointFwdDist = 0.0,
            threePointSideDist = 0.0,
            threePointRadius = 30.0,
            hideBlip = true,
        },
    },

    SolitaryCells = {
        {
            coords = vec3(1691.363, 2542.296, 45.632),
            heading = 268.936,
        },
        {
            coords = vec3(1691.179, 2545.784, 45.631),
            heading = 268.936,
        },
        {
            coords = vec3(1691.791, 2549.076, 45.631),
            heading = 268.936,
        },
        {
            coords = vec3(1692.100, 2552.498, 45.631),
            heading = 268.936,
        },
        {
            coords = vec3(1691.906, 2555.127, 45.631),
            heading = 268.936,
        },
    },

    [STRUCT_GUARDS] = {
        {
            [STRUCT_POS] = vector3(1770.100, 2538.464, 45.564),
            [STRUCT_HEADING] = 315.853,
            [STRUCT_MODEL] = GetHashKey('mp_s_m_armoured_01'),
            [STRUCT_WEAPON] = GetHashKey('WEAPON_PISTOL'),
            [STRUCT_ROUTE] = 'TYPE_A'
        },
        {
            [STRUCT_POS] = vector3(1767.925, 2565.082, 55.467),
            [STRUCT_HEADING] = 315.853,
            [STRUCT_MODEL] = GetHashKey('mp_s_m_armoured_01'),
            [STRUCT_WEAPON] = GetHashKey('WEAPON_PISTOL'),
            [STRUCT_ROUTE] = 'TYPE_B'
        },
        {
            [STRUCT_POS] = vector3(1753.888, 2502.016, 45.611),
            [STRUCT_HEADING] = 315.853,
            [STRUCT_MODEL] = GetHashKey('mp_s_m_armoured_01'),
            [STRUCT_WEAPON] = GetHashKey('WEAPON_PISTOL'),
            [STRUCT_ROUTE] = 'TYPE_C'
        },
        {
            [STRUCT_POS] = vector3(1693.096, 2493.947, 45.564),
            [STRUCT_HEADING] = 315.853,
            [STRUCT_MODEL] = GetHashKey('mp_s_m_armoured_01'),
            [STRUCT_WEAPON] = GetHashKey('WEAPON_PISTOL'),
            [STRUCT_ROUTE] = 'TYPE_D'
        },
        {
            [STRUCT_POS] = vector3(1656.658, 2488.947, 45.564),
            [STRUCT_HEADING] = 315.853,
            [STRUCT_MODEL] = GetHashKey('mp_s_m_armoured_01'),
            [STRUCT_WEAPON] = GetHashKey('WEAPON_PISTOL'),
            [STRUCT_ROUTE] = 'TYPE_E'
        },
        {
            [STRUCT_POS] = vector3(1587.6637, 2671.749, 45.47485),
            [STRUCT_HEADING] = 315.853,
            [STRUCT_MODEL] = GetHashKey('mp_s_m_armoured_01'),
            [STRUCT_WEAPON] = GetHashKey('WEAPON_PISTOL'),
            [STRUCT_ROUTE] = 'TYPE_06'
        },
        {
            [STRUCT_POS] = vector3(1757.54907, 2431.591, 45.5023),
            [STRUCT_HEADING] = 315.853,
            [STRUCT_MODEL] = GetHashKey('mp_s_m_armoured_01'),
            [STRUCT_WEAPON] = GetHashKey('WEAPON_PISTOL'),
            [STRUCT_ROUTE] = 'TYPE_07'
        },
    },

    PrisonBreak = {
        ['WALLS'] = {
            ['ALL_WALLS'] = {
                {
                    model = 'prop_fnclink_10d',
                    coords = vec3(1772.619995, 2534.912842, 44.537308),
                    interactCoords = vec3(1771.966187, 2533.789307, 44.537308),
                    zoneType = 'INNER'
                },
                {
                    model = 'prop_fnclink_10d',
                    coords = vec3(1660.881226, 2487.797607, 44.537308),
                    interactCoords = vec3(1661.753906, 2486.833984, 44.537308),
                    zoneType = 'INNER',
                },
                {
                    model = 'prop_fnclink_10d',
                    coords = vec3(1725.128784, 2489.148682, 44.537308),
                    interactCoords = vec3(1723.836792, 2489.292969, 44.537308),
                    zoneType = 'INNER'
                },

                {
                    model = 'prop_fnclink_10d',
                    coords = vec3(1655.700073, 2758.097412, 44.715355),
                    interactCoords = vec3(1654.400635, 2758.060059, 44.715355),
                    zoneType = 'OUTTER',
                },
                {
                    model = 'prop_fnclink_10d',
                    coords = vec3(1545.608765, 2465.994873, 44.690941),
                    interactCoords = vec3(1544.492065, 2466.660400, 44.690941),
                    zoneType = 'OUTTER',
                },
                {
                    model = 'prop_fnclink_10d',
                    coords = vec3(1646.324585, 2753.205811, 44.717018),
                    interactCoords = vec3(1647.226562, 2754.141846, 44.717018),
                    zoneType = 'OUTTER',
                },
                {
                    model = 'prop_fnclink_10d',
                    coords = vec3(1536.942993, 2579.814209, 44.726524),
                    interactCoords = vec3(1536.740356, 2581.098389, 44.726524),
                    zoneType = 'OUTTER',
                },
                {
                    model = 'prop_fnclink_10d',
                    coords = vec3(1777.257935, 2758.835205, 44.692490),
                    interactCoords = vec3(1776.056763, 2759.332275, 44.692490),
                    zoneType = 'OUTTER',
                },
                {
                    model = 'prop_fnclink_10d',
                    coords = vec3(1823.912476, 2481.726318, 45.332314),
                    interactCoords = vec3(1824.088989, 2480.438477, 45.332314),
                    zoneType = 'OUTTER',
                },
                {
                    model = 'prop_fnclink_10d',
                    coords = vec3(1765.101929, 2415.095459, 44.738335),
                    interactCoords = vec3(1764.183594, 2414.175293, 44.738335),
                    zoneType = 'OUTTER',
                },
                {
                    model = 'prop_fnclink_10d',
                    coords = vec3(1653.912476, 2397.722412, 44.789825),
                    interactCoords = vec3(1655.114868, 2397.228271, 44.789825),
                    zoneType = 'OUTTER',
                },
                {
                    model = 'prop_fnclink_10d',
                    coords = vec3(1769.781616, 2762.339600, 44.723412),
                    interactCoords = vec3(1768.482178, 2762.302246, 44.723412),
                    zoneType = 'OUTTER',
                },
                {
                    model = 'prop_fnclink_10d',
                    coords = vec3(1822.914429, 2624.615234, 44.729828),
                    interactCoords = vec3(1823.225220, 2625.877441, 44.729828),
                    zoneType = 'OUTTER',
                }
            },
            ['FIRST_LAYER'] = {
                {
                    model = 'prop_fnclink_10d',
                    coords = vec3(1772.619995, 2534.912842, 44.537308),
                    interactCoords = vec3(1771.966187, 2533.789307, 44.537308),
                    zoneType = 'INNER'
                },
                {
                    model = 'prop_fnclink_10d',
                    coords = vec3(1660.881226, 2487.797607, 44.537308),
                    interactCoords = vec3(1661.753906, 2486.833984, 44.537308),
                    zoneType = 'INNER',
                },
                {
                    model = 'prop_fnclink_10d',
                    coords = vec3(1725.128784, 2489.148682, 44.537308),
                    interactCoords = vec3(1723.836792, 2489.292969, 44.537308),
                    zoneType = 'INNER'
                },
            },
            ['SECOND_LAYER'] = {
                {
                    model = 'prop_fnclink_10d',
                    coords = vec3(1655.700073, 2758.097412, 44.715355),
                    interactCoords = vec3(1654.400635, 2758.060059, 44.715355),
                    zoneType = 'OUTTER',
                },
                {
                    model = 'prop_fnclink_10d',
                    coords = vec3(1545.608765, 2465.994873, 44.690941),
                    interactCoords = vec3(1544.492065, 2466.660400, 44.690941),
                    zoneType = 'OUTTER',
                },
                {
                    model = 'prop_fnclink_10d',
                    coords = vec3(1646.324585, 2753.205811, 44.717018),
                    interactCoords = vec3(1647.226562, 2754.141846, 44.717018),
                    zoneType = 'OUTTER',
                },
                {
                    model = 'prop_fnclink_10d',
                    coords = vec3(1536.942993, 2579.814209, 44.726524),
                    interactCoords = vec3(1536.740356, 2581.098389, 44.726524),
                    zoneType = 'OUTTER',
                },
                {
                    model = 'prop_fnclink_10d',
                    coords = vec3(1777.257935, 2758.835205, 44.692490),
                    interactCoords = vec3(1776.056763, 2759.332275, 44.692490),
                    zoneType = 'OUTTER',
                },
                {
                    model = 'prop_fnclink_10d',
                    coords = vec3(1823.912476, 2481.726318, 45.332314),
                    interactCoords = vec3(1824.088989, 2480.438477, 45.332314),
                    zoneType = 'OUTTER',
                },
                {
                    model = 'prop_fnclink_10d',
                    coords = vec3(1765.101929, 2415.095459, 44.738335),
                    interactCoords = vec3(1764.183594, 2414.175293, 44.738335),
                    zoneType = 'OUTTER',
                },
                {
                    model = 'prop_fnclink_10d',
                    coords = vec3(1653.912476, 2397.722412, 44.789825),
                    interactCoords = vec3(1655.114868, 2397.228271, 44.789825),
                    zoneType = 'OUTTER',
                },
                {
                    model = 'prop_fnclink_10d',
                    coords = vec3(1769.781616, 2762.339600, 44.723412),
                    interactCoords = vec3(1768.482178, 2762.302246, 44.723412),
                    zoneType = 'OUTTER',
                },
                {
                    model = 'prop_fnclink_10d',
                    coords = vec3(1822.914429, 2624.615234, 44.729828),
                    interactCoords = vec3(1823.225220, 2625.877441, 44.729828),
                    zoneType = 'OUTTER',
                }
            }
        }
    },

    Chairs = {
        [`sanhje_prison_playground_table`] = {
            model = 'sanhje_prison_playground_table',
            debug = true,
            type = 'back',
            anim = {
                scenario = {
                    name = "PROP_HUMAN_SEAT_BENCH"
                },
                lay = {
                    dict = "timetable@tracy@sleep@",
                    name = "idle_c"
                },
            },
            positions = {
                { offset = vec3(1.0, 0.05, 0.1) },
                { offset = vec3(-0.1, -0.90, 0.1) },
                { offset = vec3(0.0, 1.05, 0.1) },
                { offset = vec3(-1.0, 0.05, 0.1) },
            }
        },

        [`sanhje_Prison_block_table`] = {
            model = 'sanhje_Prison_block_table',
            debug = true,
            type = 'back',
            anim = {
                scenario = {
                    name = "PROP_HUMAN_SEAT_BENCH"
                },
                lay = {
                    dict = "timetable@tracy@sleep@",
                    name = "idle_c"
                },
            },
            positions = {
                { offset = vec3(1.0, 0.05, 0.1) },
                { offset = vec3(-0.1, -0.90, 0.1) },
                { offset = vec3(0.0, 1.05, 0.1) },
                { offset = vec3(-1.0, 0.05, 0.1) },
            }
        },

        [`prisoncanteen_tables`] = {
            model = 'prisoncanteen_tables',
            debug = true,
            type = 'back',
            anim = {
                scenario = {
                    name = "PROP_HUMAN_SEAT_BENCH"
                },
                lay = {
                    dict = "timetable@tracy@sleep@",
                    name = "idle_c"
                },
            },
            positions = {
                { offset = vec3(1.4, -0.15, 0.2) },
                { offset = vec3(-0.1, -1.4, 0.2) },
                { offset = vec3(0.0, 1.4, 0.2) },
                { offset = vec3(-1.4, -0.15, 0.2) },
            }
        },

        [`sanhje_Prison_Cafeteria_table`] = {
            model = 'sanhje_Prison_Cafeteria_table',
            debug = true,
            type = 'back',
            anim = {
                scenario = {
                    name = "PROP_HUMAN_SEAT_BENCH"
                },
                lay = {
                    dict = "timetable@tracy@sleep@",
                    name = "idle_c"
                },
            },
            positions = {
                { offset = vec3(-0.75, 0.9, 0.0) },
                { offset = vec3(0.0, 0.9, 0.0) },
                { offset = vec3(0.65, 0.9, 0.0) },
                { offset = vec3(1.4, 0.9, 0.0) },
                { offset = vec3(1.4, -1.0, 0.0) },
                { offset = vec3(0.65, -1.0, 0.0) },
                { offset = vec3(0.0, -1.0, 0.0) },
                { offset = vec3(-0.75, -1.0, 0.0) },
            }
        },

        [`prop_bench_02`] = {
            model = 'prop_bench_02',
            debug = true,
            type = 'noback',
            anim = {
                scenario = {
                    name = "PROP_HUMAN_SEAT_BENCH"
                },
                lay = {
                    dict = "timetable@tracy@sleep@",
                    name = "idle_c"
                },
            },
            positions = {
                { offset = vec3(-1.1, 0.0, 0.5) },
                { offset = vec3(0.0, 0.0, 0.5) },
                { offset = vec3(0.9, 0.0, 0.5) },
            }
        },

        [`brofx_hei_heist_toilet03`] = {
            model = 'brofx_hei_heist_toilet03',
            debug = true,
            type = 'noback',
            anim = {
                scenario = {
                    name = "PROP_HUMAN_SEAT_BENCH"
                },
                lay = {
                    dict = "timetable@tracy@sleep@",
                    name = "idle_c"
                },
            },
            positions = {
                { offset = vec3(0.05, -0.10, 0.13) },
            }
        },

        [`sanhje_Prison_block_cell_detail_01`] = {
            model = 'sanhje_Prison_block_cell_detail_01',
            debug = true,
            type = 'noback',
            anim = {
                scenario = {
                    name = "PROP_HUMAN_SEAT_BENCH"
                },
                lay = {
                    dict = "timetable@tracy@sleep@",
                    name = "idle_c"
                },
            },
            positions = {
                { offset = vec3(-0.9, -0.5, -0.9) },
            }
        },

        [`brofx_hei_heist_beds03`] = {
            model = 'brofx_hei_heist_beds03',
            debug = true,
            type = 'bed',
            anim = {
                scenario = {
                    name = "PROP_HUMAN_SEAT_BENCH"
                },
                lay = {
                    dict = "timetable@tracy@sleep@",
                    name = "idle_c"
                },
            },
            positions = {
                { offset = vec3(-1.0, -0.35, 0.15) },
                { offset = vec3(-0.0, -0.35, 0.15) },
                { offset = vec3(1.0, -0.35, 0.15) },
            }
        },

        [`prop_picnictable_02`] = {
            model = 'prop_picnictable_02',
            type = 'back',
            debug = true,
            anim = {
                scenario = {
                    name = "PROP_HUMAN_SEAT_BENCH"
                },
                lay = {
                    dict = "timetable@tracy@sleep@",
                    name = "idle_c"
                },
            },
            positions = {
                { offset = vec3(0.0, 0.5, 0.5) },
                { offset = vec3(0.0, -0.5, 0.5) },
            }
        },

        [`brofx_hei_heist_bench03`] = {
            model = 'brofx_hei_heist_bench03',
            debug = true,
            type = 'noback',
            anim = {
                scenario = {
                    name = "PROP_HUMAN_SEAT_BENCH"
                },
                lay = {
                    dict = "timetable@tracy@sleep@",
                    name = "idle_c"
                },
            },
            positions = {
                { offset = vec3(-0.0, 0.2, 0.2) },
            }
        },


        [`prop_bleachers_04`] = {
            model = 'prop_bleachers_04',
            debug = true,
            type = 'noback',
            anim = {
                scenario = {
                    name = "PROP_HUMAN_SEAT_BENCH"
                },
                lay = {
                    dict = "timetable@tracy@sleep@",
                    name = "idle_c"
                },
            },
            positions = {
                { offset = vec3(1.75, -1.0, 0.45) },
                { offset = vec3(0.7, -1.0, 0.45) },
                { offset = vec3(-0.7, -1.0, 0.45) },
                { offset = vec3(-1.85, -1.0, 0.45) },
            }
        },
    },

    prisonVertices = {
        vec3(1829.326, 2474.521, 45.307),
        vec3(1853.348, 2621.093, 46.684),
        vec3(1828.696, 2624.533, 45.482),
        vec3(1856.145, 2700.803, 45.883),
        vec3(1774.818, 2768.410, 45.732),
        vec3(1646.250, 2762.964, 45.798),
        vec3(1565.218, 2683.529, 45.682),
        vec3(1529.485, 2588.008, 45.587),
        vec3(1536.877, 2465.795, 45.545),
        vec3(1660.074, 2387.879, 45.217),
        vec3(1764.278, 2403.568, 45.309)
    },

    cameraProlog = {
        initCameraPosition = vector3(1692.123291, 2564.680176, 57.360081),
        initCameraRot = vector3(-2.981497, 0.06393559, 233.0),
        initGameplayCamRot = vec3(-10.6386, -0, 233.0),
        points = {
            {
                pos = vec3(1715.306152, 2564.119385, 55.278774),
                rot = vector3(-5.106454, 0.06342217, 197.89619445801),
                duration = 8000,
                text = _U('CAMERA_PROLOG.WELCOME_TO_PRISON'),
                textTimeout = 1500,
                textRenderTime = 5500,
                options = {
                    fov = 90.0,
                    copyEffects = false,
                    --this will cause the movement of the camera to feel more smooth becuase it wont wait till will be on the defined destination
                    offsetDuration = 1500,
                }
            },

            {
                pos = vector3(1720.03, 2527.28, 47.56),
                rot = vector3(-5.106454, 0.06342217, 343.18),
                duration = 8000,
                text = _U('CAMERA_PROLOG.BASKETBALL_PLACE'),
                textTimeout = 9000 / 2,
                textRenderTime = 4500,
                options = {
                    fov = 90.0,
                    copyEffects = false,
                    --this will cause the movement of the camera to feel more smooth becuase it wont wait till will be on the defined destination
                    offsetDuration = 1500,
                }
            },


            {
                pos = vector3(1643.2, 2511.05, 53.07),
                rot = vector3(-5.106454, 0.06342217, 5.35),
                duration = 10000,
                text = _U('CAMERA_PROLOG.GYM_PLACE'),
                textTimeout = 6000,
                textRenderTime = 4500,
                options = {
                    fov = 90.0,
                    copyEffects = false,
                    -- this will cause the movement of the camera to feel more smooth becuase it wont wait till will be on the defined destination
                    offsetDuration = 1500,
                }
            },

            {
                pos = vector3(1630.04, 2548.59, 51.26),
                rot = vector3(-5.106454, 0.06342217, 232.75),
                duration = 4000,
                text = '',
                textTimeout = 4000,
                textRenderTime = 4500,
                options = {
                    fov = 90.0,
                    copyEffects = false,
                    --this will cause the movement of the camera to feel more smooth becuase it wont wait till will be on the defined destination
                    offsetDuration = 1500,
                }
            },

            {
                pos = vector3(1682.34, 2559.26, 45.1),
                rot = vector3(-5.106454, 0.06342217, 270.47),
                duration = 6000,
                text = '',
                textTimeout = 4000,
                textRenderTime = 4500,
                options = {
                    fov = 90.0,
                    copyEffects = false,
                    --this will cause the movement of the camera to feel more smooth becuase it wont wait till will be on the defined destination
                    offsetDuration = 1500,
                }
            },

            {
                pos = vector3(1747.37, 2545.54, 45.57),
                rot = vector3(-5.106454, 0.06342217, 348.46),
                duration = 7000,
                text = '',
                textTimeout = 4000,
                textRenderTime = 4500,
                options = {
                    fov = 90.0,
                    copyEffects = false,
                    --this will cause the movement of the camera to feel more smooth becuase it wont wait till will be on the defined destination
                    offsetDuration = 1500,
                }
            },

            {
                pos = vector3(1754.4, 2563.8, 47),
                rot = vector3(-5.106454, 0.06342217, 29.43),
                duration = 10000,
                text = _U('CAMERA_PROLOG.JOB_PLACE'),
                textTimeout = 7000,
                textRenderTime = 4500,
                options = {
                    fov = 90.0,
                    copyEffects = false,
                    --this will cause the movement of the camera to feel more smooth becuase it wont wait till will be on the defined destination
                    offsetDuration = 1500,
                }
            },

            {
                pos = vector3(1763.562866, 2556.079102, 46.409992),
                rot = vector3(-2.428856, 0.05924932, 334.92651367188),
                duration = 6000,
                text = _U('CAMERA_PROLOG.ACCOUNT_PLACE'),
                textTimeout = 4000,
                textRenderTime = 2500,
                options = {
                    fov = 90.0,
                    copyEffects = false,

                    --this will cause the movement of the camera to feel more smooth becuase it wont wait till will be on the defined destination
                    offsetDuration = 1500,
                }
            },

            {
                pos = vector3(1768.131958, 2552.756104, 46.770012),
                rot = vector3(-2.981497, 0.06393559, 267.0),
                duration = 7000,
                text = _U('CAMERA_PROLOG.CANTEEN_PLACE'),
                textTimeout = 2000,
                textRenderTime = 4000,
                options = {
                    fov = 90.0,
                    copyEffects = false,

                    --this will cause the movement of the camera to feel more smooth becuase it wont wait till will be on the defined destination
                    offsetDuration = 1500,
                }
            },

            {
                pos = vector3(1764.03, 2534.94, 45.57),
                rot = vector3(-5.106454, 0.06342217, 222.11),
                duration = 8000,
                text = _U('CAMERA_PROLOG.BOOTH_PLACE'),
                textTimeout = 6000,
                textRenderTime = 2000,
                options = {
                    fov = 90.0,
                    copyEffects = false,
                    --this will cause the movement of the camera to feel more smooth becuase it wont wait till will be on the defined destination
                    offsetDuration = 1500,
                }
            },
        }
    },

    jobs = {
        {
            name = _U('JOB.ELECTRICIAN_TITLE'),
            type = JOBS.ELECTRICIAN,
            description = _U('JOB.ELECTRICIAN_DESCRIPTION'),
            points = {
                {pos = vec4(1679.566, 2480.351, 45.564, 134.159)},
                {pos = vec4(1643.321, 2490.787, 45.564, 185.544)},
                {pos = vec4(1622.379, 2508.418, 45.564, 95.21)},
                {pos = vec4(1609.502, 2540.015, 45.564, 145.058)},
                {pos = vec4(1629.602, 2564.378, 45.564, 359.983)},
                {pos = vec4(1652.630, 2564.311, 45.564, 359.733)},