Keran's MUX/MUSH Weather and Time Code Package Frequently Asked Questions Current Version: 3.0 1. What servers does the weather and time code run on? TinyMUX 1.4 or 1.5; it probably runs on earlier MUX versions, but the current release hasn't been tested on them. There are ports to TinyMUSH 2.2.2 and PennMUSH 1.6.10. The code will execute on TinyMUX 1.5. However, it is not recommended that you run it on patch level 3 (the current patch level) or lower, because there seem to be severe memory leaks in 1.5 and this code apparently invokes them repeatedly. Keep a close eye on your process size if you run this code on 1.5; your process size can grow without bound and crash your server, a very nasty thing to do. There is no known problem running this code in 1.4; the process size is expected to remain stable indefinitely with it running if there is no other load on the MUX. In order for this code to work correctly on the Windows port of PennMUSH, one must set 'prevent objects from evaluating ufuns on more privileged objects' to 'no' in the mush.cnf file. 2. Will you port it to ...? I'm not going to port it to any non-MUSH-family servers, but you can if you like. I expect to port to TinyMUSH 3.0 when it's released. 3. What are the features of the weather and time code? Time functions for determining the year, month, season, time of day, tide, and moon phase; A weathermaker that determines a different weather type every day; Day and night length that vary by season and can be adjusted for approximate latitude; A weather description bank with descriptions that vary by time of day and season; An outdoor parent room that makes it easy to write descriptions that vary by time of day, season, weather, and the visibility of the moon; Configurable time compression ratios, in two different modes. You can accelerate all time with clock compression, or skip days with calendar compression. You can run at 4:1, 3:1, 2:1, 3:2, or 1:1 by changing a few settings; Simple adjustable weather modelling; An optional quasi-Gregorian calendar in addition to the native calendar; Clock code that can send out messages to specified receivers at given times, such as sunrise, moonset, other time of day transitions, or at specific hours. An auxiliary bank of descriptions varying by season, time of day, and weather, geared to surroundings with a lot of leafy trees, to illustrate how to make auxiliary desc banks for different environments; Regional weather, and a sample slave weather station. 4. What's planned for the next version? The following are definite: The moon is going to get fixed so that its rise and set times are appropriate to its phase. The tides will be synchronized with the moon. I'm also thinking of adding the ability to trigger storms and other transient local events. 5. What environments can it model? Almost any environment with earthlike weather you feel like writing description banks for. The supplied description banks are for a moist northern hemisphere mid-latitude temperate climate; the short descriptions on the Weathermaker, and the general weather descriptions on the Weather Long Description bank, describe atmospheric conditions in such an environment. You can rewrite them so they suit warmer or colder climates. There is also one auxiliary description bank supplied, the Tree Weather Description Bank, which gives descriptions of a temperate environment with a lot of deciduous trees; the descriptions vary by day, night, season, and weathertype. It is simple, although laborious, to write description banks for cities, deserts, grassland, seacoasts, etc. You can also change the frequency with which different weathertypes are selected by the Weathermaker at various seasons. For example, the default setting produces a lot of fog in summer because it's for an island. It would be comparatively simple to reduce the amount of summer fog but increase the frequency of snow in winter for an upland setting; this is just a question of varying the number of times a given weathertype appears in the selection lists on the Weathermaker. You will have to change the order of the Gregorian months on the Time Functions object if you're using the quasi-Gregorian calendar for a setting in the southern hemisphere. 6. Can I use the weather code without the timing code? Yes, if you supply other timing code; it is not recommended that you attempt this unless you're a competent coder. In order to use foreign timing code and preserve most of the functionality of this weather system, the timing code must capable of the following: It must, at the very least, distinguish between day and night; preferably, it distinguishes between day, night, dawn, and dusk. It must distinguish the seasons spring, summer, autumn, and winter. In order for the Outdoor Parent Room to work as it does in this system, there must be a function that tells whether the moon is up or not. There must be a clock capable of triggering the Weathermaker at dawn. 7. Shouldn't the moon be on a 28-day cycle, not a 30-day cycle? No. It's the sidereal month, the motion of the moon against the stars, that's 27.32 days; the synodic month, the time between like conjunctions, which determines the phase of the moon, is 29.53 days, rounded to 30. 8. Can I add moons? Very likely, although there is no utility intended to do this and it hasn't been tested. It is not recommended that a non-coder attempt this. It seems that it ought to be possible to duplicate and rename the moon functions for other moons, changing the length of the moon cycle for extra moons. 9. Can I make the tides diurnal? It hasn't been tested, and it is not recommended that a non-coder attempt this, but you should be able to do this by revising the code on the time functions object that sets the length of the tide cycle. It divides the length of the moon cycle by 2 to set the length of the tide cycle; make it identical instead. 10. Can I set up weather that varies from region to region? Yes. You can even track the probable course of storms from region to region. A sample slave weather station is provided, along with documentation for how to set up different weather regions. It isn't recommended that you attempt this unless you are reasonably competent with code; being able to read and understand some of the code is a necessity for the setup. 11. Can I set up different time zones? Probably, although it would take separate copies of the code suite for each time zone, with a different value for time-begins set on each copy of the Time Functions object. It hasn't been tested. 12. Can I leave any of these 14 large objects out? Yes. If you don't want regional weather, you don't need the Slave Weather Station. If you don't have any use for descriptions of an environment with a lot of broadleafed trees, leave out the Tree Weather Descriptions Bank. If you don't want to use the global time of day emits, you can omit the Emits bank, and if you don't want to use the outdoor parent room, you can leave that out. If neither you nor your players are going to do any serious tinkering with time code, you might leave out the Uncommon function help, although this is not recommended. 13. What time compression ratios can I use it at? In calendar compression mode, 4:1, 3:1, 2:1, and 1:1. In clock compression mode, it's been tested at 4:1, 3:1, 2:1, 1:1, and 3:2. It is expected to run at any clock compression ratio involving small whole numbers by which 3600 can be evenly divided, e.g, it should run at 5:2 and 1:2, but it has not been tested at all such ratios. 14. I found a bug, typo, etc. What do I do about it? Email me at keranset@mail1.nai.net and tell me what happened, what ratio you were running at, and what modifications you've made. I usually fix errors I can reproduce. I recommend that if you install this code, you send me your email address so I can put you on the list of people I automatically send bug fixes to. 15. Where do I get the code? ftp://keranset.telmaron.com/keranset/. Keran