LIVING CAMPAIGN

The Ohr Living Campaign (OLC) is a collaborative, ongoing game environment where players' choices shape a shared world over multiple sessions, affecting Ayotha's evolving story. Set in the dark, unforgiving land of Ayotha, each character's journey—every choice and consequence—creates ripples across the entire campaign, carrying over between sessions. Played on Discord, Roll20, and Foundry, OLC offers players a flexible platform to explore Ayotha with consistency, as outcomes and changes affect the ongoing narrative and world.Inspired by the West Marches style, the OLC emphasizes player-driven exploration in a sandbox-style world. Players choose where they go, which quests to pursue, and how to interact with the unfolding mysteries. Game Masters (GMs) work together to facilitate this world, reacting to player decisions and building on each other's storylines. The ideal is to expand the GM pool, creating a rich network of interactions where different GMs bring new elements, challenges, and locations to the setting.Ohr Games is also developing Torches in the Dark, 3rd Edition, their home game system that builds on community-based OSR elements with unique features like heritage options, grim character classes, and rules designed for long-term play. Alongside this, Ohr Games is producing third-party content for Shadowdark RPG, including new classes, heritages, and the full Ayotha setting. This content will support character variety, depth, and rich storytelling that aligns with the grim, heroic spirit of the OLC.In the OLC, every choice matters. Actions taken in one corner of Ayotha might influence distant regions, affect factions, and even alter the land itself, creating a living, breathing world that reacts to its heroes—or warns them of their own approaching ruin.

THE DREAMING WORLDS...In the eons before existence as we know it, before stars flared into brilliance and galaxies danced across the canvas of the cosmos, there existed an entity of immeasurable magnitude. This entity, Moros, was not a mere planet or star but a celestial titan, a being whose essence was interwoven with the very fabric of the universe.Moros existed in a realm beyond the grasp of mortal comprehension. It was a realm of thoughts and dreams, of emotions and memories, where time flowed like a river, twisting and turning through the tapestry of existence. It was here that Moros lived, breathed, and dreamt.But as with all things in the cosmos, even the mighty titan was not immune to the inexorable march of time. As the eons passed, Moros felt the weight of its age, the weariness of countless memories and experiences etched into its consciousness. It knew that its time was drawing to an end, that the cycle of birth, life, and death that governed the universe would also claim it.And so, Moros began its death-dream.As the titan's life force waned, its dreams became a torrent of emotions and memories, a maelstrom of thoughts that spilled into the cosmos. This cosmic tempest was the birth of the Dementia Vortex, a swirling vortex of psychic energy that emanated from Moros' very being. It was a place where memories and dreams took form, where the echoes of Moros' existence manifested as ephemeral landscapes and visions.In this vortex, dream-born entities came into being. They were born of Moros' thoughts, fragments of its consciousness given life and purpose. They navigated the shifting dreamscape, seeking to understand the titan's memories before they faded into the abyss. These dream-born explorers were drawn to the vortex, connected to Moros by an invisible thread woven from the fabric of the cosmos.As the Dementia Vortex expanded, its influence rippled across the universe. Mortals and immortals alike felt the tug of its power, drawn to its mysteries. Some saw it as a source of great knowledge, a chance to glimpse the secrets of a dying titan. Others saw it as a threat, a disturbance in the cosmic order that must be contained.The story of Moros became intertwined with the fate of the universe itself. As dream-born explorers ventured deeper into the vortex, they discovered memories that spanned epochs - civilizations rising and falling, galaxies colliding, moments of beauty and despair. They witnessed the birth of stars and the extinguishing of galaxies, all encapsulated within Moros' death-dream.

Ayotha: The Realm of Twilight

Ayotha, a twilight-soaked land where dream and waking cross paths, is haunted by its keepers, the Dreamweavers. These watchers twist dreams into fragile beauty or dark ruin, taming the restless minds of the living. Then came the Slender Crown, a godlike fiend who drank deeply from the well of dreams. Its arrival broke Ayotha’s balance, casting its people into a nightmare of blood-soaked cycles. Cities rise, flicker, and crumble; hope snuffs itself out with grim inevitability. The twilight lingers, a pall of quiet despair stretched thin over the bones of fallen empires.

Meroka: The Realm of Twisted Magicks

Meroka lies cloaked in shadow, its air thick with smoke and the hum of gears. Here, magic and machines weave together in a grim tapestry of ingenuity and menace. The sorcery is subtle, whispering through the grinding of pistons; the machinery is alive, crackling with a sorcerer’s malice. It’s a realm where wonder carries a sharp edge, where marvels are cruel and horrors are ingenious. In Meroka, nothing stays whole; beauty corrodes, and power comes with a price etched deep in iron and flesh.

Vannarad: The World of Mirrors

In Vannarad, reality bends like a trickster’s grin. The Illusionists rule here, conjuring marvels and horrors from sheer thought. Towers of mist rise and fall; monsters prowl, born from stray imaginings. Nothing lasts, for the line between real and false vanishes as swiftly as it appears. Danger is everywhere, though it’s veiled behind the glamour of ever-shifting wonders. Vannarad is a world that dazzles the senses and mocks reason, drawing all who enter into its beguiling, treacherous games.

Malat: The Realm of Unyielding Order

Malat brooks no chaos. The Lawgivers see to that, their cold eyes scanning for any crack in the system. Precision reigns here, its people moving like cogs in a machine. The Arbiters of Law are its enforcers, wielding iron rule against any who falter. To them, disorder is a plague to be crushed beneath unyielding boots. Malat’s streets shine with ruthless perfection, but beneath the surface lies a suffocating dread—the kind bred by a world that never forgives mistakes. All laws are enforced without exception.

CONFLICT RESOLUTION ENGINE | CRE


WHAT IS THE CONFLICT RESOLUTION ENGINE?

CRE is designed to offer a flexible and engaging combat system for role-playing games. With mechanics like Damage Reduction, Armor Types, and Skills, players have a wide array of strategic options to explore. The system emphasizes tactical decision-making, teamwork, and resource management, providing dynamic and immersive combat experiences for players and GMs alike. Whether engaging in epic battles or tense skirmishes, CRE offers a framework for resolving conflicts that encourages creativity and collaboration.

- Original Design: Ana of Sigil of the Flame Guild | Moonguard.
- Advanced Rules & Booklet Design: Wulfward of Iron Circle | Moonguard.

INTUITIVE MECHANICS:
Description: The mechanics of attribute rolls, difficulty checks, and combat resolutions are intuitively designed. This ensures a smooth gameplay experience and quick adaptation between MMO and tabletop formats.
ACCSSIBLE CHARACTER CREATION:
Description: Character creation is systematic. With four skills for allocation, and armor type. Character creation is quick and easy.
CLEAR COMBAT RESOLUTION:
Description: Combat resolution is player-facing, offering clarity on the consequences of actions. The inclusion of defend actions, armor types, and healing spells introduces strategic depth without unnecessary complexity, making it easy to carry over experiences from one platform to another.
CONSISTENT PROGRESSION SYSTEM:
Description: Character progression is straightforward, allowing players to accumulate experience through the completion of stories, unlock new armor, and acquire new skills. This system fosters a sense of character growth.

UPDATES: Roll20 and Google sheets character sheets for CRE are completed. You can download the code for the Roll20 sheet below.


THE WORLD THAT WAS

MAGICK BRINGS ONLY RUIN AND DEATH TO THE DREAMING WORLDS...

The world is a fragmented, ruined shell of what it once was, and magic is what ensures it stays that way. In Ages past, before the Night of the Vacant Throne—when mankind and the other races of Ayotha were given the chance to meet a sliver of what it was that they had foolishly called their Gods—the world followed the rules set out for it at its creation. Arcanery, in a very generous sense of implying it existed at all, was only a theoretical, philosophical exercise, conducted in meeting halls and lounges by societies that simply enjoyed dressing their social circles in a different kind of trapping. It did not exist; not merely as the world sees it now, in this broken age of horrors, but at all, and when it did arrive, it did so on the wings of nightmares.

Magic is not some mystical recipe its practitioners follow on a day-to-day basis to casually manipulate the world around them; while it affects very real results in the world around it, these results are consequences of another reality being imposed upon ours and causing the one we live in to shatter, albeit in—at least hopefully—a controlled fashion. As far as scattered records can ascertain, the application of this knowledge came at the hands of the humans of Ayotha first, as most of their peers and the other races struggled not just to rebuild but to survive in the lloigor-wracked wasteland that was once a comparatively peaceful, fertile world. After the Night of the Vacant Throne, rumors of uncovered writings which allowed real magic, real power, to be channeled through a dedicated practitioner and out into the world. These writings were collected in an utterly forbidden grimoire that came to be known as the Black Book, a tome with many speculated origins. Some say the Book is a legitimately living, sentient other, alien and conscious entity with unknown and sinister purposes. Others say that it exists simultaneously in other times, other places, other worlds, and exists conterminously to spread its influence in the past, present, and future all.

What is incontrovertible, however, is that the following of parsed and translated rituals found in this book or copies of it has wrought unmistakable horror upon the world and those in it. While the Night of the Vacant Throne was responsible for the destruction of cities, towns, and life, the magic found in the Black Book is responsible for the corruption of what remains and what has been built to try and effect repairs upon those shattered remnants. While there is real power to be found in the practice of these rituals, the overwhelming vast majority that even know of the existence of the Black Book are far from willing to pay the cost of not just their own sanity, but that of their friends, loved ones, and fellow men. Every so-called spell cast brings Ayotha closer to a tremulous reality merged with that of wherever the grimoire truly came from, and even amongst the universally loathed practitioners, all but the maddest can recognize that that would bode very, very poorly for our world and those living in it.

Most do not know of the intricacies of magic, of course, but they know enough and have heard enough of rumors to wish to stamp it out where it exists. People have been strung up, burned, tied, and quartered, even tortured to death over days over mere mention of witchcraft, and this is the case through almost all true civilization. There exist, of course, esoteric societies, occasional outposts, even whole races of people who feel differently, but these people are outside of their own universally reviled as destroyers and corruptors of the highest order, and they are ruthlessly hunted and slain by those who catch wind of them. Only in the vast, far reaches of the untamed world is this viewpoint ever relaxed, and even then, it would still be a poor idea to reveal oneself—for fear is the most powerful motivator of violence.

THE ENEMY IN THE DARK

When the sun goes down, the dread begins. Ohr's surface world is filled with grim tales of the restless dead, silent gods, and religious organizations who crusade against wytches and normal folk alike. The living know they do not dwell alone. The border between the worlds of light and shadow are find to find but easily crossed.

CAMPAIGN INFORMATION

The air here tastes of iron and despair, thick with the mists of Enlil that shroud Nuatha in ceaseless twilight. Once, Gravehold was a place where souls were sent to be forgotten—a prison island torn from the mainland, left to fester with its darkness. But something deeper has taken root. Something older.

Welcome, wanderer. Or perhaps prisoner? Outlaw? Fugitive? It matters not what brought you to these shores, for Gravehold cares not for names or past sins. The stones of Nuatha remember all, and the ancient trees in the forests whisper secrets in languages long buried. Here, men do not live; they endure, stalked by creatures malformed and twisted by the island’s old, aching madness.

Beneath the shattered prison, in depths where light itself withers, cultists dance and chant in rhythms that echo through your bones. They seek forgotten gods, half-dreamed and thrice-damned, lurking in shadowed depths that even the dead fear to tread. In the haunted city, broken spires claw at the heavens, and eyes—hungry, hollow eyes—watch from every corner, every darkened alley, every tendril of fog.

Do you feel it? The weight of something that should not be. The pulse beneath the earth, like a heart long stilled, beating once more. There are secrets here, deep within tombs older than any written word. But beware, for the price of knowledge here is high, and few leave Gravehold with their minds—or souls—intact.


Ardwulf Ward

Ardwulf Ward

The Sacrifice: By Sidney Fooshee
Seven men in robes sway around an altar to an invisible rhythm. A man stared intently at her loins, grinning wickedly. “Scream all you want; it likes it when they scream.”
Omnak, Shakra, Crama, Omen -the chanting began. Power thrummed behind her head and the man made the mistake of looking up from her loins. Stupefied, his gaze dropped back towards her, but she caught it with a smile. Silently she mouthed the words of the chant as he swayed, hypnotized by her soothing expression.Omnak, Shakra, Omen, Crama, she mouthed, and he followed her lead. Vibrations filled the room that could not be described as a sound. One by one, the men burst apart. She winked at the last man, “Scream all you want; it likes it when they scream.” The man screamed long and loud before his turn came, delayed by the deliciousness of his fear.

Others' Entertainment: By TypicalMito
Often in the past, I was complimented on how graceful I dance. To me, however, it’s the greatest blessing and the most wicked curse. This dance I portray for others’ entertainment, flowing, passionate, and sometimes intimate. All of it is for the entertainment of those watching me.
As they applaud and cheer and leer from their plush seats, it often fills me with equal parts irony, mirth, and dread. For in my eyes, the only ones I desire to enjoy my performances are the silhouettes in the fog visible only to me just behind the people cheering for an encore.And so I dance, as the creatures hidden to all but me demand that the show go on. These horrid beings whispering to me of the fall of man, that view the lives of all as mere playthings to sate an eternal and apathetic boredom, that crave for the flesh of my own people. As they grow restless and grow closer and closer to stepping past the boundary of the fog, I rise and begin to dance once more to the joy of the audience.For this dance, I portray, is for others’ entertainment.

The Knife: By Tyler
The obsidian dagger hung high in the black moonless night. Torch light flickered off the smooth surface just hinting at its existence. Within the leathery thin fingers that curled around it, the blade seemed to call out. Chanting echoed, crescendoing just as the dagger fell. Silently slicing through the air towards the pale surface below. The two opposites collide and the knife wins out. Vanishing deep into the pale flesh, releasing a torrent of red out and onto the altar. And at that moment it was done. The knife's master released upon the world to rein eternal.

OLD ONES DOES AS OLD ONES DO: By Emily
“Old Ones does as Old Ones do,” Fizzpot chanted over the pungent cauldron. The swirls and scars along his limbs lit up in response. Hurriedly he mixed, now hopping happily from one foot to the other. A flash of violet light, a puff of noxious smoke, then nothing. “Stupid fleshfoots!” he clawed at the stone walls where the crude drawings lived. Bits and pieces of ancient clay peeled off, revealing more lines, more sigils. Suddenly, his feet left the ground. Flying above the world, breathless, a lilting voice sang back, “Old Ones does as Old Ones do.”

STORY CONTEST FORM:

WHAT ARE WE LOOKING FOR?


COLLABORATORS NOT CONSUMERS:
A collaborator player is someone who is excited, they think about the game outside of the immediate session. They have a drive an excitement for the setting, they want to build characters and stories in the world. They want to help expand the lore and to contribute in meaningful and fun ways. They role-play, they're active in the community, and they're a joy to be around. These are the types of players we're seeking. We want to create a community of great people and this is the first step to doing that.
Consumer players just want something to do in their spare time, when they aren't in the middle of a game they aren't paying attention to the discord, they aren't having a conversation about the game, they aren't planning anything, etc. They're not here to think very hard about the game. They just want to kill a few hours. Sometimes that's okay, but generally, we're not looking for those sorts of players. We want folks who are amped about the setting. Enjoy sword and sorcery, dark fantasy, and want to contribute. If you're a consumer-focused player you probably won't get much out of this community.CASUAL, DEDICATED, AND FUN-LOVING PLAYERS:
We're on the lookout for players who strike the perfect balance between casual play and dedication. Whether you're logging in after a long day or planning a weekend raid, we value those who are committed to enjoying the game without the pressure of being hardcore. Our guild thrives on the fun of shared adventures, where every member contributes to the atmosphere of camaraderie. If you love gaming for the joy of it and can bring a positive attitude to our community, you’re exactly who we’re looking for!
ROLE-PLAYERS WHO WANT TO FOCUS ON PLAYING THE GAME:
While we appreciate the rich backstories and immersive narratives, our primary focus is on playing the game itself. We're seeking players who enjoy role-playing but understand the importance of balancing character development with game objectives. If you’re someone who can stay in character and maintain an eye for casual progression, you'll fit right in with our crew. Our goal is to create memorable experiences both in and out of character, ensuring that our gameplay remains engaging and rewarding.
PLAYERS WHO ARE 21+ YEARS OF AGE:
To maintain a mature and respectful environment, we require that all members be at least 21 years of age. Our guild is a place where adult players can unwind, share experiences, and enjoy the game without the drama that often comes with younger crowds. We value life experience and maturity, which helps us create a stable, fun, and welcoming atmosphere for everyone. If you’re over 21 and looking for a guild that understands real-life commitments, we’re eager to meet you.
PLAYERS WHO HAVE A GOOD MIC AND STABLE INTERNET CONNECTION:
Clear communication is the cornerstone of our success, especially during intense PvE content. We require all members to have a reliable microphone and a stable internet connection. Voice chat is not just a feature; it's a requirement for coordinated efforts in raids, dungeons, and community events. By ensuring everyone is heard loud and clear, we can achieve our goals more efficiently and foster better teamwork.
Please keep in mind that while we understand some might be nervous to jump into voice chat, we truly do believe it's the best way to build community. We're looking for friends. Not voiceless entities that login and never say anything outside of guild events.
NOTE: We do offer a text to voice bot to our members in discord.


GUILD MEMBER CONDUCT


PRESENTATION OF THE IRON CIRCLE GUILD:
All members of the Iron Circle are expected to conduct themselves in a tasteful and respectful manner in all forms of player interaction in game. We do not tolerate any outspoken opinion of bigotry, hatred, or undue aggression toward our members or any other player in the game. If a player is found expressing such things in a public channel, even if spoken on a character not in Iron Circle, whichever characters they have with Iron Circle will be removed.
DIFFERENCES OF OPINION:
Banter within the Iron Circle is encouraged, but harassment is strictly prohibited. Players engaging in frequent discussions of inflammatory material with the intent to provoke responses will be considered 'trolling' and will not be tolerated. Deliberate offenses, intended to offend other players, will result in removal from the guild. It's important to note that joining the Iron Circle requires a high tolerance for online interactions. However, this expectation does not excuse disrespectful behavior. While we appreciate a good joke, even if at someone else or our own expense, we maintain a guild atmosphere that is light on memes and anime references, and we aim to keep it that way.
CONDUCT TOWARD OFFICERS:
Iron Circle officers are responsible for enforcing our rules and maintaining a friendly guild environment. They address concerns about player conduct both within and outside the guild, and you should always feel free to approach them if anything is making you uncomfortable. An officer will assess what behavior aligns with Iron Circle's standards outlined in our rules and guidelines. Remember, without communicating your concerns to a guild officer, finding a solution becomes impossible. Avoid echo chambers with fellow members; inform us of your issues, so we can understand and help navigate them effectively.
EVENT CONDUCT:
Please practice considerate and attentive behavior during role playing events that make use of the "CRE" system. As indicated at the start of each event, all posts should be restricted to raid for the ease of the DM to observe the actions of all participating characters. Most importantly, refrain from engaging in any character action that would derail or delay the start of an event. Players who are disruptive and are not ready to begin an event when the DM is ready may be told to excuse themselves from the event.
EVENT COMMITMENTS:
Committing to a PvE/PvP Event means you should be online and ready to go with appropriate prep materials for your class and profession at least 10 minutes before the scheduled event time.
PvE and PvP events are planned via the discord/game calendar system. Any Guild Officer can plan or create guild events. These allow guild members and friends to sign up. The list is taken in the sign-up order, providing we have enough slots for the event.ACTIVITY & ALTS:
Our current alt policy is: 1 Main Character and 3 Alts. However, alts still must adhere to the 4 week activity policy.
We have a strict activity policy, those who are not on for over a month will be removed from the guild, consider this warning and due diligence.If a real life situation occurs such as school, tests, work, family, death, sickness, military, etc. that is completely acceptable. All that is required of you is to notify an officer, or other officers via in-game tells, discord, in-game mail, text message, etc.


GAME PLAY & SETTING:
In the Iron Circle, role-play, whether in a tabletop setting or a MMORPG, is never completely divorced from the game's setting and mechanics. We like to approach the use of role-play as an addition to gameplay, and not a replacement. The type of role-play that our guild enjoys is typically a mixture between original ideas and concepts and what the game has to offer, including various challenges and points of progression in your character's journey. While we don't expect every player character to be the "Chosen One" as the game's story might dictate, we do expect that you approach any and all role-play with the goals of immersion and cooperation.
EROTIC ROLEPLAY:
While our rules state that members must be 18 years or older, we do not condone the open practice of ERP ("erotic role-play") to such an extent that your online persona revolves around it. Just as in real life, when someone is focused entirely on sex, they are 99% likely to be obnoxious and pretty vapid as a person. There are exceptions to every rule, but statistically, you aren't one of them. We ask that you use the utmost discretion if you choose to do any adult-themed role-play, and that we as a guild not be made aware of your activities. We do not want to smell your post-coital stink, real or otherwise.
CHARACTER CONCEPTS:
We also allow for a wide range of characters, but strongly discourage players from choosing characters that are childlike, naive, or actual naive children. To put aside the fact that such characters tend to be grating, they're also an open invitation for creeps. Please create characters that would more realistically survive and thrive in the environment and setting chosen. Characters that behave in an overly foolish manner will reap the consequences of being stupid. We're forgiving of mistakes, but we've got our limits.
COLLABORATION & STORY:
We do occasionally hold role-playing events, brainstorming sessions, and more, but please do not rely on us to create your character and your story, or to make them interesting. We're all about collaboration, and that means that you have to bring something to the table if you want to get something back. Furthermore, we highly discourage anyone from joining in any role-play who intends to stand around and wait for something to happen. Even in DM-guided sessions, it is your feedback, your participation, and your creativity that make the experience worthwhile for everyone involved, especially the dungeon masters who give their time, energy, and focus toward creating entertainment for you.
THE SPECIAL SNOWFLAKE CHARACTER:
It should go without saying if you've read everything up to this point, but please, no extremely super special snowflake characters that are also drama magnets and incredibly powerful, rare members of a species, etc. Look, let's be honest: We've all had ideas we thought were great, and they weren't so great upon reflection or criticism from others. Ask before you decide that it would be a genius move to deviate from the norm so that you can get real and honest feedback from someone in the guild. We aren't trying to be the arbiters of anyone's creativity, but in the interest of shared role-playing worlds, interactions, and plans, we ask that you try to work within believable and immersive limitations when creating characters or drafting up story ideas.
TAKE FULL CONTROL OF YOUR CHARACTER:
"My character wouldn't do that" is a shit excuse. That's a point-blank refusal to take part in the story. If you're joining up with an adventuring group who is heading out to explore forgotten ruins, or a band of mercenaries who are going to be maiming and killing for gold and your character isn't interested in any of those things... Why are you here? Instead of being bound by pre-conceived notions of what your character would and would not do, embrace complications and do it, but try to work out why. Is it a sense of companionship with the rest of the folks you're role-playing with? Something else? You tell me. Your character is part of a larger narrative with other players.

ROAD MAP

Development Roadmap for Torches in the Dark: Third Edition

  • Initial brainstorming and system design.
  • Consolidation of mechanics and lessons learned from earlier editions.
  • Drafting new mechanics such as the omen die, mana, and nerve systems.
  • Conceptualization of new Grim Sorts and racial/heritage options.
  • Development of the core rulebook and supplementary materials.
  • Modernization and refinement of existing systems, including combat and advancement.
  • Implementation of new mechanics into a functional ruleset.
  • Creation of sample characters, scenarios, and quick-reference sheets.
  • Internal testing to identify initial gaps and refine the mechanics.
  • Launch: Closed alpha playtesting within the Ohr Games Community.
  • Outreach: Recruitment of testers via Roll20, Foundry, and other gaming communities.
  • Focus Areas:
    • Character creation flow and complexity.
    • Combat mechanics and balance.
    • Testing the dread system and light mechanics.
  • Outcome: Iteration based on feedback for rule clarity, pacing, and balance.
  • Availability: First alpha draft available on itch.io.
  • Community Involvement: Encourage feedback through forums, Discord, and social channels.
  • Goals:
    • Identify critical pain points in gameplay.
    • Gather suggestions for additional features or refinements.
  • Polished Ruleset: Incorporate alpha feedback for a more refined beta.
  • Campaign Testing: Test the system's scalability for long-term campaigns.
  • Final Draft Prep:
    • Layout adjustments.
    • Creation of supplementary materials (e.g., GM tools, player handouts).
  • Adjustments: Final tweaks to mechanics, balance, and presentation.
  • Professional Polish: Editing and integration of art and design elements.
  • Launch Platforms: Digital and print release via PDF, print-on-demand, and online tools like Roll20/Foundry.
  • Ongoing Engagement: Continued updates and community expansions post-launch.

THE GAME SYSTEM

Torches in the Dark is a journey through Ayotha, a world so steeped in misery and decay that light itself has learned to tread lightly. Here, the players are no champions or saviors, but scavengers—like crows picking the bones of a once-great realm that now teeters on the edge of oblivion. Ayotha is a land where hope and kindness are fleeting, devoured by the overwhelming dread that encroaches with each setting sun. This is not a world for heroes; it is a ruthless, dark landscape where survival is a cruel taskmaster, and those who live must be equally ruthless or cunning to endure.

The characters in Torches in the Dark are grim-eyed mercenaries, sly thieves, hardened brigands, and savage chieftains. They are the carrion-feeders of society, collecting, stealing, and hoarding what little remains of worth in a land gone to ruin. Honor is a rare currency, found more in tales than on the roadways or in the dark alleys of Ayotha’s cities. Civilization is merely another twisted labyrinth of survival, filled with darkened taverns, crooked lords, and back-alley deals where a knife in the back is as likely as a handshake. Lords bicker over scraps of power, ruling their crumbling keeps and fortified towns with cold iron and sharper tongues, while sorcerers and wytches rise as tyrants in the fringes, revered as deities by the fearful peasants who dare not challenge them.

The countryside is a nightmare given form, where grotesque eldritch creatures roam, birthed by the remnants of the Black Crusades and the failed legions of Slender Crown, the undead god. Battlefields, now ancient and forgotten, are haunted by shambling horrors—lost soldiers, wights, and worse. The lands are riddled with crumbling dungeons, long-abandoned cities piled high with the bones of the innocent, and places no sane soul would tread. Once night falls, when the guiding light of Aith’na fades, the dread sweeps over Ayotha in full force. The world outside of pallisaded villages, crumbling city-states, and desperate outposts becomes a death trap. For those caught outside these sparse beacons, there is no mercy, only the embrace of the dread—an endless dark that consumes all, taking light, warmth, and life without question or care.

In Torches in the Dark, survival is a ceaseless struggle, and the price is steep. The grim reality of Ayotha strips away illusions, laying bare a world where every day is a victory, and every night is a battle to see the dawn.

WANT TO DOWNLOAD PREVIOUS VERSIONS OF TORCHES IN THE DARK?

Feel free to contact us on Discord, message me at @Ridrith.

Arathi Name Generator

Press the button to generate a name

const fantasyFirstNames = [ "Galahant", "Vyreclair", "Lytton", "Aldervyn", "Vireden", "Acton", "Cavalyr", "Clairemonte", "Corwin", "Raen", "Velhan", "Arlwyk", "Berrwyn", "Falkyn", "Haelwyn", "Janreck", "Kelvorn", "Mirewyn", "Rothgar", "Torrin", "Wynthor", "Draven", "Ellion", "Garven", "Jorvyn", "Kaldor", "Lyrell", "Marek", "Norwyn", "Rhyden", "Tarrick", "Vandar", "Wolfram", "Aelric", "Berwyn", "Cedric", "Dain", "Eldred", "Fenwick", "Gareth", "Halvor", "Ivar", "Jareth", "Kael", "Lorin", "Myron", "Orin", "Perrin", "Quinlan", "Rowan", "Soren", "Tristan", "Ulric", "Valor", "Wyatt", "Xander", "Yorick", "Zarek", "Arlen", "Baldric", "Cassian", "Dorian", "Eirik", "Faelan", "Gideon", "Hawke", "Isen", "Jax", "Kieran", "Lachlan", "Magnus", "Niall", "Oberon", "Phelan", "Quinton", "Ronan", "Severin", "Thane", "Uther", "Valen", "Wulfric", "Xavier", "Zephyr", "Aeron", "Bryce", "Caelan", "Desmond", "Eamon", "Farren", "Galen", "Harlan", "Ishmael", "Jorin", "Kendrick", "Lucian", "Malcolm", "Nestor", "Orson", "Percival", "Roderick", "Sterling", "Torin", "Ulfric", "Vaughn", "Warrick", "Xanthos", "Zephyr", "Alaric", "Blaine", "Caden", "Donovan", "Eldric", "Fintan", "Gawain", "Huxley", "Ivor", "Jensen", "Kaelen", "Leif", "Merrick", "Nash", "Owen", "Phineas", "Quillan", "Rowan", "Saxon", "Thorin", "Uriel", "Valerian", "Warren", "Xenos", "Zayne", "Aric", "Broderick", "Corin", "Declan", "Egan", "Finnian", "Garrick", "Holden", "Iain", "Jasper", "Kane", "Landon", "Morgan", "Nolan", "Oren", "Porter", "Quentin", "Rory", "Stellan", "Talon", "Ulric", "Viggo", "Wynter", "Xerxes", "Zion", "Alden", "Bran", "Cullen", "Darrow", "Emrys", "Flynn", "Gareth", "Harlan", "Idris", "Julian", "Kellan", "Lukas", "Maddox", "Niall", "Oran", "Pax", "Quinn", "Reid", "Soren", "Tobias", "Ulysses", "Vance", "Wesley", "Xander", "Zander", "Ash", "Blake", "Cassius", "Dante", "Eli", "Felix", "Griffin", "Harper", "Indigo", "Jude", "Knight", "Lark", "Miles", "Nero", "Orion", "Phoenix", "Quin", "Raven", "Sable", "Thorne", "Vesper", "Wren", "Xavi", "Zane", "Aiden", "Beck", "Cato", "Dax", "Elian", "Finn", "Gideon", "Hale", "Inigo", "Jace", "Kier", "Lennox", "Milo", "Nico", "Odin", "Pax", "Quade", "Rook", "Slate", "Talon", "Vaughn", "Wolfe", "Xenon", "Zev" ]; const fantasyLastNames = [ "Infernosky", "Pyrebane", "Emberstrike", "Solarflare", "Infernlash", "Ashyld", "Avirex", "Blayze", "Bowblaze", "Braesmeld", "Flamegard", "Flamepierce", "Flintstrike", "Fiercefyre", "Purefire", "Sacredpyr", "Trueflame", "Aetherflare", "Blazewind", "Cinderfrost", "Flameseer", "Frostfire", "Ignisflare", "Pyrelash", "Scorchbane", "Skyflame", "Smokeward", "Stormflare", "Sunflare", "Tempestflame", "Thunderflame", "Wildfyre", "Wyndfyre", "Forgespike", "Metalmeld", "Gearheart", "Bronzeforge", "Steelvow", "Irongear", "Ironglen", "Ironsong", "Irynbawnd", "Steelhand", "Steelstrike", "Strongiron", "Braunpyke", "Bronplough", "Bronsmaelt", "Claydorn", "Cogsmith", "Copperforge", "Forgeheart", "Gravenpyke", "Ironbrow", "Ironhammer", "Ironmaul", "Mithrilhelm", "Rustgear", "Silverforge", "Steelforge", "Stonegear", "Tinkersmith", "Tinhelm", "Wyrmforge", "Zincgear", "Moonwhisper", "Starglance", "Etherborn", "Shadowroot", "Mystdawn", "Estraella", "Morgaen", "Ossip", "Sacredpyke", "Starsmit", "Seedheart", "Astren", "Celestine", "Dreamsinger", "Eldergrove", "Faelight", "Glimmerwood", "Loreweaver", "Moonglade", "Mystwood", "Nightshade", "Runeseer", "Shadowglen", "Silvergrove", "Spellweaver", "Starwarden", "Sylvanheart", "Whisperwind", "Windwhisper", "Wyrdwood", "Yarrowshade", "Zephyrsong", "Wardstrike", "Bulwark", "Shieldstorm", "Guardhelm", "Fortbastion", "Duelmal", "Hearthen", "Hillhelm", "Siegepyr", "Strayfend", "Strongoth", "Battlesong", "Battlestead", "Bucklerhelm", "Defendwell", "Frostguard", "Guardhelm", "Guardthorn", "Hearthguard", "Ironshield", "Oathward", "Safeguard", "Shieldbreaker", "Shieldmaiden", "Stoneguard", "Stoneward", "Strongkeep", "Strongwall", "Targehelm", "Valorhold", "Wardbreaker", "Wardwatch", "Earthwhisper", "Harvestshade", "Gladeheart", "Meadowroot", "Valewarden", "Ambleglow", "Greengrocer", "Hillhelm", "Seedheart", "Wiskervale", "Bloomfield", "Briarwood", "Cloverfield", "Dewbrook", "Fernshade", "Frostfield", "Grovewood", "Hearthbrook", "Leafshade", "Lichenwood", "Mossvale", "Oakenshade", "Riverbend", "Shadowgrove", "Sprucewood", "Sunshade", "Thornwood", "Wheatfield", "Whispergrove", "Willowbrook", "Woodshade", "Yewshade" ]; function generateFantasyName() { const firstName = fantasyFirstNames[Math.floor(Math.random() * fantasyFirstNames.length)]; const lastName = fantasyLastNames[Math.floor(Math.random() * fantasyLastNames.length)]; const name = firstName + " " + lastName; document.getElementById("name-display-1").textContent = name; }

Orc Name Generator

Press the button to generate a name

const orcFirstNames = [ "Garrosh", "Draka", "Grommash", "Varok", "Kashur", "Drek’Thar", "Nazgrel", "Thrall", "Orgrim", "Gul’dan", "Kargath", "Shagara", "Rokhan", "Gorash", "Magra", "Sharok", "Throk", "Zug’thar", "Mok’nathal", "Thragosh", "Razhgor", "Gromthar", "Krushnak", "Grashka", "Thoktar", "Dreshnak", "Sharog", "Krothgar", "Zugrak", "Grommak", "Nargash", "Dargul", "Roktar", "Drakgor", "Kashrok", "Mokgar", "Thrashka", "Gorash", "Ragnar", "Gulkar", "Thromgar", "Braknar", "Krogash", "Gromnash", "Dronash", "Mokrog", "Karnak", "Gronash", "Kragash", "Gor’thok", "Thok’nar", "Grushnok", "Gar’tok", "Mok’thar", "Zogar", "Krakthar", "Rok’nash", "Grom’gar", "Thrakgor", "Drog’nak", "Zug’gor", "Gornak", "Magra’gor", "Rok’gar", "Thrak’nar", "Karnath", "Nargul", "Drak’nar", "Gornash", "Rok’nath", "Mok’nash", "Throggar", "Zugor", "Krogar", "Drogath", "Krashgar", "Gromkath", "Thoggar", "Brak’nar", "Ragnarok", "Kragnar", "Gromkar", "Throm’nar", "Drak’gor", "Zug’nash", "Gor’tok", "Krogar", "Thrak’thar", "Krakgor", "Mok’tar", "Grimnash", "Zogoth", "Thrakkar", "Gronar", "Mok’nar", "Drazgor", "Kragnar", "Zugthar", "Grimthor", "Thrakash", "Kronash", "Morgar", "Grashnak", "Drothgar", "Kroshgar", "Zornak", "Throk’nar", "Dragar", "Bragnar", "Krag’nash", "Mokgor", "Zug’nar", "Grimnath", "Throgar", "Krush’nar", "Dromgar", "Zog’nath", "Grumash", "Thrakar", "Kro’nar" ]; const orcLastNames = [ "Hellscream", "Doomhammer", "Frostwolf", "Stormreaver", "Shadowmoon", "Bloodfang", "Bonechewer", "Warsong", "Blackhand", "Demonbane", "Skullcrusher", "Stormcaller", "Ironwolf", "Bloodfury", "Thunderfist", "Stormwalker", "Wolfheart", "Flamefury", "Rageblade", "Stormblade", "Rockfist", "Darkblade", "Ironfist", "Warbringer", "Grimwolf", "Bloodhowl", "Firestorm", "Stoneshield", "Ironmaul", "Bloodscream", "Skullcleaver", "Ironclaw", "Darkhowl", "Thunderspear", "Warcry", "Darkstorm", "Bloodreaver", "Skullbreaker", "Flamehammer", "Thornclaw", "Stormheart", "Blackaxe", "Stonebreaker", "Warhammer", "Ragefist", "Darkfang", "Thundercleaver", "Skullfury", "Ragehowl", "Bloodhammer", "Ironclad", "Stonefury", "Bloodclaw", "Ironbreaker", "Stormclaw", "Firehowl", "Shadowfist", "Darkclaw", "Flameclaw", "Stonehowl", "Bloodcrusher", "Thundermaul", "Stormfury", "Blackfury", "Darkcrusher", "Bloodfist", "Ironcrusher", "Flamebreaker", "Warshield", "Stormbreaker", "Warhowl", "Darkhammer", "Flamehowl", "Thunderclaw", "Stormmaul", "Bloodhowl", "Ironhowl", "Warcrusher", "Thunderbreaker", "Stormcrusher", "Flamehowl", "Bloodbreaker", "Ironclaw", "Stormhowl", "Bloodhowl", "Ironcrusher", "Warhowl", "Darkcrusher", "Flamehowl", "Thunderclaw", "Stormmaul", "Bloodhowl", "Ironhowl", "Warcrusher", "Thunderbreaker", "Stormcrusher", "Flamehowl", "Bloodbreaker", "Ironclaw", "Stormhowl", "Bloodhowl", "Ironcrusher", "Warhowl", "Darkcrusher", "Flamehowl", "Thunderclaw", "Stormmaul", "Bloodhowl", "Ironhowl", "Warcrusher", "Thunderbreaker", "Stormcrusher", "Flamehowl", "Bloodbreaker", "Ironclaw", "Stormhowl", "Bloodhowl", "Ironcrusher", "Warhowl", "Darkcrusher", "Flamehowl", "Thunderclaw", "Stormmaul", "Bloodhowl", "Ironhowl", "Warcrusher", "Thunderbreaker", "Stormcrusher", "Flamehowl" ]; function generateOrcName() { const firstName = orcFirstNames[Math.floor(Math.random() * orcFirstNames.length)]; const lastName = orcLastNames[Math.floor(Math.random() * orcLastNames.length)]; const name = firstName + " " + lastName; document.getElementById("name-display-2").textContent = name; }

Night Elf Name Generator

Press the button to generate a name

const maleNightElfNames = [ "Ilthilior", "Mellitharn", "Khardona", "Andissiel", "Mardant", "Tanavar", "Eltharion", "Thalorien", "Malferath", "Anathron", "Kaltharion", "Thandalar", "Melitharn", "Thalorion", "Althalos", "Varandor", "Fandral", "Therandar", "Kalendis", "Orendil", "Elondar", "Talandor", "Anarion", "Fandorin", "Thandalar", "Alarion", "Kharathor", "Maltheron", "Tarandor", "Valandor", "Elandor", "Thalonar", "Malthan", "Althandor", "Anarion", "Kaldor", "Malorion", "Thalindor", "Eltharion", "Valtheron", "Anarith", "Thalendir", "Melarion", "Kaltheron", "Orandor", "Tharion", "Elindor", "Talandor", "Fandarion", "Andarion", "Thalendil", "Maltheron", "Alarion", "Kaltherion", "Elondar", "Varanthor", "Thalorion", "Tharandor", "Maltharion", "Kalandor", "Falandor", "Elandor", "Thalorion", "Andarion", "Malondar", "Anathor", "Thalendil", "Elondar", "Kaltheron", "Tarandor", "Anarion", "Varathor", "Thalorion", "Fandalar", "Kalendor", "Malthorion", "Eltharion", "Thandarion", "Altheron", "Kharandor", "Falandor", "Thalendil", "Maltheron", "Alarion", "Kaltherion", "Elondar", "Varanthor", "Thalorion", "Tharandor", "Maltharion", "Eltheron", "Thalonar", "Kalandor", "Tharanis", "Maltharion", "Elondor", "Anathor", "Valandor", "Therandor", "Fandorion" ]; const femaleNightElfNames = [ "Keina", "Deliantha", "Meridia", "Freja", "Alannaria", "Nevarial", "Elunara", "Alariel", "Thalindra", "Melantha", "Kalandria", "Thalariel", "Andariel", "Melandria", "Elanara", "Varandria", "Thalindra", "Loraleth", "Alariel", "Kalindra", "Theralis", "Elondria", "Arandria", "Melariel", "Thalindria", "Alarith", "Kalandra", "Therandria", "Melanara", "Frelaria", "Elandria", "Thalariel", "Aranelle", "Thalandria", "Meriel", "Elara", "Varandria", "Melariel", "Larania", "Theralis", "Alanelle", "Kalindra", "Thalaris", "Frelaria", "Elundria", "Merindria", "Alariel", "Variel", "Kalanis", "Theranis", "Elunara", "Melariel", "Tharindria", "Varanis", "Alariel", "Thariel", "Melandria", "Loraleth", "Aranelle", "Frelaris", "Keinalis", "Thalindria", "Elandriel", "Varanis", "Kalanis", "Merilith", "Alunara", "Thariel", "Melanara", "Elunara", "Theranis", "Kalindris", "Frelaris", "Aranelle", "Thalandria", "Elandria", "Kalanara", "Melaris", "Loralith", "Theraleth", "Alarith", "Varandria", "Thalindria", "Melariel", "Elunara", "Merindria", "Alariel", "Variel", "Kalanis", "Theranis", "Kalandris", "Tharindria", "Elundria", "Frelaris", "Alunara", "Melanara", "Theranis", "Loralith", "Aranelle", "Kalandra" ]; const nightElfFamilyNames = [ "Moonblade", "Glaivestorm", "Proudstrider", "Oakwalker", "Nightwing", "Staghorn", "Starbreeze", "Dawnwhisper", "Moonshadow", "Silverleaf", "Stormrage", "Whisperwind", "Shadowglaive", "Mistwalker", "Starfall", "Duskstalker", "Stormglade", "Moonwhisper", "Sunblade", "Wildheart", "Nightstalker", "Moonwhisper", "Glimmerwing", "Shadowleaf", "Silvermoon", "Stormfeather", "Sunglaive", "Dreamstalker", "Shadowmoon", "Starwind", "Mistblade", "Stormwalker", "Nightglaive", "Shadowbreeze", "Sunwhisper", "Dawnblade", "Wildsong", "Nightbreeze", "Starlight", "Moonfeather", "Nightblade", "Silverstorm", "Shadowwing", "Stormleaf", "Sunglade", "Dawnbreeze", "Mistglaive", "Wildwind", "Sunshadow", "Starwhisper", "Moonstorm", "Nightbreeze", "Silverwing", "Shadowstalker", "Sunfeather", "Stormglaive", "Wildblade", "Dawnstalker", "Silverglaive", "Shadowfeather", "Nightbreeze", "Moonfeather", "Sunwhisper", "Stardream", "Wildleaf", "Mistwhisper", "Stormmoon", "Moonleaf", "Shadowstorm", "Sunblade", "Wildwhisper", "Starbreeze", "Nightwind", "Moonshadow", "Dawnblade", "Silverglaive", "Mistwhisper", "Starstorm", "Shadowleaf", "Moonwhisper", "Nightglaive", "Stormshadow", "Silverbreeze", "Dawnwhisper", "Miststorm", "Wildmoon", "Sunbreeze", "Shadowmoon", "Starwhisper", "Stormbreeze", "Moonleaf", "Sunshadow", "Nightwhisper", "Silverglaive", "Wildblade", "Dawnstorm", "Nightfeather", "Shadowwind", "Starbreeze", "Silverwhisper" ]; function generateNightElfName() { const maleOrFemale = Math.random() < 0.5 ? maleNightElfNames : femaleNightElfNames; const firstName = maleOrFemale[Math.floor(Math.random() * maleOrFemale.length)]; const lastName = nightElfFamilyNames[Math.floor(Math.random() * nightElfFamilyNames.length)]; const nightElfName = `${firstName} ${lastName}`; document.getElementById("night-elf-name-display").textContent = nightElfName; }

Ironforge Dwarf Name Generator

Press the button to generate a name

const maleDwarfNames = [ "Barim", "Thrandur", "Gorim", "Aradin", "Durgar", "Thorgar", "Garrik", "Thurim", "Dunrim", "Rurik", "Borim", "Garron", "Thrain", "Barak", "Durin", "Thoral", "Gromli", "Rundar", "Garrik", "Thundar", "Boradin", "Wendel", "Thurin", "Gorrin", "Kargrim", "Tharn", "Dorin", "Magnar", "Tharim", "Kurrik" ]; const femaleDwarfNames = [ "Hilde", "Grimla", "Feryn", "Helda", "Furla", "Krona", "Imli", "Chysa", "Gilda", "Brenna", "Karis", "Frida", "Thilda", "Gerda", "Brynja", "Kelda", "Grisa", "Thora", "Yrsa", "Fryda", "Gurna", "Thilda", "Kyla", "Mara", "Friga", "Silda", "Gara", "Helmi", "Brena", "Korra" ]; const dwarfFamilyNames = [ "Thunderhammer", "Bronzeknuckle", "Stoneforge", "Hammerbeard", "Ironhammer", "Thornsteel", "Grimbuckle", "Stonebeard", "Boulderhelm", "Stormstout", "Goldbeard", "Ironforge", "Steelbreaker", "Firehammer", "Stonefist", "Brassbeard", "Grimstone", "Ironbuckle", "Rockfist", "Grimhelm", "Thunderforge", "Bronzeforge", "Hammergrim", "Steelbraid", "Stonebreaker", "Boulderhammer", "Thundershield", "Ironhelm", "Fireforge", "Stonebrew", "Stonebuckle", "Thundershield", "Stormhammer", "Rockhelm", "Ironstout", "Hammerfist", "Brimstone", "Grimbuckle", "Thunderhelm", "Ironstone" ]; function generateDwarfName() { const maleOrFemale = Math.random() < 0.5 ? maleDwarfNames : femaleDwarfNames; const firstName = maleOrFemale[Math.floor(Math.random() * maleOrFemale.length)]; const lastName = dwarfFamilyNames[Math.floor(Math.random() * dwarfFamilyNames.length)]; const dwarfName = `${firstName} ${lastName}`; document.getElementById("dwarf-name-display").textContent = dwarfName; }

Wildhammer Dwarf Name Generator

Press the button to generate a name

const maleWildhammerNames = [ "Kazgrim", "Thardin", "Soldun", "Dorn", "Hagdar", "Kazdorn", "Thorgrim", "Haldun", "Dorgar", "Baldrin", "Thradun", "Gorim", "Kazdor", "Maldin", "Torim", "Gorrim", "Dunrim", "Thargrim", "Morgrim", "Galdun", "Thragorn", "Keldar", "Rurik", "Dornir", "Halthor", "Borin", "Gralor", "Turgar", "Durnin", "Kazrik", "Garald", "Thurrin", "Magdar", "Gorak", "Dandor", "Hargrim", "Korim", "Ragnor", "Tharald", "Galdor", "Thrain", "Durgrim", "Moradun", "Dargorn", "Haldor", "Karnor", "Tholdor", "Gorim", "Dungrim", "Tharald", "Garadun", "Haldin", "Rorim", "Tharim", "Garron", "Dunrik", "Malthor", "Kazgar", "Thorin", "Halrik", "Gorgrim", "Beldin", "Thalor", "Durin", "Haldun", "Dornar", "Gorald", "Thargrim", "Galdin", "Borin", "Kazgor", "Tharn", "Harald", "Durnor", "Torgrim", "Garald", "Morgrim", "Rorik", "Thordun", "Galdor", "Thrain", "Durgrim", "Moradun", "Dargorn", "Haldor", "Karnor", "Tholdor", "Gorim", "Dungrim", "Tharald", "Thorin", "Gorrik", "Magor", "Tharn", "Kazdun", "Harim", "Tharag", "Gorind", "Dornak", "Halgrim" ]; const femaleWildhammerNames = [ "Kella", "Lorin", "Aris", "Senica", "Morna", "Briya", "Arla", "Gilda", "Thira", "Ferna", "Ryna", "Kyria", "Thyra", "Sena", "Lorna", "Ar-ya", "Taria", "Kelda", "Brena", "Feyla", "Tilda", "Helya", "Grinda", "Serda", "Brynn", "Filda", "Karina", "Gritha", "Helda", "Merya", "Drina", "Elga", "Fera", "Thylda", "Kira", "Ferra", "Gorna", "Brenna", "Kora", "Ilda", "Lirda", "Thyra", "Morla", "Gerta", "Kerta", "Ardya", "Thera", "Fyla", "Gelda", "Thindra", "Frida", "Belga", "Hera", "Grilda", "Serda", "Briya", "Arina", "Gilda", "Thyra", "Ferna", "Fina", "Lirya", "Marina", "Selya", "Lorna", "Erya", "Kara", "Berya", "Friga", "Gorna", "Morna", "Brenna", "Kyra", "Helka", "Thyra", "Arina", "Gerta", "Senica", "Kyla", "Torna", "Filda", "Grina", "Hilda", "Serla", "Bryla", "Arla", "Kilda", "Thyla", "Ferna", "Sira", "Morna", "Brenna", "Kora", "Ilda", "Lirda", "Thyra", "Morla", "Gerta", "Kerta", "Ardya" ]; const wildhammerFamilyNames = [ "Beastclaw", "Greatbeard", "Thundertamer", "Windseer", "Stormfist", "Ironfeather", "Stormwatcher", "Windrunner", "Skybreaker", "Firehawk", "Thunderstrike", "Stormrider", "Ironwing", "Bouldercrag", "Stonefist", "Skywatcher", "Windhammer", "Thornfist", "Skyforge", "Stormborn", "Ironbeard", "Thornbeard", "Firehammer", "Skyclaw", "Stormclaw", "Thunderwing", "Windcrusher", "Stonewing", "Boulderfist", "Firebeard", "Thunderforge", "Windbreaker", "Stormshield", "Ironhawk", "Thornbreaker", "Windforge", "Skystalker", "Stormclash", "Ironseeker", "Windforge", "Skystrike", "Thornhawk", "Ironclaw", "Windstrike", "Thundershield", "Firestrike", "Stonebreaker", "Stormspear", "Ironwing", "Thornclash", "Thunderhammer", "Firewing", "Ironwatcher", "Skybreaker", "Stormwing", "Windwatcher", "Thunderstrike", "Skycrusher", "Thornstrike", "Fireforge", "Ironwing", "Stormclash", "Windwalker", "Skystrike", "Thornhammer", "Stormforge", "Ironhawk", "Thundershield", "Firewalker", "Windcrush", "Skywatcher", "Stormstrike", "Thornclaw", "Ironforge", "Thundercrush", "Fireclaw", "Skyhammer", "Thornwatcher", "Stormstrike", "Ironbreaker", "Windbreaker", "Stormhammer", "Thornbeard", "Fireclash", "Thunderclaw", "Ironshield", "Skystalker", "Windshield", "Stormcrusher", "Ironwatch" ]; function generateWildhammerName() { const maleOrFemale = Math.random() < 0.5 ? maleWildhammerNames : femaleWildhammerNames; const firstName = maleOrFemale[Math.floor(Math.random() * maleOrFemale.length)]; const lastName = wildhammerFamilyNames[Math.floor(Math.random() * wildhammerFamilyNames.length)]; const wildhammerName = `${firstName} ${lastName}`; document.getElementById("wildhammer-name-display").textContent = wildhammerName; }

Earthen Name Generator

Press the button to generate a name

const earthenFirstNames = [ "Malukh", "Nagad", "Makir", "Nagar", "Gostrof", "Gerred", "Kornak", "Jorid", "Obsidian", "Barred", "Kradan", "Targrin", "Ardgaz", "Hyggred", "Tharos", "Gravok", "Vandros", "Kaldor", "Mordak", "Ragnar", "Valgar", "Harnak", "Gorath", "Balrok", "Dragar", "Tauren", "Faldor", "Zarkon", "Kronar", "Jaredon", "Ostrog", "Thrand", "Voldak", "Kardos", "Belgor", "Radnor", "Maruk", "Zandor", "Khalar", "Dorath", "Rogar", "Vardak", "Mordred", "Thranak", "Kalrok", "Varros", "Kragen", "Farnak", "Galdor", "Hadrak", "Dagon", "Zarak", "Vormak", "Torath", "Kargan", "Darnok", "Meldor", "Valkor", "Harad", "Kazrak", "Ragnor", "Balgar", "Zaldor", "Tharnak", "Korath", "Malgar", "Drakon", "Vordak", "Karros", "Barlok", "Jandor", "Fardak", "Gorak", "Morgon", "Zandros", "Harkon", "Kaldron", "Darik", "Valgar", "Thronar", "Malrok", "Zardok", "Karrak", "Galdon", "Thadok", "Mardak", "Zorath", "Vorak", "Karnak", "Torak", "Kalgan", "Mordak", "Ragoth", "Jorak", "Thoran", "Kazdar", "Vardak", "Falgor", "Gornak", "Hadran", "Dalgor", "Zarnok", "Kradan", "Torak", "Malgar", "Dorak", "Ragnok", "Vormak", "Kazrak", "Thorgar", "Jornak", "Zaldon", "Barok", "Vargan", "Karrak", "Galrad", "Haldon", "Tharok", "Meldak", "Zardor", "Korok", "Mardon", "Ragnarok", "Faldon", "Gorath", "Varnok", "Thalron", "Kradok", "Torak", "Zandor", "Valkor", "Darnok", "Ragor", "Meldon", "Harkon", "Kargath", "Vorath", "Kazrak", "Tharok", "Lyrana", "Thyra", "Kalira", "Marena", "Nerith", "Belinda", "Seraphis", "Dorana", "Galina", "Eldara", "Valkyra", "Thalara", "Myranda", "Zalindra", "Kirana", "Lorena", "Sarissa", "Velana", "Rhodana", "Nalira", "Aradia", "Kordara", "Gorina", "Mordana", "Thalindra", "Karina", "Zorina", "Eldora", "Sarathis", "Valira", "Jorana", "Lindra", "Zamira", "Nerissa", "Marana", "Galadra", "Tylara", "Velora", "Kordana", "Daryana", "Nalindra", "Zalira", "Thyra", "Melara", "Serana", "Kalinda", "Velina", "Jorinda", "Zanara", "Nerina", "Galindra", "Thyra", "Koralyn", "Zylara", "Elaria", "Nerida", "Marindra", "Sarathis", "Valindra", "Karinda", "Zalindra", "Myrana", "Galara", "Thalara", "Serana", "Kalira", "Lydara", "Vylara", "Narissa", "Zalara", "Arina", "Kordana", "Daraena", "Galara", "Thyra", "Kylara", "Zamira", "Neritha", "Marina", "Sarissa", "Velina", "Jordana", "Zanira", "Neranda", "Galindra", "Thyra", "Melandra", "Seralyn", "Kalindra", "Lorina", "Zylaria", "Nerina", "Marindra", "Sarathis", "Valira", "Karina", "Zalindra", "Myrana", "Galara", "Thalara", "Seralyn", "Kalira", "Lydara", "Vylara", "Narisa", "Zalara", "Arina", "Kordana", "Daraena", "Galira", "Thyra", "Kylara", "Zamira", "Neritha", "Marinda", "Sarissa", "Velina", "Jordana", "Zanira", "Nerina", "Galindra", "Thyra", "Melandra", "Seralyn", "Kalindra" ]; const earthenLastNames = [ "Stonebrow", "Ironfoot", "Granitefist", "Earthshaker", "Mountainborn", "Rockhewn", "Deepstone", "Cliffguard", "Cavernheart", "Earthcaller", "Stoneward", "Ironclad", "Graniteshield", "Deepdelver", "Earthwarden", "Rockbreaker", "Ironvein", "Cavernseer", "Cliffbreaker", "Deepforge", "Stoneforge", "Ironhand", "Graniteseer", "Mountainkeeper", "Rockguard", "Earthwarden", "Deepforge", "Ironbreaker", "Stonewhisper", "Granitesoul", "Rockhewn", "Mountainwatch", "Cavernwarden", "Ironshaper", "Stoneward", "Deepstone", "Cliffmaker", "Earthshaper", "Granitefist", "Rockcaller", "Ironheart", "Stonecaller", "Deepguard", "Earthseer", "Mountaincaller", "Cliffkeeper", "Rockwarden", "Granitekeeper", "Ironward", "Stoneguard", "Deepdelver", "Earthbreaker", "Mountainborn", "Rockdelver", "Ironfoot", "Graniteheart", "Stonebreaker", "Cliffbreaker", "Deepcaller", "Earthkeeper", "Rockheart", "Ironforge", "Stoneborn", "Mountainseer", "Granitefoot", "Deepcaller", "Earthwhisper", "Stonewhisper", "Rockseeker", "Ironseeker", "Cliffward", "Deepbreaker", "Earthdelver", "Mountainwhisper", "Granitedelver", "Rockbreaker", "Ironwhisper", "Stonehewn", "Cliffborn", "Deepborn", "Earthguard", "Mountainhewn", "Graniteward", "Rockkeeper", "Ironborn", "Stonehewn", "Deephewn", "Cliffhewn", "Earthborn", "Graniteborn", "Rockwarden", "Ironwarden", "Stonewhisper", "Deepwhisper", "Cliffwhisper", "Earthwarden", "Mountainwhisper", "Granitewhisper", "Rockborn", "Ironwhisper", "Stonefoot", "Deepfoot", "Cliffborn", "Earthborn", "Mountainborn", "Granitefoot", "Rockfoot", "Ironborn", "Stonefoot", "Deepfoot", "Cliffborn", "Earthborn", "Mountainborn", "Granitefoot", "Rockfoot", "Ironborn", "Stonefoot", "Deepfoot", "Cliffborn", "Earthborn", "Mountainborn", "Granitefoot" ]; function generateEarthenName() { const firstName = earthenFirstNames[Math.floor(Math.random() * earthenFirstNames.length)]; const lastName = earthenLastNames[Math.floor(Math.random() * earthenLastNames.length)]; const name = firstName + " " + lastName; document.getElementById("name-display-4").textContent = name; }

Iron Circle Name Generator

Press the button to generate a name

const thanasiFirstNames = [ "Anathemos", "Beltharion", "Caelestis", "Damarcos", "Erython", "Felarion", "Galdorix", "Hekatros", "Itharion", "Kadmion", "Lycorios", "Maelthon", "Nergalor", "Orestion", "Phaedros", "Quirion", "Rhexias", "Sargon", "Taurion", "Ullarion", "Valentar", "Xanthir", "Zarathos", "Achamon", "Belleros", "Calyxion", "Doros", "Erastos", "Faelon", "Galadion", "Helion", "Iskander", "Kaeron", "Lykon", "Mithros", "Nyktos", "Orion", "Perseon", "Quaron", "Rhadamon", "Saranion", "Tiros", "Ulthor", "Vaxion", "Xenon", "Zethros", "Alecton", "Belthor", "Celerion", "Dorian", "Elyndor", "Felaros", "Gallion", "Herion", "Ikarion", "Kaldor", "Lykos", "Myradon", "Nereion", "Ordan", "Pherion", "Quinthor", "Rhexion", "Selion", "Toran", "Ulthon", "Varkos", "Xerion", "Zephyros", "Andron", "Barion", "Citharion", "Darios", "Elios", "Ferion", "Galdros", "Heraklion", "Ithon", "Kyros", "Lythis", "Myrros", "Nemoron", "Orthon", "Perithor", "Quorion", "Rhazion", "Saroth", "Thalios", "Ulthon", "Valios", "Xenith", "Zarion", "Arion", "Boromir", "Cyrion", "Demonos", "Erython", "Fenrir", "Gantheon", "Hektor", "Isidion", "Kaelion", "Lydor", "Mithion", "Nexor", "Othar", "Pyrion", "Quron", "Rhexion", "Solon", "Tharion", "Uron", "Varyon", "Xerathos", "Zebion" ]; const thanasiLastNames = [ "Alectoris", "Baranthos", "Calithor", "Demosion", "Erythros", "Faleron", "Galadon", "Hekantos", "Ithoros", "Kalantos", "Lythoris", "Mithralos", "Nemorathos", "Oranthos", "Pherathos", "Quinthalos", "Rhexior", "Saranthor", "Taurion", "Ullarios", "Valantar", "Xantharos", "Zarion", "Arkenion", "Belerion", "Caelithor", "Damarion", "Elyndros", "Faron", "Gallanthos", "Helkion", "Itharion", "Kynthon", "Lykirion", "Mithrion", "Nereion", "Orion", "Perseon", "Quirion", "Rhadamon", "Saranion", "Tharion", "Ultharion", "Valeros", "Xenathor", "Zephyron", "Achantis", "Barathos", "Calyxion", "Demorian", "Erython", "Felaros", "Gallion", "Hektorios", "Ikarion", "Kyrios", "Lykon", "Myrros", "Nexor", "Oranthos", "Pyrithor", "Quarion", "Rhexior", "Saranos", "Thalios", "Ultharion", "Varkos", "Xenor", "Zarathos", "Alectoris", "Barathor", "Cytharion", "Darios", "Erythion", "Ferion", "Galathos", "Herion", "Itharion", "Kyrios", "Lythion", "Myrion", "Nemithor", "Orinthor", "Pherion", "Quorion", "Rhazion", "Saranthos", "Tharion", "Uron", "Varyon", "Xenon", "Zebion" ]; function generateThanasiName() { const firstName = thanasiFirstNames[Math.floor(Math.random() * thanasiFirstNames.length)]; const lastName = thanasiLastNames[Math.floor(Math.random() * thanasiLastNames.length)]; const name = firstName + " " + lastName; document.getElementById("name-display-3").textContent = name; }