Torrey Craig’s journey to the NBA started with a hand-written letter to his mother. Then another. And another.

Between the countless hours he’d spend shooting at a makeshift basket mounted on a wooden streetlight in rural South Carolina, Craig would sit down three or four times per week and pen letters to his mom, Teresa Mays, to let her know the dream he mapped out for their future.

“I am still trying to get to the NBA and I know it’s going to be hard work, but I am going to do whatever it takes to get there,” a 12-year-old Craig wrote in 2003 to his mom, who was incarcerated at the Tallahassee Federal Correctional Institution about 400 miles away on drug charges. “I hope you come home and help me and lead me there. If I make it, well, when I make it to the NBA, I promise I will make you proud.”

Those lofty childhood goals morphed into one of the most surprising success stories in the NBA this season.

A 27-year-old rookie wing who split time with the developmental G League and the Nuggets on a two-way contract, Craig used his defensive versatility to guard lethal playmakers such as Russell Westbrook, Jimmy Butler and Bradley Beal. He drilled an overtime 3-pointer in a stunning April win over Milwaukee that was essential to Denver’s postseason chase. He brought bursts of energy as a rotation player for a Nuggets team that finished 10 games over .500 but missed the playoffs by one game.

“He’s not supposed to be here,” coach Michael Malone said after that Milwaukee victory. “He’s helping us win games that matter.”

Malone’s assessment was correct. Craig’s NBA opportunity came after the Nuggets discovered him in Australia, which came after stints at a tiny high school and a mid-major college. But fueled by his upbringing, a desire to stretch beyond his hometown and a willingness to embrace a new role overseas, Craig’s hand-written dreams became reality. Now, he’s in position to earn a full NBA contract this summer.

“There were guys (in my hometown) that were good at basketball, but they never went anywhere,” Craig said. “They always stayed in the same place. I always told myself, ‘I do not want to be like that.’”

Learning to dream big

Great Falls, S.C., is a country town in between Columbia and Charlotte with one stoplight and no neighbors within a mile in any direction of Craig’s childhood home. His mother went to jail when he was 5 years old. His dad was not part of his life. So Craig was primarily raised by his grandmother, Daisy Mays, and the oldest of two sisters, Sacha.

That forced Torrey to become the man of the house at a young age, mowing the lawn, taking out the garbage and chopping wood. But that basketball hoop mounted on the wooden streetlight — the one with the rusty rim and nets that constantly needed changing — was where Craig could imitate idols Michael Jordan and Allen Iverson, challenge any visitor to a pick-up game or take his mind off life’s hardships. Related Articles Keeler: Jerami Grant won’t score 26 again, Lakers Nation? The way No. 9’s guarding LeBron James and Anthony Davis, he doesn’t have to.

Nuggets’ Jamal Murray ascending to stardom in these playoffs: “He’s built for the big shots”

Kiszla: Hey, Fakers. The Nuggets just burst your bubble of invincibility with 114-106 victory

Nuggets 3-Pointers: Sweep this, Charles Barkley! We got a series again.

Jamal Murray’s fourth-quarter burst saves Nuggets from disaster vs. Lakers as Denver takes Game 3

“That spark was always there,” Sacha said.

When grandmother Daisy died when he was in eighth grade, a 23-year-old Sacha — who was stationed at MacDill Air Force base in Tampa in between multiple deployments to Iraq — became Torrey’s legal guardian. She prepared for him to move in with her until two coaches at Craig’s high school offered him their home during the school year. That meant Craig could continue to study with his friends and play basketball for Great Falls High School, one of the state’s small-school powerhouses.

“My grandma had passed, and I was like ‘OK, who do I go to now?’” Craig said of the most difficult time in his life. “When I started going through my troubles, they offered a hand. They took me in and made sure I was OK and making the right decisions.”

Staying in his hometown paid off, as Craig became the Class 1A Player of the Year in South Carolina as a senior and led his school to back-to-back state championship game appearances. He signed with USC Upstate, located 90 miles northwest of Great Falls, where he developed into the Atlantic Sun Player of the Year as a sophomore in 2011-12. As a junior, he became the second player in conference history to lead it in scoring in back-to-back seasons. The 6-foot-6, 215-pounder also averaged 7.2 rebounds per game throughout his college career.

Then-USC Upstate coach Eddie Payne jokes today that if Craig “guarded then like he’s guarding now, my guess is we would have won two or three” conference tournament titles to earn a NCAA Tournament invite. But he delivered under the biggest spotlight he got in college, finishing with 20 points and six rebounds when USC Upstate visited No. 2 Ohio State in 2011.

“He’s a believer in who he is,” Payne said. “Here he is, playing in front of 19,000 people — way more people than lived in his hometown. He’s not afraid of that stage. He’s got that competitive edge.”

When Craig received a contract offer from the Cairns Taipans of the Australian National Basketball League after going undrafted in 2014, his initial reaction was to decline. Then the club sent over a power point for Craig to review, complete with photos of the dazzling beaches that serve as a gateway to the Great Barrier Reef.

“I was like, ‘Wait, that’s where they want me to come play?’” Craig said. “I figured I’d try it out.”

Learning to be a pro

One of Craig’s first meetings with then-Cairns coach Aaron Fearne left him “pouting” for weeks. Fearne told Craig to shoot just five or six times per game and instead use his size and athleticism to focus on becoming a perimeter defensive stopper.

“It was just me being lazy,” Craig said of his mentality at the time. “ … Once I started taking (defense) seriously, I was like, ‘Yeah, I can guard anybody in this league.”

Craig’s knack to stay in front of ball-handlers, close the gap from behind for chase-down blocks and fly in for rebounds eventually propelled him to the 2017 Best Defensive Player Award in a league known for its physicality. His most smothering effort came after he was traded to the Brisbane Bullets last season, when he limited Jerome Randle — the league’s eventual MVP — to seven points while countering with 34 points and 11 rebounds. Throughout that season, Craig also developed as a catch-and-shoot 3-point threat while thriving as Brisbane’s top scorer (15.2 points per game).

Craig began envisioning a long-term future Down Under. Brisbane teammates and coach Andrej Lemanis had already begun referring to Craig as an Aussie because of the way he integrated himself into local culture, even calling his friends “mate.” Craig took the early steps to obtain his citizenship, partially so he could join the country’s national team, also coached by Lemanis.

“Some do it better than others, and Torrey was one of best I’ve been around,” Lemanis said of Craig’s assimilation as an international player. “You can see it when it’s real, and you can see it when guys are separated from the team. And he was certainly part of the team.”

Around that same time, the Nuggets began pursuing Craig. President of Basketball Operations Tim Connelly learned of Craig through his brother, Joe, the former coach of the Sydney Kings. Craig’s agent, Johnny Foster, is also a longtime friend of Connelly, who saw Craig play in person on a scouting trip to Australia.

Impressed, Connelly extended an offer to Craig to play in the Las Vegas Summer League last July, a chance to earn a contract.

“I know you really only get one shot at this NBA thing,” Craig said. “It was a now-or-never type of thing.”

Summer league breakout

Nikola Jokic was stunned when Craig accomplished a feat “nobody” does — blocking the 7-footer’s high-arching shot during 1-on-1 work at a Nuggets’ volunteer summer session. Will Barton had a similar reaction when he initially opted to “go through the motions” when he got matched up with Craig.

“I didn’t know him, so I’m just taking it easy,” Barton recalled. “And then I was like, ‘Oh, this guy really can defend, so I gotta step my game up.’”

Craig’s new teammates were quickly learning what Malone had already concluded in Las Vegas. After Craig racked up 27 points and 11 rebounds while providing stout defense against Houston’s summer-league squad, Malone pleaded to Connelly “don’t let anybody else take this guy from us.” Months later, Malone proclaimed following a training camp practice that “Torrey Craig is an NBA player” who would immediately help the Nuggets, despite his two-way contract status that would limit him to 45 days with Denver.

Those parameters meant perhaps no Nugget had a more dizzying season than Craig. His mid-December call-up from the G League took him from a 4:30 a.m. Uber ride in Oshkosh, Wisc., to swatting a game-saving block against New Orleans’ Jrue Holiday at the Pepsi Center hours later. The Nuggets preserved Craig’s allotted days with the NBA club by holding him out of practices and sending him on commercial flights for road trips. That left Craig, whose salary was $75,000 this past season, primarily learning on the fly, meeting with assistant coaches before games to go over plays or taking cues from the referees on how physically he can defend without fouling in this league.

“It’s been a roller coaster,” Craig said.

But less than a week after joining the Nuggets, Craig went 3-for-3 from beyond the arc in a spot start at Oklahoma City, prompting a national reporter sitting courtside to admit “I had never heard of this guy until today, and my job is to cover the NBA.” He was still in the rotation during the Nuggets’ critical stretch run, when second-leading scorer Gary Harris missed 11 games with a knee injury. Craig averaged 4.2 points and 3.3 rebounds over 39 total NBA games, but garnered praise from teammates and coaches for his play in areas that don’t always show up in the box score.

“I’m just so impressed with his ability to play at the level he’s playing at on the stage that he’s on,” Malone said in late March. “These are big games, and he’s just out there hoopin’, man, which I love. That’s why I’m a big fan of his.”

Whirlwind rookie season

Craig was wearing a black baseball cap with the word “salty” stitched into the front. And that’s how he felt standing in the hallway outside the Nuggets’ locker room, hours after their season abruptly ended with an overtime loss in a de facto postseason play-in game at Minnesota.

Craig acknowledges he has “no clue” what awaits him this summer. He’s classified as a restricted free agent, meaning Denver can match any full contract offered by another NBA team.

But Craig will forever cherish the moments of his whirlwind rookie season, like walking hand-in-hand with his 3-year-old son, Braylon, down that same Pepsi Center hallway following a January shootaround. Craig left for Australia when Braylon was three months old, but now the two can play together on an NBA floor.

“(Braylon) called them his games,” Craig recently said with a laugh. “When he gets older, hopefully those are good memories.”

Maybe someday, Braylon, like his father, will put his own NBA aspirations on paper. When Craig signed his two-way contract with Denver last summer, mom Teresa — who was released from jail when Craig was 21 — reminded her son of the belief he expressed in those childhood letters.

Those declarations carried Craig through his atypical basketball journey, from the rusty hoop on a streetlight in rural South Carolina to his life overseas. And they ultimately led Craig to Denver, where those hand-written dreams became reality.

“I knew if I got an opportunity to play, I would be able showcase what I could do,” Craig said. “ … It’s crazy to see it paying off now.”