NBA 2K17 remains a significant entry in the basketball simulation genre, particularly for its immersive MyCAREER mode. This paper investigates a specific, widely documented exploit—commonly referred to as the "offline skill points glitch"—that allowed players to acquire unlimited Virtual Currency (VC) or Skill Points (SP) without online verification. Unlike server-side exploits, this glitch functioned entirely within local save data. This paper details the glitch’s mechanics, execution, underlying programming flaws (infinite loop and reward validation), and its implications for game design. We conclude that offline progression systems must implement redundant validation checks to prevent local state manipulation.
In NBA 2K17, offline MyCareer (not connected to 2K servers) had a few known community-reported exploits — none officially supported, most patched in updates, and many were actually difficulty/quarter-length related, not true glitches.
Common ones players called “glitches”:
One of the most documented offline exploits involved the naming of the MyPlayer character during initial creation.
In standard NBA 2K17 gameplay, you earn Skill Points (which turn into VC when online) by playing games, doing drills, and fulfilling sponsor objectives. The glitch exploits a flaw in the negotiation logic between your MyCareer player and your agent.
Normally, after a rookie season, you sign a shoe deal (Nike, Adidas, Under Armour, or Jordan) and a contract with your NBA team. The game calculates your salary based on your performance. However, in the offline version, the code fails to register that you have already accepted a bonus.
The Core Bug: When you are offline, the game saves your "pending decisions" differently than online. By closing the application at a specific frame during a contract negotiation, the game confirms the Skill Points were added to your balance but does not flag the contract as "read."
This allows you to spam the same "Sign Contract" event dozens of times, netting roughly 1,500 to 2,500 Skill Points every 45 seconds.