WolfPassport

XSHIPWARS


Universe Building Manual


Contents

Note: This document only pertains to building universes and not administering or setting them up.

This is the official universe building document. It provides definations and procedural information pertaining to building in ShipWars Universes, however it is not intended to be a Building Tutorial.

Introduction

The ShipWars universe is a highly customizable and powerfully dynamic system which allows a wide variety of space themed imaginations to come to life.

Knowing the capabilities and procedures for building universes is the key to getting the most out of ShipWars universe system.

You will need some knowlage about the specifics of the universe that you are building on. Make sure that you have asked the administrator of your universe for permission and that you are aware of their rules and systems set up.

You should already have some experiance in flying about through ShipWars universes and know the aspects/properties of various objects.

Go to: [ Contents ]
Legend and Terms

These are the official terms, notations, and units used through out the ShipWars universe.

Go to: [ Contents ]
Terms
Economy The industrial/stock/colateral system used in the ShipWars universe.
Object type: ANIMATED An object who is conceptionally interprited to be soly a display for a sequence of graphical frames.
Object type: AREA An object who is conceptionally interprited to define a region. The type of region is defined by the object's loc_type parameter.
Object type: CONTROLLED An object who is conceptionally interprited to forward any requested actions by its controller.
Object type: DYNAMIC An object who is conceptionally interprited to be motionful and/or provide to a certain degree of interactivity with relational objects.
Object type: ELINK An object who is conceptionally interprited to be a referance to another Universe.
Object type: GARBAGE An object who is conceptionally interprited to be absolute void of existance.
Object type: HOME An object who is conceptionally interprited to host the requirements of other objects and to seperate the interactions of objects within its boundaries.
Object type: PLAYER An object who is conceptionally interprited to be an interactive character representation of ultimatly a user (human or program).
Object type: SPHEREWEAPON An object who is conceptionally interprited to be a result of a sphereical energy weapons utilization.
Object type: STREAMWEAPON An object who is conceptionally interprited to be a result of a stream energy weapons utilization.
Object type: STATIC An object who is conceptionally interprited and expected to remain motionless while providing appearal information or notice to its viewers.
Object type: WEAPON An object who is conceptionally interprited to be a result of a projectile weapons utilization.
Object type: WORMHOLE An object who is conceptionally interprited to be a wormhole.
sector A defined phaze of a distance or position measure in the ShipWars Universe. Each sector has a defined cubical shape and a 3 dimenstional left-hand rule whole numbered coordinate value to address it.
Server Command A text-style command that is issued to the ShipWars universe server.
ShipWars Universe The collective conceptual entity which contains all aspects of the ShipWars relational properties.
universe index number A unique identification number used to address an object. The notation for it is a `#' character followed by an integer number (example: #12345).
ShipWars Object A unique and relative property-containing entity. Each ShipWars Object (sometimes reffered to as just am object) can be addressed by its name (if it has one) or its universe index number. Each object contains a set of properties which can be changed to reflect it's purpose or apperance.
Go to: [ Legend and Terms | Contents ]
Notations
am Antimatter.
au Astronomical Unit.
brg Bearing.
hdg Heading.
ms Milliseconds.
OCS Object Create Script.
OPM Object Parameter Models.
rl Real life.
ru XSW Real units (sometimes reffered to as just real units), the internal units used by the ShipWars system.
su Screen units (sometimes reffered to as pixel units).
us Microseconds.
Go to: [ Legend and Terms | Contents ]
Units
1 XSW second = 1 real life second
1 screen unit = 1 pixel (at 1:1 zoom)
1 screen unit = 0.001 XSW real units
1 XSW real unit = 1000 screen units
Astronomical units = XSW real units * au_to_ru coefficient
Go to: [ Legend and Terms | Contents ]
Building Commands

These are server commands which allow you to create, modify, view, and delete objects.

Note: Most commands are restricted by their permission level. To check your permission level type id.

Go to: [ Contents ]
chown <;object>;[=<;owner>;]

Changes ownership of <object>; to <owner>. If <owner> is not given, then ownership will be changed to you. When chowning objects to other players or to yourself, the permission level of the object is taken into consideration.

create <name>=<type>

Creates a new object with the given <name> and <type>. Type can be any of the following:

  • STATIC
  • DYNAMIC
  • CONTROLLED (AI)
  • WEAPON
  • STREAMWEAPON
  • SPHEREWEAPON
  • HOME
  • AREA
  • WORMHOLE
  • ELINK
The type may not be PLAYER, if you want to create a player then you must use the command createplayer. The newly created object will be chowned to you and placed at your current position and attitude.

createplayer <name>=<password>

Creates a new player with the given <name> and <password>. The newly created player will be given the lowest uid and gid and placed at your current position and attitude.

ecoprodcreate <object>=<product_name>

Creates a new economy product <product_name> on <object>.

ecoprodset <object>=<product_name>= <property>=<value>

Sets <product_name>'s <property> to <value> on <object>. Available <property>s are:

  • name - Name of the economy product or token, case insensitive. *
  • buy_price - Cost per 1 unit of product when sold from the proprietor to the customer.
  • sell_price - Cost per 1 unit of product when sold from the customer to the proprietor.
  • amount - Current amount of product available in stock.
  • amount_max - Total amount of product that can be in stock or -1 for no limit on stocking.

* Name of the economy product can be a token string in the format: "$<token>:<value>". For instance a standard economy product for a Photon Torpedo would be $OPM:Photon Torpedo, case insensitive.

ecoproddelete <object>=<product_name>

Deletes economy product <product_name> on <object>.

examine <object>

Prints a listing of properties of <object> provided that your permission level allows you to examine it.

find <search_string>[=<type>]

Searches the universe for an object who's name is partially or entirly matching <search_string> (case sensitive). If <type> is given, then search results will be limited to that type of object. You can also use wild cards (* and ? characters) in the <search_string>.

recycle <object>

Removes <object> from the universe and places it into the recycled objects buffer provided that you own <object> or that your permission level allows you recycle it. If <object> is of type player, then you must use the command recycleplayer to recycle it.

recycleplayer <player>

Removes <player> from the universe and places it into the recycled objects buffer provided that you are allowed to recycle player objects.

set <object>=<property>:<value>

Sets <property> to <value> on <object> provided that you own <object> and/or that your permission level allows you to. See Properties Index for a list of available properties.

set <object>=<opm_name>

Models <object> to the parameters specified in <opm_name>. The name, password, UID, GID, position and scores for <object> will be preserved (not changed).

unrecycle <search_string>

Searches the recycled objects buffer for an object who's name partially or entirly matches <search_string>. If a match is found, then that object will be removed from the recycled objects buffer and placed back into the universe. Warning: Most servers have a limit on how many objects can be placed in the recycled objects buffer. As more objects get recycled, old objects in the buffer will be purged. This command can recover player objects which were recycled using recycleplayer.

Go to: [ Building Commands | Contents ]
Object Parameter Models

These are objects listed in a seperate buffer in the unviverse and are never interacted directly with regular objects.

The Object Parameter Models (abbriviated OPM) are used to model any given object to properties defined on the OPM. Typically OPM's are used just after creation of a new object to quickly model it into the object of standard expectancy.

The OPM's are defined for a universe in the .opm file used by the server.

Each OPM has a unique name that is to be used when addressing it.

To manually copy an OPM's property values to a normal object, use the command set.

Go to: [ Contents ]
Object Create Scripts

Instructs a patterned and recursive creation of objects per use of.

Object create scripts (abbriviated OCS) are most noticably used in the creation of weapon objects.

The OCS's are defined for a universe in the .ocs file used by the server.

Each OCS has a unique code number that is to be used when addressing it.

Go to: [ Contents ]
Properties Index

Properties attribute to various aspects of each object.

Note that these property listings are sorted by precidence. The property in question is to be assummed to affect all types of objects under all conditions except otherwise noted.

Go to: [ Contents ]
Properties: Core
name Name of object. Case sensitive, may contain spaces.
password Crypted password for player objects. Each character may contain any value except `\0'.
empire Special code string determining the empire (or `side') of the object. Case insensitive.
elink Specifies the external link (a URL) for an ELINK object (case sensitive).
last_updated Time of day in milliseconds object was last updated. This property is maintained internally by the program.
type Specifies the type of object, valid values are:
  • STATIC
  • DYNAMIC
  • CONTROLLED (AI)
  • PLAYER
  • WEAPON
  • STREAMWEAPON
  • SPHEREWEAPON
  • HOME
  • AREA
  • ANIMATED
  • WORMHOLE
  • ELINK
loc_type Specifies the location type (or `enviroment') in which the object is located, valid values are:
  • SPACE (In normal space)
  • NOTIFY (Not supported yet)
  • NEBULA
For objects of type AREA, this specifies what type of area it is.
imageset Specifies the image/video/graphics that will represent the object. Value must be an integer corresponding to a defined image/video/graphics number code on the client program. Note: In the future, this property name may be changed to model.
owner Owner of the object, can be -1 for none. The owner `should' be a player object.
size Specifies the size of the object in screen units. Cannot be negative.
locked_on Specifies the subject object that the object is scanning/locked on to. Can be -1 for `unlocked'.
intercepting_object Specifies the destination object that this object is intercepting. Can be -1 for none.
scanner_range Specifies the scanner range of the object in real units. Cannot be negative.
sect_x, sect_y, sect_z Specifies the sector in which the object is located at. Can be any whole long integer number.
x, y, z Specifies the coordinates that the object is located within the sector that it is in. Can be any decimal number within the bounds of the defined sector size.
heading, pitch, bank Specifies the attitude of the object. Can be any radian value from 0 to 2PI.
velocity Specifies the current speed (not velocity) of the object in real units per cycle. <-- $COMEBACK -->
velocity_max Specifies the maximum speed (not velocity) of the object in real units per cycle. <-- $COMEBACK -->
velocity_heading, velocity_pitch, velocity_bank Specifies attitude of the object's velocity vector. Can be any radian value from 0 to 2PI.
thrust_rev_state Specifies the thrust reverse state of the object. Can be 0 or 1.
thrust_dir Specifies the direction the thrust is being applied around the Z axis relative to the object. Can be any radian value from 0 to 2PI.
thrust Current amount of thrust being applied in real unit force per cycle.
thrust_power The maximum power of thrust when throttle is at 1.0 in real unit force per cycle.
throttle Specifies the throttle value of the object. Can be any decimal value from 0.0 to 1.0.
turnrate Specifies the Z axis turn rate of the object in radians per cycle.
lighting Specifies the amount of lighting being active on the object, the amount of lights and their configuration is determined by the imageset of this object. Can be any or'ed mask of the following:
  • VECTOR (Vector lights.)
  • STROBE (Strobe lights.)
  • LUMINATION (`Head lights'.)
hp Current amount of hit points (or `hull integraty'). Can be any positive unitless decimal value less or equal to hp_max. A value of 0 will make this object non-existant.
hp_max Maximum amount of hit points (or `hull integraty'). Can be any positive non-zero unitless decimal value.
power Current amount of total power on the object. Can be any positive unitless decimal value.
power_max Maximum amount of total power on the object. Can be any positive non-zero unitless decimal value.
power_purity Specifies the purity of power, determining how much power is actually usable per unit of expendature. If power_purity is set to 0.9, then 20 units of power used will yield 18 units of actual usable power.
core_efficency Specifies the rate at which `fusion' regenerates power on the object in power units per cycle.
antimatter Current amount of antimatter. For type HOME objects, does not reflect amount of antimatter as an economy product.
antimatter_max Maximum capacity of antimatter. For type HOME objects, does not reflect maximum capacity of antimatter as an economy product.
shield_state Specifies the shield state, can be any of the following integer values:
  • NONE
  • DOWN
  • UP
shield_frequency Specifies the shield modulation frequency as a decimal in kHz.
selected_weapon Specifies the selected weapon as an intiger. Can be -1 for no weapon selected.
total_weapons Specifies the total number of weapons on the object. This value also specifies the number of subgroups in weapon/
birth_time Specifies the time of day in milliseconds the object was created. This value is important for weapon objects and other objects that have short life spans.
lifespan Specifies the interval in milliseconds of the life span of the object. Can be 0 or -1 to specify that it `never dies'.
cloak_state Specifies the cloak state, can be any of the following integer values:
  • NONE
  • DOWN
  • UP
cloak_strength Specifies the cloak strength when cloak_state is `up'. This value subtracts from visibility. Can be any decimal value from 0.0 to 1.0.
visibility Specifies the normal visibility of the object. Can be any decimal value from 0.0 to 1.0. Values less than 0.25 make it `visually invisible' and 0.0 make it invisible on scanners.
cur_visibility Specifies the current visibility of the object. Can be any decimal value from 0.0 to 1.0. Values less than 0.25 make it `visually invisible' and 0.0 make it invisible on scanners.
shield_visibility Specifies the current visibility of the object's shields. Can be any decimal value from 0.0 to 1.0.
damage_control Specifies the damage control state of the object, can be any of the following integer values:
  • ON
  • OFF
com_channel Specifies the object's opened com channel, can be any integer value in multiples of 100. A set value of 31000 would be interprited and displayed as 310.00.
ai_flags Specifies the object's AI flags (for CONTROLLED type objects), available values are:
  • FOLLOW_FRIEND
  • FOLLOW_UNKNOWN
  • FOLLOW_HOSTILE
  • FIRE_FRIEND
  • FIRE_UNKNOWN
  • FIRE_HOSTILE
animation/ Animation group.
eco/ Economy group, not all objects have this group.
permission/ Permission group.
scores/ Scores group, not all objects have this group.
weapon/ Weapons group, not all objects have this group. total_weapons will indicate if this group exists and how many subgroups it contains.
Go to: [ Properties | Contents ]
Properties: Animation

These properties are located in the animation/ group, you will need to prefix animation/ to the parameter when addressing it.

interval Specifies the milliseconds interval between frames.
last_interval Marks the last time frame was incremented at time of day in milliseconds.
current_frame Specifies the current frame number. It must be a value from 0 to total_frames - 1.
total_frames Specifies the total number of frames.
cycle_count Specifies the number of cycles the animation has repeated.
cycle_times Specifies the total cycles the animation is to repeat. Can be -1 for infinate repeats. The object will be recycled if this value is any positive number and cycle_count is equal or greater than this value.
Go to: [ Properties | Contents ]
Properties: Economy

These properties are located in the eco/ group, you will need to prefix eco/ to the parameter when addressing it.

flags Specifies the economy flags for the object. Can be any or'ed mask of the following:
  • OPEN Open for business.
  • BUY_OK Allow customers to buy from object.
  • SELL_OK Allow customers to sell to object.
  • TRADE_OK Allow customers to trade with object.
  • INTRODUCE_OK Can create stuff from thin air..
tax_general, tax_friend, tax_hostile Specifies the tax of various exchanges with customers of various relationships. Can be any decimal value from 1.0 to infinity. A value of 1.2 would be a 20% tax.
product/ Economy products group. total_products will indicate if this group exists and how many subgroups it contains.
total_products Specifies the total number of economy products. Can be any non-negative integer value.

Economy Products

These properties can not be addressed and must be set with the economy products set commands.

name Specifies the name of the product. If the product specifies a weapon then the name must be in the format $OPM:<opm_name>, where <opm_name> is replaced with the Object Parameter Models name for that weapon. Case insensitive.
sell_price Specifies the amount that would be paied for when the customer sells per 1.0 unit product to the proprietor. Can be any non-negative decimal value.
buy_price Specifies the amount that would be charged for when the customer buys per 1.0 unit product from the proprietor. Can be any non-negative decimal value.
amount Specifies the current amount of the product in stock. Can be any non-negative decimal value.
amount_max Specifies the maximum capacity of the product. Can be any decimal value or -1 for unlimited capacity.
Go to: [ Properties | Contents ]
Properties: Permission

These properties are located in the permission/ group, you will need to prefix permission/ to the parameter when addressing it.

uid Specifies the user permission ID of the object. Can be any positive intiger value, lower values mean higher permission.
gid Specifies the group permission ID of the object. Can be any positive intiger value, lower values mean higher permission.
Go to: [ Properties | Contents ]
Properties: Scores

These properties are located in the score/ group, you will need to prefix score/ to the parameter when addressing it.

credits Specifies the current number of credits (money). Can be any positive decimal value.
rmu Specifies the current amount of raw materials. Can be any positive decimal value.
rmu_max Specifies the maximum capacity of raw materials. Can be any positive decimal value.
damage_given Specifies the total amount of damage given. Can be any positive decimal value.
damage_recieved Specifies the total amount of damage recieved. Can be any positive decimal value.
kills Specifies the total number of objects destroyed. Can be any positive integer value.
Go to: [ Properties | Contents ]
Properties: Weapon

These properties are located in subgroups which have numerical values representing the weapon index number which are then in the weapon/ group, you will need to prefix weapon/#/ to the parameter when addressing it, where # is the weapon index number.

flags Specifies the flags for this weapon, available flags are:
  • FIXED - No rotating aiming.
  • NOFIRESOUND - Do not play sound when fired.
ocs_code Specifies the object create script that is to be used as the creating recursion pattern for each use of this weapon. The object create script codes may vary from universe to universe.
emission_type Specifies the emission type of the weapon, value values are:
  • STREAM
  • PROJECTILE
  • PULSE
  • amount Specifies current amount of the weapon if it is of type PROJECTILE. Value must be a positive integer.
    max Specifies maximum amount of the weapon if it is of type PROJECTILE. Value must be a positive integer.
    power Specifies power of the per created weapon once it's `fired'. This is the value of the weapon's damage to an object it hits. Can be any non negative decimal value.
    range Specifies the range of STREAM weapons in screen units. Can be any non-negative integer value.
    create_power Specifies power needed to create per weapon to `fire' it. Can be any non negative decimal value.
    delay Specifies the mandatory time delay between firing of the weapon in milliseconds. Can be any non negative interger value greater than 1.
    last_used Records the time of day in milliseconds that the weapon was last fired. Can be any non negative interger value.
    fire_sound_code Specifies the sound scheme code on the client side to be played when this weapon is fired. Can be 0 for play default sound for this type of weapon (takes emission type into account).
    Go to: [ Properties | Contents ]