What are the most important things to learn to make a half-decent game? That is, in terms of both things to script (e.g Block movement, GUI) and how to script them (e.g CFrame and ClickDetector).
You need to be good with Lua. Look up the Guides at the top of each Scripting Helpers page, look through the tutorials on the Roblox Wiki -- and they have plenty on other aspects of Roblox, too.
You would benefit from consider what makes a game good. One source I recommend for tips is Extra Credits (YouTube channel) (they have non-game related content as well, but consider looking through some of their gaming related playlists). However, so long as you've played games or know what you want to make, this isn't critical.
An important thing to do will be to experiment. Experiment as you learn Lua, experiment with things in Roblox you haven't seen before, experiment with different game designs, etc.
Other things that can be of benefit: