The creation of the new L1C GPS signal presented the opportunity to choose both a family of spreading codes and an associated family of overlay codes. This paper describes the rationale and construction of these families. The families were created from extensive searches with each search requiring its own fine-tuned techniques and search criteria.The L1C spreading codes comprise 210 pilot/data pairs of length-10230 sequences. The data code modulates the data message bits while the pilot code modulates the overlay code symbols, which represents a fixed repeating pattern. The codes are perfectly balanced and exhibit good auto-and crosscorrelation (both in the "odd" case, when there is a bit transition across the code boundary, and the "even" case when there is no such transition). The length 10230 precluded the immediate adaptation of wellknown spreading code families, such as Gold codes. Instead, the relatively new Weil sequence construction was adapted. Weil codes are prime length sequences constructed via shift-and-add from the well-known Legendre sequence and one of its shifts. Weil code correlation sidelobes are bounded by twice the square root of the length, which is no worse than 3 dB from commonly used Gold codes.The L1C codes were created by using Weil-codes of prime length 10223. Selected Weil-codes were padded with a fixed 7-bit pad to yield the L1C spreading code. The correlation properties of Weil-codes with pad are highly dependent on both the Weil code and the pad insertion point. Thus a search over all Weil codes and insertion points was required. The search criteria were derived from threshold bounds on the sidelobes for both auto-and cross-correlation and for both the even and odd cases. The search criteria need to be adjusted occasionally to yield more candidates codes. The overall search yielded a large set of codes from which the final set of 420 codes could be selected. Because L1C is currently considering two separate modulation schemes (BOC(1,1) and TMBOC), two separate families of codes were constructed that are optimized to the modulation The 210 L1C overlay codes are length 1800, which corresponds to a frame length of 1800 symbols. The search to construct the overlay codes used two types of criteria. First, full period even auto-and cross-correlation sidelobe bounds were specified. Second, criteria were given for the correlation sidelobes when a small subsequence of the code is correlated against the full code. For this case, lengths of 100 (1 second) and 200 (2 seconds) were used. The overlay codes are based on truncated linear feedback shift register sequences of length 2047, either m-sequences or Gold sequences. The choices for truncation points ensured good auto and crosscorrelation sidelobes while also allowing flexibility to bound the short window correlations.