Please do not close this as a duplicate of DZG-1714 or DZG-1737.
Those reports only describe the problem. None of them has the cause or a fix. This report has both, tested on a live server.
I found the cause and have a working fix.
File: scripts/4_world/classes/codelockvisualmanager.c
Method: GetAnimationPhaseForBackPart, line 452
Constant: BACK_PART_HOUSE, line 47
Problem
Since 1.30.164200 the DigitalCodeLock on a house door cannot be used from inside. There is no prompt at all, neither "Lock" nor "Unlock". From outside it works. Combination locks on the same doors work from both sides. Reproduced on Land_House_2M2, different doors, several players.
Cause
In 1.30.164078 the back part of the lock on a house door was set to 0.60. In 1.30.164200 it was changed to 0.50.
1.30.164078:
if (hierarchyParent.IsInherited(House))
{
if (reversed)
animationPhase = 0.50;
else
animationPhase = 0.60;
}
1.30.164200:
if (hierarchyParent.IsInherited(House))
{
animationPhase = BACK_PART_HOUSE; // 0.50
}
Because of this the back part of the lock is now inside the door. From inside you aim at the lock, but the game hits the door, so no lock action appears. This is the only code lock change between these two builds.
Fix
Set it back to 0.60 for normal (not reversed) house doors:
modded class CodeLockVisualManager
{
override protected float GetAnimationPhaseForBackPart(EntityAI hierarchyParent, bool reversed)
{
if (!reversed && hierarchyParent.IsInherited(House))
return 0.60;
return super.GetAnimationPhaseForBackPart(hierarchyParent, reversed);
}
}
Tested on our community server as a server side mod only. After it, the lock works from inside again on all doors. Clients do not need anything.