In our system, every door needs to be properly registered on the server with all necessary information: position (x, y, z), lock status, group ID, faction ID, and a uint32 hash. We store all this in a database table.
When a player joins, the server sends them the current state of all doors. Any changes to a door’s lock status are updated in the database and pushed to all players, so everyone sees the correct state in real time.
Even if you have the correct hash from a custom MLO, it will not work in-game unless the door is recognized by GTA’s native door system. That’s why doors from gtahash.ru work—they are official GTA door hashes. Custom MLO doors, even with the correct uint32 hash in our DB, won’t respond if GTA doesn’t natively register them as doors.
If you’ve done something like this before, you could maybe show me your script—maybe we also have a mistake in our setup.