keep a folder of files of code (and even better if that code is also implemented as being a playable~testable game) that works (your own code, all the library files on this site ~ hehe, and code given in the forum's posts by people ~ hehe)
USE A LOT of comments (the: ' // your comments ' ) in your Scripting code blocks, as you'd be surprise how easy it is to forget (how to do) things over time... ~ "a pinch of prevention is worth a pound of treatment~cure" (or however the saying goes, lol) ...
[HK Edit: went off on big tangent, bad when you get social ~ when your mind wanders off, laughs, as it is off-topic content for the post that you get social in, when the post's thread is not a social thread. so I removed it]
also, you may want to use library files (*.aslx) to organize all your game code aspects:
(sometimes it's good to split stuff up as multiple files, such as 'how to guides', and sometimes it's good to have stuff in a single place, aka as a single file for quick reference)
(and you can just copy and paste whatever code from this 'master' library file of yours, into your game file that you're working on)
<library>
// you can always do more (or less) sub-cateogries as you want for better organization
<!-- new (default) tree -->
// the default new game tree:
<!--
Objects
Game
Verbs
Commands
Room
Player
Functions
Timers
Walkthrough
Advanced
Included Libraries
English.aslx
Core.aslx
Templates
Dynamic Templates
Object Types
Javascript
Filter -> show Library Elements
-->
<!-- new (default) game code -->
<asl version="550">
<include ref="English.aslx" />
<include ref="Core.aslx" />
<game name="xxx">
<gameid>xxx</gameid>
<version>1.0</version>
<firstpublished>2014</firstpublished>
</game>
<object name="room">
<inherit name="editor_room" />
<object name="player">
<inherit name="editor_object" />
<inherit name="editor_player" />
</object>
</object>
</asl>
<!-- Libraries -->
// base~general syntax code for libraries, example: <include ref="xxx.aslx" />
// the default libraries: 'English.aslx' and 'Core.aslx'
// your library code~tag lines, such as: Pixie's Spell Library, Pixie's Simple Combat Library, Pixie's Clock Library, Pertex' Combat Library, Chase's Wearables Library, Sora's Stackable Library, etc etc etc
<!-- Templates -->
<!-- Normal Templates -->
// base~general syntax for a normal template
// your normal template code lines
<!--Dynamic Templates -->
// base~general syntax for a dynamic template
// your dynamic template code lines
<!-- Verb Templates -->
// base~general syntax for a verb template
// your dynamic template code lines
<!-- Commands -->
// base~general syntax for a command
// your commands
<!-- Functions -->
// base~general syntax for a function
<!-- Character Functions (example of optional sub-category usage) -->
// your character functions
<!-- Equipment Functions (example of optional sub-category usage) -->
// your equipment functions
<!-- Turnscripts -->
// base~general syntax for a turnscript
// your turnscripts
<!-- Timers -->
// base~general syntax for a timer
// your timers
<!-- Object Types (Types) -->
// base~general syntax for an Object Type
// your Object Types
<!-- Attributes -->
<!-- String Attributes -->
// base~general syntax for a string attribute
// your string attributes
<!-- Boolean Attributes -->
// base~general syntax for a boolean attribute
// your boolean attributes
<!-- Integer Attributes -->
// base~general syntax for an integer attribute
// your integer attributes
<!-- Double Attributes -->
// base~general syntax for a double attribute
// your double attributes
<!-- Object Attributes -->
// base~general syntax for an object attribute
// your object attributes
<!-- Script Attributes -->
// base~general syntax for a script attribute
// your script attributes
<!-- the special 'changed' Script Attributes -->
// base~general syntax for a special 'changed' script attribute
// your 'changed' script attributes
<!-- List Attributes -->
<!-- Stringlist Attributes -->
// base~general syntax for a stringlist attribute
// your stringlist attributes
<!-- Objectlist Attributes -->
// base~general syntax for an objectlist attribute
// your objectlist attributes
<!-- Dictionary Attributes -->
<!-- Stringdictionary Attributes -->
// base~general syntax for a stringdictionary attribute
// your stringdictionary attributes
<!-- Objectdictionary Attributes -->
// base~general syntax for an objectdictionary attribute
// your objectdictionary attributes
<!-- Scriptdictionary Attributes -->
// base~general syntax for a scriptlist attribute
// your scriptlist attributes
<!-- Inherited (Object Types) Attributes -->
// base~general syntax for an inherited attribute
// your inherited attributes
<!-- Objects -->
<!-- Game Object -->
// base~general syntax for the Game Object
// your Game Object code~tag block
<!-- Player Objects -->
// base~general syntax for a Player Object
// your Player Objects code~tag blocks
<!-- Room Objects -->
// base~general syntax for a Room Object
// your Room Objects code~tag blocks
<!-- Other-Object (non-player non-room) Objects -->
// base~general syntax for an Other-Object Object
// your other-object Objects code~tag blocks
<!-- 'Data' Objects -->
// base~general syntax for a 'Data' Object
// your 'data' Objects code~tag blocks
<!-- Tabs (for creating in the GUI~Editor) -->
// base~general syntax for each type of tab
// your tab code~tag blocks
<!-- Combat System -->
// mass of code
<!-- Equipment System -->
// mass of code
<!-- Magic System -->
// mass of code
<!-- Dialogue System -->
// mass of code
<!-- Journal System -->
// mass of code
<!-- Storage System -->
// mass of code
<!-- Character System -->
// mass of code
<!-- 'Pedia' System -->
// mass of code
<!-- 'Help' System -->
// mass of code
<!-- Event System -->
// mass of code
<!-- Item System -->
// mass of code
<!-- (Treasure Chest ~ Item Drop) System -->
// mass of code
<!-- Game Mechanics (equations, formulas, etc) -->
// mass of code
// an example:
<function name="leveling_function"><![CDATA[
if (player.experience >= player.level * 100 + 100) {
player.experience = player.experience - player.level * 100 + 100
player.level = player.level + 1
leveling_function
}
]]></function>
// another example:
player.physical_damage = critical_function (player) * defending_function (player) * player.weapon.physical_damage + player.weapon.physical_damage * player.strength / 100 - defending_function (enemy) * enemy.armor.physical_defense + enemy.armor.physical_defense * enemy.endurance / 100
<!-- Game Design Notes -->
// mass of notes
</library>
enjoy
(and please post your own methods~designs~ideas for organization too (especially the code pros here, if you're willing, hehe).