Developer handbook - VanaDev/Vana GitHub Wiki

Table of Contents

Looking Up Identifiers

The lookup GM command will become a very good friend for getting to identifiers for monsters, items, skills, quests, or maps. It allows you to search for a particular string and it returns all matches along with their identifiers.

Some examples:

 !lookup map behind
 Search for 'behind'
 240040511 : Leafre - The Dragon Nest Left Behind
 !lookup item cab
 Search for 'cab'
 1002228 : Cabbie
 1002472 : Cabbage Patch Hat
 1072356 : Timeless Cabatina
 1072362 : Reverse Cabatina
 4032024 : Jumper Cable
 !lookup mob spider
 Search for 'spider'
 9400545 : Wolf Spider

Looking Up Scripts

The lookup GM command can also search for scripts by name or ID. This is useful if you're starting from having a particular ID or script that you want to program.

Some examples:

 !lookup scriptbyname master
 Search for 'master'
 1012005 (npc) : petmaster
 1104000 (npc) : DollMaster
 9201104 (npc) : Masteria_Sage01
 9201105 (npc) : Masteria_Sage02
 !lookup scriptbyid 9900000
 Search for '9900000'
 9900000 (npc) : levelUP

The listportals GM command, listnpcs GM command, listreactors GM command, listportals GM command, and the listmobs GM command can all be useful in certain circumstances. If you're starting from a particular map, you can use these to find any information you might want about what is on the map.

Some examples:

 !listportals 3rd
 Portals for Map 211000001
 2 : out00 (destination 211000000 -> in01)
 !listportals 240010500
 Portals for Map 240010500
 1 : east00 (destination 240010600 -> west00)
 2 : west00 (destination 240010400 -> east00)
 3 : in00 (script 'minar_job4')
 !listreactors orbis
 Reactors for Map 200000000
 2002000 (script 'oBoxItem0')
 2002000 (script 'oBoxItem0')
 2002000 (script 'oBoxItem0')
 2002000 (script 'oBoxItem0')
 2002000 (script 'oBoxItem0')
 !listnpcs grendel
 NPCs for Map 101000003
 1032001 : Grendel the Really Old (script 'magician')
 // On map 30000
 !listmobs
 Mob 1000 (ID: 9300018, HP: 8/8 [100%])
 Mob 1001 (ID: 9300018, HP: 8/8 [100%])
 Mob 1002 (ID: 9300018, HP: 8/8 [100%])

Looking Up Maps

You can also start out from having information about a specific NPC/monster/portal/reactor and then figure out which maps they are on. The lookup GM command can do this through the whatmaps option. Examples:

 !lookup whatmaps npc 1032001
 Search for '1032001'
 101000003 : Victoria Road - Magic Library
 !lookup whatmaps mob 7130101
 Search for '7130101'
 105090700 : Dungeon - Sanctuary Entrance III
 105090800 : Dungeon - Sanctuary Entrance IV
 !lookup whatmaps portal Zakum05
 Search for 'Zakum05'
 211042300 : El Nath - The Door to Zakum

Looking Up Entities

The lookup GM command can also go in reverse, finding you the entity behind an identifier.

Examples:

 !lookup id 3000
 Search for '3000'
 3000 (quest) : Alpha Platoon's Network of Communication - Missing Staff Sergeant Charlie
 !lookup id 1100000
 Search for '1100000'
 1100000 (npc) : Kirium
 1100000 (skill) : Sword Mastery

DB Maintenance

The programmer is responsible for schema changes and migration queries. Files should be placed in the /sql/ directory and given a higher number than all the other .sql files. The LoginServer will execute the queries when it runs next. For testing purposes, you may want to copy your database and try out the queries to ensure no syntax errors/etc. beforehand.

⚠️ **GitHub.com Fallback** ⚠️