Keran's MUX/MUSH Weather and Time Code Package Frequently Asked Questions

Information on the Keran Weather systems.

Author: Keran
Category: Weather Systems


Copy and paste the below code into a compatible MUSH or MUX.

MUSHCode for Keran's MUX/MUSH Weather and Time Code Package Frequently Asked Questions

Keran's MUX/MUSH Weather and Time Code Package
Frequently Asked Questions
Current MUX, PennMUSH, and TinyMUSH-2.2 Versions: 4.0 beta

I'm going to be retiring from MUSHing at the end of
March 2000, at which time this code will become unsupported.
That means I won't be around to help fix broken installations
or to maintain the code. It also means I won't be releasing
the planned version 5.0. Before the end of March 2000, I'll
release a version of 4.0 for TinyMUSH 3, assuming the MUX
version doesn't work. (As of TM3b19, the MUX version nearly
works, but TM3 doesn't accept 32-character attribute names
and MUX 1.6 does. There are a couple of 32-character attribute
names in the MUX version.)

The 4.0 versions will be available for download from my Web page.

I'm retiring from MUSHing because my interest in it depends
on my interest in roleplaying, which has wholly given way
to a long-dormant interest in writing, somewhat to my
surprise. I'm now writing an ebook review column instead.

1. What servers does the weather and time code run on?

TinyMUX 1.4 and 1.6; it probably runs on earlier MUX versions,
but the current release hasn't been tested on them.

The code will execute on TinyMUX 1.5, which is a beta release,
but there are memory leaks in it, which this code appears
to invoke; it should not be run on 1.5 without very frequent
shutdowns, as otherwise the memory leaks cause your process
size to grow without bounds and eventually can crash your

4.0 has been ported to PennMUSH 1.7.2 and TinyMUSH 2.2.2.
It will be ported to TinyMUSH 3.0 before the end of March 2000.

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 (assuming it needs porting; it may well not).

I have resigned my bit on the 4.0 PennMUSH site, and there is
some possibility that the yet-unwritten version 5.0 will only be
released for TinyMUSH 3.0. I may port to Penn if someone
offers a port site for it, and if future changes to PennMUSH
are not sufficiently annoying to persuade me to abandon the
platform. I have disliked many recent changes.

3. What are the features of the weather and time code?

The 3.0 features:

-- 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
-- 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
-- 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
-- Regional weather, and a sample slave weather station.

4.0 also has:

-- A collection of outdoor parent rooms that make it easy to write
descriptions that vary by time of day, season, weather, and the
visibility of the moon, in different styles;
-- Indoor parent rooms for writing descriptions that vary with lighting
conditions and the visual capability of the viewer;
-- A parent room hierarchy that means you can write your own parent
rooms and easily have them recognized as the correct type of room;
-- An option for taking the date from the system clock in 1:1 time;
Clock code that can send out messages to specified receivers every
hour, every half-hour, or every quarter hour.
-- A reasonably realistic moon;
-- Diurnal or semi-diurnal tides synchronized with the moon;
-- A Storm Maker that can be used to do global, area, and room type emits
to allow the production of storms, earthquakes, blackouts, etc.
-- A test room for ensuring that the whole thing works.
-- Even more confusing +help. ("Impossible!" cry the skeptics. "Your
code is easier to read than your +help!")
-- OK, seriously, reorganized +help. I hope it's clearer.

4. What's planned for the next version?

I'm no longer planning to release another version.

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 strongly not recommended
that you attempt this unless you're a competent coder; the timing
is the guts of the system. 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 rooms 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. Can I add moons?

Yes. There are instructions for doing it in the configuration
section of the +help.

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

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

10. Can I leave any of these 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 Storm Maker or the parent rooms, you can leave them out. If
you don't want a moon, you can leave the Moon and Tide object out,
and if you don't want to test the installation, you can leave the
Test Room out. You can also get rid of the test room after you do
test it.

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. Where do I get the code?