Who am I?

Who I am is Lee Cawley, a 25 year veteran of the games industry and 30+ years as a games/software developer. I started in 1982 on the ZX81, with my first professional game job in 1985.

I am an artist, designer and programmer with a portfolio of almost 70 games, numerous development tools and even some award winning software for Ericssons when I was a telecomms engineer.

I have Assembly language experience on four processors, 6502, Z80, 68000 and 8086. Actionscript 2.0 and 3.0. Lingo, Java (J2ME), VB6 and .Net, along with C# for applications and some XNA games programming... plus a small amount of C.

3D experience with 3DS Max since version 3 and to a much lesser extent, Maya. 2D experience mainly in Photoshop and Pro-Motion (for 2D sprite-work and tile based level maps).

Other Pages:

Kitsune Trains Project
*Page 2 Updated 13-04-2021*

Online Time-Trials offline

The Birth of the VectorEntity

Free Script
*Updated* Mod Warning

Rockstar Logic

Internet Protection

Mod Thoughts

Big Steaming GTA V Bloopers

Map Location Images

Modding Tips:

Purple & Green Textures - When Black isn't really Black

Vehicles - Why Size Matters

Blips - Manage Your Blips

Textures - POT vs NPOT

Keys - Modify Your Behaviour

Collections - Lists and Dictionaries (Includes full sample script)

Angled Areas - What's Your Angle?

Performance - Manage Your Time
(Includes full sample project)

Quadrant Search Manager
(Includes full sample project)

Legacy Collection:

Tracker Mod & App

On-Foot Cinematic Camera

Pick Your Ride and Pick Your Ped


Vehicle Effects

Air Vehicle Effects

Ground Vehicle Effects

Vehicle Effects Pool

World Guide System

CCTV Watcher

Bro-Tec DIS

Car Services

Glowing Brake Discs

Players Extended

Lights, Camera, Action

Mini-Games Extended

MGE - Courier Services

Vehcle Spawn Factory

Creating a Racetrack Overlay

(Includes full barebones project)

Miscellaneous Scripts

GTA V Modding

Had quite a bit of alcohol today... have you ever sat there so miserably f*cking down, that you imagine yourself plunging a pair of scissors into yourself over and over, convinced that it wouldn't hurt that much?

I can't put into words what it feels like to be drunk, almost 60 years old and suffering the overwhelming urge to just cry constantly. I wish I could convince myself that whatever pain comes with the infliction of death on yourself, is worth it. 30 seconds, 60 seconds... it has to be worth it... it has to be better than the alternative, surely.

I wish I could say "When I go to sleep tonight, I will never wake up again" and it would happen. I don't understand why those who don't want to die, die and those who do want to die, stay alive. Why are things so truly fucked right up?

Thought about writing a mod involving ropes, peds and *other* things. Looked at the rope natives, not sure I want to learn how all that works so will probably abandon the idea before it even starts.

So there was an update to the Launcher and Social Club and once again, Rockstar seem to be trying to f*ck over people who also run older versions of the game. I write mods in version 1868, this is a legit rolled back version that still logs into Social Club just fine. After this recent update though, it hangs on exit, my version 2189 seems to exit fine. Pretty shitty right?

Well you know the good thing about writing script mods, is sometimes there's a simple, yet brutal solution. I have a custom text input box and when I now enter the word "kill", the KillGTAV mod simply runs this code.

Process p = Process.GetCurrentProcess();

Bye bye GTAV... let's see you hang on that exit!

Today is one of those days where I hope another one doesn't follow it tomorrow. Seriously f*ck this life!!

Offered to write a tool mod for someone to extract data from models. Needed to extract the Quaternion value but low and behold, we find another SHVDN high-quality implementation of something.

Quaternion.Identity is supposed to give you a Quaternion of 0,0,0,1

If you read all the docs on the internet it is supposed to give you a Quaternion of 0,0,0,1 so you get the impression that's what you are supposed to get... right?

Not with SHVDN you don't!

Then there's Quaternion.RotationYawPitchRoll(), if you read the XML docs for that, it wants Y as Yaw, X as Pitch and Z as Roll... that's not how GTAV works, GTAV Yaws around the Z-Axis because Z = UP.

And just to make things worse, if you set a rotation of Vector3(0f, 0f, 0f) on an Entity and then get the Quaternion back from that, you get 0,0,0,0. And yet having just created my own function to use the GET_ENTITY_QUATERNION native, I get 0,0,0,1. You tell me, how can I get something that is seemingly correct and yet they get something that is unsurprisingly wrong?

I tell people time and time again, WRAP YOUR OWN NATIVES!!!

It is the ONLY way you can be sure you are getting the CORRECT values back from the game.

Page added about the cablecar research I have been doing.

Update: Cable car system now working fully, both tracks have active cars, that stop, move and animate as they should, with the trolley in sync with the cable direction.

I tell people R* are incompetent, they probably think I am just constantly bitching... but when you see this "AZ_COUNTRYSIDE_CHILEAD_CABLE_CAR_LINE", where the developers can't spell the name of a location inside their own game, then I am proved correct.