Tracker Robot User Manual
General information
Introduction:
Tracker is a very powerful AW robot with heavy MySQL database usage. With the TrackMap utility you can have visual interpretation where your visitors go in your world, you can create movement playbacks for the Crowd bot.
Tracker is meant to communicate only with its caretakers (with the
exception of the Elevator Control) so the average user will not see it
in operation.
The robot's primary purpose is to keep track all visitors within a
world. It helps GateKeepers to identify visitors, handle an IPWatch
list and provides means to get the most out of your world. It has
several useful plug-ins to handle separate tasks.
The bot is running in the background, all interaction with it can be
done online through chat commands. Base version is running under Linux
OS but there is a small Windows wrapper to make it available for those
unlucky users who stuck with Windows.
This manual assumes you have a fair understanding of the MySQL database commands/client and the AW technology itself.
The robot currently is available for both the 3.6 AW and the 4.1 AW
Universe versions too. TrackerBot is a commercial application, please
contact me about pricing.
Requirements:
The bot requires access to your world server and to a MySQL server (Version 5 preferred).
For the best performance, the bot should run on the same machine your
world is running and MySQL server should run on the same machine too.
Of course it is not a prerequisite for running the bot but expect heavy
network usage.
Be prepared for a big storage usage when the bot is running for a long
time with several visitors. The database could grow to tens of
gigabytes!
Core Operation
The bot gets all necessary parameters from its ini file.
New feature: The ini file can contain only the parameters of a MySQL table which contains all the configuration!
If the program finds the SqlConfiguration=1 in the ini file's
[IniConfig] section, it will read first all values from the ini file,
then overrrides it with the values read from the MySQL table and
finally updates the MySQL table with the new values. In case the
corresponding table doesn't exists, the program tries to create the
table for you.
Fills it's
internal tables(Caretaker list, Language tables, Visitors and IPWatch list) from the MySQL database then logs in into the world (the
bot can be invisible but in this case you should give CT rights to the
owner's citizen number in that world).
Every time starting the bot will try to create the core MySQL tables
if they don't exist and adds/modifies the bot owner to the caretaker
list with full rights.
It will monitor all visitors coming and going and their movements
inworld and record it to the Location database. Movement records can be
reduced with the built-in calculation method, which only records the
beginning and the end of a straight-line move.
You can assign different caretakers for different rights, so you can
have a GateKeeper who deals with IP watching or someone who just
receives new visitors entry message:
RightToBotControl
- This caretaker can create/modify
caretakers, he has full bot controlling rights.
RightToIPReport - Those caretakers can edit the IPWatch list and will receive the IPWatch warning messages.
RightToVisitorReport
- They can receive notification of the entering/exiting visitors
(their name and preferred language)
RightToReceiveIP - Those caretakers can receive the IP address of the visitors entering.
RightToBadWord -
Those caretakers can add/modify the bad words table and receive a
message if someone used them
Caretakers can customize the appearance of the robot messages with the console command for easy view.
Each visitor entry and exit can be reported to caretakers who have rights to receive them if they sign
up for those reports.
The bot performs a reverse lookup on the
visitor's IP address which can help to locate him/her on the globe and
tries to determine the default language the visitor is using based on
his top level domain.
Helper Andras Lang=HU
Those caretakers who have IPWatch rights can manipulate the IPWatch
database through commands. They can add new IP address with some
meaningful description and username to the table. When using multiple
Tracker Bots with a common IPWatch database, consider using the real-time update flag to ensure all bots are in synch or be sure you reload the table when one bot modifies it. Each entry is matched with the IPWatch list and if match found, a
warning is issued to all caretakers inworld about the event:
Helper IPWatch: Tester IP=194.152.129.209 oldname=Andras Msg=frequent name changes!
All chat can be logged on demand to a
separate log file called tracker.chat.log. Robot messages/errors/etc.
is constantly logged to the console (Linux version) or to the
tracker.log file together with the memo box (Windows version).
Caretakers can get all current visitors' location by issuing the
/vis command.
You should grant the following privileges on the MySQL database for the robot: with a strong password
+-------------------------+--------------------------+-------------------------------------------------------+
|
Privilege
|
Context
|
Comment
|
+-------------------------+--------------------------+-------------------------------------------------------+
|
Alter
|
Tables
| To alter the
table
|
|
Create
| Databases,Tables,Indexes | To create new databases and
tables
|
|
Insert
|
Tables
| To insert data into
tables
|
|
Select
|
Tables
| To retrieve rows from
table
|
|
Update
|
Tables
| To update existing
rows
|
+-------------------------+--------------------------+-------------------------------------------------------+
I am fairly lazy with granting the privileges:
grant all privileges on IPWatch.* to 'tracker'@'localhost' identified by 'MystrongPassword'; flush privileges;
Plug-in descriptions
Portal Control
The Portal Control allows having Customers for detailed statistics.
Each customer can own Booths, signs, URLs, etc inworld. The bot keep
track of visitors in the customer's locations, number of URL/Object
clicked, time spent within a booth. Once you set up the Customer
database, you can assign any objects to the customer, specify its
category (booth, sign, URL, etc.) by the portal control commands.
Customers can have advertising, which changes to another one when a
visitor clicks on it, or just change them periodically with the given
time frame. They can have links pointing to their web pages and the bot
can push those to the visitor's 3D window or to the web window together
with the URL whispered to them. You can rent those booths to the
customer and charge by the visit frequency/time spent in their
location, etc. The bot's commands and responses give you full control
during the development phase of the Portal and during its operation.
Current implementation is based on a 13 story, 4 towers building but it
can be changed by explicit order. For making the floor references
simpler, the bot uses a floor cross-reference table.
There are two major object concept within the implementation:
Booths, rooms, suites within the building
Furnishing objects that can reside inside a booth or anywhere inworld.
When you prebuild the world (preferably with a single ground
object), you can build the rooms/suites within the given environment.
Each room/booth/suite should have an entry in the BoothLocation database, which describes it location and size. Those values provide the basis of the "Visiting" status of a booth. Furnishing objects
can be inside the booth or somewhere else and they are assigned to a
customer to keep track of the density the given customer should be
charged and to provide the basis of calculating clicks(hits) or
submitting advertisements. The later ones are residing in a separate table with their display duration and click actions.
The Customer table should be filled by some sign-in web page where the
customer is able to retrieve the statistics of the visits too. This
exercise is left to you, I don't have a working example.
There are several commands helps you
build the area and assign them to customers. Almost all action is based
on simply selecting an object (right click) but not changing it. You
can preset which customer should own the object then with right
clicking (or multiple selection) the bot will assign those objects to
the preselected customer. Few commands operate on the "last selected"
object.
MySQL savvy builders could issue complete SQL queries through
the whisper box on the Portal Database. Don't put the terminating ";"
onto your query though! Once if the builder is in query mode, all
whispers starting with a letter "q" will be passed to the MySQL server
with that letter stripped off. Be careful, only let users with good
MySQL knowledge to use this feature (you can prevent the use by not
giving RightToQuery to them).
Elevator Control
With the Elevator Control, you can have multi-story buildings with
elevators and your visitors can go there by telling the bot their
desired destination. E.g. Floor 3 will bring them to the nearest 3rd
floor elevator door. Floor 7 n will teleport the visitor to the
North Tower 7th floor.
The Elevator control has a multi-language communication database where
you can have the messages/commands stored in several languages. The first entrance based on his Top Level Domain
automatically determines the visitor’s language. Each visitor can change his language to his
preferred one by issuing the LANG command to the bot. Current
implementation uses 5 different languages: English, Dutch, German,
French and Hungarian.
The Elevator table contains all messages
in all languages you support and the actual addresses of the given
location for teleporting the visitor there. E.g.:
| Floor | Tower |
Message
| X | Y | Z
| YAW | WARP | Lang |
+-------+-------+-------------------------------------------------+------+------+-------+-----+------+------+
| -1 |
N | Subway station, North Tower at your service
%s! | 3700 | 4550 | 4150 | 180 | 0 |
EN |
The Command table contains all
commands the bot can receive from any user and act on behalf of it. You
should have all commands/messages in all supported language defined
otherwise the bot will use the English default. Commands implemented so
far:
| Command | Lng | Parameter | Action |
+-----------+-----+-----------+--------+
|
help | 4
|
| 1 | Whispers detailed help message to
the user
|
lang | 4 |
%s
| 2 | Language selection
|
map | 3
|
| 3 | Displays the URL of the world's map.
| floor
| 5 | %d%s
| 4 | Teleports to the given floor
| ground | 6 | %s | 5 | Teleports to the ground floor
| subway | 6 | %s | 6 | Teleports to the subway level
|
top | 3 |
%s
| 7 | Teleports to the top floor
| quiet
| 5
|
| 8 | No more URLs are posted to him
| verbose
| 4
|
| 9 | URL posting enabled
Entry Control
Entry Control gives you the ability to expand the "Entry Rights" list
within the world options to unlimited number of visitors. The list can
be defined in two separate method (selectable by the ini file's
EntryListRanges parameter).
The EntryRange mode uses the visitor's
citizen number or the privilege number to determine if this visitor is
allowed to enter the world. The bot uses the EntryDatabase's Entryrights
table to retrieve the right for the visitor. If the visitor has no
right to enter to this world, the bot tries to determine if it has any
world within its rights where the user is allowed to go and will
teleport him there. If there is no such world then the visitor is
teleported to "Nowhere" world. If the Entryrights table doesn't exist
or empty, the bot will create one for you and puts the bot's owner
citizen number there to grant entry for the owner.
The Classified method uses a vast database
where each citizen number has an assigned classification to determine
their entry rights. This later feature can be used for creating closed
party or invitation only visits. Entry rights should be inserted into the Citizen table.
The teleportation puts the visitor in to a slight random location around the desired address, so they won't end up on top of each other.
In both method you can add/delete citizen numbers/ranges to the database.
Weather Control
With Weather Control, you can have a Weather Pattern played back in
your world anytime. The pattern contains all environment related
variables (water level, fog, light direction, color, etc) and
optionally you can even issue Immigration Officer messages during the
playback. With the /recordweather
command you can create your own record pattern while inworld. Just
start the weather recording with a unique pattern name and change the
world options settings. The bot will put another entry to the WeatherSequence table and will record all changes together with the time duration into the WeatherAction
table. Issuing another record command stops the recording and the new
pattern is ready to play back. If you want to manually/programmatically
edit/create a pattern: those fields you leave NULL in the database will
not be changed during playback. You can specify a single weather pattern
to be played back regularly in the ini file. The weather patterns can be interrupted/restarted by commands too.
The bot will create the necessary tables in the weather database if they don't exist.
Excellent example for this feature is the sinking of the Titanic in AWEurope's Titanic world.
Exhibit Control
Exhibit Control gives you an excellent tool to create an exhibit where
you can use prebuilt booths for placing them into a predefined spot.
The prebuilt booth has special designators for those models that can
be changed/assigned by the exhibitor. Your exhibitor, who can have all booths visible
on a web page, can do the booth selections and he
can fill in all the signs, pictures, URLs for his exhibit. The bot (and
the corresponding web pages) simplifies the booth building and helps
you creating an outstanding exhibition.
If you use together with the Portal Control feature, you can keep track of the individual exhibitor's hits.
Your customers (exhibitors) will use a web driven interface where they can select a booth location, pick which booth they want there and they can fill out the signs/textures/URL
etc fields of the pre built booth. This web interface will create the
necessary property data in the MySQL database. When you decide your
customer finalized his request, you can command the bot to build those
exhibit spots automatically for you.
First you have to create the exhibit world and place the booth
designator object on those spots you want to have the bot to build
booths. When you are satisfied with the layout, create a map of it with
the MapView utility.
Next phase is you create the booth templates for the exhibition.
Build the booth template on a clear area in your world. Assign special
action commands to those objects, which are customizable by the customers
(logo textures, URLs, streaming media, etc.). When you are happy with a
template, command the bot to query and save that template to the database.
Class Control
Class control can be used to hold presentation, keep your visitors off
the stage, etc. You have to build your auditorium for the class: a
stage where the speaker and his invited listener can go and chairs
where the visitors can sit.
When a visitor clicks on a chair, the chair turns into invisible (so
others can't click on the same chair), the visitor is teleported to
that chair, his/her avatar is changed to a predefined new avatar (e.g.
a sitting avatar) and he can be summoned to the stage by the
speaker. The visitor can leave his chair if shift is enabled in your
world but there is another control option within the bot that pushes
the visitor back if he is not allowed to leave the chair. This feature can be changed while the bot is running. The visitor
can leave his seat by clicking to a predefined Gesture button in his
browser. In case the visitor leaves his chair, his original avatar is
assigned back to him and he is teleported back to the location he came
from. Only those visitors will be seated, whose avatar number is in the
ini file list.
The Teacher/Speaker can summon a sitting avatar to the stage by
clicking on the sitting avatar. The bot will teleport the avatar to the
stage. The speaker can send him back to his seat by clicking on the
avatar on the stage again.
Chat parsing / bad words handling
Chat parsing is implemented as a regular expression tool to punish those who are using bad words inworld.
The operator can add new regular expressions to the bad words table
with a severity value. The program maintains the severity level for
each visitors and adds the severity value when a visitor's chat has a
match for any of the regular expressions in the bad words table. When a
user reaches an operator defined maximum severity level, the user can
be teleported to a so called quarantine where he can't move within the
world for the duration of the quarantine time.
The bot uses the IPWatch Database to store/retrieve the bad word lists. The database has two tables for this purpose:
- dbprefix_badwords
- which holds the regular expression of the bad chat, the severity of
this offense and a description to explain why this expression is bad.
- dbprefix_quarantine - which holds the severity threshold, the quarantine duration, the world name and the quarantine coordinates.
Configuration:
The bot gets all of its parameter from the ini file. Some data is
retrieved from the MySQL database (like user's entry rights,
preferences, CareTaker list, etc.).
Initial configuration from MySQL table
[IniConfig]
SqlConfiguration=1
When this flag is selected, all configuration settings are retrieved
from the database
SqlConfigurationServer=localhost
SqlConfigurationUser=tracker
SqlConfigurationPassword=xxxxxxxx
SqlConfigurationDatabase=Iniconfig
SqlConfigurationDatabaseDBPrefix=
MySQL database parameters.
[MySQL]
General Tracker activities:
VisitorsServer=localhost
VisitorsUser=tracker
VisitorsPassword=xxxxxxxx
VisitorsDatabase=Track_Icotrade
VisitorsDatabaseDBPrefix=
I use one common database in several worlds for watching particular IPs:
IPWatchServer=localhost
IPWatchUser=tracker
IPWatchPassword=xxxxxxxx
IPWatchDatabase=Universe_IPWatch
IPWatchDatabaseDBPrefix=
Portal and Exhibit control database:
PortalServer=localhost
PortalUser=tracker
PortalPassword=xxxxxxxx
PortalDatabase=IcotradePortal
PortalDatabaseDBPrefix=
Entry control database:
EntryServer=localhost
EntryUser=tracker
EntryPassword=xxxxxxxx
EntryDatabase=Entry_DB
EntryDatabaseDBPrefix=ico_
Weather control database which contains all the "weather" related values to simulate the weather:
WeatherServer=localhost
WeatherUser=tracker
WeatherPassword=xxxxxxxx
WeatherDatabase=Weather_DB
WeatherDatabaseDBPrefix=
Robot credentials, etc:
[Bot]
license key issued for you
LicenseKey=254E-DB11-B5D4-0609-ED73-49AF-1B2E-9B63-4989-5268-D4AB
universe authentication parameters:
| Universe=auth.activeworlds.com | # Universe URL |
| Port=5702 | # Universe port number |
| World=icotrade | # world to log-in |
| Owner=236 | # bot owner's citizen number |
| PrivPass=storage | # owner's privilege password |
| Name=Tracker | # bot's name |
| GlobalBot=1 | # If you have a large world (>P20) you need CT rights in the world |
| Visible=0 | # Reduces the clutter in the whisper list but commands can be issued only through the chat |
| Location_y=-4000 | # Elevation Robot position inworld (if visible) in centimeter |
| Location_x=0 | # W-E |
| Location_z=0 | # N-S |
| Location_yaw=0 | # Angle in 1/10th degree |
General parameters for the bot:
[Parameters]
| ChatLog=1 | # Enable chat log to tracker.chat.log file |
| WhisperLog=1 | # Enable all whispered message to/from the bot to the chat log file |
| RecordAllMove=0 | # Record all moves instead of the straight move enhancement. It will increase the database size significantly! |
| DisableRecordMove=0 | # do not record movements in the database at all. Only Entry/Exit records will go there. |
| PreloadTourist=0 | # Preload Tourists records from the database (no real need for now) |
| QueryOneShot=1 | # Do a whole world query at startup (only use when Portal Control, Exhibit Control or Class Control enabled) |
| DuplicateCheck=0 | # check if there is duplicate objects at the same place and ignore them |
RealTimeIPWatchDB=0
|
# IPWatch DB access is real-time
(when multiple tracker accessing the the same database and you don't
want to reload manually all robots when one is changing the list). It
could cause sluggish response if the MySQL server is busy or on a
remote machine for every visitor enter event!
|
Daemonized=0
|
# Defined only under Linux. If the value is 1, the bot will go to the background and all log will go to the Logfile
|
Logfile=tracker.log
|
# default log file name for background process
|
Plug-in selection:
[PlugIns]
ClassControlEnabled=1
WeatherControlEnabled=1
ElevatorControlEnabled=1
PortalControlEnabled=1
EntryControlEnabled=1
ExhibitControlEnabled=1
ChatParsingEnabled=1
Entry Control Plug-in's parameters:
[EntryControl]
| MAX_CITIZEN_NUMBER=100000 | # Specify the largest citizen number in the universe. |
| EntryListRanges=1 | # Use Range type entry right list instead of entry classification |
| EntryTargetOverride=1 | #
If someone arrives farther from the world entry location, leave him
alone otherwise If someone arrives at the world entry position, do a
slight random change, so multiple newcomers will not arrive on each
other |
| EntryPrivilege=0 | # Use the user's privilege number instead of its citizen number for the entry right determination |
| AnyoneCanEnter=1 | # Override the entry classification |
| EnabledType=VIP,Special | # Entry right classification list who are allowed to enter |
| EntryTypes=VIP,Special,Private,General,World | # All possible entry classifications (max 7) |
| Kick_World=Nowhere | # Which world the non-welcomed user to teleport |
| Kick_X=-100000 | # the W-E address of the target location in centimeter |
| Kick_Y=0 | # Elevation |
| Kick_Z=-100000 | # N-S |
| Kick_YAW=0 | # Angle |
| TargetAddressX=-270 | # World entry point (it will be overwritten when the world attributes arrives from the world's options!) |
| TargetAddressY=10000 | # Elevation |
| TargetAddressZ=8380 | # N-S |
| TargetAddressYAW=1790 | # Angle in 1/10th degree |
| ListEntryList=0 | # List all entry rights into the log file |
Back to entry control
Weather Control Plug-in's parameters:
[WeatherControl]
| WeatherLooping=0 | # Enable the weather pattern to be repeated |
| WeatherName=70m2 | # weather pattern name in the database |
| WeatherLoopTime=120 | # Repeat time in minutes if repeating is enabled |
Class Control Plug-in's parameters:
[ClassControl]
| StickyChair=0 | # only allow the user to leave the chair with the gesture button |
| AvatarPair000=6 1 | # Avatar type 0 change to 6, release gesture is 1 (the first gesture button) |
| AvatarPair001=34 3 | # Avatar type 1 change to the 34st avatar, release gesture is the 34st avatar's 3rd gesture button |
| SitObject000=chair01 | # Chair object name |
| SitObjectHeight000=50 | # corresponding height offset where the user will be warped |
| SitObject001=coach1 | #Chair2 object |
| SitObjectHeight001=0 | #Chair 2 object elevation offset |
| StageObject=fakestage | # stage object where the caretaker can teleport the user |
| StageObjectHeight=150 | #stage object elevation offset |
| SitAction=create visible no,solid on | # the action field of the sit object when the user is teleported there |
NoObjectChange=0
|
# Wether the bot should apply the SitAction to the chair or not
|
Chat parsing parameters:
[Quarantine]
Commands:
The bot can be controlled by commands issued to it. Each command
should start with the "/" character. Commands are only accepted from
those citizens who are in the CareTaker database tale and who has
rights to certain commands. There are several reporting possibilities
which the CareTaker can enable/disable for himself.
Core commands:
Available commands can be accessed by the /trackerhelp command:
/flags
Lists your active status. E.g.: IPWatch
langdef visitor IP Included (this CT will get IPWatch warnings, User
language preference, User entry/exit with IP)
/console r g b b i msg
Sets the console message color,bold,italic,leading string values.
E.g.: /console 192 0 0 1 0 Helper will produce all messages like: Helper Andras ( giant.andras.net ) 194.152.129.209 Lang=EN
/reportvisitor
- toggles visitors report
/reportnoexit
- toggles visitor exit report
/reportnewvisitor
- toggles 'new visitors only' report (does not report those who were inworld recently)
/vis
- lists current visitors. E.g.:
[Alice] (236) 2.00N 2.00W 0.10a 342
Andras (236) 0.76N 1.30W 0.00a 272
/reportvisitorip
- toggles visitors IP address report
/reportIP
- toggles IPWatch report
/setip x.x.x.x name message
- sets IP to watch. E.g.: /setip 192.168.0.1 Username dirty language
/delip x.x.x.x
- delete IP to watch
/listip
- List IP watches. E.g.: 80.57.46.201 name=misc Msg=Must be banned! Using a craked "tourist bot" to fill the visitor list
/queryworld
- Starts a full world query
/addct citnum right list
- adds caretaker with rights:
- full - the user has full bot control rights
- bot - the user can use bot controlling commands like /suspend.
- upd - the user has rights to create portal objects
- query - the user can issue MySQL commands to the portal database
- ip - the user can receive IPWatch warnings
- visitor - the user can receive visitors entry/exit notification
- report - the user can use all reporting features of the Portal plug-in
- address - the user can receive the visitor's IP address
- teacher - the user can act as a teacher/moderator in the ClassControl pug-in.
/delct citnum
- deletes caretaker
Those two commands can be executed by a CT who has full rights. If you
accidentally change your own full right, you have to modify the
CareTaker table entry in the MySQL database.:
+--------+------------------+------+-----+------------+-------+
| Field |
Type
| Null | Key | Default | Extra |
+--------+------------------+------+-----+------------+-------+
| citnum |
int(11)
| | PRI |
0
| |
| rights | int(10) unsigned
| | | 2147483647
| |
+--------+------------------+------+-----+------------+-------+
/listct
- list caretakers. e.g.:
324 ip visitor
193 ip visitor address
/reload
- reloads the bot's database from the MySQL database
/reloadall
- reloads the bot's database and the object database from the MySQL database
/loc
- tells you your current location and the potential Customer who owns the Location
/suspend
- suspends all bot activity except chat logging
/resume
- resumes bot activity (issue a reload too!)
/recordall
- toggles all move recording versus no straight line check
/newsession
- toggles all enter recording versus only if session changed
/terminate me!
- exits the bot! Don't use it if you can't access the computer where the bot is running.
Portal commands:
/verbose
- Enables URL listing when clicked
/report
- toggles density, ownership report when selecting an object.
/quiet
- Disables URL listing when clicked
/objselect customerID FurnishingType
- all consecutive object
selection will assign the object to the Customer and sets the type to
Furnishing type and inserts the object to the Furnishing database if it
is not there. e.g.: objselect 0 LgSign will remove
the current ownership if it is there and add the object to the Large
Signs Furnishing issuing another objselect command will turn the
feature off
/url URL
- all consecutive object selection will assign the object a push URL Updates (and delete the previous one if exists)
/url
- disables the URL assigning
/setu URL
- assign URL to the last selected furnishing
/setf customerID FurnishingType
- assign customer to the last selected object (like objselect)
/cust customerID FurnishingID
- assign customer to the Furnishing
/teleport here
- all consecutive object selection will assign the object a Teleport Updates with your current coordinate
/teleport
- disables the Teleport assigning
/cleart
- clears the last selected furnishing Teleport assignment
/querymode
- toggles the bot relay MySQL
command state. Each command should start with the letter 'q' and that
letter is stripped from the command
Weather commands:
/recordweather [pattern name]
- start/stop recording all world
options to the database with the given name. This recorded "weather"
sequence can be played back later by the next command. The robot checks for the pattern name uniqueness!
/playweather [pattern name]
- start/stop playing back a weather pattern
/loopweather [frequency [pattern name]]
- triggers timed weather pattern playing where frequency is given in minutes
/createweather
pattern name elevstart elevend wavemovestart wavemoveend wavespeedstart
wavespeedend surfacemovestart surfacemoveend duration numsteps
- undocumented automatic water movement generator. This command generates water movement only.
Entry control commands:
/addenter citnum[-untilcitnum]
- Add enter right to the
citizen(s) within this world. While in classified mode, it will create
"General" type citizen entry right list into the Citizen table.
EntryList mode will add the range to the Entryrights list;
/delenter citnum[-untilcitnum]
- Revoke enter right to the citizen(s) within this world. The bot properly handles overlapping ranges.
/reloadenter
- Reloads enter rights for this world from the database. No need to issue if you use RealTimeEntryDatabase flag.
Back to entry control
Class Control commands:
/classcontrol
- toggles class control feature (literally disables/enables all class control related activities)
/stickychair
- toggles sticky chair feature: Is the user can leave its seat by moving or only with a given gesture
/stageheight
- sets the height offset of the stage - only use if the stage object center position is different then its top.
Exhibit Control Commands:
/queryhere radius name
- Query radius meter around your avatar and save this template as "name"
in the database. Make sure there is no other pieces with the radius
which doesn't belong to your template. The center of the templace will
be your avatar position and its orientation is your facing angle.
/queryat nscenter wecenter orientationangle nssize wesize name
- Query around the center address a
rectangle which size is determined by thenssize and wssize parameters
(in meter!). Designate the orientation angle of the template with the
orientationangle parameter (in degrees). Example: /queryat 1.1s 3.44e 180 5 10 newname
/buildlot lotname boothtypename
- registers build requests on lotname
/startbuild
- starts all registered build requests
Chat parsing commands.
/reportbadword
- toggles visitors bad word usage reporting
/listbadwords [regexp]
- list the bad words regular expressions (could be a LARGE list!)
/refreshbadword
- reloads the bad words list from the database (in case someone modified it with a different bot ot in a different world)
/deletebadword# ID
- deletes an item from the bad words list identified by ID
/deletebadword regexp
- deletes all bad words from the list which description has a match with the given regular expression
/addbadword severity,description;regular expression
- adds a new bad word with the given
severity value to the table. Description must be terminated by a
semicolon followed by the regular expression
/quarantine [severity threshold, quarantine duration [,world name]]
- if called without any parameter, it
displays if the quarantine is enabled and what is its parameters
(severity,duration,location)
- if severity threshold=0 then it deletes the current world's
quarantine entry from the table and disables the quarantine feature
- if threshold and duration is given, the bot inserts the new entry to the quarantine table and enables the quarantine feature.
Database format
Core tracker MySQL tables
Configuration table
+----------+--------------+------+-----+
| Field | Type | Null | Key |
+----------+--------------+------+-----+
| isection | varchar(255) | | PRI |
| ikey | varchar(255) | | PRI |
| ivalue |
text
| | |
+----------+--------------+------+-----+
3 rows in set (0.03 sec)
TldLanguage table
+-------+--------------------------------+------+-----+---------+-------+
| Field |
Type
| Null | Key | Default | Extra |
+-------+--------------------------------+------+-----+---------+-------+
| tld |
char(8)
| | PRI | com
| | Containd the Top Level Domain
| Lang |
enum('EN','NL','DE','FR','HU') | YES | |
EN |
| Corresponding language
+-------+--------------------------------+------+-----+---------+-------+
2 rows in set (0.00 sec)
The following values always added to the table:
+-----+------+
| tld | Lang |
+-----+------+
| com | EN |
| uk | EN |
| at | DE |
| de | DE |
| nl | NL |
| fr | FR |
| be | FR |
| hu | HU |
+-----+------+
IPWatch table
+-----------+-----------------------------+------+-----+---------+-------+
| Field |
Type
| Null | Key | Default | Extra |
+-----------+-----------------------------+------+-----+---------+-------+
|
IP | int(10)
unsigned
| | PRI |
0
| |
|
name |
char(32)
| |
|
| |
| Message |
char(255)
| |
|
| |
| action |
enum('none','warn','eject') |
| | warn
| | Not used yet
| ejecttime |
int(11)
| | |
300 | | Not
used yet
+-----------+-----------------------------+------+-----+---------+-------+
5 rows in set (0.00 sec)
Caretaker table
+--------+------------------+------+-----+------------+-------+
| Field |
Type
| Null | Key | Default | Extra |
+--------+------------------+------+-----+------------+-------+
| citnum |
int(11)
| | PRI |
0
| |
| rights | int(10) unsigned
| | | 2147483647
| | Use 0x7ffffff for full rights
when manually setting it.
+--------+------------------+------+-----+------------+-------+
2 rows in set (0.00 sec)
The bot owner citizen number always added to the list with full rights!
Rights values:
RightToBotControl=1
RightToQuery=2
RightToUpdates=4
RightToIPReport=8
RightToVisitorReport=16
RightToCellReport=32
RightToReceiveIP=64
RightToTeacher=128
Bot table
+---------------+------------------+------+-----+---------------------+-------+
|
Field |
Type
| Null | Key |
Default
| Extra |
+---------------+------------------+------+-----+---------------------+-------+
|
name |
char(34)
| | PRI
|
| |
|
citnum |
int(11)
| | |
0
| |
|
privilege |
int(11)
| | PRI |
0
| |
| current_world |
char(10)
| |
|
| |
| last_entered |
datetime
| | | 0000-00-00
00:00:00 | |
|
last_left |
datetime
| | | 0000-00-00
00:00:00 | |
| current_IP |
int(10) unsigned | YES | |
NULL
| |
+---------------+------------------+------+-----+---------------------+-------+
7 rows in set (0.00 sec)
Citizen table
+---------------+--------------------------------+------+-----+-------------+-------+
|
Field |
Type
| Null | Key | Default | Extra |
+---------------+--------------------------------+------+-----+-------------+-------+
|
name |
char(34)
| |
|
| |
|
citnum |
int(11)
| | PRI |
0
| |
|
privilege |
int(11)
| YES | |
NULL
| |
| current_world |
char(10)
| YES | |
NULL
| |
| last_entered |
datetime
| YES | |
NULL
| |
|
last_left |
datetime
| YES | |
NULL
| |
| current_IP |
int(10)
unsigned
| YES | |
NULL
| |
|
Flags |
int(11)
| | |
0
| | Flag contains the potential
report status
|
Lang |
enum('EN','NL','DE','FR','HU') |
| |
EN
| |
|
console |
char(128)
| | | 192 0 0 1 0
| |
+---------------+--------------------------------+------+-----+-------------+-------+
10 rows in set (0.00 sec)
Tourist table
+---------------+--------------------------------+------+-----+---------------------+-------+
|
Field |
Type
| Null | Key |
Default
| Extra |
+---------------+--------------------------------+------+-----+---------------------+-------+
|
name |
char(34)
| | PRI
|
| |
|
password |
char(10)
| | PRI
|
| |
|
privpass |
char(10)
| YES | |
NULL
| |
|
email |
char(255)
| YES | |
NULL
| |
| current_world |
char(10)
| YES | |
NULL
| |
| last_entered |
datetime
| YES | |
NULL
| |
|
last_left |
datetime
| YES | |
NULL
| |
| current_IP |
int(10)
unsigned
| YES | |
NULL
| |
|
Flags |
int(11)
| | |
0
| | should never change
|
Lang |
enum('EN','NL','DE','FR','HU') |
| |
EN
| |
|
console |
char(128)
| | | 192 0 0 1
0
| |
|
created |
datetime
| | | 0000-00-00
00:00:00 | |
+---------------+--------------------------------+------+-----+---------------------+-------+
12 rows in set (0.00 sec)
Location table
+------------+------------------+------+-----+----------+-------+
|
Field |
Type
| Null | Key | Default | Extra |
+------------+------------------+------+-----+----------+-------+
|
name |
char(34) | YES
| | NULL
| |
| citnum
| int(11) |
YES | | NULL
| |
|
pos_x |
int(11) |
YES | | NULL
| |
|
pos_y |
int(11) |
YES | | NULL
| |
|
pos_z |
int(11) |
YES | | NULL
| |
| pos_yaw |
int(11) |
YES | | NULL
| |
| pos_tilt |
int(11) |
YES | | NULL
| |
| av_type |
int(11) |
YES | | NULL
| |
| gesture |
int(11) |
YES | | NULL
| |
| timestamp |
int(11) |
YES | | NULL
| |
| action
| int(11) |
YES | | NULL
| |
| current_IP | int(10) unsigned
| | |
0
| |
| CustomerID |
int(11)
| | |
0
| | Used in Portal mode only
| LocationID |
int(11)
| | |
0
| | Used in Portal mode only
|
world |
char(8) |
YES | | NLStart1
| |
|
msec |
int(11) |
YES | |
0
| |
+------------+------------------+------+-----+----------+-------+
16 rows in set (0.00 sec)
Bad world table
+-------------+-----------+------+-----+---------+----------------+
|
Field |
Type | Null | Key | Default |
Extra |
+-------------+-----------+------+-----+---------+----------------+
|
ID |
int(11) | NO | PRI | NULL |
auto_increment |
| severity |
int(11) | NO | |
0
|
|
| description | char(255) |
NO |
|
|
|
| pattern
| text | YES
| | NULL
|
|
+-------------+-----------+------+-----+---------+----------------+
Quarantine table
+----------+---------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+----------+---------+------+-----+---------+-------+
| Severity | int(11) |
NO | |
0
| |
| Duration | int(11) | YES | | NULL | |
|
X | int(11) | YES
| | NULL
| |
|
Y | int(11) | YES
| | NULL
| |
|
Z | int(11) | YES
| | NULL
| |
|
Yaw | int(11) | YES
| | NULL
| |
| World |
char(8) | NO | PRI
|
| |
+----------+---------+------+-----+---------+-------+
Weather Control MySQL Tables
WeatherSequence table
This table contains the unique weather pattern name and its starting sequence ID
+-----------+-------------------------------------------------+------+-----+
| Field |
Type
| Null | Key |
+-----------+-------------------------------------------------+------+-----+
|
name |
char(32)
| | PRI | Unique pattern name you
can refer to
|
type |
enum('single','repetitive','scheduled','other') | YES
| | Not used yet
| start |
int(11)
| YES | | Not used yet
| frequency |
int(11)
| YES | | Not used yet
| sequence |
int(11)
| YES | | Not used yet
+-----------+-------------------------------------------------+------+-----+
5 rows in set (0.03 sec)
WeatherAction table
This table refers to the 3.6 version of the world servers.
+---------------------------+-----------+
|
Field
| Type |
+---------------------------+-----------+
|
id
| int(11) | primary key, auto increment
|
next
| int(11) | Next action ID (if zero, then the last in the
pattern)
|
duration
| int(11) | how long this action should stay active (in
seconds)
| allow_3_axis_rotation | int(11) |
| allow_avatar_collision | int(11) |
| allow_citizen_whisper | int(11) |
| allow_flying | int(11) |
| allow_object_select | int(11) |
| allow_passthru | int(11) |
| allow_teleport | int(11) |
| allow_tourist_whisper | int(11) |
| always_show_names | int(11) |
| ambient_light_blue | int(11) |
| ambient_light_green | int(11) |
| ambient_light_red | int(11) |
| avatar_refresh_rate | int(11) |
| backdrop | char(255) |
| bots_right | char(255) |
| build_capability | int(11) |
| build_number | int(11) |
| build_right | char(255) |
|
buoyancy
| double |
| caretaker_capability | int(11) |
| cell_limit | int(11) |
| clouds_layer1_mask | char(255) |
| clouds_layer1_opacity | int(11) |
| clouds_layer1_speed_x | double |
| clouds_layer1_speed_z | double |
| clouds_layer1_texture | char(255) |
| clouds_layer1_tile | double |
| clouds_layer2_mask | char(255) |
| clouds_layer2_opacity | int(11) |
| clouds_layer2_speed_x | double |
| clouds_layer2_speed_z | double |
| clouds_layer2_texture | char(255) |
| clouds_layer2_tile | double |
| clouds_layer3_mask | char(255) |
| clouds_layer3_opacity | int(11) |
| clouds_layer3_speed_x | double |
| clouds_layer3_speed_z | double |
| clouds_layer3_texture | char(255) |
| clouds_layer3_tile | double |
| disable_avatar_list | int(11) |
| disable_chat | int(11) |
| disable_create_url | int(11) |
| disable_multiple_media | int(11) |
| creation_timestamp | int(11) |
| enable_terrain | int(11) |
| eject_capability | int(11) |
| eject_right | char(255) |
| eminent_domain_capability | int(11) |
| eminent_domain_right | char(255) |
| enter_right | char(255) |
| entry_point | char(255) |
| expiration | int(11) |
|
fog_blue
| int(11) |
| fog_enable | int(11) |
|
fog_green
| int(11) |
| fog_minimum | int(11) |
| fog_maximum | int(11) |
|
fog_red
| int(11) |
|
gravity
| double |
|
ground
| char(255) |
| home_page | char(255) |
| keywords | char(255) |
| light_blue | int(11) |
| light_draw_bright | int(11) |
| light_draw_front | int(11) |
| light_draw_size | int(11) |
| light_green | int(11) |
| light_mask | char(255) |
|
light_red
| int(11) |
| light_texture | char(255) |
|
light_x
| double |
|
light_y
| double |
|
light_z
| double |
|
max_users
| int(11) |
| max_light_radius | int(11) |
|
name
| char(255) |
| object_count | int(11) |
| object_path | char(255) |
| object_refresh | int(11) |
| public_speaker_capability | int(11) |
| public_speaker_right | char(255) |
|
rating
| int(11) |
| restricted_radius | int(11) |
| world_size | int(11) |
| sky_bottom_blue | int(11) |
| sky_bottom_green | int(11) |
| sky_bottom_red | int(11) |
| sky_east_blue | int(11) |
| sky_east_green | int(11) |
| sky_east_red | int(11) |
| sky_north_blue | int(11) |
| sky_north_green | int(11) |
| sky_north_red | int(11) |
| sky_south_blue | int(11) |
| sky_south_green | int(11) |
| sky_south_red | int(11) |
| sky_top_blue | int(11) |
| sky_top_green | int(11) |
| sky_top_red | int(11) |
| sky_west_blue | int(11) |
| sky_west_green | int(11) |
| sky_west_red | int(11) |
| sound_ambient | char(255) |
| sound_footstep | char(255) |
| sound_water_enter | char(255) |
| sound_water_exit | char(255) |
| speak_capability | int(11) |
| speak_right | char(255) |
| special_commands_right | char(255) |
| special_objects_right | char(255) |
| terrain_ambient | double |
| terrain_diffuse | double |
|
title
| char(255) |
| water_blue | int(11) |
| water_bottom_mask | char(255) |
| water_bottom_texture | char(255) |
| water_enabled | int(11) |
| water_green | int(11) |
| water_level | double |
| water_mask | char(255) |
| water_opacity | int(11) |
|
water_red
| int(11) |
| water_speed | double |
| water_surface_move | double |
| water_texture | char(255) |
| water_visibility | int(11) |
| water_wave_move | double |
| welcome_message | char(255) |
| terrain_offset | double |
| allow_tourist_build | int(11) |
| enable_referer | int(11) |
|
ts
| int(11) |
+---------------------------+-----------+
135 rows in set (0.17 sec)
Entry Control MySQL tables
This table contains those citizens, who can enter to a world by the Classification method.
Citizen table
+----------+-------------------------------------------+------+-----+---------+-------+
| Field |
Type
| Null | Key | Default | Extra |
+----------+-------------------------------------------+------+-----+---------+-------+
| citnum |
int(11)
| | PRI |
0
| |
| name |
char(32)
| YES | | NULL
| |
| password |
char(32)
| YES | | NULL
| |
| email |
char(255)
| YES | | NULL
| |
| comment |
char(255)
| YES | | NULL
| |
| flag |
int(11)
| YES | | NULL
| |
| TicketID |
int(11)
| YES | | NULL
| |
| type |
enum('VIP','Special','Private','General') | YES
| | General
| |
| world |
char(8)
| | PRI | any
| |
+----------+-------------------------------------------+------+-----+---------+-------+
9 rows in set (0.05 sec)
Entryrights table
+-----------+-----------+------+-----+-------------------+-------+
| Field |
Type | Null | Key |
Default |
Extra |
+-----------+-----------+------+-----+-------------------+-------+
| world |
char(8) |
| |
Portal
| |
| cit_from |
int(11) |
| |
1
| |
| cit_until | int(11)
| | |
1
| |
| created | timestamp
| YES | | CURRENT_TIMESTAMP
| |
|
X | int(11)
| | |
0
| |
|
Y | int(11)
| | |
0
| |
|
Z | int(11)
| | |
0
| |
|
YAW | int(11)
| | |
0
| |
+-----------+-----------+------+-----+-------------------+-------+
8 rows in set (0.00 sec)
One antry is always added with the bot owner citizen number!
Back to entry control
Portal/Exhibit Control Common MySQL Database
Tables:
+---------------+
| Name |
+---------------+
| BoothLocation |
| Command |
| Customer |
| Elevator |
| Floor |
| Furnishing |
| Object |
| Rentals |
| Updates |
+---------------+
15 rows in set
Floor table
+-----------+---------+------+-----+---------+
| Field | Type | Null | Key | Default |
+-----------+---------+------+-----+---------+
| Floor |
int(11) | | |
0 | The given floor lever (-1:
subway, 0=ground, ... 13=top floor)
| Elevation | int(11)
| | |
0 | The actual elevation inworld in
centimeters
+-----------+---------+------+-----+---------+
2 rows in set (0.05 sec)
BoothLocation table
+------------+-----------------------------------------------+------+-----+---------+----------------+
|
Field |
Type
| Null | Key | Default |
Extra |
+------------+-----------------------------------------------+------+-----+---------+----------------+
|
Grp |
enum('Suite','Office','Shop','Booth','Other')
| | |
Suite
|
| Booth type
|
ID |
int(11)
| | PRI | NULL |
auto_increment |
|
Name |
varchar(64)
| |
|
|
| Arbitrary name
| pos_NS
|
int(11)
| | |
0
|
|
| pos_WE
|
int(11)
| | |
0
|
|
| size_NS |
int(11)
| | |
0
|
|
| size_WE |
int(11)
| | |
0
|
|
|
Floor |
int(11)
| | |
0
|
| The floor this booth is located
|
Price |
double
| | |
0
|
| Not used
| GroupV
|
int(11)
| | |
0
|
| Not used
| Customer |
int(11)
| | |
0
|
| Customer ID
|
World | char(8)
| |
|
|
|
| Numvisitor |
int(11)
| | |
0
|
| Total numer of visitors
| totaltime |
int(11)
| YES | | NULL
|
| Total time spent in the booth
+------------+-----------------------------------------------+------+-----+---------+----------------+
14 rows in set (0.06 sec)
Customer table
+------------+--------------+------+-----+---------+----------------+
|
Field |
Type | Null | Key |
Default | Extra |
+------------+--------------+------+-----+---------+----------------+
|
ID |
int(11) | |
PRI | NULL | auto_increment |
|
Name | varchar(255)
| |
|
|
|
| Address |
varchar(255) | |
|
|
|
| Contact |
varchar(255) | |
|
|
|
|
Email | varchar(255)
| |
|
|
|
|
Phone | varchar(32)
| |
|
|
|
|
Fax | varchar(32)
| |
|
|
|
|
State |
int(11) |
| | 0
|
|
| Clicks
| int(11) |
| | 0
|
|
| Numvisitor |
int(11) |
| | 0
|
|
| totaltime |
int(11) | YES
| | NULL
|
|
+------------+--------------+------+-----+---------+----------------+
11 rows in set (0.05 sec)
Furnishing table
+-----------------+-------------------------------------------------------------------------+------+-----+
|
Field |
Type
| Null | Key |
+-----------------+-------------------------------------------------------------------------+------+-----+
|
Grp
|
enum('Kiosk','Media','Poster','TV','LgSign','SmSign','AdPole','Banner')
| YES | |
|
ID
|
int(11)
| | PRI |
|
Customer |
int(11)
| | |
|
Model |
varchar(32)
| | |
|
Number |
int(11)
| | MUL |
|
Owner |
int(11)
| | |
|
X
|
int(11)
| | |
|
Y
|
int(11)
| | |
|
Z
|
int(11)
| | |
|
YAW
|
int(11)
| | |
|
PITCH |
int(11)
| | |
|
ROLL
|
int(11)
| | |
| UpdateFrequency |
time
| | |
|
NextUpdate |
datetime
| | |
|
Clicks |
int(11)
| | |
|
Price |
int(11)
| | |
|
World |
varchar(9)
| | |
| NextUpdateID
|
int(11)
| | |
|
NextClickID |
int(11)
| | |
+-----------------+-------------------------------------------------------------------------+------+-----+
19 rows in set (0.05 sec)
Updates table
+--------------+---------------------------------------+------+-----+---------+----------------+
|
Field |
Type
| Null | Key | Default |
Extra |
+--------------+---------------------------------------+------+-----+---------+----------------+
| FurnishingID |
int(11)
| | |
0
|
|
| UpdateType |
enum('Click','Time','URL','Teleport') |
| | Click
|
|
|
Action |
varchar(255)
| |
|
|
|
| Description |
varchar(255)
| |
|
|
|
|
VisTime |
int(11)
| | |
0
|
|
| PrevUpdateID |
int(11)
| | |
0
|
|
| NextUpdateID |
int(11)
| | |
0
|
|
|
ID |
int(11)
| | PRI | NULL |
auto_increment |
|
tp_y |
int(11)
| | |
0
|
|
|
tp_x |
int(11)
| | |
0
|
|
|
tp_z |
int(11)
| | |
0
|
|
|
tp_yaw |
int(11)
| | |
0
|
|
|
POST |
varchar(255)
| |
|
|
|
+--------------+---------------------------------------+------+-----+---------+----------------+
13 rows in set (0.06 sec)
Elevator Control MySQL Database
Command table
+-----------+--------------------------------+------+-----+---------+-------+
| Field |
Type
| Null | Key | Default | Extra |
+-----------+--------------------------------+------+-----+---------+-------+
| Command |
varchar(32)
| | PRI | help
| | The command itself
|
Lng |
int(11)
| | |
1
| | The minimum length of the
typed command
| Parameter |
varchar(32)
| |
|
| | Specify if it has numeric or ascii parameters
| Action |
int(11)
| | |
0
| | What action should be
done when the command received
|
Lang | enum('EN','NL','DE','FR','HU')
| | PRI |
EN | | Which language is this entry
| Message |
text
| YES | | NULL
| | What message should be
whispered to the command issuer
+-----------+--------------------------------+------+-----+---------+-------+
6 rows in set (0.03 sec)
Example:
+---------+-----+-----------+--------+------+----------------------+
| Command | Lng | Parameter | Action | Lang |
Message
|
+---------+-----+-----------+--------+------+----------------------+
| langue | 6
|
| 2 | FR | Vous avez choisi:
%s |
+---------+-----+-----------+--------+------+----------------------+
Elevator table
+---------+--------------------------------+------+-----+---------+
| Field |
Type
| Null | Key | Default |
+---------+--------------------------------+------+-----+---------+
| Floor |
int(11)
| | |
0 |
| Tower |
enum('N','S','NN','SS')
| | |
N |
| Message |
char(255)
| |
| |
|
X |
int(11)
| | PRI |
0 |
|
Y |
int(11)
| | PRI |
0 |
|
Z |
int(11)
| | PRI |
0 |
| YAW |
int(11)
| | |
0 |
| WARP |
int(11)
| | |
0 |
| Lang |
enum('EN','NL','DE','FR','HU') | | PRI |
EN |
+---------+--------------------------------+------+-----+---------+
9 rows in set (0.06 sec)
Exhibit Control Database
Tables:
+-------------------------+
| BoothBuild |
| BoothObject |
| BoothPict |
| BoothSpot |
| BoothType |
+-------------------------+
BoothBuild table
+-------------+-----------+------+-----+---------+----------------+
|
Field |
Type | Null | Key | Default |
Extra |
+-------------+-----------+------+-----+---------+----------------+
|
ID |
int(11) | NO | PRI | NULL |
auto_increment |
|
owner | int(11) |
NO | |
1
|
|
|
x |
int(11) | NO | |
0
|
|
|
y |
int(11) | NO | |
0
|
|
|
z |
int(11) | NO | |
0
|
|
|
yaw |
int(11) | NO | |
0
|
|
|
tilt | int(11) |
NO | |
0
|
|
|
roll | int(11) |
NO | |
0
|
|
|
model | char(32) |
NO |
|
|
|
| description | char(255) |
NO |
|
|
|
|
action | char(255) | NO
|
|
|
|
+-------------+-----------+------+-----+---------+----------------+
11 rows in set (0.03 sec)
BoothObject table
+------------------+-----------+
| Field | Type |
+------------------+-----------+
| ID | int(11) |
| owner | int(11) |
| x | int(11) |
| y | int(11) |
| z | int(11) |
| yaw | int(11) |
| tilt | int(11) |
| roll | int(11) |
| model | char(32) |
| description | char(255) |
| action | char(255) |
| create_url | char(255) |
| create_picture | char(255) |
| create_texture | char(255) |
| activate_url | char(255) |
| activate_picture | char(255) |
| activate_texture | char(255) |
+------------------+-----------+
17 rows in set (0.03 sec)
BoothPict table
+-------+--------------+------+-----+---------+----------------+
| Field |
Type | Null | Key |
Default | Extra |
+-------+--------------+------+-----+---------+----------------+
| ID |
int(11) | NO | PRI |
NULL | auto_increment |
| type | varchar(32)
| NO |
|
|
|
| name | varchar(255) |
NO |
|
|
|
| thumb | varchar(255) |
NO |
|
|
|
+-------+--------------+------+-----+---------+----------------+
4 rows in set (0.02 sec)
BoothSpot table
+---------+-------------+------+-----+
| Field | Type | Null | Key |
+---------+-------------+------+-----+
| ID | varchar(32) | NO | PRI |
| locname | varchar(32) | NO | |
| type | varchar(32) | NO | |
| x | int(11) | NO | |
| y | int(11) | NO | |
| z | int(11) | NO | |
| yaw | int(11) | NO | |
| xs | int(11) | NO | |
| ys | int(11) | NO | |
| zs | int(11) | NO | |
| CID | int(11) | NO | |
| BID | int(11) | NO | |
| built | int(11) | NO | |
| buildrq | int(11) | NO | |
| area | text | NO | |
+---------+-------------+------+-----+
15 rows in set (0.02 sec)
BoothType table
+-------------+-----------+------+-----+---------------+----------------+
|
Field |
Type | Null | Key |
Default |
Extra |
+-------------+-----------+------+-----+---------------+----------------+
|
ID |
int(11) | NO | PRI |
NULL |
auto_increment |
| description | char(255) |
YES | |
NULL
|
|
| picture
| char(255) | NO | | nopicture.jpg
|
|
| spottype |
char(255) | NO |
|
|
|
+-------------+-----------+------+-----+---------------+----------------+
4 rows in set (0.01 sec)
This page is visited
times since October 15. 2006