User Answer 101: Okay, rankings.qc must be added to progs.src. Adding files to progs.src was covered in lesson I (making of func.qc) and II (merging reaperbot files with v1.06 of QuakeC). This means it was covered twice. As I said in the tutorials, you have to remember what you've learned from previous lessons. If rankings.qc is not added to progs.src then obviously all the ranking code (including the clientInitMaxClients function) will not be compiled into the program. Additionally, function prototypes for functions like Infront will have to be added to func.qc file as well. Function prototypes were covered in lesson #1. Recall that these function prototypes have to be declared (or at least the function itself defined) before actually calling the function. You will get an error if neither of these two criterias are satisfied. One more time, these two criterias are: a) function prototypes have to be declared before using the function b) function itself have to be defined before using the function One of the above criterias have to be satisfied. Botit_th.qc and func.qc contain numerous examples of function prototypes. There is a reason for these files being compiled right after defs.qc. These function prototypes are declared long before the functions themselves are called. If it wasn't obvious before, the order in which the files are compiled is important. This was mentioned in lesson #1 as I recall. I will repeat, the ORDER is important. In progs.src, the first file on the list is defs.qc. What does this mean? Well, it means that defs.qc is compiled first. Again, the function prototypes or the function definition must appear BEFORE you use the function. If function prototypes or function definitions or both are in one file, what does that mean? Well, it means that the logic is very simple to follow. If this file is compiled early, then this means you will not have to worry about unknown value errors for those functions. Again, as I said, the order is important. Furthermore, you also need a copy of btsk23.zip as stated in each part of the lesson. Rankings.qc is found in that file. Finally, yes, moving the function prototype or simply making another one in func.qc is the correct way to go. For example, having "float (entity targ) infront;" somewhere in the beginning of func.qc will be a good idea. It doesn't matter how many function prototypes you have. You can have a hundred of them if you want. It will be a waste of time making so many prototypes for one function but it is still okay as long as at least one of the prototypes appear before the function is actually called. (Also, there is a maximum size in terms of number of statements your program can be so you may wish to limit the number of prototypes for one function.) That is why it is good practice to place all of your function prototypes in one file after defs.qc. That is why func.qc was created in the first place. iD did a silly thing by placing their function prototypes and even variable declarations all over the place. You saw first-hand how annoying that is.