ESX COURT INSTALLATION

5 min readLast updated

ESX DEPENDENCIES

DependencyInstallDescription
Q-TargetOptional if using other target system stated. For use of using 3rd eye features.
Meta TargetOptional if using other target system stated. For use of using 3rd eye features.
OX TargetOptional if using other target system stated. For use of using 3rd eye features.
ZF CONTEXT or NH CONTEXT V2 or OX LibsRequiredThis script is setup for both ZF/NH Context menus, you are required to use one of these.
ZF DIALOG or OX LibsRequiredThis Script is setup for both ZF/OX Inputs, you are required to use one of these.
BCS QuestionnaireRequiredThis script controls the exam for the bar test.

STEP BY STEP

1

Extract Resource Files

Extract the ap-court.zip file into your server’s resources folder. Ensure the folder is named correctly (e.g. ap-court).

2

Install & Ensure Dependencies

Make sure all required dependencies are installed and started before this resource. Add the following to your server.cfg if not already present:

lua
1
ensure ap-court
3

Import Database SQL

Locate the included .sql file inside the resource and import it into your database. You can do this via: phpMyAdmin Adminer Command line (MySQL)

4

Configure the Script

Open the config.lua file and adjust settings to match your server. Make sure to: Enable your preferred target system (e.g. ox_target / qb-target) Set job roles, permissions, and locations Review any framework-specific options

5

Restart Server

Restart your server to apply all changes.

OX LIBS (AP COURT v.1.1)

Info

Make sure to uncomment ox lib from the fxmanifest.lua in the script folder if you want to use OX context and dialog.

lua
1
--'@ox_lib/init.lua', -- UNCOMMENT THIS IF YOUR USING OX LIBS

MetaData Setup (AP COURT v.1.1)

Info

Add These to your OX inventory

ox_inventory\modules\items\client.lua - Add the example below at the bottom of the client file. Make sure to set OX to true in the Config.LawyerIDMetaData section.

lua
1
2
3
4
5
6
7
8
--- AP COURT STUFF ------
Item('lawyerid', function(data, slot)
  ox_inventory:useItem(data, function(data)
    if data ~= nil then
      TriggerServerEvent('ap-court:server:usingLawyerCard', data)
    end
  end)
end)
Example
Info

Add These to your OX inventory

ox_inventory\data\items.lua - Add the example below at the bottom of the items file.

lua
1
2
3
4
5
6
7
8
    ['lawyerid'] = {
        label = 'Bar License ID Card.',
        weight = 1,
        consume = 0,
        stack = false,
        close = true,
        description = nil
    },
Example
Info

CONFIG SCREENSHOTS

Here is where you would set the values to your liking.
lua
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
Config.Target = { -- QB-TARGET & QTARGET BOTH PRESETUP FOR GABZ CITY HALL.
	['qb-target'] = {
        active = true,
        ['bar'] = {
            active = true,
            ped = {model = "a_m_y_business_02"},
            coords = vector4(-542.55, -197.1524, 38.23, 87.9009),
            minusOne = true,
            freeze = true,
            invincible = true,
            blockevents = true

        },
        ['court'] = {
            active = true,
            ped = {model = "a_f_y_business_02"},
            coords = vector4(-552.43, -202.74, 38.24, 338.39),
            minusOne = true,
            freeze = true,
            invincible = true,
            blockevents = true
        },
        ['juryCourt'] = {
            active = true,
            boxzone = {
                name = "JuryTable",
                coords = vector3(-580.4249, -213.0508, 38.2270),
                length = 0.8,
                width = 0.8,
                heading = 309.3277,
                debugPoly = false,
                minZ = 38,
                maxZ = 39
            }
        },
        ['judge'] = {
            active = true,
            boxzone = {
                name = "judge",
                coords = vector3(-586.96, -205.97, 39.1166),
                length = 0.8,
                width = 0.8,
                heading = 30.0471,
                debugPoly = false,
                minZ = 38,
                maxZ = 39
            },
            job = {name = Config.CourtJob, grade = 0}
        },
        ['tableCourt'] = {
            active = true,
            boxzone = {
                name = "tableCourt",
                coords = vector3(-580.94, -216.71, 38.23),
                length = 6.2,
                width = 1.4,
                heading = 30,
                debugPoly = false,
                minZ = 38.03,
                maxZ = 38.63
            },
            job = {name = Config.CourtJob, grade = 0}
        }
    },
    ['qtarget'] = {
        active = false,
        ['bar'] = {
            active = true,
            ped = {model = 'a_m_y_business_02', sex = 'male'},
            coords = {x = -542.55, y = -197.1524, z = 38.23, h = 87.9009}
        },
        ['court'] = {
            active = true,
            ped = {model = 'a_f_y_business_02', sex = 'female'},
            coords = {x = -552.43, y = -202.74, z = 38.24, h = 338.39}
        },
        ['juryCourt'] = {
            active = true,
            boxzone = {
                name = "JuryTable",
                coords = vector3(-580.4249, -213.0508, 38.2270),
                length = 0.8,
                width = 0.8,
                heading = 309.3277,
                debugPoly = false,
                minZ = 38,
                maxZ = 39
            }
        },
        ['judge'] = {
            active = true,
            boxzone = {
                name = "judge",
                coords = vector3(-586.96, -205.97, 39.1166),
                length = 0.8,
                width = 0.8,
                heading = 30.0471,
                debugPoly = false,
                minZ = 38,
                maxZ = 39
            },
            job = {name = Config.CourtJob, grade = 0}
        },
        ['tableCourt'] = {
            active = true,
            boxzone = {
                name = "tableCourt",
                coords = vector3(-580.94, -216.71, 38.23),
                length = 6.2,
                width = 1.4,
                heading = 30,
                debugPoly = false,
                minZ = 38.03,
                maxZ = 38.63
            },
            job = {name = Config.CourtJob, grade = 0}
        }
    },
}

Was this page helpful?

© 2026 AP Scripts. Engineered for excellence.