Database Schema
From OpenSim
| This article or section contains incomplete information. Please help us by completing the content on this page. |
This information is extracted from a system using NHibernate with a PostgreSQL database. Other databases should be similar or identical.
The information here is organized by table. Under each table, the various fields are listed and described. Any corrections or additional information are welcome.
Contents |
assets
The assets database. It contains the following fields:
- id - character varying(36) NOT NULL
- type - smallint - This is an integer representation of the type enumeration. Valid values are (need help checking and filling these in):
- 0 - Textures
- 1 - Sound
- 2 - ??
- 3 - Landmark
- 4 - ??
- 5 - Clothing
- 6 - Primitive
- 7 - Note
- 8 - ??
- 9 - ??
- 10 - Script
- 11 - ??
- 12 - ??
- 13 - Body Part
- 14 - ??
- 15 - ??
- 16 - ??
- 17 - ??
- 18 - ??
- 19 - ??
- 20 - ??
- 21 - Gesture
- name - character varying(64)
- description - character varying(64)
- local - boolean
- temporary - boolean
- data - bytea
estatebans
Ban list for each estate
- estateid - integer NOT NULL (not UUID?)
- arrayindex - integer NOT NULL
- banneduserid - character varying(36) NOT NULL
- bannedhostaddress - character varying(16) NOT NULL (may have to change for IPv6 support)
- bannedhostipmask - character varying(16) NOT NULL (may have to change for IPv6 support)
- bannedhostnamemask - character varying(16) NOT NULL
estategroups
Not sure what this table is for. Groups that own estates?
- estateid - integer NOT NULL
- groupid - character varying(36) NOT NULL
- arrayindex - integer NOT NULL
estatemanagers
Not sure what this table is for. Managers of estates?
- estateid - integer NOT NULL
- managerid - character varying(36) NOT NULL
- arrayindex - integer NOT NULL
estateregionlink
Links estates to regions
- estateregionlinkid - character varying(36) NOT NULL
- estateid - integer
- regionid - character varying(36)
estatesettings
Settings for each estate
- estateid - integer NOT NULL
- parentestateid - integer
- estateownerid - character varying(36)
- name - character varying(64)
- redirectgridx - integer
- redirectgridy - integer
- billablefactor - double precision
- pricepermeter - integer
- sunposition - double precision
- useglobaltime - boolean
- fixedsun - boolean
- allowvoice - boolean
- allowdirectteleport - boolean
- resethomeonteleport - boolean
- publicaccess - boolean
- denyanonymous - boolean
- denyidentified - boolean
- denytransacted - boolean
- denyminors - boolean
- blockdwell - boolean
- estateskipscripts - boolean
- taxfree - boolean
- abuseemailtoestateowner - boolean
- abuseemail - character varying(255)
I'm not sure what happens if both denyanonymous and denyidentified are set true. Perhaps everyone is denied.
estateusers
Users of an estate?
- estateid - integer NOT NULL
- userid - character varying(36) NOT NULL
- arrayindex - integer NOT NULL
inventoryfolders
Folders for your inventory items.
- id - character varying(36) NOT NULL
- type - smallint - This may be the same enumeration as the one used in assets to identify what assets can be stored in the folder.
- version - integer
- parentid - character varying(36)
- owner - character varying(36)
- name - character varying(64)
inventoryitems
Items contained in your inventory
- id character varying(36) NOT NULL
- invtype - integer
- assettype - integer
- assetid - character varying(36)
- folder - character varying(36)
- owner - character varying(36)
- creator - character varying(36)
- name - character varying(64)
- description - character varying(64)
- nextpermissions - integer
- currentpermissions - integer
- basepermissions - integer
- everyonepermissions - integer
- groupid - character varying(36)
- groupowned - boolean
- saleprice - integer
- saletype - smallint
- flags - integer
- creationdate - integer
migrations
Not sure what this is for. It may be for storing the version of the database schema used.
- name - character varying(100)
- version - integer
primitems
Primitive items
- itemid - character varying(36) NOT NULL
- groupid - character varying(36)
- primid - character varying(36)
- parentfolderid - character varying(36)
- assetid - character varying(36)
- ownerid - character varying(36)
- lastownerid - character varying(36)
- creatorid - character varying(36)
- creationdate - integer
- type - integer
- invtype integer
- name - character varying(255)
- description - character varying(255)
- nextpermissions - integer
- currentpermissions - integer
- basepermissions - integer
- everyonepermissions - integer
- grouppermissions - integer
- flags - integer
prims
Data on each prim. There's a lot of stuff in here.
- uuid - character varying(36) NOT NULL
- regionid - character varying(36)
- groupid - character varying(36)
- parentid - integer
- parentuuid - character varying(36)
- ownerid - character varying(36)
- lastownerid - character varying(36)
- creatorid - character varying(36)
- creationdate - integer
- linknum - integer
- name - character varying(255)
- text - character varying(255)
- description - character varying(255)
- sitname - character varying(255)
- touchname - character varying(255)
- objectflags - integer
- ownermask - integer
- nextownermask - integer
- groupmask - integer
- everyonemask - integer
- basemask - integer
- material - smallint
- scriptaccesspin - integer
- textureanimation - bytea
- particlesystem - bytea
- clickaction - smallint
- color - integer
- positionx - double precision
- positiony - double precision
- positionz - double precision
- grouppositionx - double precision
- grouppositiony - double precision
- grouppositionz - double precision
- velocityx - double precision
- velocityy - double precision
- velocityz - double precision
- angularvelocityx - double precision
- angularvelocityy - double precision
- angularvelocityz - double precision
- accelerationx - double precision
- accelerationy - double precision
- accelerationz - double precision
- rotationx - double precision
- rotationy - double precision
- rotationz - double precision
- rotationw - double precision
- sittargetoffsetx - double precision
- sittargetoffsety - double precision
- sittargetoffsetz - double precision
- sittargetorientw - double precision
- sittargetorientx - double precision
- sittargetorienty - double precision
- sittargetorientz - double precision
- shape - integer
- scalex - double precision
- scaley - double precision
- scalez - double precision
- pcode - integer
- pathbegin - integer
- pathend - integer
- pathscalex - integer
- pathscaley - integer
- pathshearx - integer
- pathsheary - integer
- pathskew - smallint
- pathcurve - integer
- pathradiusoffset - smallint
- pathrevolutions - integer
- pathtaperx - smallint
- pathtapery - smallint
- pathtwist - smallint
- profilebegin - integer
- profileend - integer
- profilecurve - integer
- profilehollow - integer
- state - integer
- texture - bytea
- extraparams - bytea
regions
Information on regions?
- regionid - character varying(36) NOT NULL
- ownerid - character varying(36)
- originid - character varying(36)
- regionhandle - bigint
- regionname - character varying(32)
- regionrecvkey - character varying(128)
- regionsendkey - character varying(128)
- regionsecret - character varying(128)
- regiondatauri - character varying(255)
- serverip - character varying(64)
- serverport - integer
- serveruri - character varying(255)
- regionlocx - integer
- regionlocy - integer
- regionlocz - integer
- eastoverridehandle - bigint
- westoverridehandle - bigint
- southoverridehandle - bigint
- northoverridehandle - bigint
- regionasseturi - character varying(255)
- regionassetrecvkey - character varying(128)
- regionassetsendkey - character varying(128)
- regionuseruri - character varying(255)
- regionuserrecvkey - character varying(128)
- regionusersendkey - character varying(128)
- regionmaptextureid - character varying(36)
- serverhttpport - integer
- serverremotingport - integer
regionsettings
Settings for each region.
- regionid - character varying(36) NOT NULL
- blockterraform - boolean
- blockfly - boolean
- allowdamage - boolean
- restrictpushing - boolean
- allowlandresell - boolean
- allowlandjoindivide - boolean
- blockshowinsearch - boolean
- agentlimit - integer
- objectbonus - double precision
- maturity - integer
- disablescripts - boolean
- disablecollisions - boolean
- disablephysics - boolean
- terraintexture1 - character varying(36)
- terraintexture2 - character varying(36)
- terraintexture3 - character varying(36)
- terraintexture4 - character varying(36)
- elevation1nw - double precision
- elevation2nw - double precision
- elevation1ne - double precision
- elevation2ne - double precision
- elevation1se - double precision
- elevation2se - double precision
- elevation1sw - double precision
- elevation2sw - double precision
- waterheight - double precision
- terrainraiselimit - double precision
- terrainlowerlimit - double precision
- useestatesun - boolean
- sandbox - boolean
- sunvectorx - double precision
- sunvectory - double precision
- sunvectorz - double precision
- fixedsun - boolean
- sunposition - double precision
- covenant - character varying(36)
terrain
This looks fairly simple. I'm guessing that it contains the height map for each region.
- regionid - character varying(36) NOT NULL
- mapdata - bytea
useragents
Some user information.
- profileid - character varying(36) NOT NULL
- agentip - character varying(24)
- agentport - integer
- agentonline - boolean
- sessionid - character varying(36)
- securesessionid - character varying(36)
- initialregion - character varying(255)
- region - character varying(255)
- logintime - integer
- logouttime - integer
- handle - bigint
- positionx - double precision
- positiony - double precision
- positionz - double precision
- lookatx - double precision
- lookaty - double precision
- lookatz - double precision
userappearances
Information for the appearance of each avatar. I'm not sure what the difference between the *assets and *items is.
- owner - character varying(36) NOT NULL
- bodyitem - character varying(36)
- bodyasset - character varying(36)
- skinitem - character varying(36)
- skinasset - character varying(36)
- hairitem - character varying(36)
- hairasset - character varying(36)
- eyesitem - character varying(36)
- eyesasset - character varying(36)
- shirtitem - character varying(36)
- shirtasset - character varying(36)
- pantsitem - character varying(36)
- pantsasset - character varying(36)
- shoesitem - character varying(36)
- shoesasset - character varying(36)
- socksitem - character varying(36)
- socksasset - character varying(36)
- jacketitem - character varying(36)
- jacketasset - character varying(36)
- glovesitem - character varying(36)
- glovesasset - character varying(36)
- undershirtitem - character varying(36)
- undershirtasset - character varying(36)
- underpantsitem - character varying(36)
- underpantsasset - character varying(36)
- skirtitem - character varying(36)
- skirtasset - character varying(36)
- texture - bytea
- visualparams - bytea
- serial - integer
- avatarheight - double precision
userfriends
Friends of users.
- userfriendid - character varying(36) NOT NULL
- ownerid - character varying(36)
- friendid - character varying(36)
- friendpermissions - integer
userprofiles
User profile information.
- id - character varying(36) NOT NULL
- webloginkey - character varying(36)
- firstname - character varying(32)
- surname - character varying(32)
- email - character varying(250)
- passwordhash - character varying(32)
- passwordsalt - character varying(32)
- homeregionid - character varying(36)
- homeregionx - integer
- homeregiony - integer
- homelocationx - double precision
- homelocationy - double precision
- homelocationz - double precision
- homelookatx - double precision
- homelookaty - double precision
- homelookatz - double precision
- created - integer
- lastlogin - integer
- userinventoryuri - character varying(255)
- userasseturi - character varying(255)
- image - character varying(36)
- firstlifeimage - character varying(36)
- abouttext - text
- firstlifeabouttext - text
- candomask - integer
- wantdomask - integer
- userflags - integer
- godlevel - integer
- customtype - character varying(32)
- partner - character varying(36)
- rootinventoryfolderid - character varying(36)

