I don’t know exactly how to explain this, but here goes:
- The base engine is written in C++, but almost all gameplay is written in Lua. Mods are no different.
- For simple items, you may not need code. You do still need data. Data is stored in JSON, so go read the super-short documentation for it if you’re not familiar with it.
http://www.json.org
It’s a simple format, but make sure to validate it always. - Yes, mods are supposed to be in a seperate file. You use mixins / mixintos [help, modders! I have no clue what I'm saying here] to add stuff from your mod into the game.
- You can also use overrides to change some built-in stuff, but this may cause compatibility issues - also, apparently never override Lua. [@RepeatPan, could you tell me why again?]
- Manifests, aliases, and file structures are very important for some reason, though I can't remember how or why. The answers given here by @honestabelink explain it better.