I believe this quesiton was asked before:
I suggested variables, and if they try to build something, check the variable, and if there isnt enough, cancel the building. As for harvesting, make a tree like thing, just change the model, then give them the variable instead of lumber. And so that you can see how much you have of that resource - use a multiboard.
TADA!!