game_state.CORES always returns 1

Why is that, and how can I know how many cores do I have left?

This is because it is not giving a value for the player, it is meant to represent the type of data. So when the engine gives data to python, it can check that value, and if it is a 1 then it is a CORE, if it is 0, it is BIT. This is effectively employing the technique of an enum if you are familiar with c++.

All values in the game state (not checked extensively, but I’m pretty sure) that are all caps may be a number, but represent a data type, not a functionality value.

To get the actual number of cores for a player, look instead at the game_state._player_resources data and you should find what you are looking for.

What Issac said is correct.
In the starter_strategy function, you can use this

I guess the documentation is a bit misleading

Any variables written in CAPS_LOCK are constant by convention. If you have a specific recommendation for a documentation clarification, you can make a Pull Request to the C1GamesStarterkit with the updated docstring. I’ll also give you the ‘Open Source Beginner’ badge if you do that.

just write on some visible place in the documentation:

The convention i’m referring to is a general programming convention, not one that C1 has designed. We may consider adding some clarification to the docstrings for specific constants.