GameMaker (all)

Advanced Targeting System

Nocturne Assets

You must be logged in to obtain assets



This project contains a series of functions designed to generate an ordered list of all targets with a given parent object. This list can then be scrolled through to select any of the given targets and "lock on" to them. If a target leaves the given range or is destroyed, the scripts will update the list again and target the next nearest, or it will select the next one on the list and find another target to add (this behaviour can be changed). Multiple instances can have target lists so you can have multiplayer games or AI using the same system.


  • Multiple simple functions that do all the work
  • Easy setup - Simply use the two supplied "base" objects
  • Easy customisation - Set range, list size, draw options, update speed etc...

All functions are called from a single object and can be easily added to a player or an enemy object later. The PARENT object must be used for all objects that you wish to target and should not be changed.

The included demo project contains two folders of objects in the resource tree. The BASE objects are the ones you should be using in a real game, and the DEMO objects can be removed. Note that the demo objects hold a lot of information in the form of comments so take a moment to read through them before removing them from the file.

Included with this project is a script from GMLScripts, which you can find here:

GMLScripts licence can be found here:

More info

End User Licence Agreement (EULA).

Age Rating: 4+


GMS1 - Version 1.0.3. Published February 10, 2018

Change notes:

  • Fixed potential issue with empty lists returning <undefined> instead of a valid ID
  • Added new "target_maintain" variable to keep tracking selected targets even when they are out of range
  • Added some extra text to the startup room to explain the in-demo controls

GMS2 - Version 1.0.5. Published May 17, 2018

This update adds new functionality to the asset, namely a "targeting pause" script that permits you to pause the targeting system when not required. This addition has meant that the INIT script now requires an extra argument for the alarm to call the update script in. If you update this in a project, be aware that you will need to update the arguments in that script and that you no longer have to set the update alarm manually.

GMS2.3 - Version 2.0.1. Published March 2, 2021

Updated and improved the asset for 2.3+

Privacy Policy
Loading, please wait

Package contents

Loading, please wait

What is the issue?

Loading, please wait