LScript "Wish List"

ArtHowe

New member
Hello everyone,

We would like to hear from all of you as to what your "wish list" of LScript features is. What would make your job as a scripter easier? Shoot for the sky here. I want to come up with a list that we can cull from for the next major release of LScript.

Go!

Art
 
How about LScript Editor that can be customized with its own macro programming language for starters. Lots of ideas for editor development...

The only benefit from the current LSED was being able to obtain all of the lscript templates. :)


Secondly, macro key recorder for modeler....
 
Just three (but more than enough)...
- better LScript integration
- everything accessible by LScript
- better compatibility with old versions: 7.5(a/b/c/d) / 7.0 / 6.5 / 6.0 (and even older)

"LScript 2 C Converter" and a Visual Editor (LSID+LSED) should be a great add too! ;)
 
Now THIS is what we wanna hear!!! I can feel requests coming thick and faaaast!!!

I'm not massively into LScript programming, partly because I find it difficult to locate information in the docs, or the concepts aren't explained for the 'average' user.

So that's my first request - FULL, crisp, clear, easy to navigate, simple to follow, loaded with examples, documentation!

Then, these would be cool ...

Easy realtime preview drawing commands

A whole bunch of commands to make it easier to draw 'previews' of what your lscript might do would be great, for example: if I wrote an lscript that created clone arrays of the selected object, I'd love to be able to show a bounding box preview of what the layout would look like - all in realtime.

Sort the gadget layout code out!

If I use the LSID.exe (LScript Interface Designer) program to layout my interface, when it's run within LightWave it's different.

Also, at the moment it seems to take any text associated with the gadgets into account when laying out the gadgets, personally, I'd rather the X, Y, Width, Height just dealt with the gadget itself. The text should just be allowed to 'flow'.

For example, if I have a load of number gadgets layed out perfectly and I later decide to change the name of them, the layout will be screwed. This is why I suggest leaving the text out of the layout coords. Then I could change the text and the layout will be the same.

I hope that made sense, difficult to describe, if not, let me know and I'll post some images!

Open the whole deal out!

It would be great to be able to access, in full, every command, tool, window, tab etc from Lscript, nuff said!

Lscript compiler to .p

Not sure about this request, I know you can compile lscripts now to .lsc, whether they run quicker I don't know, I've never done it! However, if there was a way to compile lscripts so that they run as quick as .p plugins then that would be useful (obviously options to compile for Mac / PC on either machine would be just too cool!)

If that's not possible just make lscript lightening quick!

Re-write the Lscript editor suite

While they're better than nothing, LSID.exe and LSED.exe (LScript Editor) could be sooooooo much better! Drag them into the 21st Century please!

Having the two programs accessible from _within_ LightWave would be great, that way you could create, edit and tweak an Lscript all from inside LightWave - no need to keep flipping between programs.

Regarding debugging; take at look at the one for Lingo in Macromedia Director - something like that would be great!


That's all that come to mind at the moment! :)
 
Last edited:
Born from the frustration of another thread!

A command to find the Bounding Box of the current selection in _Layout_. Much like the command of the same name in Modeler!

Cheers
Matt
 
Some of my wishes (besides those mentioned):

1. Functional versions of all the controls that native LW uses in its panels.
In particular:
a. [E] & [T] buttons which I call shift-toggle/State buttons
b. A floating point minislider - especially a ctldistance minislider
c. Being able to associate UDF's with ALL controls
d. Being able to pass variables into the UDF's for ALL controls (not just ctlbutton)

2. Non-modal panels in Modeler

3. Extensive keyboard and mouse detection in Modeler & Layout. Especially in the Perpective view.

4. The ability to write plugins in VB (I'm probably the only one hehe).
 
I must admit the LSED should be better. I like the interface very much and it doesn't really need any more functionality for me, but it crashes so much that I have long since given up on it, so I write all my coding in notepad.

If anybody caught my thread earlier you know I would love to have a real minislider that holds distances as well. :)
 
used LSED last night for several hours, crashed on me so much.


I wish for a LScript plugin for MS Visual Studio .Net
 
I've never had LSED crash on me, as much as I can remember, but it has exhibited odd behaviour like lines disappearing when I delete newlines or copy and paste, normal editing things like that...
 
Merge Expressions and LScript:
* allowing for multi-line expressions
* allowing for automatic ui generation from expressions (similar to Macromedia Director & properties, I could specify this more on demand).
* Allow for Command recording in Modeler
* Every Get... should have a Set... and vice versa (for example for positioning windows, getting the active status of items etc...).
* Add a command line and history window to both Layout and Modeler (there should be space for that where the status bar is).
* extend the SDK to allow plugins to extend LScript, either with utility functions (libraries, possible in a limited way at the moment), or with plugin-related functions, i.e.
inertia.setLag(1.5);
Where inertia is an instance of the inertia plugin on an object.
This should ideally be done with a parser integrated into LW that calls callbacks in the plugin (a bit like how XPanels work).

Cheers,
Mike
 
Last edited:
Most, if not all of my requests have to do with Modeler...

I'd like to be able to check what selection mode is active and whether symmetry mode is active or not, aswell as be able to toggle symmetry mode on/off.

I'd absolutely like non-modal panels, but what I would really enjoy is access to the numerics panel. I like many others have this panel up all the time, and I prefer to have everything go in there instead of getting a popup that obstructs my view.

It would also be nice if the core of lscript could somehow be changed so it would automatically (or optionally) sort out multilayer editing without you having to write the specific code for that to happen. However, I don't know if this would be possible/reliable in all situations.

Being able to draw and create handles (the bright blue thingies) from within lscript would be super!

And last for something that might extend beyond lscript alittle bit, but can affect the use of it a whole lot. I'd like selections looked over! Currently large arbitrary selections go really slow, and I think it has more to do with redraw speed than anything internal, because if you switch to the opposite selection mode first (the one you don't want selections done in; simply by running that selection command as "blank" as possible), it goes alot quicker. Perhaps this kind of "selection mode switching" could be incorporated into the core of LW/lscript, because in some situations you are not able to or don't want to use this hack. Compare the two scripts below on a model of maybe 10 000 - 50 000 points to see the difference. SelSlow.ls just selects the points in order. You'll acctually see how it selects one point after the other. SelFast.ls first switches to poly mode (and stays there), then selects the points. This time you won't see LW select the points, and you'll have to switch back to point mode manually (which is one of the reasons you might not want to use this hack; it's not user-friendly). Still, it's faster. The difference is one line (Note to those who did not know about this hack: Instead of using CLEAR, you should try and select nothing instead). I think for all situations such as these (non-interactive selections) NT should change the internal workings. We really don't need to see how each and every point get selected and I don't believe a fix should be that hard.

Code:
SELSLOW.ls

main
{
selmode(USER);

editbegin();
Pnts = points;
editend();

//selpolygon(CLEAR);
selpoint(SET, POINTID, Pnts);
}
Code:
SELFAST.ls

main
{
selmode(USER);

editbegin();
Pnts = points;
editend();

selpolygon(CLEAR);
selpoint(SET, POINTID, Pnts);
}
 
Last edited:
I would like to thank those who have posted for the wonderful ideas. For those of you who are lurking and have yet to post, please do so!

I will begin putting together a master list of all the ideas presented here and will post it early next week. From there we can begin discussing them in further detail.

Art
 
What I'd Want In LScript

Hi -- I am *SO* glad you asked.

I'm a mostly nonprofessional user, software engineer by day, pixels for my art wank friends at night.

I would love to be in your beta list for reviewing changes and doc. API's and languages are my favorite things. -- [email protected] .
---------
Ok.

I like to use LScript to build complicated models algorithmically, and I'd *like* to use it to build complicated scenes and animations algorithmically as well.

So what gets in my way?

1. I've found quirks -- probably bugs -- when trying to create geometry from nothing. I had to start with a "stockpile" of quads and my Modeler script manipulated those. It just seems like LScript is pretty loose.

2. Documentation. I couldn't find a list of all the available commands, sorted out in any complete fashion. If I remember rightly, I somehow guessed the command "imageload" or "loadimage", to build up a lot surfaces programmatically.

3. Yes, anything you can do from the GUI should be scriptable. (It seems like Maya has this story architecturally pretty tight.) In Modeler, would be nice to have that command-execution view like in Layout, so you can see what the LScript would be.

And, since you said Shoot for the Sky here, I'll go ahead and say it:

JavaScript would be a nice scripting language for LightWave. It's the language that Adobe has standardized on for their applications, and that alone makes it worth considering. But, really, it is well suited for application scripting. And you can buy a book about the language from the corner bookshop, which can save you some work.

Hey, you said shoot for the sky!

-- David Van Brink / [email protected]
 
Greets,

Lately I've been doing a lot of UI programming. Hopefully from that point of view, you can understand why I'd want these features:

  • Some sort of Timer function.
  • Keyboard up event. (right now, it's just keydown as near as I can tell.
  • Mouse Wheel Access
  • Forward a keypress on to Layout. (The interface I've made stays open and active all the time, preventing keys from making it to layout. I'd like to be able to forward them on in case somebody has a different kb layout than I do.)
  • Double buffered graphics. A bunch of 'drawline' commands takes way too long.
  • Change mouse cursor
  • Mouse Hover event (for creating tooltips, etc...)
  • Master Class support in Modeler for non-modal plugins

Cheers, and thanks for listening. :)
 
Lsid wish list

I’d used Lsid heavily last week. So I’d like to post some of my notes on the limitation I came across. Most of these are more of an issue simple because we can’t edit the interface in Lsid after we have exported. The interface I made had 115 buttons in 7 tabs, just to give you an idea what I mean by heavily. It’s pretty frustrating that I can’t go back to Lsid and make changes. But oh well on to the notes.

Requester type:
You can not specify what type of requester you are making. IE: non model master interfaces

You should also be able to specify what is resizable.

Variable name and Saveing order:
You also have no control over what variable is assigned to a button for export. IE: They are all numbers c01, c02 ,c03.
You can not reorder the buttons. You can in Lsid but it’s not saved and it’s not exported in that order.

So on top of no way to reorder them for export we can’t name them the way we want.

Missing components:

Ctlstate
Ctlmenu
Ctlsurface,ctlfont
Ctllistbox

Control mangagment:
Ctlgroup: We can parent items to others but they do not save or export as groups.
Ctlposition: Resizing buttons is really bad because the button height is so easy to adjust at the same time. Restrict height editing in some way and allow us to edit ctlposition directly.

And of course please can we have sliders and minisliders that is not limited to just integers.


I hope these notes are useful. 8)

Scott Lange
www.steelronin.com
 
Snapping inside LSID would be very welcome too. And in addition to that it would be cool if their were some templates so you could make your plugins/scripts conform to the same standards as the native panels do. Because of the lack of snapping, the last time I used LSID (some time ago) I prefered to just dot out the controllers I needed and then fixed all positioning in the texteditor. Not the way it was meant to be, I hope. An alternative to LSID would perhaps be a WYSIWYG Lscript editor/debugger combo run directly from inside LW (with crash and loop protection :)).
 
I think this has already been said but I'd love to see java working as lscript does now. Much less work than implementing your own language/interpreter/IDE etc.
 
Back
Top