I did a bit more of a search and slowly added back all my resources in my Development server. I’ve found that after I add in [RELEASE] v2: Fix holes and customize the map (bob74_ipl) Rockstar Editor failed to load. Works fine on the normal game build everyone uses but breaks on the Tuner DLC build
Just one quick follow up: do you have custom assets loaded on this server before/after you enable bob74_ipl?
I think I have one of these issues isolated. However, it is on a server with more modified assets than what has changed for the next iteration of GTA V. I do not want to spend too much time trying to minify this if it’s something unrelated.
I stopped every map resource and started it after the Cayo improvements was started. Had no other map resources on and it had the crashing problems with rockstar editor.
This is my current hunch:
Both bob74_ipl and CayoImprovements are scripts that greedily request each IPL (REQUEST_IPL) on initiation. They never remove (REMOVE_IPL) them or request them only when required.
When a recording is initiated (or during additional CPacketIPL creations) all #map’s are copied to a temporary (CReplayInterfaceObject) buffer. In 2372.0 this corresponds to:
uint32_t size; // 0x141F93930 (+0x18) or (+0x41C) uint32_t hashes; // 0x141F93930 (+0x1C) or (+0x420) // sub_1404C41B0 is the routine
ERR_MEM_MULTIALLOC_FREE, and other residual issues, I presume come from the fact that there is no bounds-checking when memcpy’ing to that buffer. Hence it clobbering subsequent addresses: some of which go through the rage allocator and it thinking the memory has already been de-allocated.
While I do consider this to be a scripting issue, I suppose I could figure out how to add some user feedback/warnings into this.
(Apologies for edits, I’ve been over debugging this issue for an hour now.)
Given this is something that changes per release, would it rather make sense to somehow relocate or otherwise resize this fixed-size array, assuming it’s not used in too many weird places?
From an initial inspection, this would require a non-trivial amount of work as increasing those “buffer” sizes would have to be mirrored when processing those replay packets (e.g., 0x140137A44 and 0x1400A1419 in 1604 retail).
Given this is a patch specifically to battle against peoples misuse of loading IPLs when generating replays. Anything more than a message that tells users (more eloquently) to fix their shit just seems like a misuse of time.
Nearly every server does this. It’s impossible to get the entire ecosystem to move on this.
I’ve taken this into consideration and updated CayoImprovements.