Qedit Help

Maverick

Member
I know that we're encouraged to ask questions in the "creating a quest" topic, but I anticipate asking a handful (...or dozens...) of questions regarding Qedit, and I don't want to clutter that thread too much. And people that check this thread out may have the same questions as me, so it could help to have this thread around. Feel free to delete it if you disagree.

Question 1: Are there maps for the ID #s of doors—besides forest 1 & 2—available somewhere?
 
Last edited:
The ID numbers of doors are whatever you set them to (Switch ID parameter). All maps apart from forest just use basic numbers. If set to -1, it will always be open, if set to 0 or above, it will only be open if that number is unlocked in the events or a switch is pressed with the same Switch ID.
 
the forest doors are made up of 2 byte values. Its just qedit treats it as 1 value. So a simple method would be to convert the value to hex in calc.exe. The first byte is the number on the door. the 2nd is the door ID then switch back to decimal and put that in the door id.
 
Novice here

I'm picking at preset Sega quests and learning little by little how to work some things in Qedit. What I can't seem to understand though are what you can use Object Room IDs for. I feel it's simple but I'm not entirely sure. Help?
 
Object Room IDs are collision objects that "move" the player from one room to another. They are used in Forest and CCA specifically. If you look at Forest's rooms, it's just a 4x4 grid that doesn't really line up to the actual room layouts at all (they fixed this in Episode 4, but Episode 1/2 still suffer from it).

What you need to do is place Object Room IDs on the doors that connect two rooms then change the parameters of before/after to be the two rooms on each side of the door.

The easiest way to do all this is just import the object file from free roam SEGA maps and save yourself the headache.
 
Ah, okay. Yeah I see it. Thanks.

My next question would be about the doors. Seeing your post about how to keep them open versus locked until events/switches give the say so, I tried it and then viewed it through the 3D viewing. I've seen the doors be locked in other quests but it's not working out for me. Would I just have to trust the 'Switch ID' value despite the door being green?

EDIT: I think I found out what the issue might be ^^
 
Last edited:
omg the scripting part looks so overwhelming X_X

Could someone possibly tell me what the more common ones are? Or perhaps what they mean? Just looking at other quest scripts is like looking at a wall of Gaulish Text '-';;
 
omg the scripting part looks so overwhelming X_X

Could someone possibly tell me what the more common ones are? Or perhaps what they mean? Just looking at other quest scripts is like looking at a wall of Gaulish Text '-';;
If you're talking about the more common opcodes, I'd suggest visiting https://qedit.info/index.php?title=OPCodes

For a good number of the opcodes, you can click on one and get a description as well as an example of use.
 
When looking at other quests, I recommend looking at the Dreamcast quests as they tend to have the simplest scripts. They don't use some of the more advanced GC/BB OPCodes and tend to also be in function order.

Examples of these would Mop-Up Operation, Lost Episode 1 (but not Hell Pallasch, that's a BB quest) and Endless Nightmare.
 
Thanks for all the pointers ^^

Hm, It seems 'get_difflvl' isn't available to view on the wiki. Looking at EN4 atm and I'm curious as to what it does? Apologies for the constant shouts for help >_>

Looks like something that loads another level or something
 
LOL

Okay, yeah. I'm dumb. Glossed right over the '2' in that OPcode. Thanks
 
Need help with 'leti' OPcodes. It says to use it for inserting values for registers but I'm not sure I'm really looking at when it comes to a finished script: Especially when I see a long string of them. Other than that I think I'm mostly set ^^
 
Need help with 'leti' OPcodes. It says to use it for inserting values for registers but I'm not sure I'm really looking at when it comes to a finished script: Especially when I see a long string of them. Other than that I think I'm mostly set ^^
They're just like x86 assembler commands for setting registers. Ex. mov eax, edx (Set eax register to the value in edx) or mov eax, 12345678h (set register to 12345678 in hex)

The two equivalents in PSO assembly would be like let R1, R2 (set register 1 to the value in register 2) or leti R1, 12345678 (set register 1 to hex value 12345678h)

In PSO assembly, though, when copying registers, we use let instead of leti. leti is only used for setting integer values. (Hence the "i" at the end.)

When you see a long string of them, it's usually setting a number of registers in sequential order and then calling a command with the base register.

Example, when item creates happen, usually 12 registers are leti (ex: leti R61-R72) or set in succession then item_create2 is called with the initial register. (R61)

Each register holds a byte of the new item to create. And item_create2 reads all 12 then makes the call to the server to create the item.

This is just one example.
 
Example, when item creates happen, usually 12 registers are leti (ex: leti R61-R72) or set in succession then item_create2 is called with the initial register. (R61)

Each register holds a byte of the new item to create. And item_create2 reads all 12 then makes the call to the server to create the item.

Is there any way (opcode) to create an item with more than 12 bytes? For instance, mags which seem to use 16?
 
Back
Top