DEV BUILD - NOT FOR PUBLIC USE
 
Cameo

Profile Overview

Odysseus Hardy

Human Male

(he/him/his)

Character Information

Rank & Address

Captain Hardy

Assignment

Starfleet Command

Nickname

Odi

Born

Odysseus Masterman Hardy

2340

Oxford, Earth

Summary

Odysseus ‘Odi’ Hardy is a veteran Starfleet officer, serving as captain of the Bonaventure for more than a decade. A failed academic, he has the air of a kindly but brilliant professor: intellectual, yes, but one who enjoys being a vibrant presence at a party.

Personality

Underneath a humorous and carefree surface, Hardy navigates life with meticulous attention to detail, often privately considering the moral and intellectual implications of his words and deeds, for better and worse. But he is anything but quiet, preferring to talk at length, peppering people with questions, and known amongst his crew as fast-talking, witty, and warm.

Despite his academic roots, Hardy rejects intellectual pretension and ideological monism, championing humility, deep empathy, and an acceptance of life’s moral complexity. As such, he has learned to temper his intellect through a love of people, delighting as much in discovering the rich diversity of species in the galaxy as entertaining friends and colleagues in his quarters.

History

Early Life and Starfleet Academy

Odysseus Hardy was born in Oxford, Earth – a city steeped in tradition and intellect – into a family whose legacy stretched from the lecture halls to the high seas. Descended from a family of esteemed academics and Royal Navy officers, Hardy was raised in a multigenerational household where dinner-table conversations ranged from engineering puzzles to ancient civilisations. His father, David, an engineering professor, and his mother, Susan, an anthropologist, filled their home with curiosity, creativity, and endless debates. But these were not fierce moments, because quick and easy laughter was the cornerstone of their conversations. Nevertheless, with the dreaming spires of Oxford as his playground, it was almost a foregone conclusion that Hardy would follow the academic path. He gravitated toward political philosophy, eventually embarking on a doctorate focused on the philosophy of interstellar war.

But theory, no matter how noble, soon began to chafe. The questions he was exploring demanded more than theoretical investigations, they demanded experience. Much to the shock of his peers and mentors, Hardy walked away from his doctoral program and into Starfleet Academy.

Wolf 359 and the USS Ipswich

Hardy did not have to wait long to meet the brutal truths behind the theories he once studied. Less than a year out of the Academy, he found himself thrust into the crucible of war. As a young ensign aboard the Ipswich, he was part of the fleet sent to face the Borg at Wolf 359 and was one of the many ships obliterated in the onslaught. Hardy survived. Many of his friends did not. The names and faces he had only just begun to know were suddenly gone. It was a trial by fire that no textbook could have prepared him for.

The Dominion War

After more than six years of relative peace and deep-space exploration aboard the Barham, the quiet rhythm of Hardy’s career was shattered once again, this time by the outbreak of the Dominion War. Unlike the sudden, merciless violence of the Borg, this was a different kind of crucible: a grinding, drawn-out campaign of attrition and strategy.

Assigned to the Zhukov, Hardy found himself in a relentless chess match against the Cardassians and Jem’Hadar. The Zhukov became his battlefield and classroom, navigating complex tactical operations often far from Starfleet reinforcements with constant movement and evolving threats. It was during one particularly brutal engagement that Hardy paid a steep price. Caught in the heart of the action, he was gravely wounded, an injury that cost him his arm and forced his withdrawal from the frontline. Recovery was long and uncertain, both physically and psychologically, as he adapted to life with a biosynthetic limb.

Starfleet Academy

Wrestling with the aftermath of combat and the dissonance of a changed physicality, Hardy found refuge in the quiet halls of Starfleet Academy, an academic homecoming of sorts. There he became a tactical instructor, imparting the science of battle and the hard-won wisdom of how to survive in Starfleet when confronted with violence.

Command and the USS Bonaventure

After six years shaping cadets at Starfleet Academy and another eleven navigating a wide arc of assignments – from peaceful voyages of exploration to tense counter-piracy operations – Hardy was finally handed the centre seat as captain of the Bonaventure. In the captain’s chair, Hardy came into his own. He led with warmth and wit, a steady presence who inspired loyalty through confidence and humour rather than bravado. He remains equally at ease delivering aid to devastated colonies as manoeuvring through hostile fire.

Service Record

Date Position Posting Rank
2366 - 2367 Security Officer USS Ipswich
Ensign
2367 - 2372 Tactical Officer USS Barham
Lieutenant Junior Grade
2372 - 2375 Chief Tactical Officer USS Zhukov
Lieutenant
2375 - 2381 Instructor (Tactical) Starfleet Academy
Lieutenant Commander
2381 - 2388 Chief Tactical Officer USS Bulwark
Lieutenant Commander
2388 - 2392 Executive Officer USS Bulwark
Commander
2392 - 2402 Commanding Officer USS Bonaventure
Captain

Load Time: 0.19 seconds

Total SQL Queries: 57

8 SELECT * FROM wp_posts WHERE ID = -1 LIMIT 1
1 SELECT wp_posts.* FROM wp_posts WHERE 1=1 AND wp_posts.post_name = '160847' AND wp_posts.post_type = 'character' ORDER BY wp_posts.post_date DESC
1 SELECT post_id, meta_key, meta_value FROM wp_postmeta WHERE post_id IN (48987,48988,48986) ORDER BY meta_id ASC
1 SELECT post_id, meta_key, meta_value FROM wp_postmeta WHERE post_id IN (20504,20503,20502) ORDER BY meta_id ASC
1 SELECT post_id, meta_key, meta_value FROM wp_postmeta WHERE post_id IN (505) ORDER BY meta_id ASC
1 SELECT wp_posts.* FROM wp_posts WHERE 1=1 AND wp_posts.ID IN (49116,49117,49118) AND wp_posts.post_type = 'attachment' AND ((wp_posts.post_status <> 'trash' AND wp_posts.post_status <> 'auto-draft')) ORDER BY wp_posts.post_date DESC
1 SELECT post_id, meta_key, meta_value FROM wp_postmeta WHERE post_id IN (49117,49118,49116) ORDER BY meta_id ASC
1 SELECT post_id, meta_key, meta_value FROM wp_postmeta WHERE post_id IN (487) ORDER BY meta_id ASC
1 SELECT wp_posts.* FROM wp_posts WHERE 1=1 AND wp_posts.ID IN (49113,49114,49115) AND wp_posts.post_type = 'attachment' AND ((wp_posts.post_status <> 'trash' AND wp_posts.post_status <> 'auto-draft')) ORDER BY wp_posts.post_date DESC
1 SELECT post_id, meta_key, meta_value FROM wp_postmeta WHERE post_id IN (49113,49114,49115) ORDER BY meta_id ASC
1 SELECT post_id, meta_key, meta_value FROM wp_postmeta WHERE post_id IN (48985) ORDER BY meta_id ASC
1 SELECT wp_posts.* FROM wp_posts WHERE 1=1 AND wp_posts.ID IN (48986,48987,48988) AND wp_posts.post_type = 'attachment' AND ((wp_posts.post_status <> 'trash' AND wp_posts.post_status <> 'auto-draft')) ORDER BY wp_posts.post_date DESC
1 SELECT wp_posts.* FROM wp_posts WHERE 1=1 AND wp_posts.ID IN (21678,21679,21680) AND wp_posts.post_type = 'attachment' AND ((wp_posts.post_status <> 'trash' AND wp_posts.post_status <> 'auto-draft')) ORDER BY wp_posts.post_date DESC
1 SELECT post_id, meta_key, meta_value FROM wp_postmeta WHERE post_id IN (21553) ORDER BY meta_id ASC
1 SELECT post_id, meta_key, meta_value FROM wp_postmeta WHERE post_id IN (20501) ORDER BY meta_id ASC
1 SELECT post_id, meta_key, meta_value FROM wp_postmeta WHERE post_id IN (21680,21679,21678) ORDER BY meta_id ASC
1 SELECT wp_posts.ID FROM wp_posts WHERE 1=1 AND wp_posts.post_type = 'group_news' AND ((wp_posts.post_status = 'publish')) ORDER BY wp_posts.post_date DESC LIMIT 0, 2
1 SELECT wp_posts.* FROM wp_posts WHERE ID IN (163230,163266)
1 SELECT t.*, tt.*, tr.object_id FROM wp_terms AS t INNER JOIN wp_term_taxonomy AS tt ON t.term_id = tt.term_id INNER JOIN wp_term_relationships AS tr ON tr.term_taxonomy_id = tt.term_taxonomy_id WHERE tt.taxonomy IN ('group_news_category') AND tr.object_id IN (163230, 163266) ORDER BY t.name ASC
1 SELECT post_id, meta_key, meta_value FROM wp_postmeta WHERE post_id IN (163230,163266) ORDER BY meta_id ASC
1 SELECT wp_posts.ID FROM wp_posts INNER JOIN wp_postmeta ON ( wp_posts.ID = wp_postmeta.post_id ) INNER JOIN wp_postmeta AS mt1 ON ( wp_posts.ID = mt1.post_id ) WHERE 1=1 AND ( ( wp_postmeta.meta_key = 'event_status' AND wp_postmeta.meta_value = 'In Progress' ) AND ( mt1.meta_key = 'event_type' AND mt1.meta_value = 'fleet_action' ) ) AND wp_posts.post_type = 'events' AND ((wp_posts.post_status = 'publish')) GROUP BY wp_posts.ID ORDER BY wp_posts.post_title DESC LIMIT 0, 1
1 SELECT * FROM wp_posts WHERE ID = 49761 LIMIT 1
1 SELECT * FROM wp_posts WHERE ID = 16756 LIMIT 1
1 SELECT ID, post_name, post_parent, post_type FROM wp_posts WHERE post_name IN ('donate') AND post_type IN ('page','attachment')
1 SELECT wp_posts.* FROM wp_posts WHERE 1=1 AND wp_posts.ID IN (20502,20503,20504) AND wp_posts.post_type = 'attachment' AND ((wp_posts.post_status <> 'trash' AND wp_posts.post_status <> 'auto-draft')) ORDER BY wp_posts.post_date DESC
1 SELECT post_id, meta_key, meta_value FROM wp_postmeta WHERE post_id IN (20500,20499,20498) ORDER BY meta_id ASC
1 SELECT post_id, meta_key, meta_value FROM wp_postmeta WHERE post_id IN (160847) ORDER BY meta_id ASC
1 SELECT post_id, meta_key, meta_value FROM wp_postmeta WHERE post_id IN (32093) ORDER BY meta_id ASC
1 SELECT * FROM wp_users WHERE ID = '2232' LIMIT 1
1 SELECT user_id, meta_key, meta_value FROM wp_usermeta WHERE user_id IN (2232) ORDER BY umeta_id ASC
1 SELECT * FROM wp_posts WHERE ID = 162219 LIMIT 1
1 SELECT post_id, meta_key, meta_value FROM wp_postmeta WHERE post_id IN (162219) ORDER BY meta_id ASC
1 SELECT * FROM wp_posts WHERE ID = 48913 LIMIT 1
1 SELECT post_id, meta_key, meta_value FROM wp_postmeta WHERE post_id IN (48913) ORDER BY meta_id ASC
1 SELECT wp_posts.* FROM wp_posts WHERE 1=1 AND wp_posts.ID IN (48914,48915,48916) AND wp_posts.post_type = 'attachment' AND ((wp_posts.post_status <> 'trash' AND wp_posts.post_status <> 'auto-draft')) ORDER BY wp_posts.post_date DESC
1 SELECT post_id, meta_key, meta_value FROM wp_postmeta WHERE post_id IN (48914,48915,48916) ORDER BY meta_id ASC
1 SELECT wp_posts.* FROM wp_posts INNER JOIN wp_postmeta ON ( wp_posts.ID = wp_postmeta.post_id ) WHERE 1=1 AND ( ( wp_postmeta.meta_key = 'member_user' AND wp_postmeta.meta_value = '2232' ) ) AND wp_posts.post_type = 'member' AND ((wp_posts.post_status = 'publish')) GROUP BY wp_posts.ID ORDER BY wp_posts.post_date DESC
1 SELECT * FROM wp_posts WHERE ID = 32091 LIMIT 1
1 SELECT wp_posts.* FROM wp_posts WHERE 1=1 AND wp_posts.ID IN (20498,20499,20500) AND wp_posts.post_type = 'attachment' AND ((wp_posts.post_status <> 'trash' AND wp_posts.post_status <> 'auto-draft')) ORDER BY wp_posts.post_date DESC
1 SELECT post_id, meta_key, meta_value FROM wp_postmeta WHERE post_id IN (32091) ORDER BY meta_id ASC
1 SELECT * FROM wp_posts WHERE ID = 164408 LIMIT 1
1 SELECT post_id, meta_key, meta_value FROM wp_postmeta WHERE post_id IN (164408) ORDER BY meta_id ASC
1 SELECT * FROM wp_posts WHERE ID = 20497 LIMIT 1
1 SELECT * FROM wp_posts WHERE ID = 20501 LIMIT 1
1 SELECT * FROM wp_posts WHERE ID = 505 LIMIT 1
1 SELECT * FROM wp_posts WHERE ID = 487 LIMIT 1
1 SELECT * FROM wp_posts WHERE ID = 48985 LIMIT 1
1 SELECT * FROM wp_posts WHERE ID = 21553 LIMIT 1
1 SELECT post_id, meta_key, meta_value FROM wp_postmeta WHERE post_id IN (20497) ORDER BY meta_id ASC
1 SELECT * FROM wp_posts WHERE ID = 12371 LIMIT 1