diff --git a/.eslintrc.json b/.eslintrc.json
index c1653cf52c0d71c038bd2b084c749bd22afd4edb..31c79403e857af3d4f4d8aeae1c07fd071792515 100644
--- a/.eslintrc.json
+++ b/.eslintrc.json
@@ -6,6 +6,9 @@
 		"jquery": true
 	},
 	"extends": "eslint:recommended",
+	"plugins": [
+        "jsdoc"
+    ],
 	"globals": {
 		"SugarCube": false,
 		"Config": false,
@@ -81,6 +84,33 @@
 			{
 				"allowSingleLine": true
 			}
-		]
+		],
+		"jsdoc/check-alignment": 1,
+		"jsdoc/check-examples": 0, // interferes with SugarCube examples
+		"jsdoc/check-indentation": 0,
+		"jsdoc/check-param-names": 1,
+		"jsdoc/check-property-names": 1,
+		"jsdoc/check-syntax": 1,
+		"jsdoc/check-tag-names": 1,
+		"jsdoc/check-types": 1,
+		"jsdoc/implements-on-classes": 1,
+		"jsdoc/match-description": 0, // rejects SugarCube syntax
+		"jsdoc/newline-after-description": 0,
+		"jsdoc/no-types": 0,
+		"jsdoc/no-undefined-types": 0,
+		"jsdoc/require-description": 0,
+		"jsdoc/require-description-complete-sentence": 0,
+		"jsdoc/require-example": 0,
+		"jsdoc/require-hyphen-before-param-description": 0,
+		"jsdoc/require-jsdoc": 0,
+		"jsdoc/require-param": 0,
+		"jsdoc/require-param-description": 0,
+		"jsdoc/require-param-name": 1,
+		"jsdoc/require-param-type": 1,
+		"jsdoc/require-returns": 0,
+		"jsdoc/require-returns-check": 1,
+		"jsdoc/require-returns-description": 0,
+		"jsdoc/require-returns-type": 1,
+		"jsdoc/valid-types": 1
 	}
 }