Package-level declarations
Types
Loc add-change packed is used to either add or change a loc in the world. The client will add a new loc if none exists by this description, or overwrites an old one with the same layer (layer is obtained through the shape property of the loc).
Loc merge packets are used to merge a given loc's model with the player's own model, preventing any visual clipping problems in the process. This is commonly done with obstacle pipes in agility courses, as the player model will otherwise render through the pipes.
Map projectile anim packets are sent to render projectiles from one coord to another.
Obj count is a packet used to update the quantity of an obj that's already spawned into the build area. This is only done for objs which are private to a specific user - doing so merges the stacks together into one rather than having two distinct stacks of the same item.
Obj customise is a packet that allows the server to modify an item on the ground, by either changing the model, the colours and the textures of it.
Obj enabled ops is used to change the right-click options on an obj on the ground. This packet is currently unused in OldSchool RuneScape. It works by finding the first obj in the stack with the provided id, and modifying the right-click ops on that. It does not verify quantity.
Obj uncustomise resets any customisations done to an obj via the ObjCustomise packet.
Sound area packed is sent to play a sound effect at a specific coord. Any players within range tiles of the destination coord will hear this sound effect played, if they have sound effects enabled. The volume will change according to the player's distance to the origin coord of the sound effect itself. It is worth noting there is a maximum quantity of 50 area sound effects that can play concurrently in the client across all the zones. Therefore, a potential optimization one can do is prevent appending any more area sound effects once the quantity has reached 50 in a zone.