I know you can lock rotation, but not in-game. Is there a python for it, or a special edit or something. Please explain. Please be specific. Thanks!
I understand the question as follows: You want an object's rotation to be locked in game engine runtime.
Here's how I would solve the problem.
(1). Choose the object you want to work with. The freezing will only work on that object with this solution.
(2). Go to the logic editor and make a Property sensor of type Boolean. It shall be named "Perm". Activate pulse triggering and set the frequency to 0.
(3). Create a game property of type "Boolean" named "Lock" that is initially set to false.
(4). Make a "python" type controller in the logic editor and connect it to the Boolean sensor Perm. It shall be named "LockXYZ"
(5). Make a sensor of your choice that will set the boolean to true when you want the object's rotation to freeze. The sensor shall be named "Atog"
(6). Create a Property actuator that connects to Atog. This actuator will set Perm to "True".
(7). Open the text editor and create a new text called "LockScriptXYZ.py"
Paste the following in "LockScriptXYZ.py":
import bge cont = bge.logic.getCurrentController() own = cont.owner own.worldAngularVelocity.x = 0.0 own.worldAngularVelocity.y = 0.0 own.worldAngularVelocity.z = 0.0
(8). Choose the script "LockScriptXYZ.py" for the python controller "LockXYZ"
That should do it.
I don't know if this was what you were looking for, but at least it's specific.