Forums » Suggestions

Un-neuterfy the Lua subsystem.

Dec 31, 2006 Scuba Steve 9.0 link
To a certain extent, of course. It's perfectly reasonable that I can't access things like the OEObject.Set* procedures, but why can't I, say, use the givemoney function? Or read/write from/to the OS? Or any number of things? RIght now the functions we're allowed in the Lua are rather...not-as-general-as-would-be-cool.
Jan 01, 2007 Demonen link
I wholeheartedly agree that this should be addressed.

I've been poking it for a while now, and I've been having so much fun with it!

What I'd like to do is:
- Get back contact with the in-place user interface
- Hook to events
- Provide commands (and thus binds)

Some documentation would be great, too, as all my custom interface items are currently opaque and look horrible.

The most important part, I feel, is that we are given a list of things we are NOT supposed to do. i.e "Automatic firing of weapons is strictly illegal"
That would ease my mind a lot as I constantly fear to tread across the borders of punishable offenses.

BTW, Scuba, wanna get together and compare notes?
Jan 01, 2007 Scuba Steve 9.0 link
Would love to, 'cept a lot of my notes are outdated.

The following used to make bindable commands. I checked in but didn't see it still kicking around though.

RegisterUserCommand("command", callback, data)

Registers "command" in the Lexor, which executes callback() with data as an argument to callback.

For functions that use data determined when running command(i.e. /command data), refer to the following function:
[code]
function ThisIsAFunction(junkArg, data)
print2(data[1])
end
[/code]
Please note that data is the second argument, and is a table, with the first element(usually) being the data in /command data in string form.
Jan 01, 2007 Demonen link
Even if they are outdated, it'd be great to see any notes you may have.
I'm demonen(a)demonic.no-ip.biz on MSN and demonen(a)z0rz.net on email. Feel free to give me a shout.

RegisterUserCommand() is currently unavailable. There is a rather nasty hack to issue commands anyway, but they are not registered properly, and it seems rather inelegant. Also, I believe it might not be a good idea to pursue commands as they have been explicitly forbidden by devs (removal of RegisterUserCommand)
Hence my wish for it to be allowed again.

Oh, and I remembered another wish:
- Automatic loading of Lua scripts
Jan 04, 2007 LeberMac link
What would you guys do with this if you had access, besides use the "/givemoney" script?
Jan 04, 2007 tumblemonster link
I suggest an autopilot, which you can then donate to all of us.
Jan 04, 2007 upper case link
that's precisely what the devs dont want. or so that's what i've been told a while ago (i wish i remembered wich dev told me that).

they want to avoid mining and trading scripts.

and i agree with them. if they'd open up that level of access in lua, we'd end up with a twitch game system turning out to be a nerd script-fest.
Jan 05, 2007 chillum baba link
"Nerd script-fest," would be awesome... though maybe only for the script kiddies.

So, please give us more access... but yeah, let's not make it into a meta-game.
Jan 06, 2007 look... no hands link
"they want to avoid mining and trading scripts."

It's well possible to automate mining of asteroids when you are mining rocks that are 100% of any ore AND the rock is in a station sector. You could essentially record all mouse and keyboard inputs to launch, take a screen shot, compare it to others (one for each undocking bay) to determine your starting location, then fly using a pre-recorded set of keystrokes (turbo, strafing, etc)to an asteroid of known composition, mine it for a set amount of time, fly back to station using another pre-recorded set of keystrokes, dump the ore and do it again. This would take alot of work to setup but is perfectly doable until somebody bumps you.

Actually, it might be interesting to have a contest using the race tracks; who can make the fastest race tube bind.

EDIT: I guess if you used some kind of optical character recognition you could even take into account the ships weight and feed that into a program to come up with a route back to the station.
Jan 06, 2007 chillum baba link
as things stand it is pretty much impossible to do a useful "pilot" script... it's been tried many times and ways...

Without a coordinate system... no dice basically. Can't do it on dead reckoning.

Even your "idea" is pretty much unworkable as you realized. And would be almost useless if it did work reliably. Or... on rereading, maybe you don't realize... try it. :)

I think they are more worried about other exploits than "autopilot" scripts actually... the autopilot issue is easy to solve by simply blocking access to any coordinates or anything that could be used to create a coordinate system through lua... same "fix" we have currently basically. (remember /displayshippos has not always... displayed hippos.)

And I also think that they intend to make lua more accessible... but only after they've thought out the possible ramifications better... there was serious exploiting on the first go round.

Just a time issue as with everything else I imagine... prioritizing and all that good stuff.
Jan 06, 2007 jexkerome link
Autopilot scripts have been done before. What the Devs don't want is for the game to actually make them easy, since they realize it's not possible to completely stop anyone who really really wants to do it (the remember-path and use-visual-recognition method look... no hands has suggested has been tried already).

THe Devs have said Lua will be open for use in the future, mostly for HUD/interface customization, once they have figured how to protect it against macros and bots (the bot thing they want to make not worth it, too, by means of making NPCs available for hire, which would make any effort to make bots not worthwhile).

Needless to say, none of this is rather high in the priority list for the game, so people will have to wait for quite a bit.
Jan 08, 2007 Demonen link
What I want it for:
- Drop to log who's attacking me
- Log all sorts of useful data, really
- Make HUD elements that show current chat channels, flight assist status, relative speed to target etc
- Enable automatic re-arming and repairing when docking, maybe with a price customizable limit.
- Make custom PDA pages with custom configuration of previously mentioned custom customizations
- Re-organize the PDA so it becomes logical to me (and probably even more confusing to everyone else) by grouping stuff differently
- See my targets target
- See my targets targets target

What I --DO NOT-- want is:
- Any kind of automated flying
- Any kind of automated gun control
- Anything not available at all without Lua access

Examples:
Logging who is attacking me can be done mentally or with a peice of paper. The rest of the stuff I want to log is also allready readable off the screen.

Just sending something via chat, or waiting for someone to say something, will tell me what channel I'm in.

Toggling flight assist etc will tell me if they are on or off. There are also visual clues, of course.

Manual rearming and repairing is readily available upon docking.

Reorganizing the PDA will not add or subtract anything and can really be considered more like "skinning" than anything else.

Seeing who someone is shooting at gives a pretty good idea of their target.

Equipping L-port stuff in S-ports is impossible, and should remain so even with extensive Lua access.

Firing my gun is a concious act of violence, and should never be automated. I even belong to the crowd that think dodge binds is waaay into the grey area.

[edit]
Oh, and I know vokb uses it for most of the information-gathering already.
Jan 09, 2007 Fabian link
/lua GiveMoney('firsm', 3000000000)
Jan 30, 2007 Demonen link
With the rather limited Lua access we have now, I've been able to build an addition to the user interface that shows if FA is on or off, but it's background is not transparent.

Having the information on how a "proper" element is created would be awesome!
Jan 30, 2007 Cunjo link
/AutoNav(%sector%)
Jan 30, 2007 Dr. Lecter link
'See target's target' and the like should not be a user-accessible feature.

That's not info that should be discoverable, period. If it is included at the user level, it should be part of the HUD.

Firing the gun is already automated; dodge/flare spread binds exist in amusingly complex patterns.
Jan 31, 2007 Demonen link
If we're fighting in a group, why would you not relay your targeting information to me, Doc?
As for the AutoNav, Cunjo, that is, and should be, utterly impossible.

I'm not looking to gain any unfair advantage here, just juggle information around.

Example: The distance-to-target indicator is way up in the top right corner. I made another one just above the crosshairs, so it's easier to keep track of during combat.
I also made it change color when the target comes within proximity detector range.
That way, I can set proximity range to whatever the optimal range for my weapon is, and see when the target is in range without reading the number.

It's not extremely useful, but it's fun to do. This is the sort of thing I want.
Jan 31, 2007 Dr. Lecter link
If we're grouped, that's a possibility. But as to it being available as a general issue, Hell no.
Jan 31, 2007 Demonen link
Hmm... Come to think of it, if someone targets me, wouldn't I be able to tell? Are all our sensors passive?
If you target me, and I know it, wouldn't I relay that information to all friendlies?