Published on

Basic Dungeon World Character Sheets


TL;DR: You can find the full collection of character sheets here.

I’ve played pen and paper roleplaying games for a bit over two decades now. What started out with D&D evolved into Pathfinder and lately I’ve been spending more time on OSR (Old School Reneissance) games.

Enter Dungeon World

Dungeon World is a recent find, providing a simple and story driven game-loop that I’ve felt matches the way I like to run games very well.

I sometimes like to run quick and simple games for friends. It’s often not very convenient to haul along a bunch of character sheets.

There’s some benefits that come with playing the more popular games, one of the highlights of which is having access to a lot of tooling built by community members over the years. Here’s my attempt to contribute a little to the Dungeon World community tooling.

Character Sheets

These character sheets are extremely simple and browser based, I’m well aware they do not include everything you might need. But they might help you give things a go.

The sheets are persistet on your local device using the local storage API, so you can use them with multiple tabs and sessions. I don’t provide any way to sync them accross devices so you might want to keep some screenshots as a backup. 😅

Here’s the PersistentInput component in React that powers these sheets. Feel free to use it to make your own.

type Props = React.InputHTMLAttributes<HTMLInputElement> & {
  id: string;
};

const PersistentInput = (props: Props) => {
  const [value, setValue] = useState(props.value);

  useEffect(() => {
    if (window.localStorage) {
      const value = window.localStorage.getItem(props.id);

      if (value) {
        setValue(value);
      }
    }
  }, []);

  const onChange = (event: React.ChangeEvent<HTMLInputElement>) => {
    if (window.localStorage) {
      window.localStorage.setItem(props.id, event.target.value);
    }

    setValue(event.target.value);
  };

  return <input {...props} onChange={onChange} value={value} />;
};

export default PersistentInput;

Here’s some useful links if you want to learn more about the game.