This should at least be scriptable through the engine. But something as simple as a lock should be able to automatically prompt a roll and unlock on success. Other simple object interactions could display text (loremaster check, for example), apply statuses, grant items or permanent buffs, etc.

Repeatability should be a base part of the properties. Something like a lock would probably be done once (though you could maybe make it lock again on closing), whereas some kind of shrine that grants blessings/curses could be repeatable a few times.