yeah, a selection box is obviously needed and that's definitely in the cards for a future update. But the problem is more like, suppose you don't want to select a bunch of things together, you need to access a single particular instance so you can either select it or add a connection to it. Take the frigate target practice buttons for example. There are three different button actors that are swapped out depending on the state the button is in (black, red, blue). The models are identical except for the materials and they are all in the exact same spot. The net effect of that is basically that one of them ends up "on top" and its impossible to select any of the other ones without hiding the top one.

Some 3D tools handle this so if you click multiple times on a spot that has multiple overlapping objects, it cycles through all the objects in that spot so you can get the one you want. That might be a solution, but I'm worried about cases where you're trying to set up a connection and you can't really cycle-click because you're either holding onto an existing selection, or clicking again will cause the link dialog to pop up.

It can be done by making the user hide the instances they don't want to select until the one they -do- want becomes visible, then they can click on it and do whatever with it, but this seems like an annoying workflow to me, especially if you want to work with the other instances after (overlapping instances are probably related to each other in some way), so you have to hide stuff and then immediately unhide it after.

it might be a situation that's better handled by an improved layer setup and an improved instance view, so like if you're working on the buttons, you can just click somewhere and pull up the layer that has the button in it, and then from that you have a short list of only the actors related to the frigate button and you can easily configure whatever from there. But that goes back to needing a good layer system and being able to auto-generate layers somehow.

to some extent you can find actors that are related to each other by crawling connections, but the issue just comes down to at some point most stuff is connected to some other entity like a trigger or a relay that isn't part of the prefab or layer, and there's more connections that go out from there to tons of other completely unrelated stuff in the room. so the problem is really just distinguishing when an object has nothing to do with the one you're focused on, and excluding it from there.

yeah, a selection box is obviously needed and that's definitely in the cards for a future update. But the problem is more like, suppose you don't want to select a bunch of things together, you need to access a single particular instance so you can either select it or add a connection to it. Take the frigate target practice buttons for example. There are three different button actors that are swapped out depending on the state the button is in (black, red, blue). The models are identical except for the materials and they are all in the exact same spot. The net effect of that is basically that one of them ends up "on top" and its impossible to select any of the other ones without hiding the top one.

Some 3D tools handle this so if you click multiple times on a spot that has multiple overlapping objects, it cycles through all the objects in that spot so you can get the one you want. That might be a solution, but I'm worried about cases where you're trying to set up a connection and you can't really cycle-click because you're either holding onto an existing selection, or clicking again will cause the link dialog to pop up.

Antidote - Today at 10:05 PMyeahthe area id was probably inserted at cook time

Aruki - Today at 10:08 PMI thiiiiiink it might be possible to deduce whether two instances are part of the same layer/prefab by checking how close together their instance IDs areHunter Cave for instance

Antidote - Today at 10:09 PMcool!

Aruki - Today at 10:09 PMFlying Pirate should likely be on its own layerID 002A0128outgoing connection to Pickup Generator - 002A0112incoming connections from four triggers - 002A0218, 002A0219, 002A021A, 002A02BBthose are all pretty different, so we can probably conclude the pirate doesn't belong with any of them

Antidote - Today at 10:10 PMooo

Aruki - Today at 10:11 PMFlickerbat should be on a layer with its waypoint path and other associated instancesFlickerbat-component-component 002A0141first waypoint ID is 002A0142each waypoint in the path increases by 1

Antidote - Today at 10:11 PMi think you got it :3

Aruki - Today at 10:11 PM002A0142 through 002A0146and then the ActorKeyFrame is 002A0147

synamax - Today at 10:11 PMniiiiiccce

Aruki - Today at 10:12 PMthe flickerbat has two other outgoing connectionsPickup Generator which is shared by all the flickerbatsID 002A011Dand a debris generator which is also shared by all the flickerbats002A0149so that last one is actually really closehmmm

Antidote - Today at 10:13 PMwhat's 48?

Aruki - Today at 10:14 PMone of the gib debris chunks

Antidote - Today at 10:14 PMahfor the flickerbats?

Aruki - Today at 10:14 PMyeah

Antidote - Today at 10:14 PMnice

Aruki - Today at 10:15 PMthat's the list

Antidote - Today at 10:15 PMlooks promising

Aruki - Today at 10:16 PMI could probably put all the flickerbats in the same layer that waybut I kinda would want them each to have their ownbtw, another thing I want to look into is if prefab instances are always in the same ordernotice the flickerbats are always

I thought maybe prefab script instances would always have adjacent instance IDs, but that doesnt seem to be the casethey do seem like they're always close to each other, thoughI wonder if it would be feasible to write something to parse all MREAs in the game and find all instances where the same group of instance names are repeated in the same order (minus the -component parts since that seems to vary between prefab instances), and auto-generate a list of prefabs that way

edit: I think this idea might be generally correct, but there's some problems that need to be accounted for. First since prefab instances don't always have adjacent instance IDs, there's a possibility that there can be unrelated instances sandwiched in the middle, which should be accounted for. Second is there's some instances where the prefab's script objects are not all right next to each other. For example, on the Wave Beam door prefab, the instances for the "weapon ineffective" message is nowhere near the rest of the door instances. I'm not 100% sure why, but my theory is that the "weapon ineffective" message was added later in development so it had to be retroactively added to every area. Stuff like this has to be accounted for.. It would be fine if we auto-generated separate prefabs for the door and for the message, and then we could just stitch them together by hand afterwards. But it makes it a little bit more difficult to automatically recognize instances.

Still even just being guaranteed that the instances are always in the same order, even if they might have unrelated stuff in between, is gonna be a huge help.

DKCR is fully supported now. That's a big milestone because it means we're finally at the point all four games are fully supported which means this update's getting really close to being finished.

It doesn't mean we're there just yet. There are a lot of missing features still (like support for the Wii versions of MP1/2, and the ability to move/rename assets in the editor). I'm also going to take some time to study how other engines do things (mostly UE4 and Unity) and re-evaluate how I'm managing project and asset data; Unity does a lot of things in a way that makes way more sense than what I'm doing and I'm probably going to steal some ideas there lol. Alongside that I want to rework some of the UI. But hey we're getting there.

I don't want to try to provide an ETA because my last few ones were wildly off and things are pretty busy for me recently, but rest assured it's getting there and I for one am really eager to have this update finished so I can work on something else. I have had SO MANY ideas for new features I want to work on but I haven't been able to until all this is done. So I hope it won't be too much longer.

There is no way I can write a changelog for this update. Instead here's an overview of what it does.

This update basically completely changes the way PWE accesses data from the game. You don't extract paks and then open MLVL/CMDL/ANCS/etc files directly anymore. Instead, to load anything in the editor, you need to create a project. To do this, you click on the new Create Project button and point it towards an ISO, and then allow it to generate a project for you using the files from that ISO. Once you have a project created, you simply open it up, and then you'll have access to every file in the game directly within the editor.

What are the benefits of this setup? In the short term:

* One of the big ones: Assets now have filenames. There is a resource browser integrated directly into the main application window. From here you can find any asset in the game. The editor also contains built-in tools to organize and rename assets, as well as to import/export asset names from an external file, so if anyone decides to organize everything, they can easily export the names so others can use them, even with existing projects.

* It's infinitely easier to find things. This isn't only due to the asset filenames (although that's a big one), but just in general because of the way I've been able to integrate an asset management system into the editor. For example, there is a big list of worlds/areas right on the sidebar now, so it's now extremely easy to jump directly to any room you want without having to go through the hassle of opening MLVL files, finding the area in the combo box, etc. that was required on the old build.

* The restriction that you can only use assets that are already in the same level is gone - you can now freely use any asset and any script object in any map. The editor will automatically detect which assets are in use in which packages and make sure all needed files are present when you repack. Load times have also been optimized and are pretty close to the load times you get with the original game files. However, please keep in mind there's no support for the SAVW format still, so any script objects that depend on data being written to the save file still won't work correctly.

In the long term: The systems that have been implemented in this update will make it far easier and faster to add new features in the future. The base game's filesystem is optimized heavily for the game, and as a result it's very user- and editor-unfriendly, and difficult to work with. On the other hand, PWE projects are designed to make it simple to add new content to the game and then get that content running ingame as quickly as possible. It also provides an extremely solid foundation to work from that will make make it vastly simpler to continue building new tools and functionality on top of what's already here.

---

Anyway, you can expect development to be a little bit quiet for the next month or two - things are really busy for me right now, both with work as well as the fact that I'm moving soon, so I really need to backburner PWE for a little bit so I can focus more on other things. But once I get back into this there is a TON of stuff I've been aching to work on, and I hope future editor updates will take a lot less time than this one did!

ONE LAST THING: Pwootage is working on porting PWE to Mac/Linux! We don't expect this will be a complicated process, as PWE already uses exclusively cross-platform libraries and functionality. There'll be download links up when the ports are ready!

Hey! Two more things. First of all, if anyone has any questions or wants to discuss PWE, give feedback, etc. feel free to do it in this thread, but we also have a Discord server with a dedicated channel for PWE where we can talk in realtime if that's your preference. The invite link is here: https://discord.gg/edCR3hd

Second, a lot of people are reporting having trouble getting ISOs built with PWE to boot in Dolphin. I'm not sure why not, as it works on my end, but if Dolphin isn't booting your ISO then I suggest running your game directly from the project Disc folder instead. To do that:

- In Dolphin, go to Options -> Configuration -> Paths.- Set DVD Root to [Project]/Disc/files/- Set Apploader to [Project]/Disc/sys/apploader.img- Close the configuration settings, click "Open", and run [Project]/Disc/sys/main.dol

Additionally, JosJuice has made some changes to Dolphin that haven't been merged in yet that will make this process significantly easier. In the future you'll only need to add the path to your project to Dolphin's list of ISO directories, and it will appear in the game list. Even though it's not in yet PWE projects are already fully compatible with this system and you'll be able to start using it immediately when it gets merged in. (You can even change the name that shows up in the game list in the project settings dialog.)

The latest Dolphin build has JosJuice's changes merged in. Now you can simply add your project folder to Dolphin's paths list and it will show up in the games list in the main window. After saving + cooking your changes you can then run them directly in Dolphin, no ISO build needed.

You can also change the name that displays in the games list. Open the project settings dialog and change the Opening Banner Game Name to whatever you want. To make it display in Dolphin, make sure Options -> Configuration -> Interface -> Use Built-In Database of Game Names is DISABLED. You may also need to click View -> Purge Game List Cache and/or refresh/restart Dolphin.

Quote from DJGrenola:

As someone who has a sackful of abandoned half-projects, I've got to admire your dedication to this.

I figured you'd have to go with some sort of project system eventually. I remember way back encouraging you just to load the entire game into memory in one go.

thanks! Yeah loading the entire game into memory would not have worked at all lol. This setup is the best thing I could come up with.

yeah there are more editor features needed before it'll really be a good mod-making tool. PWE is still missing a bunch of features and a lot of the features it already has are kind of a pain in the ass to use.

The main change in this update is improved support for script object properties. We now know how to replicate property IDs, so this new update contains tools that allow you to determine if a property is accurately named (i.e. has the same name it had originally in Retro's tools), and also contains tools to help guess possible names. In the property view, you can right click to show a view that indicates if the property is named correctly or not. There is also some new stuff under the Tools menu. Finally, you will notice if you open a project for MP2/MP3/DKCR, there are a ton more property names now that were found via the new tools. I think Bearborg said we have something like 40% of properties correctly named now, but that's an old figure that I haven't checked personally.

Those are the main feature changes. In the backend, there was quite a bit of refactoring done on PWE's property and serialization systems, and this ended up being pretty complicated and sucking up a lot of dev time. These changes will give me a much better base to build new features in the future. However, since it currently doesn't affect the end user experience, I won't go into detail here. I might do a more in-depth writeup on it later if people are interested.

Anyways, I do have plenty of stuff I want to work on now, and I'm hoping I can bust out a few new features to expand PWE's editing capabilities in the near future, but I will refrain from promising anything right now.. life's been complicated, PWE's had to take a backseat to a lot of other things, and I'd rather share info about new features once they are actually in development and I have something to actually show.

Hey everyone, just a quick update to say PWE is now open source. I still plan on largely developing it as a solo venture, but if yall wanna go poking through the code for whatever reason, you're now free to :P

This update adds editors for string tables, scans, and tweaks for all games.

Had to make an account just to say thank you for this incredible editor! It's everything I would have hoped for. Thank you!!! Also, glad to see the 2002 forum is still active, I've known about it for many years, just never bothered to make an account. Makes me happy.