Below is a full breakdown of the work remaining before we can release to PC Steam Early Access. This list is not yet complete. I will continue to add to it over the next week or so and then post once it is considered a complete list.
Bugs to Fix - These bugs must be fixed before release. Count: 34
Low Priority Bugs - These bugs can be fixed after release. Count: 24
Networking: Build P2P networking solution using Steam networking.
NPCs: Finalize default NPC dialog. Finalize default behaviour for free spawning NPCs (passive and aggressive). Fix NPC free spawning logic.
Mouse/Keyboard/Gamepad support: Finish key textures. Ensure gamepad can be used to fully control new GUI screens. Add virtual keyboard for gamepad users.
File Handling: Convert from XNA to PC.
Graphics Device: Ensure lost graphics device is properly handled.
Scalability and RAM: Deal with scalability issues. Perform a full RAM profile.
Script tips: Post yours below and I'll consider adding them to this OP.
I'll start it off with the first few. I'll also be tweeting the ones that will fit in a tweet.
Script tip #1: You can use a variable anywhere you can use a number.
Script tip #2: Substitute a variable for it's value in any [text] message by surrounding it in square brackets, eg. notify [Count=[count]]
Script tip #3: Format a variable text value to x decimal places in [text[var:x]] by specifying # of decimal places after a colon after the var name. e.g. notify [Radiation=[rad:2]] means the text will show the rad value truncated to 2 decimal places.
Script tip #4: A simple coordinate based hash: var [hash] =  + [rel:x] * [rel:z] var [hash] =  * [hash] + [rel:y] var [hash] =  * [hash] + [rel:z] and to limit the hash to x number of digits use modulus [%] with a value of 10^x (like for a pin etc). var [hash] = [hash] %  // e.g. will limit it to 4 digits 10^4
Script tip #5: Use a history value anywhere you can use a number by first loading it into a var. e.g: var [bla] = [history:bla], now use bla in another command.
Script tip #6: (2.5 only) A simple gamertag based hash: var hash = [hash:[gamertag]]
Script tip #7: Many parameters can be omitted, and where appropriate will use a default value. (See help/docs).
Script tip #8: All variables (vars) are 64-bit floating-point values.
Script tip #9: History values are 64-bit integer values. To store a fractional value from a variable to history, first multiply the variable by 10^x where x is the number of decimal places to store. Then when you want to use the fractional value again, divide by 10^x when assigning to a variable.
Script tip #10: Notify and HudText are very useful debug tools. If you're not sure why something isn't working correctly then placing notify or HudText commands in the right places to display the relevant data on screen (history, variables etc) is a great help to find out where the script is going wrong.
Script tip #11: Wait  Loop // delay omitted = default  i.e. same as Loop  is the same as Loop 
Script tip #12: var assignments are processed strictly left to right, there is no operator preference.
Script tip #13: Press the Back button to instantly exit the script editor window (no need to go through the B menu). If you've made changes to the script, you'll be prompted.
Script tip #14: Press the Start button on any command that specifies another script to open that script in another editor window. It will automatically create a new script if it doesn't yet exist.
Script tip #15: Whenever you use Loop, consider the highest delay possible for 'good enough' function. The higher the delay, the less potential for script lag.
This update must be submitted to peer review around 25 August. There is no time for features, only time for fixes.
Additions: Corner ramps (auto). Posts can be positioned in corners. Ramps2, Stairs2, Halfblocks2, Stacks2, Post2, MT2 (for more textures). 6 new tech blocks (most emit light). 5 new color blocks. 2 new crops. 15 herbs. Demigods are now unlockable. New [*move] MobState script command option. IsInZone and SetRegionAux script commands. Added var [hash:text], [eye:x|y|z], [sqrt:x] SetEventScript accepts position and scale for Button events.
Fixes: Measure and Remove Marker menu items swapped. Item script command properties clamped. Heal property added to Item script command. Chat log filters not showing sent msgs. Decimal point spam on number entry windows. Script particle command not finding custom templates. Script Skill command fix. Script documentation fixes. [r,g,b] now defaults alpha to 255. Sphere tool capped when using multiple markers. Handyman and Chef unlockable fixed. Some textures realigned. Creative tool seed / remote synch problems fixed. Script IsRandom [rand:x] remote synch fixed. Locked Door key bug fixed. Some sound issues fixed. Some exploits removed. CCTV flashing removed. Messagebox NoCancel fixed. HUD fixes. Ramp lighting fixes. Various other fixes.
This contest will be run after 2.44 is released. This will be the last Xbox 360 Robotic contest.
News Flash: 3 Robotic avatars up for grabs - anyone can enter, just follow the instructions below.
Sorry everyone, I have run out of time to run the contest in the planned way of me joining you in a world at an agreed time while you play. With 24 contestants, it will take too long, and the time zones are not helpful. I'd rather spend the time making 2.5 as best it can be.
So this is how we will do it now:
1. The top 3 scorers will receive the Robotic avatar. 2. You create a new FLAT CREATIVE world with CACTUS as the ground block. 3. Play Total Rush on that world until you have a score you're happy to submit. 4. SAVE THE WORLD!!! I will need to join it if I need to confirm your score. 5. Post your gamertag and score here or to me by PM. 6. Ignore what other scores are posted, they might be tricking 7. Cutoff date is Monday 22 August. 8. Do not let anybody else join your world (for more than a few minutes). 9. See 8. Do not have someone take a pic of your score, just post it here with writing. I will confirm later.
Once all the scores have been submitted I will join whichever worlds I need to confirm the winning score.
btw, because we are now doing it this way, anybody can submit a score, not just the contestants listed below.
I hope to submit the 2.44 patch to peer review by the 4th Feb. This will likely be the last Xbox update until the Steam PC version is released. I'll only do another Xbox update before the PC release if there is a game breaking bug in 2.44. The focus of this patch is to fix as many bugs as possible before the 4th Feb deadline, so I won't be adding new features unless they are very easy and quick to add (like less than an hour or two - including testing).
Additions: Health Block. Chat log filters. Sphere creative tool. Avatar instance cap removed. 12 new Potion items + Bullet item. 5 new Decals + Cracks and Stained Glass as Decals and 1 new Cover block. Instant reseed on map preview screen. Proximity setting on Particle Emitter blocks. Improved PRNG (more efficient, less predictable, better dispersion). Option to copy a book to a script (press left bumper on the book). Marker blocks can now be replaced with Creative Replace tool. Picking a Stack block also picks its level (Unequip to reset). Skill icons available from shop (must enable in item options first). Players now require Creative permission to break Invisible Barrier blocks. Clan protection game option (members of same clan cannot attack each other). Now must be in a world for at least 2 minutes before you can rate. Non participating visitors and their rates will be purged (less than 60 secs in map). GK reset. Host your world and get 1 rate to unlock again.
Script Additions: Variables. 12 new script commands: Var, IsVar, Input, Blueprint, Item, SetSphere, HasStatBonus, HUDCounter, HUDShape, HUDText, IsBlockOpen, IsBlockResistance. SetEventScript [ItemEquip,ItemUnequip,ButtonX,ButtonY,ButtonB]. All item event scripts for ItemSwing, ItemEquip and ItemUnequip. Menu/MessageBox [NoCancel]. Context [killer]. Cursor, Target and Killer relative coords. HasSkill command now accepts Combat and Total. IsBlockLit changed to IsLit and IsLight. Global\System examples. RAM usage added to script diagnostics. Mobs killed with Health or MobHealth commands now execute their kill script. Additional option on CCTV command. Additional keyboard support. Search and Replace options.
Fixes: Stack block side texture fix. Stack block/Upside Down Stack block placement inconsistencies. Stack blocks and Snow layers now drop same number as level when broken. Snow layers collision when stacked (4 or more levels). HUDBar fixes. Looting exploit. Flint Arrow description. Not Used 78 - Replace Texture. Script IsEquipped command fixed. MobState command affecting players. Yliaster, Eitr, and Ichor Potion stat. Intersect command has no documentation. Splinter animation not using full texture. Marker block placement removing other blocks. ParticleEmitter script command docs (gravity). Copy particle settings to clipboard bug (gravity). Adding a new history inside a folder duplicates the folder. Temp zones no longer created when created relative to a mob. Some hand held durability issues fixed (e.g. Water Talisman). Arcade Highscores updated across session in realtime. GT added. Opening the Item Options screen unlocks all items on DD and Survival worlds. Items with no durability shouldn't be removed when swung with an ItemSwingEvent script assigned. Some minor item skill level tweaks.
Logic: Dialog: NPC Dialog. Exit: Returns control to the most recent Update node. Proxy: Insert a sub behaviour tree. Update: Causes continual updating (execution) of the tree.
Actions: Attack: Attack the NPC's current target. ChangeState: Change the NPC's main state. Deactivate: Deactivate the NPC. Equip: Equip hands with items from inventory. Flee: Flee the NPC's current target. Follow: Follow the NPC's current target. Health: Increase or reduce current Health. Jump: Cause the NPC to jump. LookAt: Control what the NPC should look at. Message: Send information to other NPC's. Move: Move the NPC. Properties: Set various properties for the NPC. Script: Execute a script. StandStill: Cause the NPC to stop moving. SwingHand: Cause the NPC to swing a hand. Timer: Perform actions based on a timer. Wait: Wait for an amount of time before continuing. Wander: Wander around a defined area.
Guard- can be stationary or wander within a certain distance from the Spawner. Attacks hostile mobs with ranged attacks if it can't reach with melee. If an attacker is close and the guard's health is high enough, they'll try swinging a shield to lessen incoming damage. If health is low they can eat up to 3 pieces of food before fleeing towards other guards if possible. If fighting multiple attackers Guards try to finish off weaker level opponents before taking on the target with the lowest health.
This works quite well: Guard deactivates if no players are currently within 50 blocks of guard. If the guards health < 60% he tries to equip his cooked beef he was given at spawn, and eat it. If the guard is not under attack then he just wanders around within 10 blocks of the spawn block. If the guard is under attack then If the guards health is < 20% he tries to find another guard and if he does, he flees to that guard. Otherwise if the weakest target (primary target) is further than 20 blocks from the spawn block, the guard breaks off the attack and returns to wandering around the spawn block. Otherwise if the target is within sword range, the guard will equip his shield and sword and attack with melee, randomly swinging his shield if his health > 80%. Otherwise the guard will equip his bow and arrows and range attack the target.
Policeman Equip: steel sword Shop: None Compainion: None Combat: Neutral, Will only attack if provokes by attacking either him or a near by NPC. Details: Policeman would be similar to guards/templors and other protective NPCs, However they would be at the lower end of the spective due to police being generaly alot weaker then trained soldiers.
Patrols within 20 blocks of the spawner will only attack the player if they try to attack passive animals or npcs While in combat they will attack the player untill 30% health at this point they will attempt to eat low healing food untill that runs out then they will attempt to flee once they reach 15% health
The script node adds some bread (no donuts) and a wood sword to the policemans inventory and the equip node equips the sword when he spawns. I opted for the wood sword over the steel sword as it's more akin to a batten. The first IsHealth node checks if the policeman's health is <= 30%, if it is, he checks if he has some food in his left hand and if he does, he swings his left hand to eat it. If the policeman is attacked, he messages other policemen that he's being attacked and if his health is > 15% then he attacks his attacker, otherwise he flees. Otherwise if he's not being attacked, he wanders randomly up to 25 blocks from his spawn point. While he wanders he keeps an ear open for messages from other policemen or passive mobs who are under attack and if he hears one he will consider himself under attack by the same attacker, and therefor attack it via the IsTargeted node.
Medic- Conversational dialog changes depending on your current hp, e.g.: "Good day!"/"Ouch! That looks painful, let's bandage that before it gets worse"/"Oh my word! You require immediate medical attention!"
Responses e.g.: "I'll survive"/"Yes, thank you. [pay x gold, where x = lost hp (just enough to be more expensive than eating food since there's no time/materials involved)]" and executes a healing script (maybe with a cooldown?)
2.43 is primarily a patch to fix the 'load error - collection' bug as soon as possible.
I am not allowed to submit the update to peer review until the 26th Nov due to XBLIG rules. I will submit it on the 26th if at all possible.
Additions: New Blocks: Stack, UpsideDownStack. New Items: Wand, 6 Staves, 3 Potions. Item Options - enable/disable specific item use in your world. New script commands: MobHealth, MobState, Intersect, Context, SetBlockScript. OpenBlock script command supports NPC speech bubble. NPC Setup screen supports empty speech (no speech bubble will open). Improved item swing synch between remotes. Decal Applicator use now more user friendly. Players can now turn off their own voice chat permission. Matchmaking screen now supports sorting by column. Temporary (player specific, scripted) Zones. Stackable Snowlayers. Voice Chat indicator.
Fixes: Bad Highscore data which can cause problems creating or loading worlds. Bluescreen when editing a script command that was extended using Replace text. Scripts not executing when player has Guide Keyboard open. Global Scripts problem on shared worlds. Save times dramatically increased because of Global Scripts (fixed). Toggling Skills on/off temporarily corrupted players Health bar. NPC text can only be changed by owner if Show Owner is on. Coverblock footprint noise, texture replace names, and top face texture. Decal changes not always transmitted to remotes. Able to use Decal Applicator in no edit zones, Decal Applicator item texture flipped. Now need either Creative or Admin permission to set an arcade game. World Ratings now viewable in game by remotes. Door texturing and lighting issues. Locked Chest/Decal mixup. Paintings LOD Texture problem. Pasting sideways blocks. HUDBar alignment issues.