- Joined
- Apr 28, 2005
- Messages
- 6,953
- Reaction score
- 2,420
Just a brief run-through of how to edit NPC locations.
First off, you need to find the index number of the NPC you want to edit.
In your client, convert NDStore.edf to DAT, then open it with a hex editor. Search for the name of the NPC you want to edit. This name will be the name you see in-game when standing next to it.
A few bytes before the name you will find an ID number. The ID number goes up by 1 for each NPC, starting from 0. The best way to find out which byte is the ID number is to start from the top and find a value that increments by one before each name. Save the ID number.
Next, open StoreList.dat in the server scripts with Stream editor or Structorian, then scroll down to the ID number you saved. You will see two values in the row, sdXXXXXX and bdXXXXXX where X represents a number. Save both of these values.
The last step is to go to "ZoneServer\RF_bin\Map", then browse to the map folder the NPC you want to edit is in, NeutralB for Bellato HQ for instance.
Open NeutralB.spt (or the map you are using) with Notepad++. The SPT file will always be named after the folder name.
Press CTRL + F and search for the sdXXXXXX number you wrote down. You will see something like this,
sdXXXXXX represents the spawn location of the NPC. The red number is the X coordinate, blue is the Y coordinate, and orange is the Z coordinate. You can replace the decimals with 0's (1781.817383 -> 1781.000000) if you want. You wont notice a difference in-game.
All you do to edit the location is change these coordinate values to ones you get in-game from using the %xyz GM command.
bdXXXXXX represents the binding location for that NPC. When you click "Bind" on a NPC, the bdXXXXXX is the location you will spawn at if you die.
In order to move NPCs to other maps, you need to edit the map code number in the StoreList.dat to the new map you want the NPC on.
To remove a NPC, you can simply delete the line. Or if you're like me and like to have all the codes still there, you can set the Z value to 9999.000000 to have it spawn in an unreachable location.
I used this method to completely reorganize the NPCs on PlayRFO. Some like it, some hated it, but it was a fun project for me.
Good luck guys. Feel free to post any questions below. Sorry I couldn't add images.
First off, you need to find the index number of the NPC you want to edit.
In your client, convert NDStore.edf to DAT, then open it with a hex editor. Search for the name of the NPC you want to edit. This name will be the name you see in-game when standing next to it.
A few bytes before the name you will find an ID number. The ID number goes up by 1 for each NPC, starting from 0. The best way to find out which byte is the ID number is to start from the top and find a value that increments by one before each name. Save the ID number.
Next, open StoreList.dat in the server scripts with Stream editor or Structorian, then scroll down to the ID number you saved. You will see two values in the row, sdXXXXXX and bdXXXXXX where X represents a number. Save both of these values.
The last step is to go to "ZoneServer\RF_bin\Map", then browse to the map folder the NPC you want to edit is in, NeutralB for Bellato HQ for instance.
Open NeutralB.spt (or the map you are using) with Notepad++. The SPT file will always be named after the folder name.
Press CTRL + F and search for the sdXXXXXX number you wrote down. You will see something like this,
Code:
*sd03002 -25 -25 -25 25 25 25 -node_tm
1.000000 0.000000 -0.000000 0.000000
0.000000 1.000000 0.000000 0.000000
0.000000 0.000000 1.000000 0.000000
[COLOR=#ff0000]4940.231934[/COLOR] [COLOR=#0000ff]1781.817383[/COLOR] [COLOR=#ffa500]982.663818[/COLOR] 1.000000
All you do to edit the location is change these coordinate values to ones you get in-game from using the %xyz GM command.
bdXXXXXX represents the binding location for that NPC. When you click "Bind" on a NPC, the bdXXXXXX is the location you will spawn at if you die.
In order to move NPCs to other maps, you need to edit the map code number in the StoreList.dat to the new map you want the NPC on.
To remove a NPC, you can simply delete the line. Or if you're like me and like to have all the codes still there, you can set the Z value to 9999.000000 to have it spawn in an unreachable location.
I used this method to completely reorganize the NPCs on PlayRFO. Some like it, some hated it, but it was a fun project for me.
Good luck guys. Feel free to post any questions below. Sorry I couldn't add images.
Last edited: