• Please stop embedding files/images from Discord. Discord has anti-hotlinking logic in place that breaks links to Discord hosted files and images when linked to from anywhere outside of Discord. There are a multitude of file/image hosting sites you can use instead.

    (more info here)

Quick Modding/Hacking Answers Thread

Mar 11, 2017 at 8:10 PM
Life keeps going, but my temper doesn't.
"..."
Join Date: Aug 12, 2013
Location:
Posts: 384
Pronouns: he/him
I remember someone showed me ASM code for number of bubbles on screen.

Anyway, where should I look for issues when I get the "Failed to read stage" error? The warp ID is correct to me. [Yes GDI im temporarily using a windows pc.]
 
Mar 15, 2017 at 2:58 AM
Junior Member
"It's dangerous to go alone!"
Join Date: Aug 23, 2014
Location: New Pork City
Posts: 31
Age: 26
Pronouns: he/him
How can you edit the range in which an enemy can detect the player (ASM of course). I'm trying to increase the distance before a gatekeeper begins to move towards the player.
 
Mar 15, 2017 at 4:36 AM
Catz R cool
Modding Community Discord Moderator
"..."
Join Date: Nov 23, 2015
Location: Somewhere within a world far away from reality...
Posts: 381
Age: 24
Pronouns: he/him
How can you edit the range in which an enemy can detect the player (ASM of course). I'm trying to increase the distance before a gatekeeper begins to move towards the player.
CPU Disasm
Address Hex dump Command Comments
00436D1B MOV ECX,DWORD PTR SS:[EBP+8]
00436D1E MOV EDX,DWORD PTR DS:[ECX+8]
00436D21 SUB EDX,10000 #//DISTANCE LEFT
00436D27 CMP EDX,DWORD PTR DS:[49E654]
00436D2D JGE SHORT 00436D7E
00436D2F MOV EAX,DWORD PTR SS:[EBP+8]
00436D32 MOV ECX,DWORD PTR DS:[EAX+8]
00436D35 ADD ECX,10000 #//DISTANCE RIGHT
00436D3B CMP ECX,DWORD PTR DS:[49E654]
00436D41 JLE SHORT 00436D7E
00436D43 MOV EDX,DWORD PTR SS:[EBP+8]
00436D46 MOV EAX,DWORD PTR DS:[EDX+0C]
00436D49 SUB EAX,6000 #//DISTANCE UP
00436D4E CMP EAX,DWORD PTR DS:[49E658]
00436D54 JGE SHORT 00436D7E
00436D56 MOV ECX,DWORD PTR SS:[EBP+8]
00436D59 MOV EDX,DWORD PTR DS:[ECX+0C]
00436D5C ADD EDX,4000 #//DISTANCE DOWN
00436D62 CMP EDX,DWORD PTR DS:[49E658]
00436D68 JLE SHORT 00436D7E
00436D6A MOV EAX,DWORD PTR SS:[EBP+8]
 
Mar 15, 2017 at 4:43 AM
Junior Member
"It's dangerous to go alone!"
Join Date: Aug 23, 2014
Location: New Pork City
Posts: 31
Age: 26
Pronouns: he/him
Thanks, my man. I'll try it out as soon as I have the chance.
 
Mar 15, 2017 at 4:48 AM
Catz R cool
Modding Community Discord Moderator
"..."
Join Date: Nov 23, 2015
Location: Somewhere within a world far away from reality...
Posts: 381
Age: 24
Pronouns: he/him
If you also want the damage:

00436CFD MOV DWORD PTR DS:[ECX+0A4],0 #//CONTACT DAMAGE
00436F37 MOV DWORD PTR DS:[EAX+0A4],0A #//SWORD DAMAGE
 
Mar 18, 2017 at 9:37 PM
Veteran Member
"Wacka-Wacka-Wacka-Wacka-Wacka-Wacka-Wacka-Wacka-BLEIUP"
Join Date: Sep 21, 2014
Location:
Posts: 341
Age: 23
Pronouns: he/him
how do you set a start point in boosters lab
 
Mar 18, 2017 at 10:01 PM
In my body, in my head
Forum Moderator
"Life begins and ends with Nu."
Join Date: Aug 28, 2009
Location: The Purple Zone
Posts: 5998
Pronouns: he/him
it's a hackinator module it shouldn't be too hard to figure out which one but i forget specifically
 
Mar 18, 2017 at 10:03 PM
Veteran Member
"Wacka-Wacka-Wacka-Wacka-Wacka-Wacka-Wacka-Wacka-BLEIUP"
Join Date: Sep 21, 2014
Location:
Posts: 341
Age: 23
Pronouns: he/him
it's a hackinator module it shouldn't be too hard to figure out which one but i forget specifically
I found it, thanks!
 
Mar 20, 2017 at 7:42 PM
Sincerity will always triumph over irony.
Modding Community Discord Admin
"What're YOU lookin' at?"
Join Date: Apr 23, 2013
Location: In a cave above the surface.
Posts: 1084
Age: 26
Pronouns: He/They
Gender Notes: Test.
Hey, so Discord servers crashed right as I was about to ask my question so I guess I gotta retype here:

I don't really know what I'm doing because I'm not at all used to OllyDbg / ASM logic
Say I wanted to have a duplicate of an entity, so that I could point the graphics elsewhere and make a minor edit of it while still having the original.

I copied the binary/hex in its entirety from the entity I wanted duplicated, and pasted it over a boss entity with more room that I have no intention of using. I NOP'd the rest of the code even though from my logic the RTN should end that loop and never execute it. I didn't expect this to work but it mostly does.

After saving as a new executable, editing NPC.tbl to point to the original graphic sheet, and adding in the new entity to my test map, it seems to work for about 20 seconds after it spawned in.
Going through it in Olly shows that it crashes at 42B53E, which isn't even entity code I believe, with "Access violation when writing to 7E4D1DED".
For kicks I NOP'd this entire function and it started to work for an additional 30 seconds, acting completely like the original NPC, before crashing again elsewhere with a similar error (the address was different).

Something I missed when trying a technique like this for entity duplication? Do I need to be more specific with which entities I'm using?
 
Mar 20, 2017 at 10:05 PM
Catz R cool
Modding Community Discord Moderator
"..."
Join Date: Nov 23, 2015
Location: Somewhere within a world far away from reality...
Posts: 381
Age: 24
Pronouns: he/him
Hey, so Discord servers crashed right as I was about to ask my question so I guess I gotta retype here:

I don't really know what I'm doing because I'm not at all used to OllyDbg / ASM logic
Say I wanted to have a duplicate of an entity, so that I could point the graphics elsewhere and make a minor edit of it while still having the original.

I copied the binary/hex in its entirety from the entity I wanted duplicated, and pasted it over a boss entity with more room that I have no intention of using. I NOP'd the rest of the code even though from my logic the RTN should end that loop and never execute it. I didn't expect this to work but it mostly does.

After saving as a new executable, editing NPC.tbl to point to the original graphic sheet, and adding in the new entity to my test map, it seems to work for about 20 seconds after it spawned in.
Going through it in Olly shows that it crashes at 42B53E, which isn't even entity code I believe, with "Access violation when writing to 7E4D1DED".
For kicks I NOP'd this entire function and it started to work for an additional 30 seconds, acting completely like the original NPC, before crashing again elsewhere with a similar error (the address was different).

Something I missed when trying a technique like this for entity duplication? Do I need to be more specific with which entities I'm using?
Alright so
Instead of copying the actual AI, if it's the graphics you want to change, go to an entity you're replacing and do this:
PUSH EBP
MOV EBP, ESP
MOV EDI, DWORD [EBP+8]
PUSH EDI
CALL (AI of the entity you want to copy)
#Then set your sprites. The pointer should hopefully (Unless you've modified the other entity as well) still be in EDI.
The reason your code crashed was because it didn't have the proper pointer, and crashed trying to access an invalid instruction. It could also have been a CALL going to an invalid address due to being binary copied. This could happen 20 ~ 30 seconds after it is initialised if the entity has a timer.
This technique also allows you to do nifty things like copying a boss AI into a much smaller space, as well as make entities move/attack twice as fast by CALLing their AI twice a frame.
 
Last edited:
Mar 21, 2017 at 6:02 AM
Sincerity will always triumph over irony.
Modding Community Discord Admin
"What're YOU lookin' at?"
Join Date: Apr 23, 2013
Location: In a cave above the surface.
Posts: 1084
Age: 26
Pronouns: He/They
Gender Notes: Test.
Alright so
Instead of copying the actual AI, if it's the graphics you want to change, go to an entity you're replacing and do this:
PUSH EBP
MOV EBP, ESP
MOV EDI, DWORD [EBP+8]
PUSH EDI
CALL (AI of the entity you want to copy)
#Then set your sprites. The pointer should hopefully (Unless you've modified the other entity as well) still be in EDI.
The reason your code crashed was because it didn't have the proper pointer, and crashed trying to access an invalid instruction. It could also have been a CALL going to an invalid address due to being binary copied. This could happen 20 ~ 30 seconds after it is initialised if the entity has a timer.
This technique also allows you to do nifty things like copying a boss AI into a much smaller space, as well as make entities move/attack twice as fast by CALLing their AI twice a frame.
Yeah, it was the binary copy/paste that screwed up the addresses. Got it working like a charm, so thanks!
 
Apr 13, 2017 at 12:24 PM
Neophyte Member
"Fresh from the Bakery"
Join Date: Apr 13, 2017
Location: ...away from...him...
Posts: 2
Age: 9
Pronouns: he/him
...is there a way i could remove an NPC?...

...say there was ones...i have no intention to use...could i feasibly take them out of the table?...

...i dont want any balrog for example...it takes up space in editor...at least a way to hide it maybe?...
 
Apr 13, 2017 at 12:50 PM
Catz R cool
Modding Community Discord Moderator
"..."
Join Date: Nov 23, 2015
Location: Somewhere within a world far away from reality...
Posts: 381
Age: 24
Pronouns: he/him
...is there a way i could remove an NPC?...

...say there was ones...i have no intention to use...could i feasibly take them out of the table?...

...i dont want any balrog for example...it takes up space in editor...at least a way to hide it maybe?...
Well even if you removed both its AI and pointer table, it'd still show up in map/npc.tbl editors. You'd have to mod the editors to fix this problem.
 
Apr 13, 2017 at 1:23 PM
Based Member
"Life begins and ends with Nu."
Join Date: Dec 31, 2011
Location: United States
Posts: 2326
Age: 28
Pronouns: he/him
...is there a way i could remove an NPC?...

...say there was ones...i have no intention to use...could i feasibly take them out of the table?...

...i dont want any balrog for example...it takes up space in editor...at least a way to hide it maybe?...
You can actually do this rather easily in Booster's Lab. There's a text file called "entityInfo.txt" that lists all the entities. If you delete from that list any NPCs you won't be using, then this will shorten the list of NPCs shown on the map editor. Be sure to make a copy of this text file just in case you mess something up.

From my experience, you can't do this in Cave Editor; whenever I try to remove or simplify a line on the list of entities in "CaveEditor.txt," it can no longer load up a mod.
 
Apr 13, 2017 at 2:14 PM
In my body, in my head
Forum Moderator
"Life begins and ends with Nu."
Join Date: Aug 28, 2009
Location: The Purple Zone
Posts: 5998
Pronouns: he/him
I don't know if that will mess up the ID's when they get loaded by the game though.
The entity view has filters you can use to find specific types of NPC by double-clicking the lists above the map if too much scrolling is your issue.
 
Apr 14, 2017 at 6:58 AM
Neophyte Member
"Fresh from the Bakery"
Join Date: Apr 13, 2017
Location: ...away from...him...
Posts: 2
Age: 9
Pronouns: he/him
Well even if you removed both its AI and pointer table, it'd still show up in map/npc.tbl editors. You'd have to mod the editors to fix this problem.
I don't know if that will mess up the ID's when they get loaded by the game though.
The entity view has filters you can use to find specific types of NPC by double-clicking the lists above the map if too much scrolling is your issue.
You can actually do this rather easily in Booster's Lab. There's a text file called "entityInfo.txt" that lists all the entities. If you delete from that list any NPCs you won't be using, then this will shorten the list of NPCs shown on the map editor. Be sure to make a copy of this text file just in case you mess something up.

...thanks...with these suggestions i found a solution...to the entities i wished to be purged...
 
May 5, 2017 at 5:04 AM
Junior Member
CSE Discord Admin
"Fresh from the Bakery"
Join Date: Dec 6, 2015
Location: Behind You
Posts: 19
Age: 24
Pronouns: he/him
At offset 0x47B984 there is a cmp 4BBA98, 118. Change 118 to the number you desire. Keep in mind that in decimal 118 is 280, and vanilla omega's hp is 400 (190 in hex). I am pretty positive this is how you'd change it but not sure.
 
May 7, 2017 at 8:55 PM
Junior Member
CSE Discord Admin
"Fresh from the Bakery"
Join Date: Dec 6, 2015
Location: Behind You
Posts: 19
Age: 24
Pronouns: he/him
This one's a bit trickier. From what I found you have to change 3 values.
0x475851 CMP [EDX+40], 0C8
0x475884 CMP [ECX+40], 0C8
0x475C9E CMP [EAX+40], 0C8
Change 0C8 to the number you want. In decimal this is 200.

Also
0x4754C0 MOV [EAX+40], 2BC
Here you can change the max hp. 2BC in decimal is 700.

Out of curiosity, what are you trying to with this?
 
May 7, 2017 at 9:50 PM
Junior Member
CSE Discord Admin
"Fresh from the Bakery"
Join Date: Dec 6, 2015
Location: Behind You
Posts: 19
Age: 24
Pronouns: he/him
Your welcome. I am working on one myself, but I was hoping for more in depth explanation. Anyways, hope your mod works out well. :)
 
May 8, 2017 at 10:42 PM
Junior Member
"Fresh from the Bakery"
Join Date: Sep 23, 2016
Location:
Posts: 12
Age: 23
Pronouns: he/him
Okay, it's quite possible someone's made a guide for this or something, but how the heck does the hackinator in Booster's lab work? As I understand it, it's pretty key to doing anything really unique in booster's lab, but I can't quite figure out how to actually make a hack? It seems to have something to do with hexadecimal, but that's something I've never had a strong grasp on either. If someone could provide some info, link me to a guide, give some advice on learning it, or something along those lines, it would be much appreciated.
 
Back
Top