Skip to content
lickx edited this page Sep 21, 2024 · 175 revisions

This is OpenSim master with my own change-set on top, addressing issues that the upstream team neglects to fix.

lickx is the active branch, while master is a 1:1 clone of upstream. If you will also be needing the MoneyServer, they have a dotnet6 version in their subversion repo (trunk branch). Alternatively, see my Gloebit fork for a compatible Gloebit module (lickx branch).

I'm more of a user than a developer, so I focus mainly on fixing annoyances and stuff that should 'just work'. The code in this fork has been in use for several years on live production regions/grids.

Some changes are on the grid side, meaning you won't notice them unless your home grid services and default assets (robust) runs this fork as well. For a live demo see Grids and Regions.

NB. I don't keep patches I made in the past for the Mantis up to date anymore. The latest code is always in this fork.

Features

  • Hypergrid: Resume the scripted attachments of hypergrid visitors when they arrive Mantis 8366. Big feature, this makes hypergrid visitors have a pleasant stay, because they no longer need to re-attach their scripted attachments after arriving. See Hypergrid Teleport. HG visitors will get an information popup once attached assets are complete and scripts resumed, and from that point on, can leave the region to visit other regions or stay around for a bit
  • Hypergrid: Don't allow hypergrid visitors from grids whose HomeURI is an ip address instead of a proper hostname
  • Scripting: The "local" parameter for certain LSL functions (llApplyImpulse etc) is now respected Mantis 8556
  • Scripting: CHANGED_POSITION, which is a changed() event that only exists in OpenSim not SL, now only fires to the rootprim for better performance Mantis 8539
  • Scripting: Support receiving a /declined response from RLVa viewers by including a certain string in the inventory offer message (which RLVa viewers have hardcoded to check) Mantis 6311 Test Patch
  • Scripting: Improved SL compatibility for llMoveToTarget; Roleplayers that use collars will like this (no more leash weirdness on slopes/ramps/stairs) Mantis 8250
  • Scripting: Stopping the default sit works properly. Those wearing a ZHAO AO, might want to upgrade their AO scripts to the 'Seamless Sit' variant, this is no different than in SL. Modern AOs that use llSetAnimationOverride will "just work". Mantis 9042 commit
  • Scripting: Out of the box, sim-local object2object mail works with llEmail. Additionally, inter-sim object2object mail can be enabled, which requires one account (shared by all simulators) on an IMAP server, or running your own IMAP server like Courier. See Inter‐object email with llEmail()
  • Scripting: "grid" and "region_rating" are now supported parameters to llGetEnv(), on par with SL. With "grid" it provides a portable way to get the grid name without having to use ossl. With "region_rating" it provides a direct way to get the maturity rating for this region without having to use the dataserver. Additionally, the "objectmail_hostname" parameter retrieves the email hostname for objects on this region.
  • Profiles: Unicode profiles and unicode profile picks (grid-side database migration)
  • Security: Option for globally disabling visitor's ability to 'Take Copy' of objects set that way. This way it can be prevented rezzed out objects with an incorrect or forged creator name further spread over the hypergrid. When this security option is enabled, taking a copy is still possible if you have been granted modify perms by the object owner (a friend or alt), OR if you have godmode powers.
  • Security: God mode is by default disabled for everyone, including the region owner; and enabled for grid admins only (level >=200)
  • Security: Fix per-sim viewer white/black-lists for OpenSim.ini (before this only worked grid-wide through Robust.ini). Example .ini config
  • Privacy: osGetAgentIP is by default disabled for everyone, including the region owner. Such real-life info should not be exposed to scripts.
  • Animation: Unbreak and restore original mouse-navigation speed Mantis 9005. Mouse-navigation is walking/running when holding LMB + RMB; In vanilla OpenSim, this is broken because of what feels like a backpush force, like walking against the wind in a storm. commit 5f0dfd7
  • Assets: Some missing assets (used by viewers) have been added, others have been upgraded to higher quality (factory-default assets update)
  • Groups: Incoming hypergridders will auto change group to the one they have active for this grid (or none)
  • Groups: After entering a parcel with scripts enabled for group members only, then changing to the needed grouptag, attached scripts will resume
  • Groups: On changing grouptag (either manually or by incoming HG teleport), all attachments are set to the active group according to spec
  • Groups: The group changes can be found in Mantis 9052 and Mantis 8366. As a positive side-effect, other old group issues are now also resolved: no need to re-open the group dialog after changing something (like role permissions), and inviting someone in a specific role now actually works.
  • Friends: Rewrite HGStatusNotifier, so we now have working online/offline notifications from and to HG friends; at least from/to their homegrid Related mantis 8953 Vanilla Robust sends one single notice for all friends per given grid. That never worked alright; so we send one notice per friend, even if multiple friends are on the same grid.
  • Land: Safer default perms for new and abandoned land (everyone/group = no rezzing, yes object entry; autoreturn = 300 seconds) Mantis 9014
  • Land: Fix parcel restrictions not being enforced where the parcel owner demands 18+ or PIOF. See Adult and PIOF checking
  • Full support for linux/ARM64 architecture (ubODE, sqlite). Note this has been compiled on Debian 12 so you might need a similarly recent distro.
  • Do away with PresenceService and GridUserService caches as this will not work in a grid where these services are ran behind a proxy (typically multiple/redundant robust instances). The FriendsService still has a cache, which means you should limit that service to a single instance for now.
  • Archives: When --default-user is specified, then besides objects also make parcels whose owner doesn't exist belong to the user specified. When --default-user is ommitted, objects and parcels are set to the estate owner like usual. One use of this is when you want the estate owner to be a dedicated Governor account, while any parcels with objects loaded to be owned by the user specified with --default-user.
  • Communication: Customised whisper, chat and shout distances where ignored because it attempted to load these from the wrong section (SMTP instead of Chat) in OpenSim.ini.

Branches

The active branch is lickx

  • lickx - master + the lickx changeset (.NET 8.0)
  • master - tracks upstream master (.NET 8.0)

Overview of changes (diff)

lickx vs upstream master

You can also see this with Git itself, for example:

git diff master lickx

Issues

Can the issue be reproduced on vanilla OpenSim? Then file the bug at Mantis
Is the issue specific to OpenSim/lickx? Then file the bug at Issues
Feature requests can also be filed at Issues

Binaries

I no longer make binary snapshots, as the people who use this prefer to compile from source. That is quite easy, you don't have to be a programmer, following the instructions at the wiki.

Dreamgrid

I don't use this, but as far as I understand you can't just replace the OpenSim that comes with it, as Dreamgrid has proprietary extensions.

Diva Wifi

Diva hasn't made Wifi available yet for .NET 8. In the meantime you'll have to use some other web framework for user management, such as W4OS, or jOpenSim. Or just use the robust console :)

OsGrid

OpenSim/lickx can be used for simulators on OsGrid, only a few things might not work (unicode in profiles, low quality default assets, etc) due to OsGrid grid services running vanilla Robust, not lickx. See Binaries.