/// <summary>
        /// Upon receiving data, unpack the byte array into the class members
        /// </summary>
        public override void Unpack(byte[] buffer)
        {
            // Read the Scmp.Base structure
            base.Unpack(buffer);

            // Create reader to easily unpack the network buffer
            var reader = new SledNetworkBufferReader(buffer, SizeOf);

            Name = reader.ReadString();
            KeyType = reader.ReadInt16();
            Value = reader.ReadString();
            What = reader.ReadInt16();

            StackLevel = reader.ReadInt16();
            Index = reader.ReadInt32();

            var count = reader.ReadUInt16();
            for (UInt16 i = 0; i < count; ++i)
            {
                var name = reader.ReadString();
                var type = reader.ReadInt16();
                Hierarchy.Add(new KeyValuePair<string, int>(name, type));
            }
        }
        /// <summary>
        /// Upon receiving data, unpack the byte array into the class members
        /// </summary>
        public override void Unpack(byte[] buffer)
        {
            // Read the Scmp.Base structure
            base.Unpack(buffer);

            // Create reader to easily unpack the network buffer
            var reader = new SledNetworkBufferReader(buffer, SizeOf);

            What = reader.ReadByte();
            OldPtr = reader.ReadString();
            NewPtr = reader.ReadString();
            OldSize = reader.ReadInt32();
            NewSize = reader.ReadInt32();
        }
        /// <summary>
        /// Upon receiving data, unpack the byte array into the class members
        /// </summary>
        public override void Unpack(byte[] buffer)
        {
            // Read the Scmp.Base structure
            base.Unpack(buffer);

            // Create reader to easily unpack the network buffer
            var reader = new SledNetworkBufferReader(buffer, SizeOf);

            FunctionName = reader.ReadString();
            RelScriptPath = reader.ReadString();
            FnTimeElapsed = reader.ReadFloat();
            FnTimeElapsedAvg = reader.ReadFloat();
            FnTimeElapsedShortest = reader.ReadFloat();
            FnTimeElapsedLongest = reader.ReadFloat();
            FnTimeInnerElapsed = reader.ReadFloat();
            FnTimeInnerElapsedAvg = reader.ReadFloat();
            FnTimeInnerElapsedShortest = reader.ReadFloat();
            FnTimeInnerElapsedLongest = reader.ReadFloat();
            FnCallCount = reader.ReadUInt32();
            FnLine = reader.ReadInt32();
            FnCalls = reader.ReadInt32();
        }
        /// <summary>
        /// Upon receiving data, unpack the byte array into the class members
        /// </summary>
        public override void Unpack(byte[] buffer)
        {
            // Read the Scmp.Base structure
            base.Unpack(buffer);

            // Create reader to easily unpack the network buffer
            var reader = new SledNetworkBufferReader(buffer, SizeOf);

            Address = reader.ReadString();
        }
        /// <summary>
        /// Upon receiving data, unpack the byte array into the class members
        /// </summary>
        public override void Unpack(byte[] buffer)
        {
            // Read the Scmp.Base structure
            base.Unpack(buffer);

            // Create reader to easily unpack the network buffer
            var reader = new SledNetworkBufferReader(buffer, SizeOf);

            FunctionName = reader.ReadString();
            LineDefined = reader.ReadInt32();
            StackLevel = reader.ReadInt16();
        }
        /// <summary>
        /// Upon receiving data, unpack the byte array into the class members
        /// </summary>
        /// <param name="buffer">Received data to unpack</param>
        public override void Unpack(byte[] buffer)
        {
            // Read the Scmp.Base structure
            base.Unpack(buffer);

            // Create reader to easily unpack the network buffer
            var reader = new SledNetworkBufferReader(buffer, SizeOf);

            BreakPluginId = reader.ReadUInt16();
            RelFilePath = SledUtil.FixSlashes(reader.ReadString());
            Line = reader.ReadInt32();
        }
        /// <summary>
        /// Upon receiving data, unpack the byte array into the class members
        /// </summary>
        /// <param name="buffer">Received data to unpack</param>
        public override void Unpack(byte[] buffer)
        {
            // Read the Scmp.Base structure
            base.Unpack(buffer);

            // Create reader to easily unpack the network buffer
            var reader = new SledNetworkBufferReader(buffer, SizeOf);

            RelFilePath = SledUtil.FixSlashes(reader.ReadString());
            Line = reader.ReadInt32();
            Condition = reader.ReadString();
            Result = reader.ReadByte();
            UseFunctionEnvironment = reader.ReadByte();
        }
        /// <summary>
        /// Upon receiving data, unpack the byte array into the class members
        /// </summary>
        /// <param name="buffer">Received data to unpack</param>
        public override void Unpack(byte[] buffer)
        {
            // Read the Scmp.Base structure
            base.Unpack(buffer);

            // Create reader to easily unpack the network buffer
            var reader = new SledNetworkBufferReader(buffer, SizeOf);

            RelScriptPath = SledUtil.FixSlashes(reader.ReadString());
        }