top of page

The difference between monsters in D&D 5e and OSE

There are a few differences between the monsters in Dungeons and Dragons 5th edition (5e) and Old School Essentials (OSE). Some of the main differences include:

  1. Monster statistics: In 5e, monsters have a set of statistics that define their abilities, such as hit points (HP), armor class (AC), and attack bonus. In OSE, monsters have a set of statistics based on their level and class, such as hit dice (HD), armor class, and attack bonus.

  2. Monster abilities: In 5e, monsters have a wide range of abilities and powers, including special attacks, spells, and unique traits. In OSE, monsters have a more limited set of abilities, and many of their powers are based on their class (such as fighter or magic-user) rather than being unique to each monster.

  3. Monster scaling: In 5e, monsters can be customized and scaled to fit the party's level and challenge rating (CR). In OSE, monsters are generally fixed at a specific level and do not scale with the party.

  4. Monster variety: In 5e, many monsters are available, including traditional fantasy creatures and more unusual and exotic creatures. In OSE, the selection of monsters is more limited and focuses more on classic fantasy creatures.

Overall, the monsters in OSE are generally more straightforward than those in 5e, with fewer abilities and more focus on classic fantasy tropes. However, both systems offer a wide range of monsters to choose from, and the GM can customize the monsters to fit the game's needs.

Comparing a Goblin Monster from 5e and OSE

Here is an example of a monster found in both Dungeons and Dragons 5th edition (5e) and Old School Essentials (OSE):

Dungeons and Dragons 5e:


  • Small humanoid (goblinoid), chaotic evil

  • Armor Class: 15 (leather armor, shield)

  • Hit Points: 7 (2d6)

  • Speed: 30 ft.

  • STR: 8 (-1) DEX: 14 (+2) CON: 10 (+0) INT: 10 (+0) WIS: 8 (-1) CHA: 8 (-1)

  • Skills: Stealth +6

  • Senses: darkvision 60 ft., passive Perception 9

  • Languages: Common, Goblin

  • Challenge: 1/8 (25 XP)

  • Actions:

    • Scimitar: +4 to hit, reach 5 ft., one target. Hit: 5 (1d6 + 2) slashing damage.

    • Shortbow: +4 to hit, range 80/320 ft., one target. Hit: 5 (1d6 + 2) piercing damage.

Old School Essentials (OSE):


  • HD: 1

  • AC: 6

  • Attack: Scimitar (1d6) or shortbow (1d6)

  • Special: None

  • XP: 25

As you can see, the goblin in 5e has a more detailed set of statistics, including attributes, skills, senses, and languages. It also has a wider range of abilities, including using a scimitar or a short bow in combat. In contrast, the goblin in OSE has a simpler set of statistics, including hit dice (HD) and armor class (AC), and only has the option to use a scimitar or short bow in combat. It does not have any special abilities.

Overall, the goblin in 5e is more detailed and has more options for customization, while the goblin in OSE is more straightforward. Both goblin versions are suitable for use in their respective games, and the GM can choose the version that best fits the game's needs.

How to automate the conversion from 5e to OSE with JavaScript

Here is a JavaScript program that converts a monster from Dungeons and Dragons 5th edition (5e) to Old School Essentials (OSE) format, along with an example of how to use it:

function convertToOSE(monster) {

// Convert hit points to hit dice

let hitDice = Math.floor(monster.hit_points / monster.hit_dice_avg);

// Set armor class and attack based on 5e values

let armorClass = monster.armor_class;

let attack = monster.actions[0].name + " (" + monster.actions[0].damage_dice + ")";

// Set special abilities to "None"

let specialAbilities = "None";

// Set XP value based on 5e challenge rating

let xpValue = monster.challenge_rating * 100;

// Create OSE monster object

let oseMonster = {

"HD": hitDice,

"AC": armorClass,

"Attack": attack,

"Special": specialAbilities,

"XP": xpValue


return oseMonster;


// Example 5e monster

let goblin = {

"name": "Goblin",

"type": "small humanoid",

"alignment": "chaotic evil",

"armor_class": 15,

"hit_points": 7,

"hit_dice_avg": 2.5,

"actions": [


"name": "Scimitar",

"damage_dice": "1d6 + 2"



"challenge_rating": 0.125


// Convert to OSE format

let oseGoblin = convertToOSE(goblin);


/* Output:


"HD": 3,

"AC": 15,

"Attack": "Scimitar (1d6 + 2)",

"Special": "None",

"XP": 12



In this example, the convertToOSE() function takes a 5e monster object as input and returns an OSE monster object. The 5e monster object includes information such as the monster's name, type, armor class, hit points, and actions. The OSE monster object includes the equivalent information in the format used by Old School Essentials, such as hit dice, armor class, attack, special abilities, and XP value.

The convertToOSE() function converts the 5e monster's hit points to hit dice using the average value of the monster's hit dice, sets the armor class and attack based on the 5e values sets the special abilities to "None," and calculates the XP value based on the 5e challenge rating. It then creates an OSE monster object with these values and returns it.

In the example, the 5e goblin object is converted to an OSE goblin object, which is then logged into the console. The output shows the OSE version of the goblin, with the hit dice, armor class, attack, special abilities, and XP value all converted from the 5e values.

I will add that this is not a perfect conversion, but it gets you in the right direction :)

42 views0 comments


bottom of page