Thread: osrs .78 cache dump (Contains item list, npc list, object list)

Results 1 to 10 of 10
  1. #1 osrs .78 cache dump (Contains item list, npc list, object list) 
    Visionary

    Join Date
    Jun 2008
    Posts
    3,538
    Thanks given
    457
    Thanks received
    1,254
    Rep Power
    1013
    For the people who don't know how to do this. I just dumped all of these for you.

    These are from osrs revision 78.

    Contains
    • 78 item list
    • 78 npc animation list
    • 78 npc list
    • 78 object list


    Sample:

    ItemList

    Code:
    ID: Name - Description - Value 
    0 : Dwarf remains : It's a Dwarf remains. : 1
    1 : Toolkit : It's a Toolkit. : 1
    2 : Cannonball : It's a Cannonball. : 5
    3 : Nulodion's notes : It's a Nulodion's notes. : 1
    4 : Ammo mould : It's an Ammo mould. : 5
    5 : Instruction manual : It's an Instruction manual. : 10
    NPC Animation List

    Code:
    Id : StandAnim - walkAnim - rotate180Animation - rotate90LeftAnimation - rotate90RightAnimation 
    0 : 2904 : 189 : 65535 : 65535 : 65535
    1 : 6010 : 6011 : 65535 : 65535 : 65535
    2 : 1506 : 1505 : 65535 : 65535 : 65535
    3 : 1506 : 1505 : 65535 : 65535 : 65535
    4 : 1506 : 1505 : 65535 : 65535 : 65535
    NPC List

    Code:
    Id : Name - Description - TilesOccupied 
    0 : Tool Leprechaun - It's a Tool Leprechaun. : 1
    1 : Molanisk - It's a Molanisk. : 1
    2 : Aberrant spectre - It's a Aberrant spectre. : 2
    3 : Aberrant spectre - It's a Aberrant spectre. : 2
    4 : Aberrant spectre - It's a Aberrant spectre. : 2
    Object List

    Code:
    Id : Name - Description - SizeX x SizeY 
    0 : null : null : 1x1
    1 : Crate : It's a Crate. : 1x1
    2 : Cave Entrance : It's a Cave Entrance. : 4x2
    3 : Door : It's a Door. : 1x1
    4 : Door : It's a Door. : 1x1
    Enjoy!

    [Only registered and activated users can see links. ]
    Reply With Quote  
     


  2. #2  
    Registered Member Psychoactive's Avatar
    Join Date
    Jun 2015
    Posts
    479
    Thanks given
    59
    Thanks received
    51
    Rep Power
    23
    Thanks for this! Very usefull!
    You are pure perfection living in a complete world
    Reply With Quote  
     

  3. #3  
    Registered Member
    Join Date
    Nov 2015
    Posts
    173
    Thanks given
    6
    Thanks received
    2
    Rep Power
    11
    so the npc list does that go in NPC.cfg because they don't seem to have "combat" "health" in there I don't get it
    Reply With Quote  
     

  4. #4  
    Nya
    Nya is offline
    Registered Member
    Nya's Avatar
    Join Date
    Jul 2009
    Posts
    2,610
    Thanks given
    11
    Thanks received
    257
    Rep Power
    1398
    thank you for this, will make good use

    PS > i thanked you :O i don't give thanks often xD
    Reply With Quote  
     

  5. #5  
    Visionary

    Join Date
    Jun 2008
    Posts
    3,538
    Thanks given
    457
    Thanks received
    1,254
    Rep Power
    1013
    This is old, I did this straight from the client. I recently parsed the RS Wiki website and got all the data for actual definitions though.

    I'm selling these.

    Just an example but can make them however you want.

    Code:
      {
        "id": 2044,
        "name": "Zulrah",
        "description": "It's a Zulrah.",
        "combatLevel": 725,
        "size": 5,
        "walkAnimation": 5070,
        "turn180Animation": 65535,
        "turn90CWAnimation": 65535,
        "turn90CCWAnimation": 65535,
        "actions": [
          null,
          "Attack",
          null,
          null,
          null
        ],
        "clickable": true
      },
      {
        "id": 2045,
        "name": "Snakeling",
        "description": "It's a Snakeling.",
        "combatLevel": 90,
        "size": 1,
        "walkAnimation": 2405,
        "turn180Animation": 2406,
        "turn90CWAnimation": 2407,
        "turn90CCWAnimation": 2414,
        "actions": [
          null,
          "Attack",
          null,
          null,
          null
        ],
        "clickable": true
      },
    Code:
      {
        "id": 12006,
        "name": "Abyssal tentacle",
        "examine": "It's an Abyssal tentacle.",
        "noted": false,
        "noteable": false,
        "parentId": -1,
        "notedId": -1,
        "stackable": false,
        "destroyable": false,
        "tradeable": false,
        "members": true,
        "questItem": false,
        "value": 289800,
        "highAlch": 173880,
        "lowAlch": 115920,
        "equipable": true,
        "equipType": "WEAPON",
        "weapon": true,
        "twoHanded": false,
        "platebody": false,
        "fullHelm": false,
        "weight": 0.0
      }
    Code:
      {
        "id": 12002,
        "name": "Occult necklace",
        "type": "AMULET",
        "bonuses": [
          0,
          0,
          0,
          12,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          10,
          2
        ]
      },
      {
        "id": 12006,
        "name": "Abyssal tentacle",
        "type": "WEAPON",
        "bonuses": [
          0,
          90,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          86,
          0,
          0,
          0
        ]
      },
      {
        "id": 12013,
        "name": "Prospector helmet",
        "type": "HAT",
        "bonuses": [
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0
        ]
      }
    Reply With Quote  
     

  6. #6  
    Banned

    Join Date
    Mar 2011
    Posts
    659
    Thanks given
    105
    Thanks received
    73
    Rep Power
    0
    Quote Originally Posted by Seven View Post
    For the people who don't know how to do this. I just dumped all of these for you.

    These are from osrs revision 78.

    Contains
    • 78 item list
    • 78 npc animation list
    • 78 npc list
    • 78 object list


    Sample:

    ItemList

    Code:
    ID: Name - Description - Value 
    0 : Dwarf remains : It's a Dwarf remains. : 1
    1 : Toolkit : It's a Toolkit. : 1
    2 : Cannonball : It's a Cannonball. : 5
    3 : Nulodion's notes : It's a Nulodion's notes. : 1
    4 : Ammo mould : It's an Ammo mould. : 5
    5 : Instruction manual : It's an Instruction manual. : 10
    NPC Animation List

    Code:
    Id : StandAnim - walkAnim - rotate180Animation - rotate90LeftAnimation - rotate90RightAnimation 
    0 : 2904 : 189 : 65535 : 65535 : 65535
    1 : 6010 : 6011 : 65535 : 65535 : 65535
    2 : 1506 : 1505 : 65535 : 65535 : 65535
    3 : 1506 : 1505 : 65535 : 65535 : 65535
    4 : 1506 : 1505 : 65535 : 65535 : 65535
    NPC List

    Code:
    Id : Name - Description - TilesOccupied 
    0 : Tool Leprechaun - It's a Tool Leprechaun. : 1
    1 : Molanisk - It's a Molanisk. : 1
    2 : Aberrant spectre - It's a Aberrant spectre. : 2
    3 : Aberrant spectre - It's a Aberrant spectre. : 2
    4 : Aberrant spectre - It's a Aberrant spectre. : 2
    Object List

    Code:
    Id : Name - Description - SizeX x SizeY 
    0 : null : null : 1x1
    1 : Crate : It's a Crate. : 1x1
    2 : Cave Entrance : It's a Cave Entrance. : 4x2
    3 : Door : It's a Door. : 1x1
    4 : Door : It's a Door. : 1x1
    Enjoy!

    [Only registered and activated users can see links. ]
    I know it's a lot to ask, but would it be hard to show us how you dump this info?

    THANKS FOR THE REL THO
    Reply With Quote  
     

  7. #7  
    Visionary

    Join Date
    Jun 2008
    Posts
    3,538
    Thanks given
    457
    Thanks received
    1,254
    Rep Power
    1013
    Quote Originally Posted by Eggspurt View Post
    I know it's a lot to ask, but would it be hard to show us how you dump this info?

    THANKS FOR THE REL THO
    Here's an example for ItemDefinitions, however this is the same for any other class. Note not all the information can be retrieved from doing it this way, the rest would have to be parsed using a webcrawler. ([Only registered and activated users can see links. ]). Also this way retrieves information directly from your cache. So if you don't have old school data packed into your cache then you'll be reading what ever data you have in there already.

    It's really useful to refactor as much as you can because then you know what each variable goes to.

    Code:
          private void decode(Buffer stream) {
                do {
                      int opcode = stream.readUnsignedByte();
    
                      if (opcode == 0) {
                            return;
                      }
                      if (opcode == 1) {
                            modelId = stream.readUShort();
                      } else if (opcode == 2) {
                            name = stream.readString();
                      } else if (opcode == 3) {
                            description = stream.readString();
                      } else if (opcode == 4) {
                            modelZoom = stream.readUShort();
                      } else if (opcode == 5) {
                            rotationY = stream.readUShort();
                      } else if (opcode == 6) {
                            rotationX = stream.readUShort();
                      } else if (opcode == 7) {
                            spriteOffsetX = stream.readUShort();
                            if (spriteOffsetX > 32767)
                                  spriteOffsetX -= 0x10000;
                      } else if (opcode == 8) {
                            spriteOffsetY = stream.readUShort();
                            if (spriteOffsetY > 32767)
                                  spriteOffsetY -= 0x10000;
                      } else if (opcode == 10) {
                            stream.readUShort();
                      } else if (opcode == 11) {
                            stackable = true;
                      } else if (opcode == 12) {
                            value = stream.readDWord();
                      } else if (opcode == 16) {
                            membersObject = true;
                      } else if (opcode == 23) {
                            maleModel = stream.readUShort();
                            maleEquipOffset = stream.readSignedByte();
                      } else if (opcode == 24) {
                            secondaryMaleModel = stream.readUShort();
                      } else if (opcode == 25) {
                            femaleModel = stream.readUShort();
                            femaleEquipOffset = stream.readSignedByte();
                      } else if (opcode == 26)
                            secondaryFemaleModel = stream.readUShort();
                      else if (opcode >= 30 && opcode < 35) {
                            if (groundOptions == null)
                                  groundOptions = new String[5];
                            groundOptions[opcode - 30] = stream.readString();
                            if (groundOptions[opcode - 30].equalsIgnoreCase("hidden"))
                                  groundOptions[opcode - 30] = null;
                      } else if (opcode >= 35 && opcode < 40) {
                            if (inventoryOptions == null)
                                  inventoryOptions = new String[5];
                            inventoryOptions[opcode - 35] = stream.readString();
                      } else if (opcode == 40) {
                            int j = stream.readUnsignedByte();
                            originalModelColors = new int[j];
                            modifiedModelColors = new int[j];
                            for (int k = 0; k < j; k++) {
                                  originalModelColors[k] = stream.readUShort();
                                  modifiedModelColors[k] = stream.readUShort();
                            }
    
                      } else if (opcode == 78) {
                            tertiaryMaleEquipmentModel = stream.readUShort();
                      } else if (opcode == 79) {
                            tertiaryFemaleEquipmentModel = stream.readUShort();
                      } else if (opcode == 90) {
                            primaryMaleHeadPiece = stream.readUShort();
                      } else if (opcode == 91) {
                            primaryFemaleHeadPiece = stream.readUShort();
                      } else if (opcode == 92) {
                            secondaryMaleHeadPiece = stream.readUShort();
                      } else if (opcode == 93) {
                            secondaryFemaleHeadPiece = stream.readUShort();
                      } else if (opcode == 95) {
                            spriteCameraYaw = stream.readUShort();
                      } else if (opcode == 97) {
                            notedInfoId = stream.readUShort();
                      } else if (opcode == 98) {
                            certTemplateID = stream.readUShort();
                      } else if (opcode == 100) {
                            int length = stream.readUnsignedByte();
                            stackIds = new int[length];
                            stackAmounts = new int[length];
                            for (int i2 = 0; i2 < length; i2++) {
                                  stackIds[i2] = stream.readUShort();
                                  stackAmounts[i2] = stream.readUShort();
                            }
                      } else if (opcode == 110) {
                            groundScaleX = stream.readUShort();
                      } else if (opcode == 111) {
                            groundScaleY = stream.readUShort();
                      } else if (opcode == 112) {
                            groundScaleZ = stream.readUShort();
                      } else if (opcode == 113) {
                            ambience = stream.readSignedByte();
                      } else if (opcode == 114) {
                            diffusion = stream.readSignedByte() * 5;
                      } else if (opcode == 115) {
                            team = stream.readUnsignedByte();
                      }
                } while (true);
          }
    Code:
    	public static void unpackConfig(StreamLoader archive) {
    
    		stream = new Buffer(archive.getDataForName("obj.dat"));
    		Buffer stream = new Buffer(archive.getDataForName("obj.idx"));
    		totalItems = stream.readUShort() + 21;
    		streamIndices = new int[totalItems + 50000];
    		int i = 2;
    		for (int j = 0; j < totalItems - 21; j++) {
    			streamIndices[j] = i;
    			i += stream.readUShort();
    		}
    
    		cache = new ItemDefinition[10];
    		for (int k = 0; k < 10; k++)
    			cache[k] = new ItemDefinition();
    
    	}
    This is where the ItemDefinitions are being unpacked.

    So after they are fully unpacked you can read them right away.

    Create a FileWriter object.

    Code:
                try {
                      FileWriter writer = new FileWriter(new File("./item_definitions.txt"));
    
                      writer.write("ID: - Description - Value\n");
    
                      for (int index = 0; index < totalItems; index++) {
    
                            ItemDefinition def = ItemDefinition.lookup(index);
    
                            if (def == null) {
                                  continue;
                            }
    
                            writer.write(String.format("%d : %s : %d\n", index, def.description,
                                        def.value));
    
                      }
                      writer.close();
                } catch (FileNotFoundException e) {
                      e.printStackTrace();
                } catch (IOException e) {
                      e.printStackTrace();
                }
    Code:
          public static void unpackConfig(StreamLoader archive) {
    
                stream = new Buffer(archive.getDataForName("obj.dat"));
                Buffer stream = new Buffer(archive.getDataForName("obj.idx"));
                totalItems = stream.readUShort() + 21;
                streamIndices = new int[totalItems + 50000];
                int i = 2;
                for (int j = 0; j < totalItems - 21; j++) {
                      streamIndices[j] = i;
                      i += stream.readUShort();
                }
    
                cache = new ItemDefinition[10];
                for (int k = 0; k < 10; k++)
                      cache[k] = new ItemDefinition();
    
                try {
                      FileWriter writer = new FileWriter(new File("./item_definitions.txt"));
    
                      writer.write("ID: - Description - Value\n");
    
                      for (int index = 0; index < totalItems; index++) {
    
                            ItemDefinition def = ItemDefinition.lookup(index);
    
                            if (def == null) {
                                  continue;
                            }
    
                            writer.write(String.format("%d : %s : %d\n", index, def.description,
                                        def.value));
    
                      }
                      writer.close();
                } catch (FileNotFoundException e) {
                      e.printStackTrace();
                } catch (IOException e) {
                      e.printStackTrace();
                }
    
          }

    Result:


    Code:
    ID: - Description - Value
    0 : It's a Dwarf remains. : 1
    1 : It's a Toolkit. : 1
    2 : It's a Cannonball. : 5
    3 : It's a Nulodion's notes. : 1
    4 : It's an Ammo mould. : 5
    5 : It's an Instruction manual. : 10
    6 : It's a Cannon base. : 187500
    7 : null : 187500
    8 : It's a Cannon stand. : 187500
    9 : null : 187500
    10 : It's a Cannon barrels. : 187500
    11 : null : 187500
    12 : It's a Cannon furnace. : 187500
    Reply With Quote  
     

  8. #8  
    Donator

    RSPSSam's Avatar
    Join Date
    Aug 2015
    Posts
    488
    Thanks given
    158
    Thanks received
    98
    Rep Power
    87
    Thank you so much! Been looking for this for a bit.
    Quote Originally Posted by Songoty View Post
    in the beginning there was npcdrops.cfg. and xero said let there be drops, and he wrote in some drops.
    [Only registered and activated users can see links. ]
    Reply With Quote  
     

  9. #9  
    Banned

    Join Date
    Mar 2011
    Posts
    659
    Thanks given
    105
    Thanks received
    73
    Rep Power
    0
    Anyone have this or an updated version? Looking for ITEMID models and Graphics and Animations...

    I should just learn how to dump this.

    Actually I think I do. xD
    Reply With Quote  
     

  10. #10  
    Registered Member Versatile's Avatar
    Join Date
    Dec 2014
    Age
    21
    Posts
    429
    Thanks given
    239
    Thanks received
    9
    Rep Power
    9
    Bump. does anyone have this file still? Link doesn't work.
    Spoiler for Don't be a deadfool:
    Reply With Quote  
     


Thread Information
Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

Similar Threads

  1. 666 Item, Npc and Object list.
    By Velocity in forum Configuration
    Replies: 14
    Last Post: 02-05-2012, 07:23 AM
  2. Replies: 9
    Last Post: 06-30-2011, 11:02 PM
  3. Replies: 1
    Last Post: 06-21-2011, 06:40 PM
  4. Replies: 2
    Last Post: 08-14-2010, 04:51 AM
  5. Item IDs NPC IDs Object IDs TuT
    By Josh™ in forum Requests
    Replies: 2
    Last Post: 02-20-2009, 01:45 AM
Posting Permissions
  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •