this is a bit advanced and involves quite a few steps~things that you got to do... so please ask questions if you get stuck anywhere or need help with anything or don't understand something or etc etc etc
---------------------------------------
Turnscripts are like always running Functions (or Verbs, if you're not familiar with Functions yet)... well... when they are 'enabled' (a Boolean Attribute: true~false).
So, this is the answer to your question:
1A. add the Turnscripts to your desired rooms (for example):
click on 'roomX' Room Object on the left side, so it is highlighted, then (one way) at the top of the screen in the menu bar, click on 'Add', and select 'Turnscript', this will create~add a Turnscript into your 'roomX' (when Turnscripts are in rooms, they are 'local' Turnscripts, meaning that their scripts only apply~run~activate when you're in that room, and when the Turnscript is 'enabled' too, of course)
repeat the above for additional rooms, 'roomX+1', roomX+2', etc, of yours.
~~~~~~ OR ~~~~~~~
1B. due to me being unclear from your post, if you want the same scripts to be run~activated in EVERY~ALL of your game's rooms... then you'll just want to make a single 'global' Turnscript (as you don't want to be adding a Turnscript to every room in your game! This would be VERY BAD!)
to create~add a 'global' Turnscript, means that you do *NOT* add a Turnscript into a specific room, thus a way to ensure this is to do this:
click on the upper-left most 'Object' in your 'tree of stuff' on the left side of the screen, so it is highlighted, and then (one way) at the top of the screen, click on the 'Add', and then select 'Turnscript', which will create~add a global Turnscript to your game.
2. Setting up the Turnscript(s):
Name: whatever you want to call it, must be unique (no two names of anything can be the same, within the same scope and of the same data type, anyways)
[_] Enabled when the game begins: it explains itself, check this in, if you want the Turnscript to be immediately running~activating its scripts when the game begins. (if checked, this sets its 'enabled' Boolean Attribute to 'true'. In Code scripting: Turnscript_name.enabled = true. If not checked, then it sets its 'enabled' Boolean Attribute to 'false'. In code scripting: Turnscript_name.enabled = false)
Script: (add your scripts that the Turnscript runs constantly, when its 'enabled', and if local Turnscript, also when you're in its room)
-----------
Turnscripts (when 'enabled', and if local, also when in its room) run their scripts every internal turn (basically, this is whenever you click on something and~or hit enter when you've highlighted the command-text input box at the bottom of the screen, during game play)
------------
Since you want scripts to be based off of your turns, then you must create~add your own Attribute, as I'm not sure if you even can keep track of the internal turns directly (and if you can, no idea how to yet, lol).
By creating~adding your own Attribute, you can use (manipulate) it for what you want (increasing-counting it, and basing your messages off of its increasing-count-counting value).
so, we got two choices:
A. a local 'turn' Int (Integer) Attribute: add these attributes to each of your desired rooms
~OR~
B. a global 'turn' Int (Integer) Attribute: add this Attribute, either to your 'game' Game Object or your 'player' Player Object.
A. (example) 'roomX' Room Object -> 'Attributes' Tab -> Attributes -> Add -> (see below)
(Object Name: roomX)
Attribute Name: turns // or whatever you want to call it
Attribute Type: int // an integer (non-decimal) data type
Attribute Value: 0 // usually you want to start at 0 and count upwards for most things, but you can certainly start at say 100 and count downwards too
repeat this for each of your desired rooms
let's say in 'roomX+1' your 'turn' Int Attribute has the value (is at) '5', and in 'roomX+2' your 'turn' Int Attribute has the value (is at) '50', this is pefectly okay, as this is what 'local' means, they're independant~separate from each other.
B. (examples, see below)
'game' Game Object -> 'Attributes' Tab -> Attributes -> Add -> (see below)
(Object Name: game)
Attribute Name: turns
Attribute Type: int
Attribute Value: 0
~OR~
'player' Player Object -> 'Attributes' Tab -> Attributes -> Add -> (see below)
(Object Name: player)
Attribute Name: turns
Attribute Type: int
Attribute Value: 0
-------------------------
now, back within, your Turnscript(s):
your LAST (bottom-most) added script must be:
add new script -> variables -> 'set a variable or attribute' Script -> (see below, we're going to do some code writing, hehe)
(depending on how you decided to set up the above, choose the correct script below)
// Object_name.Attribute_name = Value_or_Expression
// Object_name: player
// Attribute_name: turns
// Expression (Attribute_VARIABLE Addition_Operation Value): player.turns + 1
set variable player.turns = [EXPRESSION] player.turns + 1
// you don't have to do '+ (addition)', nor '1 (value)', you could do, for example, ' * 5 (multiply by 5)', see below:
// set variable player.turns = [EXPRESSION] player.turns * 5
// by the way, working directly in code, it's actual form is this (a bit of a difference than how the GUI~Editor coding does it):
// player.turns = player.turns + 1
OR
set variable game.turns = [EXPRESSION] game.turns + 1
OR (for your various rooms, replace the code with the proper names you've given your room~s):
set variable roomX.turns = [EXPRESSION] roomX.turns + 1
--
set variable roomX+1.turns = [EXPRESSION] roomX+1.turns + 1
---
etc etc etc
---------------
this will cause your 'turns' to increase by 1, after every internal turn.
-------------
as for your desired ('msg' ~ 'Print a message' Script) message script:
within your Turnscripts, BEFORE (ABOVE) your 'Object_name.turns = Object_name.turns + 1' Script, add in these scripts (using 'game' as the example):
add new script -> scripts -> 'if' Script -> (more GUI~Editor coding, hehe) -> if [Expression] game.turns = 5
// or you can do: if [expression] game.turns > 5
-> then -> add new script -> output -> 'print a message' Script -> (write what you want here: if you do [message] option, then you just write a normal sentence, aka 'text', for your message, if you choose the [expression] option, then you can do VARIABLES with your text - you'll probably need help for this if you're new to quest and especially programming~coding)
add new script -> variables -> 'set a variable or attribute' Script -> set variable game.turns = [expression] game.turns + 1
repeat and adjust the coding, for each of your rooms, if doing local turnscripts.
-------------
lastly... you want to display the 'turns' to the person playing the game...
if you're doing a global Turnscript, using 'game' or 'player' Objects, then you can use their 'STATUS ATTRIBUTES' for the displayment during game play.
(I can link you to a guide I made on them if interested or if can't find it on your own, it's in the 'libraries and code samples' forum board section, called ~ 'attributes' ~ I discuss attributes and status attribute in it)
if you're using local turnscripts, then it's a bit different to display your rooms' 'turns'... the easiest would be using a message script in your rooms' turnscripts... other ways, would be more advanced~complex~hard to do...