I want a second action button in Second Life’s controls

Just before Rod Humble entered the scene and just after upgrading my island to a full region, i had started a project to create a game that tapped into childhood joys of bashing things with a stick. 

It was my first real attempt at making a game within SL and over the years I’ve tried to make it as easy as possible to use while maximising the fun. It’s now at version 4.5 and includes Health, auto teleporting and animations, but while I’m still waiting for a new Permissions system to make things even MORE easy for the user to use, I’m going to blog about something else that I’ve found it hard to work around.

 “Action”

Second life has a plethora of control keys to move your avatar but only one button for an action. This is the mouse button. You click on an object to sit, open doors, fire a gun or activate a scripted object.

Mouse Look

Traditionally with projectile weapons you change to ‘mouse look’ mode and click mouse button to fire a cow gun, Problem is, if you try to open a door while in mouse look you end up with cow all over your door.

mouselook
in mouselook i can shoot monsters and other avatars with weapons and swing my stick, but i can not open this door 🙁 if only i could click a key to open it.

3rd Person

For my bashing game i wanted people to stay in 3rd person but still be able to use weapons.  Nothing is cooler than watching you Avatar go nuts on a giant thistle. But you cant click the mouse to fire a weapon in third person, you end up just clicking the floor or where ever your cursor currently is on screen.

3rdperson
In third person i can’t shoot a weapon or swing my stick, but at least i can open doors. If only there was a keyboard button i could press to shoot my weapon or swing my stick 🙁

The HUD Work Around

In my Bashing game i worked around the third person issue by adding a HUD Button that you click to make you avatar bash stuff, But in mouselook you can’t interact with a hud. Would be nice if i could script the controls to map to a keyboard key, but LSL seems unable to do this.

The Gesture work around.

I’ve seen some people use gestures to activate commands such as ‘reload’ or ‘holster’, but its limited and script heavy.

Solution

The easiest solution i can think of is the creation of a second action. A second action button would allow users to finally open a door while holding a weapon in mouse look, or in Third person adventures to attack NPCs without inadvertently sitting on giant mushroom seat.

Or why not allow scripts to map keyboard keys to scripted actions?

Portal-2-small-2-1
It would be nice if i could have more freedom with mapping keyboard keys to scripted actions, Or simply one new action button to activate objects in mouse look or fire objects in 3rd person would be nice.

Why Bother?

Im seeing more and more hardware appearing that revolve around controlling like leap motion, iOS Controllers and headsets that require more intuitive ease of use. The latest Oculus Beta Viewer also suffers from this lack of a second action. I think it’s about time Second Life got a second dedicated Action key.

[UPDATE]

Linden Lab did in fact create such a feature as part of the OCULUS Test Viewer, the X ACTION key, and it worked brilliantly. Unfortunately the Lab then binned the Oculus Viewer and the Action Key feature along with it.

I made a Jira to try and get the Feature added to official viewer with no luck yet…

8 thoughts on “I want a second action button in Second Life’s controls

  1. Shift control is not an option?

    default
    {
    state_entry()
    {
    llRequestPermissions(llGetOwner(), PERMISSION_TAKE_CONTROLS);
    }
    run_time_permissions(integer perm)
    {
    if(PERMISSION_TAKE_CONTROLS & perm)
    {
    llTakeControls(CONTROL_FWD | CONTROL_BACK | CONTROL_DOWN | CONTROL_UP | CONTROL_RIGHT | CONTROL_LEFT | CONTROL_ROT_RIGHT | CONTROL_ROT_LEFT | CONTROL_LBUTTON, TRUE, FALSE);

    }
    }
    control(key id, integer levels, integer edges)
    {
    integer Pressed = levels & edges;
    integer Down = levels & ~edges;
    integer Released = ~levels & edges;
    integer Inactive = ~levels & ~edges;
    integer Shift = levels;
    integer Unshift = edges;

    if(Shift & CONTROL_RIGHT)
    llOwnerSay(“Shift + CONTROL_RIGHT”);
    }
    }

    • As much as i appreciate the suggestions here, i don’t think these solutions are friendly to the future of SL. I mean, when it comes to stuff like OculusVR and Leap Motion, SLGo and any other sensor driven or mobile tech that hope to make interaction more simple and intuitive, Second Life will remain complex because it lacks a simple solution to having a second Action. Having to press a combination of keys to enact a simple action is wrong. Having to script complex methods to achieve a simple action is wrong.

  2. I realize i am addressing a different topic, but while we’re in the process of collecting software requirements :p I’d like to share my pet peeve with SL controls: the awkwardness of them in mouse look. Yes it offers WASD, but for instance you can’t strafe jump, and every movement comes across as sequential and clumsy. Just try a paintball game in-world and you see what I mean.

    There may always be the separate issues of loading textures/mesh and script lag, but as far as client-server position update / movement prediction / user controls / responsiveness are concerned there is absolutely no reason why SL should offer a lesser user experience than the ancient old Quake 3 Arena game. Or any of its Open Source clones.

    And yes, two action buttons (mappable to mouse buttons or keys) should be part of it. And I agree, HUDs and scripts have no place in the control chain. It must be native and built into the network protocol.

    Imagine, SL could become a serious gaming platform!

Leave a Reply to Matthew Querrien Cancel reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.

%d bloggers like this: