LSL functions for GLTF
Only the old materials can be set by script (diffuse/normal/specular), not the new GLTF materials. It is said this will be implemented in OpenSim at a later stage "when Linden Lab has finalized their messy GLTF implementation". Except that has already been finalized since a year and OpenSim creators want to use it now as well.
Cross-region listeners
Objects can't receive chat from other objects across the region border, like from a neighbouring region. Only avatars can receive cross-region chat. This is problematic for combat systems, vehicles with followers (train carriages), chat repeaters etc. OpenSim is kind of stuck in 'the region = the world' idea. And then you get people give the poor advice 'just create a big var region instead'.
Bullet collisions (combat)
Bullets need to be cannonball sized to collide, and even then they don't work accurately or reliable. Existing gun scripts from SL (such as the popgun in the default library) don't work without some additional hacking. The spawner script (gun) needs work, and the bullet script needs to start movement itself because any force that the spawner gives the rezzed object is not applied (and rotation is not respected). Best alternative is using raycast in weapons.
Car vehicles in ubODE
The only reliable collision shape for a car is a single squashed sphere. With a boxprim shape you'll drive into a invisible wall when a forthcoming road piece is even a few cm. higher than the current road piece, and you would have problems crossing regions. Convex on convex is problematic in ubODE: you can't have a convex collision hull driving on a convex road. One of those (either the car collision hull OR the road) needs to be simple box or sphere prim (but sphere makes no sense for a road), not cylinder or mesh. If driveable cars (better said: collision vehicles) are the most prominent feature in your place (such as a race track), stick with BulletSim physics. For all other types of vehicles (and other features such as walking up a stairs or sit on anything without needing a sittarget) ubODE physics is superior.
Environment tracks
The way EEP is implemented in OpenSim is incredibly flaky. You can't drag and drop a sky or water preset on a track in the Environment tab of the parcel/region floater. The only way an environment can be set, is create an entire daycycle (!!!). Parcels have more limitations than regions, the core developers stance is 'people use entire regions anyway, parcels are a SL thing'. No wonder nobody is interested in OpenSim.
llSetForce in attachments
Apparently this is not possible in the current physic engines of OpenSim, and it is a mystery how Second Life implemented this. The feature is used in for example swim HUDs or parachutes. Another idea is simulate zero gravity as in space.
Display names
Despite a fully working, hypergrid-compatible implementation being offered to upstream by an external contributor, this was refused by core solely based on personal objections against display names.
Server-side baking
Here's what happens when a user logs in to OpenSim:
- All texture assets referred to in worn system layers are fetched to the client
- The textures get upscaled to 2048x2048px, even if none of the textures is that big
- The textures are then baked into 2048px composites: head, upper body, lower body, eyes, hair, aux1, aux2, aux3, left arm, left foot
- All those composites are then send to the simulator
- An AgentUpdate is sent to all people in the scene, and their clients AND your client then downloads all those composites (yep your client fetches them again while it already had them from step 3!)
- At this point your avatar is fully baked and visible
Client-side baking is super slow. In SL step 1 to 4 are done by the Baking Service, probably a cluster of servers dedicated to doing just that. If OpenSim had SSB, a grid could suffice with 1 server for that task due to low concurrency (I mean OsGrid is the busiest grid and peaks at like 100 users logged in at the same time).
The viewers could improve here too. Far too many operations do a needless rebake. For example going into the appearance editor, then don't do or change anything, then going out of appearance causes a needless rebake. Another optimization is DO NOT rebake if an added or removed system layer only contains TEXTURE_TRANSPARENT because visibly nothing changes anyway. Transparent layers are utilized by RLV users for smartstrip.
Inventory thumbnails
This depends on implementing the Inventory API v3; OpenSim still uses the old API. This also is the cause of thumbnails in the outfit gallery to not work properly in current OpenSim.