Ok i think i have most this technique down. But 1 question left.

When adding a file to a pack, I write the actual file data at the end of all the other file data, but above the headers. This position can be found by reading all the existing headers and just adding together the filesizes. After adding that data, you then add a header for that data at the very bottom of the file, leaving a few bytes to store how many headers there are at the very end of the file. Correct?

My question is, more of a clarification.... To write a file to a certian spot in a file, i simple to Stream.SeekTo(0, AllOfHeaderSizesAdded); then Stream.WriteBuffer(NewFileStream, Length(NewFileStream); ?