Hiding and replacing the FiveM crosshair
Call HideHudComponentThisFrame(14) every frame while aiming to hide GTA’s reticle. To draw your own, use two DrawRect calls at the centre of the screen (height scaled by GetAspectRatio(false) so the lines look equal) or an NUI overlay. Keep the loop asleep when the player is not aiming.
Hardcore roleplay servers remove the crosshair so shooting depends on sights; PvP servers often replace GTA’s dot with a cleaner, more visible crosshair. Both start with the same thing: the reticle is HUD component 14, and it can be hidden frame by frame.

#Hiding the reticle
CreateThread(function()
while true do
local sleep = 250
if IsPlayerFreeAiming(PlayerId()) then
sleep = 0
HideHudComponentThisFrame(14)
end
Wait(sleep)
end
end)To keep the reticle for some weapons (for example tasers for police), check GetSelectedPedWeapon(PlayerPedId()) against a table before hiding.
#Drawing a custom crosshair
local LEN, THICK = 0.006, 0.0008
CreateThread(function()
while true do
local sleep = 250
if IsPlayerFreeAiming(PlayerId()) then
sleep = 0
HideHudComponentThisFrame(14)
local r = GetAspectRatio(false)
DrawRect(0.5, 0.5, LEN * 2, THICK * r, 255, 255, 255, 220)
DrawRect(0.5, 0.5, THICK, LEN * 2 * r, 255, 255, 255, 220)
end
Wait(sleep)
end
end)Screen units run from 0 to 1 on both axes, so a vertical length has to be multiplied by the aspect ratio to match the horizontal one in pixels.
#An NUI crosshair
For images, animations or player-configurable styles, draw the crosshair in NUI: a centred element in your HTML that the Lua side shows with SendNUIMessage({ crosshair = true }) when aiming starts and hides when it stops. Send messages only on change, not every frame.
#What players can change themselves
GTA V’s own display settings let players turn the reticle on or off and change its size. Your script’s hide runs on top of that, so a server rule always wins; a server that keeps the reticle cannot force it bigger than a player chose.
Questions
How do I remove the crosshair in FiveM?
HideHudComponentThisFrame(14) every frame while the player aims.Which HUD component is the reticle?
Why is my custom crosshair stretched?
DrawRect uses screen units on both axes. Multiply vertical sizes by GetAspectRatio(false).Does hiding the reticle affect sniper scopes?
Ready to pick a map?
Twelve themes on three base map styles, $8 each, instant download.
Relevant to what you just read