NFlavor did something like this for a login event in 2014.
The way I understand it, the function '
on_time_based_event_reward()' (NPC_Event.lua) is run periodically for any player who has been logged in for a certain period of time if the environment variable 'game.use_time_based_event_script' is set.
This is done automatically on startup (assuming it wasn't removed from 'on_server_init()') by '
for_event_by_liveteam()' (NPC_Event.lua):
Code:
set_env( "game.use_time_based_event_script",1 )
set_env( "game.term_for_time_based_event_script",120 )
...where 120 is the required login period in minutes.
For example, if you set
game.term_for_time_based_event_script to
5 and add the line
insert_item(900000,1) to
on_time_based_event_reward() without any further conditions, any player on the server will receive 1 stamina saver for every five minutes they are logged on.