multitheftauto / mtasa-resources

This project maintains a list of up-to-date resources that come with Multi Theft Auto.
https://multitheftauto.com
MIT License
150 stars 146 forks source link

Add mapfixes resource #504

Open Fernando-A-Rocha opened 3 weeks ago

Fernando-A-Rocha commented 3 weeks ago

This is intended to patch some flaws in the default MTA world, caused by missing objects that would usually be loaded in the singleplayer game.

Contributors to this mini-project:

List of map fixes

Objects were spawned using the exact positions provided in the game's IPL files.

Fernando-A-Rocha commented 3 weeks ago

Big Smoke's Crack Palace

Hole patched with 2 objects loaded from the game's carter.ipl binary IPL file.

Before:

bigsmoke_before

After:

bigsmoke_after

bigsmoke_after2

I believe this is essential for most servers.

Feel free to contribute 😄

jlillis commented 3 weeks ago

It would be best if each patch had a separate identifier or name, and could be turned on and off in meta.xml,

I think that's a bit overkill for this purpose. This should just be a simple map resource that fixes obvious holes for the purposes of the freeroam gamemode and other simmilar modes. Ideally I'd have it be a literal .map and nothing else, but there is no integration of the new building functions in the map editor yet.

Fernando-A-Rocha commented 3 weeks ago

I think we should make this resource much more customizable. It would be best if each patch had a separate identifier or name, and could be turned on and off in meta.xml, or even configured if there are multiple available options.

What I can think of is having meta.xml settings to enable/disable each patch individually. Wouldn't this be okay?

Fernando-A-Rocha commented 3 weeks ago

Lazy server owners would be able to toggle the patches via the Admin Panel by accessing the resource settings menu.

Nico8340 commented 3 weeks ago

What I can think of is having meta.xml settings to enable/disable each patch individually. Wouldn't this be okay?

I mean that's quite enough, yes. If we don't use a map, it might be worth using the new building functions, right?

Fernando-A-Rocha commented 3 weeks ago

What I can think of is having meta.xml settings to enable/disable each patch individually. Wouldn't this be okay?

I mean that's quite enough, yes. If we don't use a map, it might be worth using the new building functions, right?

Yes sir, if you look closely at the code I used createBuilding and meta.xml has the min version adequately xD

Nico8340 commented 3 weeks ago

My bad, sorry.

Fernando-A-Rocha commented 3 weeks ago

Let's get more feedback from the community on how this should work.

Dark-Dragon commented 3 weeks ago

Personally I'd say the highest priority are obvious erroneous differences between singleplayer and mta, such as big smokes crack den or the blown up warehouse in san fierro. However discussion on discord seems to indicate the scope should be much wider and include the more minor issues like missing collision in geometry that could result in accidentally or purposely falling through the map. While I don't see a desperate need for these issues to be addressed, I don't see any problem with taking on the task if enough people are interested in dealing with it. I would however say these should be resolved by fixing the models rather than band-aiding around them.

If this resource ends up addressing more than the couple glaring mistakes, I'd say a setting for each fix in the meta.xml is desirable.

NanoBob commented 3 weeks ago

I think if you want this to be of any value it needs to be configurable. Being able to enable or disable specific fixes would allow a server to use this if they do use some of these areas.

Another thing that's worth considering is making multiple alternatives for a single "fix". For example in this case one fix would place the interior behind it like you've done now. And another would be to place the wall that covers up the hole. As some servers might not want the interior there.

This also would be done by making them configurable, as you could just disable the wall if you want the interior bit.

Fernando-A-Rocha commented 3 weeks ago

Ok. Solid points.

My idea to make it configurable is create several meta.xml settings and listen to changes using the event onSettingChange to reload the patches accordingly. Any better alternatives?

Fernando-A-Rocha commented 3 weeks ago

Did as suggested. Demo video:

https://streamable.com/cdkhgq

Fernando-A-Rocha commented 3 weeks ago

I think the system doesn't need to get more complex than this. Let's keep adding actual map fixes related to spawning/removing objects. We'll sorry about game model modifications later imo.

THEGizmoOfficial commented 3 weeks ago

I would add two more interiors that are the same size as their buildings, so they do not protrude beyond the outline and are not available in the open world :D mta-screen_2024-06-23_13-32-22 mta-screen_2024-06-23_13-32-35 mta-screen_2024-06-23_13-33-17 mta-screen_2024-06-23_13-33-27

Fernando-A-Rocha commented 3 weeks ago

@THEGizmoOfficial These are nice map improvements. We can definitely add them to this resource. Obviously they will be toggle-able, but I think they really fit the freeroam gamemode which is the Default MTA Server gamemode.

Fernando-A-Rocha commented 3 weeks ago

Added 2 more original open-world interiors.

Here the interior was placed, and the garage ID 22 was opened using setGarageOpen.

image

//

Here the interior was placed and the entrance doors removed.

I'm thinking of spawning the doors at the same position, and making them pushable (setting model group to the same as Gen_doorINT04 which the player can push to open).

image

Fernando-A-Rocha commented 3 weeks ago

This project is evolving. For those reading, more is about to be done :shipit:

Fernando-A-Rocha commented 3 weeks ago

@T-MaxWiese-T

There should be a setting with which you can open and close the garages. It should be closed by default. There should also be a setting for doors.

This opens up several possibilities. Why not make something to open/close any garage ID in the server, because they all behave the same?

I'm not sure yet how to proceed with this feature of allowing control garage open/close

Fernando-A-Rocha commented 3 weeks ago

Added undamaged SF factory

image image

FYI it looked very different without this fix:

The building flickered and looked bad

image

T-MaxWiese-T commented 3 weeks ago

This opens up several possibilities. Why not make something to open/close any garage ID in the server, because they all behave the same?

I'm not sure yet how to proceed with this feature of allowing control garage open/close

The purpose of this resource is not made for opening or closing garages. The only purpose of opening a garage is to have a look at the interiors. I thought about creating a new resource where you can open and close garages individually via the resource settings. I can imagine that such a resource already exists, but I think it is so essential that it should be included by default.

Fernando-A-Rocha commented 3 weeks ago

This opens up several possibilities. Why not make something to open/close any garage ID in the server, because they all behave the same? I'm not sure yet how to proceed with this feature of allowing control garage open/close

The purpose of this resource is not made for opening or closing garages. The only purpose of opening a garage is to have a look at the interiors. I thought about creating a new resource where you can open and close garages individually via the resource settings. I can imagine that such a resource already exists, but I think it is so essential that it should be included by default.

Idk about such a resource to control garages, but yes it seems essential. I'll probably keep this automatically opening the garage to access the interior for now.

Fernando-A-Rocha commented 3 weeks ago

Added doors that can be pushed open at the open-world atrium interior

Demo video: https://streamable.com/qyqfgp

Fernando-A-Rocha commented 3 weeks ago

Added a fix for holes in apartment complex building walls in Idlewood

This bug in Rockstar's laeIdleProj02 model allowed the player to jump inside the building.

Demo video: https://streamable.com/b381eh

Credits to @THEGizmoOfficial for making the .col from scratch. More to come 🎉

Fernando-A-Rocha commented 3 weeks ago

image

jlillis commented 3 weeks ago

Well the scope of this has escalated quickly... which I'm fine with, I would just caution against going too crazy. The only issue I see at this point is that as of now there are interior warp points within the interiors resource that will conflict (namely the atrium in LS, potentially others).

Fernando-A-Rocha commented 3 weeks ago

The only issue I see at this point is that as of now there are interior warp points within the interiors resource that will conflict (namely the atrium in LS, potentially others).

I wasn't aware of the interiors resource, I checked that it doesn't start by default. When testing, I didn't see anything there at the atrium entrance.

Indeed, it conflicts with the it (we don't have any others now). Should the atrium open world interior be disabled by default then, even if it the interiors resource is not a default feature?

Fernando-A-Rocha commented 3 weeks ago

Well the scope of this has escalated quickly... which I'm fine with, I would just caution against going too crazy.

I'm happy with the direction this is taking! We won't include anything out of the scope mentioned in the original post of this PR. It's really meant to be an useful resource for a variety of server gamemodes. We won't be doing non "vanilla" map modifications.

Thank you for the comments, jlillis!

Fernando-A-Rocha commented 3 weeks ago

Palomino Creek bridge road bug fixed by @THEGizmoOfficial (CE_groundPALO03.col)

https://www.youtube.com/watch?v=1XrHmuMY-do

THEGizmoOfficial commented 3 weeks ago

Column And Ceiling Collision Fix (aircarpark_09_SFSe.col and mall_01_SFS.col)

https://www.youtube.com/watch?v=fMe8aGGn_UA

tut001 commented 3 weeks ago

If MTA wants to remain lightweight and avoid shipping hundreds of slightly modified original assets, then you'd be better off adding COL/DFF/TXD fixes as a community resource and letting other users contribute. There are hundreds of broken COL models, if not thousands of exploits for access to blue hell, or the insides of buildings. I have, like others, created many fixes for these but they keep becoming more obvious when working with different models. That's only COL issues. There's a lot of DFF issues as well if you take into consideration minor issues like zfighting, prelight, or IPL/mesh offsets that create tiny blue hell gaps in the world. At some point you'd be looking at redistributing a large portion of the original game's files, like a mod pack would.

If this is something that's maintained by MTA then it would add quite a lot of file sizing to servers that either have their own fixes already, or just don't really care for non-gamebreaking issues. Whether it's toggled on I imagine it would still be distributed as part of MTA installation.

What about file standards? A game modder with sufficient knowledge of art, topology & RW data would be required to inspect & approve every file that's submitted, and to set an official standard. Also, if people begin using different importers/exporters, which is known as destructive-editing (i.e. saving JPEG photographs instead of RAW for grading, or continously re-compressing images by editing & saving as JPEG), then there is a risk of breaking the file data because different plugins handle data differently. This is something that is all too common in the world of modding, and sadly many talented game modders still actively encourage without considering that it breaks stuff. It isn't the same as submitting a piece of text that says "Hello world". When someone modifies the file it may become "Hell world" and you have a problem. This happens a lot more frequent than some may think. Instead of per-server mods we're talking official resources meant for everyone, where a set file quality & size standard is expected.

Missing interiors on the other hand, sound reasonable as it's easily kept non-destructive and exclusively code based

Fernando-A-Rocha commented 3 weeks ago

@tut001 Unfortunately you're right, we can't distribute dozens of modified game models with MTA. If we kept going with these model fixes it would eventually never end.

I've removed them from the resource, and I'm fine with calling it completed soon & ready for final review.

Thanks for your input. Solid points!

Fernando-A-Rocha commented 3 weeks ago

For those still interested in the Model Fixes project, I've made it a separate branch on my fork. https://github.com/Fernando-A-Rocha/mtasa-resources/tree/model-fixes-resource/%5Bgameplay%5D/modelfixes

Fernando-A-Rocha commented 3 weeks ago

Main PR post updated.

Ready.

Fernando-A-Rocha commented 2 weeks ago

Done @Nico8340

Fernando-A-Rocha commented 2 weeks ago

Added original Big Smoke Crack Palace wall covering the hole

This object is present throughout the entire game except after the last mission where CJ drives through it with a S.W.A.T. vehicle, destroying the wall.

The object is set to unbreakable and frozen so it cannot be destroyed, the same as during the entire storyline.

The interior added behind was now set as disabled by default.

image

jlillis commented 1 week ago

Got any more fixes you want to include?

I've removed them from the resource, and I'm fine with calling it completed soon & ready for final review.

While I wouldn't approve of adding "dozens" of models, perhaps we can consider a small number of collision fixes for the most glaring issues?

Do we want to make this a freeroam dependency?

Fernando-A-Rocha commented 1 week ago

Got any more fixes you want to include?

Not for now.

we can consider a small number of collision fixes for the most glaring issues?

I believe the game model fixes can be a separate resource that I'm working on a separate branch on my fork (modelfixes). The resource of this PR is for reimplementing missing objects from singleplayer.

Do we want to make this a freeroam dependency?

I think we do! These map modifications are perfectly compatible with the freeroam gamemode. Otherwise, it becomes just another forgotten resource if not made default.

Nico8340 commented 1 week ago

I tested and reviewed the resource, but I think we should approach it in a different direction. If the resource focuses solely on fixes, then it should only contain fixes, such as replacing the wall of Big Smoke's Crack Palace, but not opening the Atrium interior.

I don't think it should contain models, but it could contain some small collision fixes. If you remove the elements from it that are not specific fixes, then there is not much left, so expansion is an option either now or in the future.

Fernando-A-Rocha commented 1 week ago

@Nico8340 So, do you propose removing the Commerce Atrium Lobby open-world interior?

Feel free to suggest the collision fixes you think we can include in this resource.

Nico8340 commented 1 week ago

@Nico8340 So, do you propose removing the Commerce Atrium Lobby open-world interior?

Feel free to suggest the collision fixes you think we can include in this resource.

Exactly