The FC Portugal 3D team presented in this year’s competition was rebuilt from the ground up in Python since the last RoboCup. No previous code was used or adapted, with the exception of the 6D pose estimation algorithm, and the get-up behaviors, which were re-optimized. In previous years, FC Portugal has contributed to research concerning low-level skills and high-level soccer coordination methodologies, both in the 2D and 3D soccer simulation leagues. The research-oriented development of our team has been pushing it to be one of the most competitive over the years with more than 30 international awards. This paper describes the team’s new code, including an overview of our agent architecture and its main modules. All the new skills largely outperform previous ones: the omnidirectional walk is stabler and can reach 0.70 to 0.90 m/s, the long kick can reach on average 17 to 19 m, and the dribble is able to keep close control of the ball while moving between 1.25 and 1.41 m/s. We are also trying to increase student contact by providing reinforcement learning assignments to be completed using our new Python framework.