◢███◤      ◢██◤                            ◢██◤                            
     ◢██◤       ◢██◤                            ◢██◤                             
    ◢██◤       ◢██◤                            ◢██◤                              
   ◢██◤       ◢██◤                            ◢██◤                               
  ◢██◤       ◢██◤                            ◢██◤                                
◢███◤       ◢██◤                            ◢██◤                          ◥██◣   
◥███       ◢█████◣    ◢████████◤ ◢███████◤ ◢██◤ ◢██◤                 ◢██◤   ██◣  
 ███      ◢███████◣        ◢██◤ ◢██◤ ◢██◤ ◢███████◤                 ◢██◤    ███  
 ███     ◢██◤  ◢██◤ ◢████████◤ ◢██◤      ◢█████◣                   ◢██◤     ███  
 ███    ◢██◤  ◢██◤ ◢██◤  ███◤ ◢██◤ ◢██◤ ◢██◤◥███◣                 ◢██◤      ███  
 ◥██   ◢██◤  ◢██◤ ◢████████◤ ◢███████◤ ◢██◤  ◥███◣               ◢██◤       ███◣ 
  ◥██◣                                                          ◢██◤       ◢███◤ 
                                 ◢███◤ ◢███◤ ◢██◤  ◢██◤ ◢█████████◤       ◢██◤   
                                ◢█████████◤ ◢██◤  ◢██◤ ◢██◤  ████◤       ◢██◤    
                               ◢██◤◢█◤◢██◤ ◢██◤  ◢██◤ ◢██◤   ███◤       ◢██◤     
                              ◢██◤   ◢██◤ ◢████████◤ ◢█████████◤       ◢██◤      
                             ◢██◤   ◢██◤ ◢████████◤ ◢█████████◤      ◢███◤       

0004
Rule Clarification Q: Chat API and cron delays
45kgc6
It is possible to keep a cron bot from running by performing any action on that user, such as switching to them, running a script, or sending a message via the chat API. This means that it is possible to, for example, keep a t4 cron bot loaded (so it can't be stolen) but not active (so it doesn't cost 100BGC+ a day) by putting it on a spare user and having that user send chat API tells every 10 seconds. Similarly, you can keep crons from being unloaded post-breach by using binmat: i have my binmat bot send a tell to myself. my API code detects this tell, calculates the end of the binmat game, and then sets up a periodic tell for that user. This way even if I lose binmat and my GC is stolen, the cron never unloads because the tells keep it active. Eventually the user rotates, some time later my timer expires and I stop sending tells, another user feeds the user GC before it's next run, and the cron resumes as if nothing had happened. Without this, the cron would likely have gotten stolen during the breach and the user would be left un-automated until something else swings around and fixes it. There's significant debate in the community about whether using actions (especially the chat API, but in general, *any* action, such as an OOG switching to the user and running scripts) to keep a brain loaded-but-free. Is this just an emergent mechanic, taking (legitimate) advantage of the order in which the game checks certain things? Or is this actually a significant/sandboxy problem that needs to be avoided until patched? (If so, sorry about describing it in detail.) What is the official stance on this behavior?
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Implementation suggestion if this is considered exploitative: have user-action-delays increment the error count on crons, and check for errors before checking for user action delays. Then you can get a few things in legitimately (i.e. sending tells on a cron'd user, switching to a cron'd user) but too many in a row will force-unload it. *edit* forgot that baseline allows 0. maybe action delays increase by 0.5 instead of 1, to allow a little leeway for gray t1 crons? IDK, trying not to require too much extra work for the server.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
It is the current state of balance. I don't like it, but I would not consider it something something that needs to be avoided until patched. Your idea is interesting and brings up two interesting things: 1. non-integral values for things that are integral in upgrades -- I've always liked this one, but haven't gotten to it 2. non-integral failures as 'failure class / strength' I'll ponder.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -