you could write a function that checks if the player using the door is in a certain guild.
GAMEOBJECT_EVENT_ON_USE = 14, // (event, go, player)
I wrote a sample script, don't know if it works so no promises there.
local gameobject_entry = 12345 --ID of the Door
local guild_id = 1 --ID of the guild that is allowed through the door.
-- Checks the Player's Guild, if the player is in the specified guild
-- the door is "opened". Else, the door will be set to closed.
-- ** Not Tested **
function handleLockedGuildDoor(event, go, player)
if(player:GetGuildId() == guild_id) then
player:SendBroadcastMessage("You do not have access to this door.")
RegisterGameObjectEvent(gameobject_entry, 14, handleLockedGuildDoor)