An unofficial food reference, Crock Pot simulator, and recipe discovery tool for Don't Starve, Don't Starve Together, and their supported DLCs and characters. The guide is a static JavaScript/HTML/CSS application with reusable food and recipe data and no runtime package dependencies.
Use the live guide or the GitHub Pages version. The separate foodguide-app repository provides an Electron desktop wrapper and release builds.
Use Node.js 24 and npm. The supported Node ranges are listed in
package.json; they match the development tools' requirements.
npm ci --ignore-scripts
npm run devOpen 127.0.0.1:8080/index.htm. The development
command generates the icon sprites, serves html/ on loopback, and opens a browser.
Serve the guide over HTTP; opening the HTML directly with file:// prevents module
loading in most browsers. Local use needs no internet connection after dependencies
are installed, apart from external links to the game and wiki.
In the Simulator, choose a game version and character, filter ingredients, and add up to four items to the pot. Discovery accepts an inventory of ingredients and shows possible recipes. Food List and Recipe List provide sortable reference tables. The Statistics Analyzer evaluates ingredient combinations in batches and can be paused.
Use Tab to reach controls and page tabs. In an ingredient search, use Up/Down to highlight results, Enter to select, and Escape to clear the highlight. Dropdown menus support Up/Down, Home/End, Enter/Space, and Escape.
Ingredient searches accept display names and game identifiers, with spaces or
underscores between words. For example, mushroom finds Red, Green, and Blue Caps
and their cooked forms. Use tag:meat to filter by a food tag or
recipe:butter muffin to find ingredients for an exact recipe name.
npx playwright install chromium
npm run checkcheck runs formatting, linting, JavaScript type checking, unit tests, and a Chromium
browser smoke test. On Linux, deployment tests also require Git, Bash, flock, and
rsync.
- Development guide: commands, module layout, tests, and assets.
- Deployment guide: GitHub Pages and the optional server webhook.
- Data and library guide: package exports, data shape, and mode filtering.
Bug reports and pull requests are welcome, especially when the food data differs from the game. Include the game version, DLCs, character, ingredients, and a source for proposed recipe changes.
Install this repository as a Git dependency:
npm install git+https://github.com/bluehexagons/foodguide.gitimport { food, recipes, TOGETHER, matchesMode } from 'foodguide';
const togetherRecipes = recipes.filter(recipe =>
matchesMode(recipe.modeMask, TOGETHER, recipe.charMask, 0),
);
const carrot = food.carrot;The entry point works in Node and browser module environments. Collections are shared mutable objects with keyed lookups and array-like helpers; see the data guide before iterating or changing them.
JavaScript UI strings live in html/strings.js. Static HTML uses data-i18n="key",
data-i18n-html="key", and data-i18n-attr-NAME="key" attributes. English is the
fallback; bundled Spanish and Chinese dictionaries live in html/locales/ and are
registered by the package entry point.
The Spanish and Chinese translations were generated by Anthropic Claude Opus and have not yet been reviewed by native-speaking Don't Starve players. Corrections are welcome. Food, recipe, character, and DLC names remain in English.
import { registerLocale, setLocale } from 'foodguide';
registerLocale('fr', 'Français', {
pause: 'Pause',
resume: 'Reprendre',
// Missing keys fall back to English.
});
setLocale('fr');For a bundled locale, add its module to html/locales/index.js; the language picker
uses the registered locale list automatically.
bluehexagons, rezecib, levy9527, brewingcode, agathasilva28, 6lancmange, lakhnishMonster, lormico, and VaingloriousReptile.
Code is licensed under Apache 2.0. Don't Starve and its game artwork belong to Klei Entertainment.