Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Topics - Craig

Pages: [1] 2 3 ... 8
Mods / [PC] Infinite Worlds Mod
« on: January 07, 2018, 12:18:22 AM »
I'm kinda surprised there has been no discussion of this:

Infinite Worlds

Guides / Console Command Documentation
« on: February 09, 2017, 02:43:55 AM »
This topic will document each console command. You can also view this documentation in the console via the help command.

Full Command List:

cls: Clear the console screen.
console: Adjust console settings.
exit: Exit the console.
help: Display help information.
inv: Current player inventory.
kill: Kill players or mobs.
list: List various game information.
msg: Send a text message.
notify: Add a notification.
player: Change the current player.
script: Execute an existing script or single command.
tp: Current players teleports.

Development Updates / Dev Live Streams
« on: October 24, 2016, 04:50:35 AM »
I'll use this topic to post any up coming development live streams.

Fun House / Funny clothes
« on: September 10, 2016, 04:43:05 AM »

Development Updates / 2.6 - PC Initial
« on: September 06, 2016, 05:54:41 PM »
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: 24 [fixed 42] [new 32]

Low Priority Bugs - These bugs can be fixed after release.
Count: 36 [new 12]

Build P2P networking solution using Steam networking.

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.

Steam/Game Cards:

Mod Support:
Continue expanding the TM Modding API. This work is not critical to release.
You can browse my test mod projects here:

Creative Features / Script Variables
« on: August 23, 2016, 10:55:54 PM »
I'm curious how are people getting on with these?

Are they enabling the power you hoped they would?

Is there any last minute tweaks I can do to them to enhance? Any built in vars I can add?

Let me know. Thanks.

Creative Features / [Scripts] Script Tips
« on: August 15, 2016, 12:32:20 AM »
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] = [31] + [rel:x] * [rel:z]
var [hash] = [31] * [hash] + [rel:y]
var [hash] = [31] * [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] % [10000] // 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 [100]
Loop                // delay omitted = default [16] i.e. same as Loop [16]
is the same as
Loop [116]

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.

Development Updates / 2.5 - Xbox Final
« on: August 11, 2016, 07:20:56 AM »
The final Xbox 360 update.

This update must be submitted to peer review around 25 August.
There is no time for features, only time for fixes.

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.

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.

Contests / Total Rush Robotic Contest
« on: August 08, 2016, 04:54:30 AM »
The contest is over.

Congratulations to the following Total Rush Decorated Robotic Captains:

4,841,977 - Kinetic Toxic - Supreme Robotic Captain
3,606,598 - Cc NightMare cC
2,741,290 - TFAR Vicious
2,592,774 - Liam Bradbury
2,522,027 - jakub34

These scores are confirmed. The Robotic avatar will be unlocked for the winners after installing the upcoming 2.5 update.

Thanks everyone for participating.

Score board:

Top Ten
1  -  4,841,977
2  -  3,606,598
3  -  2,741,290
4  -  2,592,774
5  -  2,522,027
6  -  2,089,358
7  -  1,939,576
8  -  1,751,345
9  -  1,740,184
10 - 1,124,936


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.

What are you waiting for? Get to it. Good luck!


General Discussion / Happy Birthday Total Miner!
« on: June 24, 2016, 09:01:30 AM »
Happy Birthday Total Miner!

5 years old today!

Woohoo Woot.

We hope you can help make many gamers a little bit happier this next year!

Love Craig, Natalia, Sofia & Mia xxx

Development Updates / 2.44
« on: January 14, 2016, 08:52:56 PM »
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).

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:
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.

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.

Guides / Behaviour Node Documentation
« on: January 03, 2016, 09:44:59 AM »
This topic will document each behaviour node.

General Behaviour Tree Help:

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.

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.

FindTarget: Find a specific target.
HasHistory: Query (player) history.
IsAge: Query age.
IsBlock: Query what block is at a location.
IsDistance: Query distance.
IsEquipped: Query if specific items are currently equipped.
IsHealth: Query health.
IsInZone: Query if inside a zone.
IsRandom: Perform actions based on randomness.
IsTargeted: Query if the NPC is currently targeted.
IsVisible: Query what other NPC's or players are visible.

Creative Features / [NPCs] System NPC behaviours
« on: January 02, 2016, 01:16:28 AM »
Amos think's it would be cool if each of the built in NPC types had behaviour unique to them, and I agree with him.

This topic is for everyone to discuss ideas on how they'd like to see each NPC behave and possibly some dialog too.

As part of the AI revamp, I'll do my best to mimic as many of the best idea's that I can into the default NPC behaviour.

Your ideas will also provide me with ideas on what new behaviour nodes we might need that I haven't yet added.

It will also be a good way to show case what is possible with the new AI system, and teach potential AI designers how the system can be used.

When you make a post, please clearly name the NPC you are providing behaviour ideas for. If you modify your behaviour, please modify your OP.


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.


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.


Entrepreneur could spawn with a little money that players could get by betting on who gets the highest random number, or killing him I suppose would work too.


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?)


Pages: [1] 2 3 ... 8