I'm thinking of adding a Lua interpreter in my game, giving various objects in the game script access to allow mods.
By how much should I expose to the scripting environment, I'm not sure.
Should I allow low-level access?
For example, should I just give the scripts a function to move a character (takes care of moving, playing walk animation, everything needed).
Or should I allow low-level functions instead: a function to play animation, separate from the function that moves the character, a function to receive damage (that won't care where the damage came from), perhaps even a function that just teleports a character anywhere.
One worry is that players would hack things that aren't meant to be. Then again, why not just let them do that?
EDIT: People have also pointed ease of use for the modders as a good concern, as well as being a security risk for the player's PC, so feel free to discuss those points as well in your answer.