FREE LINK v1.0.0 (non-commercial usage only):

If you're going to use this in commercial game - buy it please.

This system allows you to quickly find uniformly distributed random point inside any sprite. Why would you want to find a random point inside a sprite? Usually, for effects like burning, different auras, etc.

Usage is simple:

  1. Call global initialization script.

  2. Add sprites to the system.

  3. Call script that will return random point.


  1. High performance of random point script.

  2. Quick setup.

  3. Multiple options for generating area data, that's used to find random point.

  4. Cache system to save previously generated area data.

  5. Two-step area generation script, that will allow to recreate existing area data must faster.

  6. Draw function for previewing.

For area data generation, it's recommended to use YYC since it improve performance a lot. After data is generated, cache system can be used instead for quick loads.

End User Licence Agreement (EULA).

Changes in 1.0.2

  • Separated system object from demo object - it should be more clear what you need, and what you do not. Also, I placed all parsing to draw event since it latest GM version parsing don't work properly from create events.
  • Fixed cache loading function - it somehow crashed in latest GM version for no good reason. It did it when it tried to merge string.. also, extenstion removing built-in function got broken as well.. gosh...

Version 1.0.2. Published December 2, 2015

Created with GameMaker: Studio v1.4.1675

Age Rating: 4+

Average Rating

Your review

You can only review assets you've bought.


Jonathan P 20 October 2015

Does what it says on the tin!

Was easy to implement and does exactly what I wanted. Perfect for making sure blood and other hit particles come out of my sprite reliably. Highly recommended.

This review was left for a previous version of this asset.


Herminio S 20 March 2015

Hard to tell what exactly it does, but useful!

It's a-bit hard to tell what this does from the name alone. I'd recommend watching the video to get a better idea. But basically it takes a perfect area of your sprite (sortof), so little gaps and and stuff in the sprite are accounted for instead of just declaring that the entire sprite is a box and then taking the area of that box like a normal area calculation. Personally I'd call it something like: "Perfect Sprite Area" or something to make it more clear what this does, "Random Sprite Point" gives me no idea what to expect from this. Anyway once you KNOW what this does it's actually super useful!

*I would like to see some documentation though as to what each of the functions does, there is some stuff written in the script itself but a PDF or something would help plenty.

This review was left for a previous version of this asset.


GamerXP (Publisher) 21 March 2015

Heh. Well, I personally find "Perfect Sprite Area" more unclear, than "Random Sprite Point"... I'm not native english speaker, so I can't say for sure. I asked my canadian friend for his opinion, and he said it's fine. Also, Perfect Sprite Area... it's not really perfect, it depends on the settings. Maybe someone can come up with a better name?

And documentation, huh?... well, I'll think about it. Didn't think it's something so complex it needs it.


Jaime P 20 March 2015

Epic, no words to describe this piece of code.

Do not understand like no one else made a review of this asset, this is a masterpiece...

Performance are incredible and the posibilites are a lot......

Thank you very much for sharing!!!

The only for windows (d3d) no?

This review was left for a previous version of this asset.


GamerXP (Publisher) 20 March 2015

Well... I used d3d in drawing functions, though I placed them here only to support rotation. Calculating every corner of boxes manually took a lot of CPU time. I think you can remove them pretty easily if you modify script a bit.

I don't know if it work for other things than windows, though I tried adding support to other targets (added alternative chache system for JS targets).

Package contents

Loading, please wait

What is the issue?

Back to Top