The question on how to use schedules has already been answered before, search the forums.
To find bricks, there are two methods you can use:
for(%i=0;%i<MainBrickGroup.getCount();%i++)
{
%group = MainBrickGroup.getObject(%i);
for(%j=0;%j<%group.getCount();%j++)
{
%o = %group.getObject(%i);
if(%o.getDatablock().getID() == CityRPTimerMinutesBrickData.getID())
{
//do stuff to %o
}
}
}
Essentially, this code checks every brick in existence for whether its datablock matches the one specified. (here, the City RP Minutes Timer) You can then perform whatever functions you want on the brick. This code probably happen every minute on your server.
initContainerBoxSearch(%position, %boxSize, %mask);
while (%searchObj= containerSearchNext())
{
if(%searchObj.getDatablock().getID() == CityRPTimerMinutesBrickData.getID())
{
//do stuff to %searchObj
}
}
This one is slightly different. It searches for objects in a particular area, given by a position (the centre of the box) and the box size, which is the size of it in Torque Units. (e.g. "0.5 0.5 0.6" is exactly the size of a 1x1 brick because a stud is 0.5 units wide and a plate is 0.2 units high) The type mask would be set to $TypeMasks::FxBrickObjectType for raycasting bricks only, or $TypeMasks::FxBrickAlwaysObjectType for all bricks.
Note that these functions can get very slow if you are attempting to perform them several times per second or on particularly large builds, such as what you might get in a large-sized City RP.
What might be more efficient is if you put all of this through the Events system in some way.