Qtarget - A re-written and optimised "third eye" solution

Showcase Video

qtarget Demonstration - YouTube

Introducing qtarget

qtarget is a re-written, optimised third eye solution based on bt-target.

Credits

Why release this?

I’ve maintained a pretty solid fork of bt-target for a while, with the intention of adding features and fixing a few things I perceived as issues. In the process of doing so I encountered more and more issues related to performance and it sort of grew into this beast that made me cry every time I looked at it.

So, Linden and myself embarked on a mission to rewrite and optimise it, and this is the result. We still have some plans for it but for the most part, we’re ready for people to try it out and give us feedback. So here it is.

Features

  • Support for Objects, PolyZones, EntityZones, and Entities
    • Future support planned for: Players, Peds, Vehicles, VehicleBones
  • Passes data through to the event that is executed
  • Utilizes canInteract(), a function you can define for each individual option to determine whether or not that option should be visible.
  • Utilizes required_item, which hooks into linden_inventory to check if you have an item before showing the option.
  • Utilizes a multi-functional job check per option, which can be a string or a table defining minimum grade to see an option.
  • Disables combat while the interactive mode is active.
  • Optimised to an inch of its life - 0.04ms max recorded during testing.

Dependencies

Optional Support for

Installation

Installation guide is available on our wiki
Installation | qtarget

Converting from bt-target

If you use my fork of bt-target, or bt-target in general, you should be able to just change the exports to be exports['qtarget'] instead of exports['bt-target'] and it should work, however due to the difference in how we handle job checking, any option that requires a job will need to be re-set.

Examples & Documentation

Installation | qtarget

Links

Please report all issues you find to the Github issues system. Support will be provided in this thread and other mediums.

30 Likes

lots of awesome work from you! Thank you for your work!

is this working for esx 1,2 ??

Nice release! Looks fabulous!

1 Like

So good

Are you using ESX Legacy? @criminalist

3 Likes

Will there maybe be a ESX v1.2 version of this or is it planned? if not i’d make a pullrequest and make one as a seperate branch

Looks great and seems quite optimized, i’ll be using this from now. thanks for your contribution to the community! :heart:

Already converted a couple of resources to use this instead of bt-target. However, having some issues/errors with BoxZones?

See attached image below:

Any help would be greatly appreciated, thanks for the release! :100:

Trying to use it and i get an error that SetInterval is nil in client/main.lua also

2 Likes

This has been fixed in the latest version, I included the lowercase ‘polyzone’ as a dependency and in the imports in fxmanifest.lua instead of ‘PolyZone’.

It should be resolved now.

The installation instructions for qtarget specifically state that you need to add the SetInterval stuff to your ESX imports file.

If you don’t have this file, you’re not using the required ESX version - ESX Legacy.

2 Likes

Or you can just update your ESX considering the incompatibility list of ESX 1.3 is about 3 resources long.

good to know, ill put it on the Testserver and check if our stuff still works like it should.

Im using es_extended v1-final : GitHub - esx-framework/es_extended at v1-final
theres no imports.lua

It would be strange if v1 Final did have an imports.lua, considering ESX didn’t get updated for a year and was only recently given end of life updates and released as ESX Legacy.

Stop ignoring the information readily available to you.

1 Like

was that aimed at me? i cant tell sorry :sweat_smile:

No it was aimed at Casper the friendly ghost.

3 Likes

okay then also future reference my name is spelt with a K not a C lmao :joy: