For the opping you can make use of the Users List (alt + r -> Users)
The format is
access(#):Nick!ident@hostmask
Example:
100:*!*@127.0.0.1
100:John123!myIdent@127.0.0.2
100:Akatsuki!ident@127-0-0-1.client.isp.com
etc
Then in remotes have this:
on 100:join:[color:red]#Channel[/color]:{
mode [color:red]#Channel[/color] +o $nick
}
This will only op users that are in the user list and have a minimum access of 100.
For voicing, you can do something like this
assuming everyone is using the same fserve script. Make it detect some common text from the fserve output and voice the user if he's not voiced.
Example: Lets say the Fserve output is something like this
<Nick> -=SysReset 2.51=- File Server
<Nick> Transfer Status: Send:[2/1] - Queues:[6/10]
<Nick> Instant Send is at: 100kB
Now if everyone is using the same file server, the output should be the same so you could do this:
on 1:text:*SysReset *File Server*:[color:red]#Channel[/color]:{
if ($nick !isvoice [color:red]#Channel[/color] && $me isop [color:red]#Channel[/color]) { mode [color:red]#Channel[/color] +v $nick }
}
This is triggered whenever a fileserver is advertised. It checks if the user is not voiced and that you are opped and if so then it voices the user.