Downtown Co-op Campaign mode - [RELEASED]
Downtown Co-op Campaign mode - [RELEASED]
Hello everyone!
While doing the Open Downtown project, I was tinkering the code just to know how the game will deal with 2 players in a singleplayer script. I discovered that it worked very well. To be honest, I was expecting a lot of desync issues or even crashes, but just placing another PLAYER_PED on script I get some small issues:
1 - desync when the one player has enough respect to answer and launch a mission but the other player does not.
2 - desync when Player 2 dies in some missions, so Player 2 fails the mission but Player 1 remains playing it.
3 - game crash whenever the Player 2 is in a mission car as a passenger when it is parked at some garage.
The first two issues were fixed, the third one was avoided using some protective measures. All other missions features are working very well.
Download: There is a video when I (alone) did almost all Loonies missions and a Yakuza mission (co-op version 0.1.0). (Note: the co-op map can be played in game hunter as every another multiplayer map, but can be played using the splitscreen mod too.)
If you find a bug, especially desync or crash issues, write down on this topic and let me know the details.
Enjoy!
While doing the Open Downtown project, I was tinkering the code just to know how the game will deal with 2 players in a singleplayer script. I discovered that it worked very well. To be honest, I was expecting a lot of desync issues or even crashes, but just placing another PLAYER_PED on script I get some small issues:
1 - desync when the one player has enough respect to answer and launch a mission but the other player does not.
2 - desync when Player 2 dies in some missions, so Player 2 fails the mission but Player 1 remains playing it.
3 - game crash whenever the Player 2 is in a mission car as a passenger when it is parked at some garage.
The first two issues were fixed, the third one was avoided using some protective measures. All other missions features are working very well.
Download: There is a video when I (alone) did almost all Loonies missions and a Yakuza mission (co-op version 0.1.0). (Note: the co-op map can be played in game hunter as every another multiplayer map, but can be played using the splitscreen mod too.)
If you find a bug, especially desync or crash issues, write down on this topic and let me know the details.
Enjoy!
Re: Downtown Co-op Campaign mode - [RELEASED]
After intense testing, I've finished Downtown Coop. There are a lot of new features. Have fun!
Re: Downtown Co-op Campaign mode - [RELEASED]
Many thanks to the dude, you can’t imagine how I am grateful to you and I am waiting for other areas for a coop with my wife!
Re: Downtown Co-op Campaign mode - [RELEASED]
Thanks for playing it! I've released downtown coop a long time ago but I didn't continue to make residential coop because I was waiting for feedback, and making coop maps takes much time and effort.Madager wrote: 10 Apr 2025, 02:09 Many thanks to the dude, you can’t imagine how I am grateful to you and I am waiting for other areas for a coop with my wife!
I'm very busy recently, but I will try to develop residential coop gradually. There are many missions in Residential which I can modify to fit them for multiplayer, such as "Taxi Traitor Test", "Penal Ties", "Gran'pa We Love You!" etc.
Btw I will release the flipped versions of the singleplayer maps in the next few days (if I don't find any another bugs). Spoiler: they will be way more disorienting than the rotated versions
Re: Downtown Co-op Campaign mode - [RELEASED]
It is a pity that there are few feedback, your creation deserves publicly and recognition,
If you don't mind, I would like to film gameplay with this mission on my Youtube channel, though I still have few subscribers, but I would tell my friends about this mod.
Yes, I understand what work layer awaits you in the second area, given the specifics of those missions,
which you have listed and not only, I think it is mildly not just to do than with downtown, but I will wait for your work while I am alive
I send you greetings from Russia![[respect] [respect]](./images/smilies/powerups/respect.png)
If you don't mind, I would like to film gameplay with this mission on my Youtube channel, though I still have few subscribers, but I would tell my friends about this mod.
Yes, I understand what work layer awaits you in the second area, given the specifics of those missions,
which you have listed and not only, I think it is mildly not just to do than with downtown, but I will wait for your work while I am alive
I send you greetings from Russia
-
Gandorques
- Jaywalker

- Posts: 5
- Joined: 22 Feb 2026, 16:17
- GH nick: Gandorques
- Location: Germany
Re: Downtown Co-op Campaign mode - [RELEASED]
Hi Valps,
I registered here to get in contact with you regarding this mod.
First I want to tell you that I´ve waited for over 25 years for someone to tackle GTA2 Coop.
I didnt have time to test it with actual other Players, but from what I tested solo (in Splitscreen), it works great.
You have my deepest respect and gratitude.
I also have your mod added to a ever growing Public List of Coop Mods for Singleplayer Games to get it seen more.
That being said, I wondered what is stopping it from being compatible with more Players, and how to enhance the amount of agency and involement the other Players get.
Which lead me down a deep rabbit hole for the past 2 weeks, teaching myself GTA2 Scripting with the available documentation and your previous work as a basis, and testing what Systems need to be worked out to expand the possibilities of the mod.
At this Point I added some flexible overarching features and functions, and I reworked and tested all Easy Missions of all Gangs in Downtown with these Systems, and they run smoothly with any Player Count.
The needed Adjustments per Mission Script are pretty minor now.
But after all, I based all of this on your phenomenal groundwork and dont want to release it without your Blessing.
I wouldnt have even began to explore and understand the possibilities of GTA2 Scripting if it werent for your hard work.
But I also dont want to intrude or negate any work you may have done already, and dont want to take over your Project when you are still working on it.
But I believe I cooked up a flexible toolset that should be able to accelerate the upcoming Districts conversion process and would like to get in contact with you discussing further possibilities.
Either way, thank you again for creating something many of us have wanted to see for decades.
Here is a exhaustingly long list of working Features I already added:
I registered here to get in contact with you regarding this mod.
First I want to tell you that I´ve waited for over 25 years for someone to tackle GTA2 Coop.
I didnt have time to test it with actual other Players, but from what I tested solo (in Splitscreen), it works great.
You have my deepest respect and gratitude.
I also have your mod added to a ever growing Public List of Coop Mods for Singleplayer Games to get it seen more.
That being said, I wondered what is stopping it from being compatible with more Players, and how to enhance the amount of agency and involement the other Players get.
Which lead me down a deep rabbit hole for the past 2 weeks, teaching myself GTA2 Scripting with the available documentation and your previous work as a basis, and testing what Systems need to be worked out to expand the possibilities of the mod.
At this Point I added some flexible overarching features and functions, and I reworked and tested all Easy Missions of all Gangs in Downtown with these Systems, and they run smoothly with any Player Count.
The needed Adjustments per Mission Script are pretty minor now.
But after all, I based all of this on your phenomenal groundwork and dont want to release it without your Blessing.
I wouldnt have even began to explore and understand the possibilities of GTA2 Scripting if it werent for your hard work.
But I also dont want to intrude or negate any work you may have done already, and dont want to take over your Project when you are still working on it.
But I believe I cooked up a flexible toolset that should be able to accelerate the upcoming Districts conversion process and would like to get in contact with you discussing further possibilities.
Either way, thank you again for creating something many of us have wanted to see for decades.
Here is a exhaustingly long list of working Features I already added:
- Up to 6 Player Mode
- Expanded the Respect Adjustment at Mission start to work with any number of Players.
- Every Player can now use the car horn to order every other on foot Player to enter as a Passenger. Interestingly, thats how I found out that all Vehicles, regardless of size, seem to have infinite passenger seats.
- A Skin Changer. Enter left and right side of Jesus Saves to cycle up and down through all available 50+ Ped Skins.
- A Mission agnostic scaling Payout System. Instead of manually writing the granted or deducted Score, Multiplier, Reputation and Wanted Level Cleanup for each Player individually in a Mission script, you just set up a few variables, and it applies these to all Players in the Main cycle. It also Splits the Score payout evenly among all Players.
- In conjunction with this, the Level End trigger now triggers when all Players have a cumulative 1.000.000$ together.
- A constant System that automatically sets the Driver of a Mission Critical Vehicle up as the Player for Vehicular Trigger checks. So Missions that are Vehicle specific can be finished by all Players. You can also switch Drivers mid Mission with this.
- A constant System that rotates through the Player list every Script cycle and writes the Player to a CHAR_DATA Variable, so with changing p1 to coop_pall whenever a Mission checks for the player being in a trigger Zone, it is now triggerable for every Player, albeit with a small delay.
- As I realized that there is little to do for additional Players in many of the Missions, I added a easily configurable Gang Chase System that can be added to any Mission with just Setting a few Counters. This System spawns up to 6 respawning Gang Members (Gang Affiliation and Weaponry also set up easily with counters) that either chase the Mission Car Driver (when available), or random players around the whole map. So now whoever is not driving a Mission Car has to do their best to protect it.
- In conjunction with this I added a Difficulty Value that can be used to make Missions more challenging, with 0 being no Modifications (and no chasing Gangs).
i.e. by placing extra Enemies when the value is higher, or giving them better weapons. - For current Tests, the Difficulty is manually set in the script, but I plan to add some Phones to the starting area that let the Host manually adjust the difficulty value when not in a Mission, defaulting to the Player Count otherwise.
- I tried what I could to get those Garage Doors working crash free with 6 Players to no avail, until I decided to simply skip the Garage part, force all Players to leave the Mission Car, lock it, and have the Mission accomplish, when the car reaches the area in front of the Garage.
That solution saved me some headaches.
-
Gandorques
- Jaywalker

- Posts: 5
- Joined: 22 Feb 2026, 16:17
- GH nick: Gandorques
- Location: Germany
Re: Downtown Co-op Campaign mode - [RELEASED]
I now also added some new functions.
-Since the Integer Limitations failed me when it comes to accumulated Score for the Endgame Trigger, I now added a whole new System that lets players "Donate" 25.000$ towards the 1.000.000$ Goal at the Church by entering the Side entrance, with a Percentage Counter thats visible when not in a Mission.
So instead of calculating Integer Values beyond the Limits, its now 40 handy donation increments, added by every player whenever they want, as a Level End Requirement.
-I added a workaround Function for a Crash that happens whenever a Cop or Hostile NPC is trying to pull a player out of a Car when the player is not on the Driver Seat (i.e. another Player is the Passenger and has Wanted Level).
This causes the Attacker to simply enter the Vehicle as Driver, and then crash.
Now all Player Passengers are forced to leave the car when no driver is present. It may feel a bit weird, but its better than a Game Ending crash, and it pushes lazy players into action.
It may not completely work around the cause of the crash, which I assume comes from the Attacker sitting in the same Vehicle as his Target, but it reduces the likelyhood of it happening dramatically.
-I started adding simple IS_POINT_ONSCREEN Safety checks to Mission Spawn locations to make sure Vehicles and NPCs are not spawned while a player is loitering nearby. With a Text message that tells them to move away for the Mission to progress.
-I added a Function that checks if all Players are within 3 Blocks of Player 1. This function, added to a While thats waiting for Player 1 to arrive at a location, with a condition that waits for a Value to Flip to 1, lets you easily modify Mission Segments that need to make sure all Players are in the same Location.
This feature is not needed for all Missions, but some flow better when the Players are together at specific points.
-Next im planning on getting rid of the "Player 1 death fails Mission" aspect, by introducing a Host configurable Team Lifes System that fails the Mission after X players died.
With the Hardcore option of Any Death = Fail, the Casual Option of Infinite Lifes, and some Numbers in between.
-I also want to introduce a Score penalty for player death that is at least 2000$, probably more, to incentivise staying alive. And also to prevent players from abusing the fact that its technically still a deathmatch and they get Score for Fragging players. I need to make sure that the Team always has a net negative of total Score when someone dies, even from Friendly fire.
To prevent Farming Frag Money from broke Players, all Players have to pay the Score Penalty if the dead player cant pay it.
Unless someone can tell me a way to change the Score you get for killing a player directly (best case: to a negative value), or prevent the PVP Scoring at all.
I also want go and try if I can come up with a Desync Free way of doing Multiplayer Kill Frenzys.
I guess I have to reconstruct/fake most of the KF Process manually to achive this.
I cant guarantee if I find a solution, but Ill try it.
-Since the Integer Limitations failed me when it comes to accumulated Score for the Endgame Trigger, I now added a whole new System that lets players "Donate" 25.000$ towards the 1.000.000$ Goal at the Church by entering the Side entrance, with a Percentage Counter thats visible when not in a Mission.
So instead of calculating Integer Values beyond the Limits, its now 40 handy donation increments, added by every player whenever they want, as a Level End Requirement.
-I added a workaround Function for a Crash that happens whenever a Cop or Hostile NPC is trying to pull a player out of a Car when the player is not on the Driver Seat (i.e. another Player is the Passenger and has Wanted Level).
This causes the Attacker to simply enter the Vehicle as Driver, and then crash.
Now all Player Passengers are forced to leave the car when no driver is present. It may feel a bit weird, but its better than a Game Ending crash, and it pushes lazy players into action.
It may not completely work around the cause of the crash, which I assume comes from the Attacker sitting in the same Vehicle as his Target, but it reduces the likelyhood of it happening dramatically.
-I started adding simple IS_POINT_ONSCREEN Safety checks to Mission Spawn locations to make sure Vehicles and NPCs are not spawned while a player is loitering nearby. With a Text message that tells them to move away for the Mission to progress.
-I added a Function that checks if all Players are within 3 Blocks of Player 1. This function, added to a While thats waiting for Player 1 to arrive at a location, with a condition that waits for a Value to Flip to 1, lets you easily modify Mission Segments that need to make sure all Players are in the same Location.
This feature is not needed for all Missions, but some flow better when the Players are together at specific points.
-Next im planning on getting rid of the "Player 1 death fails Mission" aspect, by introducing a Host configurable Team Lifes System that fails the Mission after X players died.
With the Hardcore option of Any Death = Fail, the Casual Option of Infinite Lifes, and some Numbers in between.
-I also want to introduce a Score penalty for player death that is at least 2000$, probably more, to incentivise staying alive. And also to prevent players from abusing the fact that its technically still a deathmatch and they get Score for Fragging players. I need to make sure that the Team always has a net negative of total Score when someone dies, even from Friendly fire.
To prevent Farming Frag Money from broke Players, all Players have to pay the Score Penalty if the dead player cant pay it.
Unless someone can tell me a way to change the Score you get for killing a player directly (best case: to a negative value), or prevent the PVP Scoring at all.
I also want go and try if I can come up with a Desync Free way of doing Multiplayer Kill Frenzys.
I guess I have to reconstruct/fake most of the KF Process manually to achive this.
I cant guarantee if I find a solution, but Ill try it.
Re: Downtown Co-op Campaign mode - [RELEASED]
Wow, great work! I'm glad someone is working on an upgrade for co-op. You can release your mod version, no problem.
I initially wanted to make it support up to 6 players, but first I decided to focus on solving major issues involving 2 players only. Only for 2 players it took too much time and I was exausted. Since it's very rare to have GTA2 multiplayer games with more than 2 players willing to play about 1 hour in a possibly laggy network, I decided to leave the 6-player support for another time and release the 2-player version.
I have many GTA2 projects in mind but I'm currently working on larger projects such as GTA2 reverse engineering and a new fullsize district with a full set of missions and kill frenzies. For that I took a (very long) break on other on-going projects of mine such as "enhanced downtown" and a big map I was doing alone which is 35-40% done. In this sense, the 6-player support for co-op wasnt in my priorities, but you have solved this problem!
It's impressive how many features you have implemented. I have some comments for some of your new features:
I initially wanted to make it support up to 6 players, but first I decided to focus on solving major issues involving 2 players only. Only for 2 players it took too much time and I was exausted. Since it's very rare to have GTA2 multiplayer games with more than 2 players willing to play about 1 hour in a possibly laggy network, I decided to leave the 6-player support for another time and release the 2-player version.
I have many GTA2 projects in mind but I'm currently working on larger projects such as GTA2 reverse engineering and a new fullsize district with a full set of missions and kill frenzies. For that I took a (very long) break on other on-going projects of mine such as "enhanced downtown" and a big map I was doing alone which is 35-40% done. In this sense, the 6-player support for co-op wasnt in my priorities, but you have solved this problem!
It's impressive how many features you have implemented. I have some comments for some of your new features:
I even thought in doing it, but unfortunately, If I remember correctly, the logical operators > or < dont work well on WHILE_EXEC blocks. I discovered this when creating the open source version of Residential, and I was not able to fix this, since it seems to be a original bug in the game. For checking the score, the devs used CHECK_SCORE_GREATER, which is a straightforward command for 1 player, but it isnt useful to implement the feature of checking the sum of players scores.Gandorques wrote: 25 Feb 2026, 15:53 - the Level End trigger now triggers when all Players have a cumulative 1.000.000$ together.
Only after finishing the whole project I thought about using the command WARP_FROM_CAR_TO_POINT to teleport the players passengers out of the car right before parking it into the garage (big face palm). I haven't tested it yet if it works for passengers, but it would probably solve this problem once for all.Gandorques wrote: 25 Feb 2026, 15:53 - I tried what I could to get those Garage Doors working crash free with 6 Players to no avail, until I decided to simply skip the Garage part, force all Players to leave the Mission Car, lock it, and have the Mission accomplish, when the car reaches the area in front of the Garage.
That solution saved me some headaches.
I also didn't like to use this fail system, but it was the only workaround I found for a major problem involving desync. The majority of the GTA2 missions turn on SET_DEATHARREST_STATE, so the original mission script doenst have to manually check if the player have died or busted in every part of the script, but this system was made considering the user player as the only player (since GTA2 coop maybe never come in devs minds) and then it was causing desync: if the player X dies, player X will fail the mission but the other not. Thus I had to turn it off and manually add checks for player 1's death/busted in every mission. I maybe could have implemented something for player 2 death, but it has to be done along with player 1 checks. Then I just decided to let player 1 be the "leader" or something like that.Gandorques wrote: 25 Feb 2026, 15:53 -Next im planning on getting rid of the "Player 1 death fails Mission" aspect, by introducing a Host configurable Team Lifes System that fails the Mission after X players died.
Unfortunately the game only supports up to 20 functional phones simultaneously. Downtown has already 19. The 21º phone wont work at all, but you can use other triggers to set the difficulty, such as THREAD_WAIT_FOR_CHAR_IN_BLOCK or THREAD_WAIT_FOR_CHAR_IN_CAR.Gandorques wrote: 25 Feb 2026, 15:53 - For current Tests, the Difficulty is manually set in the script, but I plan to add some Phones to the starting area that let the Host manually adjust the difficulty value when not in a Mission, defaulting to the Player Count otherwise.
-
Gandorques
- Jaywalker

- Posts: 5
- Joined: 22 Feb 2026, 16:17
- GH nick: Gandorques
- Location: Germany
Re: Downtown Co-op Campaign mode - [RELEASED]
Thank you for your blessing.
I hope I have something release ready soon.
So far, they all seem to do their jobs.
I think its not fast enough in warping the players out before the Parking Process crashes the game.
But it also crashed, no matter who was driving the car, alone or with passengers.
But only after implementing my solution it came to my mind that I could simply have the Garage door open and teleport the Players out and lock the car when they are inside, without using the PARK function at all.
That way there would be no car standing awkwardly before the garage door, as my current solution handles it.
When a Player dies during a Mission, the Team Lives are deducted.
Then I´d just need to replace
IF ( HAS_CHARACTER_DIED(p1) )
with
IF ( coop_teamlives < 0 )
in the Mission scripts, to trigger the proper "On Death" Ending without major rewrites of the Mission Code.
Given what I figured out so far, I think this approach should work.
But I can place Dummy phones and use Threads.
I used a similiar approach for my Skin Changer System, but there I used the interior of Jesus Saves.
A player walks in on either the right of left side of the Church, and gets teleported back out with a new Skin.
My mind is already dreaming up competetive and cooperative Mini-Games or Side activities I could include that way, but first Ill focus on getting the Main Gameplay up and Running as completely and smoothly as possible.
My general approach is to keep the changes in Mission Scripts as minimal as possible, and handling as much as I can with reusable GOSUB Functions and Counters in the Main Script.
So far I know about the Limits on Phones and the 16 Bit Range of the Counters.
Are there any other Limitations I should be aware of?
I hope I have something release ready soon.
I replaced my solution already, but thanks for the heads up. I will be wary of for OR operations in WHILE_EXECs.valps wrote: 25 Feb 2026, 20:31 I even thought in doing it, but unfortunately, If I remember correctly, the logical operators > or < dont work well on WHILE_EXEC blocks. I discovered this when creating the open source version of Residential, and I was not able to fix this, since it seems to be a original bug in the game. For checking the score, the devs used CHECK_SCORE_GREATER, which is a straightforward command for 1 player, but it isnt useful to implement the feature of checking the sum of players scores.
So far, they all seem to do their jobs.
I actually tried that solution, and it crashed on me. Even though WARP_FROM_CAR_TO_POINT works well in other contexts.valps wrote: 25 Feb 2026, 20:31 Only after finishing the whole project I thought about using the command WARP_FROM_CAR_TO_POINT to teleport the players passengers out of the car right before parking it into the garage (big face palm). I haven't tested it yet if it works for passengers, but it would probably solve this problem once for all.
I think its not fast enough in warping the players out before the Parking Process crashes the game.
But it also crashed, no matter who was driving the car, alone or with passengers.
But only after implementing my solution it came to my mind that I could simply have the Garage door open and teleport the Players out and lock the car when they are inside, without using the PARK function at all.
That way there would be no car standing awkwardly before the garage door, as my current solution handles it.
I think I can work around the problem by not changing the Deatharrest State at the Mission start, and reading out each Players Death Status in my looping general Coop Features Function that constantly loops over the Players.valps wrote: 25 Feb 2026, 20:31 I also didn't like to use this fail system, but it was the only workaround I found for a major problem involving desync. The majority of the GTA2 missions turn on SET_DEATHARREST_STATE, so the original mission script doenst have to manually check if the player have died or busted in every part of the script, but this system was made considering the user player as the only player (since GTA2 coop maybe never come in devs minds) and then it was causing desync: if the player X dies, player X will fail the mission but the other not. Thus I had to turn it off and manually add checks for player 1's death/busted in every mission. I maybe could have implemented something for player 2 death, but it has to be done along with player 1 checks. Then I just decided to let player 1 be the "leader" or something like that.
When a Player dies during a Mission, the Team Lives are deducted.
Then I´d just need to replace
IF ( HAS_CHARACTER_DIED(p1) )
with
IF ( coop_teamlives < 0 )
in the Mission scripts, to trigger the proper "On Death" Ending without major rewrites of the Mission Code.
Given what I figured out so far, I think this approach should work.
Yeah, I read about that limitation.valps wrote: 25 Feb 2026, 20:31Unfortunately the game only supports up to 20 functional phones simultaneously. Downtown has already 19. The 21º phone wont work at all, but you can use other triggers to set the difficulty, such as THREAD_WAIT_FOR_CHAR_IN_BLOCK or THREAD_WAIT_FOR_CHAR_IN_CAR.
But I can place Dummy phones and use Threads.
I used a similiar approach for my Skin Changer System, but there I used the interior of Jesus Saves.
A player walks in on either the right of left side of the Church, and gets teleported back out with a new Skin.
My mind is already dreaming up competetive and cooperative Mini-Games or Side activities I could include that way, but first Ill focus on getting the Main Gameplay up and Running as completely and smoothly as possible.
My general approach is to keep the changes in Mission Scripts as minimal as possible, and handling as much as I can with reusable GOSUB Functions and Counters in the Main Script.
So far I know about the Limits on Phones and the 16 Bit Range of the Counters.
Are there any other Limitations I should be aware of?
Re: Downtown Co-op Campaign mode - [RELEASED]
I wasnt talking about the OR operator but the "greater than" or "less than" operatorsGandorques wrote: 25 Feb 2026, 21:14 I replaced my solution already, but thanks for the heads up. I will be wary of for OR operations in WHILE_EXECs.
So far, they all seem to do their jobs.
That's a nice way to do it. Sometimes I forgot that we can use a running thread on main script to affect the mission script.Gandorques wrote: 25 Feb 2026, 21:14 I think I can work around the problem by not changing the Deatharrest State at the Mission start, and reading out each Players Death Status in my looping general Coop Features Function that constantly loops over the Players.
When a Player dies during a Mission, the Team Lives are deducted.
Then I´d just need to replace
IF ( HAS_CHARACTER_DIED(p1) )
with
IF ( coop_teamlives < 0 )
in the Mission scripts, to trigger the proper "On Death" Ending without major rewrites of the Mission Code.
Given what I figured out so far, I think this approach should work.
I think the 2 main limitations is:Gandorques wrote: 25 Feb 2026, 21:14 So far I know about the Limits on Phones and the 16 Bit Range of the Counters.
Are there any other Limitations I should be aware of?
1 - when using multiple ANDs and ORs in a IF/WHILE statement, do not mix them. So you can use
(...) AND (...) AND (...)
and
(...) OR (...) OR (...)
but not
(...) OR (...) AND (...)
or
(...) AND (...) OR (...)
Mixing ANDs and ORs wont work as intended. Not because it's a bug but the devs have done a too simple treatment for them, which can be summarized as:
* If the current statement is false and the next operator is AND, then discard all later statements and go to ELSE/ENDIF (even if there is a OR later)
* If the current statement is true and the next operator is OR, then discard all later statements and go to IF block (even if there is a AND later)
2 - The second "limitation" is kind of obscure: under unknown circumstances, the ELSE sometimes won't work: the script will ignore it and run all the code from IF to ENDIF. There are reports of modders on this forum about this bug but no one discovered what causes this. It seems to be very unlikely to occur, but be aware.
-
Gandorques
- Jaywalker

- Posts: 5
- Joined: 22 Feb 2026, 16:17
- GH nick: Gandorques
- Location: Germany
Re: Downtown Co-op Campaign mode - [RELEASED]
Another thing I was wondering, that could be incredibly useful to me:
Is there any way to dynamically read, store and write X Y Z Coordinates for use in other places?
Like storing a Players Coordinates,
to use these coordinates in a WARP_FROM_CAR_TO_POINT command or a Spawning object?
A prime example to use this would be a optional "Teleport to Player 1" feature, whenever a Mission is triggered.
Is there any way to dynamically read, store and write X Y Z Coordinates for use in other places?
Like storing a Players Coordinates,
to use these coordinates in a WARP_FROM_CAR_TO_POINT command or a Spawning object?
A prime example to use this would be a optional "Teleport to Player 1" feature, whenever a Mission is triggered.
Re: Downtown Co-op Campaign mode - [RELEASED]
Using original script design, unfortunately no, there isnt a command in GTA2 which gets/stores the player coordinates.Gandorques wrote: 25 Feb 2026, 22:06 Another thing I was wondering, that could be incredibly useful to me:
Is there any way to dynamically read, store and write X Y Z Coordinates for use in other places?
Like storing a Players Coordinates,
to use these coordinates in a WARP_FROM_CAR_TO_POINT command or a Spawning object?
A prime example to use this would be a optional "Teleport to Player 1" feature, whenever a Mission is triggered.
However, on GTA2 version 11.44 the command CHANGE_GANG_CHAR_RESPECT was modified to read/write memory addresses, so you can put the "player" on this command to get the player ped pointer and use the known Ped pointers to get XYZ coordinates:
Code: Select all
ped+1AC= x coordinate (coordinates are 0 to 255 multiplied by 16384)
ped+1B0= y coordinate
ped+1B4= z coordinate
However, the bad news is that you can't use counters/variables in most of script commands, such as WARP_FROM_CAR_TO_POINT. All coordinates on script must be hardcoded, as the script running implementation on GTA2.exe side is hardcoded to read them as static numbers, and not pointers which carries counters which carries variable numbers. The only command in which you can use either a static number or a counter is ADD_SCORE, which has an explicit implementation for both cases.
-
Gandorques
- Jaywalker

- Posts: 5
- Joined: 22 Feb 2026, 16:17
- GH nick: Gandorques
- Location: Germany
Re: Downtown Co-op Campaign mode - [RELEASED]
This still opens the flood gates for some interesting ideas.
Reading out Coordinates Dynamically allows for Flexible Coordinate Checks instead of LOCATE_CHARACTER Checks that rely on precise locations.
You just need to set up the Target Range with a few counters, read out the Players coordinates, and compare when they match.
Is there a similiar way to store Car and Object Locations in that manner?
Because the Script is lacking Commands to Locate a Car (without a driver) or dynamic Objects, as far as I know, and this could be a nice workaround.
EDIT: I found the thread with the collection of Memory Adresses. Nice.
Reading out Coordinates Dynamically allows for Flexible Coordinate Checks instead of LOCATE_CHARACTER Checks that rely on precise locations.
You just need to set up the Target Range with a few counters, read out the Players coordinates, and compare when they match.
Is there a similiar way to store Car and Object Locations in that manner?
Because the Script is lacking Commands to Locate a Car (without a driver) or dynamic Objects, as far as I know, and this could be a nice workaround.
EDIT: I found the thread with the collection of Memory Adresses. Nice.

