This was super fun to play! Definitely a lot of skill required for this :D
ArcJamie
Recent community posts
Hey Yal!
Small issue I've had with room pack which I've ignored for a long time.
I have rooms stored in scripts, which can all load into one big room mostly fine:
If we take the collision tiles for example (I have a script that will collide with tiles in a certain layer), they are loaded onto a different layer to what they were before. The chunk at the top is already in the room, but the chunk where I walk through the red collision tiles is from roompack loading.
I have double checked and the rooms stored in scripts have the exact same layers and depths as the room they are loaded into. Very confusing.
Hope you can help!
Thank you,
Jamie~
This definitely solved that issue! Thank you so much, this means more than you know since I've been trying to get a system like this working for many days!
Theres another smaller issue that was created from the code you gave me though. I had this piece of code in my chunks placeholder step event:
//Set 3 random instances as chest sprites
while (global.chest_minimum < 3) {
inst = instance_find(chunks,irandom(instance_number(chunks)-1));
if (inst.sprite_index != spr_chunks_chest) {
inst.sprite_index = spr_chunks_chest;
}
global.chest_minimum++;
}
It seems that because GMRoomPack activates on room start, it doesn't give the placeholder object time to change its sprite, therefore I'm not able to target specific sprites. I can easily target different sprites and say:
with(obj_room) {
if sprite_index = chest {
//activate the code you sent me, but for a script containing chest rooms
} //and then and else if statement for a different sprite index, for a script containing normal rooms.
I've tried different variations, but there's either errors or the code just doesn't replace the placeholders. For context, I want rooms like chests and shops which ALWAYS appear on a map (like in Binding of Isaac, or Enter the Gungeon). How would you approach doing this?
Ah! It seems that it wasn't imported correctly the first time around. It works!
The main thing that led to me buying your extension was: "to generate placeholders, then insert a random room from a subset in place of each of them".
My system involves 43 red squares and I wish to do just that, replace each of these into a random room from a script. How would I go about replacing each of these objects? Right now I have it so the system loads rooms into specific rooms, however it seems like all of the rooms I packed into a script load at once.
var json_rooms = scr_rooms(); // generated rooms stored in the script
// pick a random room name from the map:
var name = ds_map_find_first(json_rooms);
repeat (irandom_range(0, ds_map_size(json_rooms) - 1)) {
name = ds_map_find_next(json_rooms, name);
}
if room = Temporal_Gardens {
// and load that:
room_pack_load_map(json_rooms[?name]);
}
// and when you're done:
ds_map_destroy(json_rooms);
![](https://img.itch.zone/aW1nLzIzNDY4NTQucG5n/original/D6rtFS.png)
Sorry if these seem like really basic questions. I'm still around beginner level and trying to understand this new system.
Good evening from the UK!
My main goal is to replace placeholder objects in the room by loading them via GMRoomPack, and make a set of separate islands the player can explore. I may be putting things in the wrong places here, but it says that functions such as room_pack_load_file and room_pack_load_string are unknown, and doesn't let the game run. I've tried reading through the cheat sheet, to no avail so far.
I've gotten as far as creating obj_blank and placing room_pack_blank_object = obj_blank; in a game start event. I'm able to save rooms to json files and scripts without an issue. It's just figuring out how to actually load them onto the placeholder objects.
Any help or guidance would be appreciated!