public static MaplePacket spawnMist(MapleMist mist) {
        MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter();
        mplew.writeShort(SendPacketOpcode.SPAWN_MIST);
        mplew.writeInt(mist.getObjectId());
        mplew.writeInt(mist.isMobMist() ? 0 : mist.isPoisonMist() ? 1 : 2);
        if (mist.getOwner() != null) {
            mplew.writeInt(mist.getOwner().getId());
            mplew.writeInt(mist.getSourceSkill().getId());
            mplew.write(mist.getSkillLevel());
        } else {
            mplew.writeInt(mist.getMobOwner().getId());
            mplew.writeInt(mist.getMobSkill().getSkillId());
            mplew.write(mist.getMobSkill().getSkillLevel());
        }
        mplew.writeShort(mist.getSkillDelay());
        mplew.writeInt(mist.getBox().x);
        mplew.writeInt(mist.getBox().y);
        mplew.writeInt(mist.getBox().x + mist.getBox().width);
        mplew.writeInt(mist.getBox().y + mist.getBox().height);
        mplew.writeInt(0);

        return mplew.getPacket();
    }