• I was frustrated with the existing Dolmenwood character generator, because it doesn’t allow me to iterate levels, and doesn’t show the levels on the character creation screen. I did like the backgrounds though. So, armed with a sense of purpose – a quest, if you may – I set out to see if I could use Replit to build a better character generator for Dolmenwood. I had the PDF of the Dolmenwood Player’s Book, which I purchased from Necrotic Gnome, so with that in hand, I got started.

    1. I thought it would use less tokens if I avoided uploading the PDF, so I copied the Dolmenwood Player’s Book into a text file
    2. Got the prompt from Perplexity
    3. Loaded the prompt and the text file into Replit; did not work after multiple tries. Kept getting an error that I was disconnected, even though everything else worked.
    4. Loaded the PDF instead, which I initially avoided since it’s 37 MB.
    5. Realized my prompt was incorrect (it was contradictory to starting gold rules / starting equipment rules) – Replit prompted the change, which I fixed.
    6. Was prompted to upgrade to a more powerful model, was going to do it ($20/month) but was only given an option to buy yearly for $240. When I returned, I received a 404 error on existing work.
    7. Did a partial implementation instead, but got a message I’ve used up the day’s free credits. No luck on round one – but then – I got an option to upgrade and pay monthly at $25 per month.
    8. The app crashed, so I debugged and fixed it.
    9. Partial success! Round one looks like this:

    10. But choosing an Enchanter as the class with INT 9 as the primary score requires some work. Plus I want the option to increase the level, and add saving throws.

    11. I started small, with the prompt:

    Add saving throws and starting level (1)

    12. Nice! Replit now updated the sheet nicely:

    13. What is missing is combat equipment (weapons, armor). Also, that HOLD saving throw is wrong, even though the rest are accurate. Not sure why, but I’ll come back to that. The next prompt was:

    Add starting equipment “weapons”, “armor”

    14. Nice! Looking better:

    15. Replit added weapons and armor, but not in a combat section with all the bonuses. I should have specified that. The sheet will also need Armor class. I’m going to treat these as separate problems, because I’m not experienced with Replit and not sure if a single prompt is better.

    Separate the weapons and armor into their own combat section. Add the damage and any bonuses so that it’s clear to the player what type of damage they can deal.

    16. I like the way this looks so far! And Replit added an Armor Class automatically, which is great. However, it needs attack bonuses and strength modifiers where applicable (and with a strength of 6, this will be negative modifier.

    17. Sticking with one thing at a time (still have to address the decisions around class choices, and the incorrect saves), I typed in this prompt:

    Add any attack bonus and strength and dexterity modifiers (as specified in the “Attack Rolls” section)

    18. Replit stated that this requires updating complex data structures and UI logic, and suggested I continue with “Autonomous Agent.” Not sure what that means, but there doesn’t seem to be an increase in price, so agreed to continue. At this point, Replit continued building, and periodically refreshed. This hadn’t happened before (maybe it is because the Autonomous Agent was deployed).

    19. After multiple refreshes as the building continued, the Autonomous Agent presented a new version, which looks great and gets the bonuses right. Replit does state that this is a partial implementation as going through the full rules would require extracting more data. That’s fine for the time being. Really happy with how this is proceeding:

    20. A couple of new challenges, but it’s starting to get to a working prototype. Some upcoming challenges are: a/ spells will need to be added for magic users; b/ the class and race traits need to be added; c/ auto generated names and some background information would be helpful; d/ will need to be able to iterate the level.

    21. At this point I’m starting to wish I used the free, basic rules as it seems like it would be a better starting point, but I’m all in. So next, I’m going to start with spells.

    Please add a random selection of spells for magic users, according to the number of spells per day

    22. This is really cool. As Replit works, it talks through its steps. It is repeatedly generating a character until it gets a “Magician” class, and then checking the spell book, and known spells, and then doublechecking. Once Replit finds a Magician, it moves to a Cleric, and then searches for a Friar. Then it checks a Fighter (which has no magic spells) to ensure that magic spells don’t show up for them.

    23. Neat. Replit indicates known spells, rolls for the randomized Magician spell book, and indicates spells per day:

    23. Next, I’m going back to class and race traits.

    Please add class and race traits.

    24. This is really good. I would like if it adds the fairy glamour, and with a STR modifier of -1, the melee attack should have a -1 and not a 0. I’ll start there, although not sure if that will work.

    With a strength of -1, should the melee attack be a -1 (not a +0)?

    25. Replit replies that the issue is likely the string to number conversion. Not sure what that is, but it’s cool that Replit states it, before creating a cleaner numeric modifier version.

    25. Replit fixed that issue nicely. Now to work on the logic behind the starting choices. This one strikes me as harder, but Dolmenwood does make it easier by listing “Prime Abilities” in the class description, so I’ll start there. This one is hard to write, and I’m not sure I got it correct. For the first time, I’m wondering what happens if I need to roll back a prompt.

    Please assign a class by comparing highest ability scores to “Prime Abilities.” The highest scores in these Prime Abilities should be used to choose a class.

    26. Wow! That worked. No more fighters with six strength.

    27. Next problems are thorny. a/ Character sheets keep exporting as .json files (I’ll need PDF or txt files to make this work) and b/ I want to be able iterate the character’s level. I’ll start with the export.

    Can the export function produce a .txt instead of a .json file?

    28. That worked like a charm. This is getting to the point where this is getting better than most generators online. Very impressed:

    29. The text file is missing the Weapons section, so let’s add it back in:

    Please add the Weapons section into the .txt file export

    30. Worked like a charm. This is a beautiful .txt file. Just one more area of cleanup:

    Can you name the file based on the character name and class? Example: Name_Friar.txt

    31. That worked. Now it’s time to start adding a random name generator. Open challenges are: a/ checking the math; b/ iterate the level.

    I would like to add a random name for each character

    Please display the name on the sheet in front of the race and class. Example: Thorvin, Elf Bard

    Please make the names variations on the race names

    32. Those are great. I prefer the Replit names to the official names in the Dolmenwood generator. Now to add backgrounds.

    Please add kindred backgrounds to each character.

    33. Interesting! Replit created its own backgrounds, which are more inventive than the Kindred backgrounds in the book. I could change this, but they are good, so what the heck, let’s let them stay.

    34. I want to add the different descriptions included in the book, but this time I’m going to specify exactly to draw from the book:

    Using the Kindred tables, please add “demeanor,” “desires” and “beliefs”

    Moving some things around:

    Please put Demeanor, Desire, and Belief up top, underneath the alignment section

    Please add alignment to .txt export

    Please add a top border to the “Demeanor” “Desire” “Belief” section and keep it below the alignment section

    Please make “Demeanor” “Desire” and “Belief” section separate from the alignment section; this will prevent the level and hit points section from getting compressed.

    Great – can you remove the top border of the demeanor, desire and belief section?

    Please add the alignment in front of the Kindred background? For example: “A neutral wanderer spreading beneficial spores”

    Please make the attributes into two rows of three

    35. Now it’s time to make it so that a user can increase the level. I’ve been putting it off because it seems like it’s the hardest part. I’m going to try it step by step instead of all at once.

    Even though the characters start at level one, I want to make it to so a player can increase the level of the character. When they do, the character’s hit points should increase based on the advancement table.

    36. That worked incredible. Now I’ll update the save targets, the spells, the attack bonus, and updating the class and race traits:

    When the level increases, update the save targets

    37. That produced the first error. Replit iterated the save targets based on its own logic, instead of using the Save Target tables. Unlike the backgrounds, this is mechanically specific, so it needs to be changed.

    That is not correct. The saves should update according to the save target table associated with each class (Doom, Ray, Hold, Blast, Spell) follow a specific progression based on level. Please update.

    That is not correct. For instance, the cleric’s doom save improves at level 3. Please update save targets according to the class advancement table.

    38. Wow again! This looks incredible. At this point, this is better than anything online. Plus, this fixed two problems at once – the save targets were not perfect, and neither was the progression. This update has fixed all that. Now moving to update attack tables, ensuring the prompt references to use the advancement tables.

    When the level increases, update the attack bonus according to the advancement table with each class.

    39. And now spells. Concerned that this will be a difficult one.

    When the level increases, update the spells based on the class progression (where appropriate).

    As the level progresses, choose a spell of the appropriate rank and class from the spell lists.

    40. At this stage, Replit tells me that I’ve used up all my credits, and need to move to a per usage model. That’s perfect timing, because this is done. I’m really happy with the way this turned out! Not only is it functional, it does exactly what I want, it looks great, I love that I can export to a text file and it works better than any of the existing generators. I think I’ll make a lot of characters of different levels and post them online as pregens. Really impressed with Replit!

    1. Witnessing modern society with an ancient lens?
    2. “Pirates of the Ayahuasca.” Author holds lots of beliefs on how other people should behave, lacks beliefs to govern her own behavior, does ayahuasca with scary results.
    3. Red hot takes on social media use
    4. All editions of Dungeons & Dragons, ranked
    5. Building community with friends
  • “culture is what is left over after you have forgotten all you have definitely set out to learn”

    And:

    “To be a cultured person is to be a person with some kind of original philosophy… This implies a desire to focus such imaginative reason as we possess upon the mystery of life.

    And:

    “The more culture a man has, the more austerely — though naturally with many ironic reserves — does he abide by his own taste.
    — Read on www.themarginalian.org/2015/11/25/the-meaning-of-culture-powys/

  • As soon as February 6, the crew of Artemis II will also head moonward. It will certainly not spell the first human expedition to the moon, but it will be the first since 1972—when the crew of Apollo 17 came home, the Apollo moon program was canceled, and the translunar trail went dark.
    — Read on time.com/7346146/artemis-ii-launch-nasa-astronauts-moon-mission/

  • On Friday, a Reddit-style social network called Moltbook reportedly crossed 32,000 registered AI agent users, creating what may be the largest-scale experiment in machine-to-machine social interaction yet devised. It
    — Read on arstechnica.com/information-technology/2026/01/ai-agents-now-have-their-own-reddit-style-social-network-and-its-getting-weird-fast/

  • One problem with social media intellectuals is that they always need to be saying something new that’s optimized for drawing eyeballs. They can be a really smart person like Dwarkesh or Hanania that has worthwhile things to say fairly regularly, but of necessity so much of their product is marketing that it’s hard to tell how seriously they even take their own proposals much of the time.

    Observant comment. From this post.

  • Oracle has burdened itself with debt and $248 billion in data center lease obligations — costs that are inevitable, and are already crushing the life out of the company (and the stock). 

    The only way out is if OpenAI becomes literally the most-successful cash-generating company of all time within the next two years, and that’s being generous. This is not a joke. This is not an understatement.
    — Read on www.wheresyoured.at/haters-guide-oracle/

  • The more tech industry experience you garner across various fields, the more patterns begin to emerge—pattern recognition across contexts. In software engineering, programming languages follow similar conventions with each language serving particular use cases better than others. Pattern recognition begins to take hold the more experience you garner, allowing you to discern syntax and identify issues faster—and as a result, pattern recognition removes the self-imposed obstacle of “I only write in [this] language.”
    — Read on treysystems.substack.com/p/the-nowhereian-advantage-pattern

  • The book’s thesis is Chicago made the Great West, and the Great West made Chicago, and untangling which wagged which is impossible because they needed each other. The other less explicit thesis is that Chicago made great things, and that happened because its leaders and citizens believed in making great things, like turning the dreary Chicago River, a slow-moving silty creek, into the best harbor on Lake Michigan, which even required changing the direction it flowed.
    — Read on walkingtheworld.substack.com/p/not-walking-chicago

  • Of course nothing is ever simple with TTRPGs – just ask someone to define OSR, whether systems matter, or whether variable weapon damage is the true way (it’s not). Predictably, curating the list sent me down a rabbit hole of questions and categorization.
    — Read on uncannyramblings.blot.im/an-osr-community-list-of-settings

  • The coming years will not be quiet. They will not be polite. You do not get to price a generation out of housing, bury them in debt, flood their minds with chaos, strip them of meaning, and then expect compliance wrapped in motivational quotes.
    — Read on x.com/basedtorba/status/2012698421228875778

  • Merritt helped popularize the idea that the greatest adventures are not across oceans or among the stars, but beneath our feet.

    Again and again, Merritt sends his characters downward into hidden worlds. The Moon Pool is perhaps the clearest example. What begins as a scientific expedition soon becomes a descent into a sealed subterranean realm, complete with alien rulers, strange technologies, and layered environments that must be navigated step by step. The story almost reads like a traditional dungeon expedition, with each new chamber revealing fresh dangers and deeper mysteries.
    — Read on grognardia.blogspot.com/2026/01/the-original-dungeon-delver.html

  • At some point (says Brooks) the meritocrats won and became the new elite. Their anti-bourgeois ideas became the foundation of our modern values. But part of the elites’ job is to run the financial system, and another part is to enjoy being very rich. This was a bad match for bohemian anti-bourgeois values, so they added some layers of irony, detachment, and misdirection.

    A meritocrat in good standing must be (for example) a quirky, free-spirited person who happens to have a passion for banking. And in the course of pursuing this passion, they happen to have made $300 million as the CEO of Amalgamated Bank. They didn’t become CEO in order to make the $300 million. They became CEO because they were passionate about transforming banking and expanding its reach to underrepresented minorities.

    And they certainly didn’t spend the $300 million on a mansion in a ritzy part of New York with well-manicured grounds and legions of servants. They spent it on a rustic cabin by Lake Tahoe made from locally-sourced pine. Sure, it happened to be 20,000 square feet and have an IMAX-sized media room. But that wasn’t why they got it.
    — Read on www.astralcodexten.com/p/book-review-first-sixth-of-bobos

  • The catfish is found in some medieval encyclopedias. It is a monster that lives in rivers. The female lays her eggs and immediately abandons them, but the male stays to keep watch over them until they hatch and the offspring grow large enough to be safe on their own. While on guard, the male builds a kind of structure around his young, and drives away other fish.
    — Read on bestiary.ca/beasts/beast107542.htm

    A directory of medieval beast descriptions. Fascinating throughout.

  • What’s scarce now isn’t content or attention. Its coherence with context.

    Customers, employees and investors are swimming in information but struggling to understand what it all means. When meaning breaks down, trust exits the building.

    Hiring storytellers is a proxy move. It’s a signal that something feels disconnected, but leaders can’t quite articulate what it is.
    — Read on martech.org/companies-arent-looking-for-storytellers-theyre-looking-for-meaning/

  • As I’d begun contemplating a modular reorganisation of the rules, I realised I could also improve organisation by collating everything around each topic in a single place. Indeed, the ideal would be for each rules topic to be completely covered on a single page or on a spread of two facing pages.

    An excellent interview about game design, amateurs building things, focus, and organization. More on thaumavore.substack.com/p/the-dolmenwood-rpg-is-essentially

  • The repressed object at the bottom of the nerd subconscious, the thing too scary to view except through humor, is that you’re smarter than everyone else, but for some reason it isn’t working. Somehow all that stuff about small talk and sportsball and drinking makes them stronger than you. No equation can tell you why.
    — Read on www.astralcodexten.com/p/the-dilbert-afterlife

  • Liquid Glass, especially as expressed on MacOS, is a lightweight poorly considered design system as a whole, and its conceptual thinness is not sufficient to properly allow the Mac to carry the weight it needs to bear.
    — Read on daringfireball.net/2025/12/bad_dye_job