DISCLAIMER: Scripting is against the rules of conduct and terms of service. It is a bannable offense. There legal scripting tools allowed by EA/Mythic interestingly including UO Assist, UO Automap and UO Wedding. At their heart, these are all scripting programs... the key is they controlled on how you are able to use them.
Scripting = Automation. In this context it is a text-based computer language that allows you to control a lot of variable things to get something accomplished. It usually made up of 2 key items: Triggers & Actions. Triggers are usually time-based, event-driven or direct-interaction (there are others). Actions are things done once a trigger is recognized.
Example 1: Maldar's alarm clock goes off (trigger). Maldar turns off the alarm clock (action), gets up (action), rearranges the protein on his head (action), makes a pot of coffee (action) and reads the paper (action).
Example 2: KuleDude is killed a Balron. KuleDude presses Shift-L on the keyboard (direct-interaction trigger). The corpse is opened (action), the corpse is searched looking for pre-defined superior items (action), the nice items are picked up and put into his pack (action), the corpse is closed (action). KuleDude now goes to kill the next Balron (all this done in 1-2 seconds)... You can imagine the frustration of this before corpses were provided instances so each player got there own corpse to search.
Example 3: KuleDude decides to PVP with his Heavy Xbow. He goes to Yew Gate to wait hidden (lamer). A Red COP enters the screen (event-driven trigger) running up to the Moongate. On KuleDude's screen, the Red COP's healthbar automatically pops up (action) and his LastTarget macro is automatically set to the enemy (action), KuleDude's primary ability to Dismount is activated (action), and it automatically attacks his LastTarget to dismount Red COP (action). All in 1 second.
Example 4: At 9:55am KuleDude decides to recreational mine ore but Jerry Springer is on TV in the other room in 5 minutes at 10am. KuleDude sets a script to run at 10am and goes to the other room to catch Springer. Its 10am (timed trigger). KuleDude's miner recalls to location 1 in his runebook (action), mines one ore until color ore is detected (action), determines ore color (action), if color is wanted keep mining (action), if color not wanted use prospectors tool (action), mines ore until all ore is taken (action), hop off firebeetle (action), smelt ore (action), hop on firebeetle (action), recall home (action), move ingots to chest (action), recall to next location (action), repeat (action).
Understand that developers, when they create a game, have 100% control on whether they allow scripting to happen. When UO was created 11 years ago, the game engine was engineered to ALLOW scripting to happen. Its actually how they maintain the code we enjoy.
The biggest problem that UO has always had is the interaction from our client (2d, 3d, KR) to the server. This 'data stream' like a pipeline. If you walk around your house in UO there is alot of data in that pipeline being sent back and forth. Both sides keep track of alot of data. BUT... the datastream/pipeline is unsecured. So folks can 'inject' data into the pipeline (scripting) to talk to the server and tell it things to do. That is how UO Assist works. That is also why sometimes when UO gets a patch, UO Assist is broken for a bit until Tugsoft 'fixes' it to get back into the datastream/pipeline.
In all this time, that pipeline is relatively unsecured. If EA/Mythic were to add encryption/keys into the client/server, all of this mess would be over. No more scripting. It will break everything. We would all need new client. Performance would go down as every time data is swapped back and forth, keys would need to be deciphered. Lots of unhappy pappies.
Edit: I should say... the whole Custom UI of the KR Client is scripting. Again legal and intentionally allow by EA/Mythic. Some of the possiblities allowed in the Custom UI are endless.
*passes torch to KR groupies Ash & KD and walks away whistling the original Stones intro music*
