[REQ] eXscriptor users: feature requests and criticisms

The place to discuss scripting and game modifications for X³: Terran Conflict and X³: Albion Prelude.

Moderators: Moderators for English X Forum, Scripting / Modding Moderators

User avatar
mr.bear
Posts: 444
Joined: Sat, 11. Dec 10, 01:38
x2

[REQ] eXscriptor users: feature requests and criticisms

Post by mr.bear » Mon, 21. Nov 11, 22:41

Hi everybody,

I've been working on a replacement for eXscriptor and I'd like to know people's opinions of what it does well, and what could be improved so I can (try to) implement them to the replacement.

thanks,

mr. bear

------------------------------------

EDIT: I've added the ideas that I know i can actually implement below. I haven't forgotten other people's ideas, but i cant promise ill ever be able to achieve them either :(

Thanks for all the feedback everybody.
Feel free to keep making requests if you think of anything.

mr bear

------------------------------------

Big Ideas

* 'Workspaces' which group lots of scripts and/or languge files together and optionally use specific folder to load game data from.
* The ability to load T-Files from modded catalogues
* Auto-complete for script commands, constants and wares.
* Lookup 'help' on the currently selected command.
* Lookup language file string used by the currently selected command

Little Ideas

* Ability to comment/uncomment the currently selected lines
* Window menu was jumping between scripts
* Less weird numbers in constants
* Hotkey for the command list window
* Adjustable font sizes
* 'Find text' dialog
Last edited by mr.bear on Sat, 3. Dec 11, 11:36, edited 2 times in total.
Rapunzel, Rapunzel, let down your bear...

User avatar
Litcube
Posts: 4254
Joined: Fri, 20. Oct 06, 19:02
xr

Post by Litcube » Mon, 21. Nov 11, 22:48

- The editor window should act more like a traditional text editor. There's some wonky behaviour with eXscriptor, like when you save, the whole wall of text moves to the cursor.

- A hotkey with a context menu popup for MSCI script commands navigable by the arrow keys (just like in the MSCI) would be very handy.

- The default text of <var> and <refobj> in created commands is annoying to delete before typing in replacement variables.

- Some constants should be easier to understand. {M3_2021} for example.

- Better support for text and tfiles. I can't save several scripts due to literals not being translated correctly (names of docks, for example

- eXcriptor is slow in general.

Bookend: Excsriptor is awesome, whimsy did a fantastic job.

User avatar
ScRaT_GER
Posts: 1962
Joined: Tue, 8. Jan 08, 18:19
x3tc

Post by ScRaT_GER » Mon, 21. Nov 11, 23:26

What Litcube said, plus:

- Auto-completion support for commands, variable names, references and constants.

Other than that, Exscriptor is really good at what it does.

One limitation though is the language itself. I think it would be great to have additional language constructs, to bring some more reusability into scripting. My ideas (which I'm currently implementing in my own project, not ready for announcement yet) are:
- inline arrays:

Code: Select all

$array = [$a, $b, $c, {BoFo}, 42, 'Some Text']
- functions:

Code: Select all

$x = myFunction($y, $z)

def myFunction($a, $b)
  * some code
  return $something
end
- hierarchical module system as known from 'real' programming languages, i.e. to define functions which are usable across many scripts

All of these are compilable into normal MSCI and would make MSCI feel a bit less primitive. Of course decompilation isn't possible - or at least very hard due to the nature of how MSCI is actually stored - but it isn't really needed in my opinion.

Greetings,
ScRaT

User avatar
mr.bear
Posts: 444
Joined: Sat, 11. Dec 10, 01:38
x2

Post by mr.bear » Tue, 22. Nov 11, 21:47

Thanks for the replies guys,

LitCube:

Can you give me a bit more detail on these two points please:

1. A hotkey with a context menu popup for MSCI script commands navigable by the arrow keys (just like in the MSCI) would be very handy.

2. Better support for text and tfiles. I can't save several scripts due to literals not being translated correctly (names of docks, for example

And have you got any better suggestions for: "The default text of <var> and <refobj> in created commands is annoying to delete before typing in replacement variables", because it always really annoyed me too, but I really can't think of a better way of doing it :(


ScRaT_GER:

The auto-completion I can do, it's not a problem, but I'm afraid your other ideas are just too complex.

Well, except maybe the instantiation of large arrays, I think that if you've been a very good boy this year, santa just might be able to pull that off..


mr. bear
Rapunzel, Rapunzel, let down your bear...

Shimrod
Posts: 907
Joined: Tue, 18. Feb 03, 01:43
x4

Post by Shimrod » Tue, 22. Nov 11, 22:00

Here's the feedback I added in the exscriptor post:

My wishlist would be:
1. I generally have 20+ large scripts open at once and it can be cumbersome to tab between them. I'd love to be able to select the file I need from a list (cf Visual Studio dropdown) or chooser window (cf TextPad), or have the open file tab bar able to span multiple lines.

2. Ability to load and save a workspace/project (cf TextPad), so that I can swap between working on Smart and other projects without having all the files open (startup time compile penalty + management trouble as per 1.)

User avatar
Litcube
Posts: 4254
Joined: Fri, 20. Oct 06, 19:02
xr

Post by Litcube » Wed, 23. Nov 11, 00:21

Mr. Bear,

Esentially, I think what we're missing is an MSCI editor that you can use outside of the game. A normal windows application based editor will allow us to view code quicker, make faster edits, and copy, cut, and patse more efficiently.

Manually typing in these commands is a waste of time, as MSCI commands are finite, and most coders are used to the methods within the game itself. Hit a key, see a list of options, select one.

I suppose my suggestion would be to make the interface as close as possible to MSCI while retaining the benefits of an external editing window.

User avatar
mr.bear
Posts: 444
Joined: Sat, 11. Dec 10, 01:38
x2

Post by mr.bear » Wed, 23. Nov 11, 00:46

Litcube, okay, i see what you mean.

Shimrod: I think the workspace idea is genius, i'll go away and figure out how that can be done - thanks.

i've already got the window list, and i think multiple tab rows is actually a native feature of the tab control, so no hassle.


It's interesting that other people's requirements are quite different to my own - i wouldn't have thought of these, so thanks for the feedback guys, it's appreciated.

mr. bear
Rapunzel, Rapunzel, let down your bear...

Firewrath
Posts: 121
Joined: Fri, 3. Aug 07, 05:49
x3tc

Post by Firewrath » Wed, 23. Nov 11, 09:52

Well my biggest problem with 'eXscriptor' is that its Tied to my X3TC install and i cant just open and save a script unless i point it at an install,
meaning like i cant use it on a PC without X3TC installed.
(I'll admit i didnt try it a Lot, just a couple times before i pointed it my installed like months ago, so im not 100% sure on this or if theres a work around, but it still annoyed me at the time.)

But from reading this thread, im curious,...
Am i the Only one who wants a text editor thatll load and save scripts without all the rest of the stuff? >.>

theres been a few times where All i wanted to do was load up a random script and change something, something i Knew would work, and it would Not save the script because it was for a mod with different wares or something,
seriously, i just wanted to add 'send incoming message 'Patching Complete.' to player: display it=[FALSE]' to the bottom of the XRM 1.12 to 1.13 patch script, and it Would Not save it because of a ware change in the mod, even though it was pointed at the same install the mod is in.

Now i dont know if theres some big issue with X3TC where if you load an invalid script that itll blow up on you or something, but im good with a basic text editor thatll let me save scripts and let me figure out if theyre wrong in game. Id rather be able to type up something quick, save it and test it later when i have time rather then loading the game and trying to find all the right commands and so on.

... >.>
sorry for going on about pretty much the same issue, it just annoys me, ^-^;

but yeah. Inshort: "I want a text editor that'll just let me save and load Any script, working or not."
(And yes, an 'MSCI editor' would be nice, but id still want a basic text editor to go with it.)

MegaBurn
Posts: 278
Joined: Mon, 30. Jan 06, 15:52
xr

Post by MegaBurn » Wed, 23. Nov 11, 15:46

Couple ideas...
Filtering/weighting on conflict reports to make actual conflicts more obvious than common mod changes, like a toggle to hide conflicts with resources in certain cat files (e.g. 13-) while highlighting conflicts in others (e.g. 14+, loose files), defined in settings. Maybe with an added deeper check for calls to missing scripts.

An easier quick reference or preview for libraries and vanilla scripts than having to open it as if for editing. Maybe including code snippets, templates, etc. Alternatively, custom x2script.xsl to support copying from a web browser.

Semi-related idea, recruit several veteran script authors to assemble a resource kit of libraries, snippets, templates, suggestions/guidelines, tricks/workarounds, mini-guides, etc. Most of it is already available but spread out over hundreds of forum posts. Might be better for a moderator to spearhead as a community effort...
"Only the dead have seen the end of war." -Plato

paulwheeler
Posts: 8132
Joined: Tue, 19. Apr 05, 13:33
x3tc

Post by paulwheeler » Wed, 23. Nov 11, 16:01

I wish it would pick up modded TFiles properly. The current release doesn't seem to pick up any non-vanilla entries in most TFiles in a fake patch mod (although it seems to pick up text files fine).

It basically means I can't use Exscriptor at all as all my scripts refer to entries that Exscriptor won't read.

Nicoman35
Posts: 681
Joined: Thu, 17. Nov 05, 13:12
x3tc

Post by Nicoman35 » Wed, 23. Nov 11, 17:02

Here my experiences:

I use a monitor with a high resolution, yet my eyes are not as good as in my younger days, I like to have a bigger font when scripting, but the line indexing on the left is not automatically resized. Besides, Excriptor does not save the size of the indexing, you have to resize it each time the program is started.

When a new script is opened, the standard font size is used, i have to cklick at the options tab for correct resizing.

Generally, a better search funktion, much like the one in Notepad++ would be great.

User avatar
mr.bear
Posts: 444
Joined: Sat, 11. Dec 10, 01:38
x2

Post by mr.bear » Wed, 23. Nov 11, 21:47

Nicoman35:

I forgot about adding a 'find' function, thanks for that, and you'll be happy to hear i've already added everything else you asked for.

paulwheeler:

I spent a month redesigning how it handles game data. If multiple TFiles exist, each is read from the catalogue with the highest number. I assume modded T-files simply have new entries, possibly with string ids from extra language files provided with the mod? I've not tested any mods yet, but the program won't actually be able to tell the difference between a modded and non-modded TFile, and will load either of them alike.

Firewrath:

the answer to your first question is that an install is needed for the data to convert an MSCI script into words, as it's stored as almost purely numbers. last time i released a beta i discovered a few people wanted to use it without an install, so now you just need the basic files - the TFiles for example, and the main .xml file containing all the game strings - about 3-4mb in total.

Im gonna add opening and saving .txt files, that might also be helpful for you.

MegaBurn:

I'm really interested by your idea, but can you explain the bit about conflicts again please? are you talking about conflicting language file entries?

I understood the missing scripts part cos ive already added that - when a script is loaded the program loads all scripts dependencies and it produces a warning if any are missing.

----------

once again, thanks to everybody for the feedback, it's appreciated.

mr bear
Rapunzel, Rapunzel, let down your bear...

killerog
Posts: 3464
Joined: Fri, 28. Oct 05, 16:31
x4

Post by killerog » Thu, 24. Nov 11, 01:11

Just being able to select what tfiles to use would be nice, for example if I am working on my battlestar mod I can just select my battle star Tship and Tlaser file and I am all good, same goes for my KOG or X2 mods. These files can be located any where on multiple HDD or networked PCs (at least in my case). As i currently have the same problem as paul, I always have to use the in game editor to add in the correct ids for ships/weapons cargo etc.

Other than that and making it quicker while fixing the bugs in the text editor part ill be a happy bunny :) Anything etc is just a nice addition and my biggest thing stopping me from enjoying scripting is taken car of. (The crappy in game editor and buggy slow yet still great Excsriptor )
Image

User avatar
mr.bear
Posts: 444
Joined: Sat, 11. Dec 10, 01:38
x2

Post by mr.bear » Thu, 24. Nov 11, 02:45

killerog/paulwheeler, can you give me the name of a mod that you have this problem with please? once ive got a pc powerful enough to play x3tc, i'll download it and make sure my program doesn't suffer the same problem.

thanks

mr bear
Rapunzel, Rapunzel, let down your bear...

User avatar
s9ilent
Posts: 2033
Joined: Wed, 29. Jun 05, 01:45
x4

Post by s9ilent » Thu, 24. Nov 11, 07:30

Any chance you can put in some... customisable shortcuts w.r.t the Auto Complete?

e.g.
$var = $object -> Get Sector

Instead of auto completing on " Get Sector" (I don't know how effectively you can auto complete across two words), perhaps do something simple like Auto Complete across " .Sector" and turn that in to " -> Get Sector"
(Ideally I would like some oob goodness e.g. $object.Sector, but I know that . can form part of the variable name, so a space should go first)

*edit*
or or or crazy crazy idea
if we type in
$myvar.xxxxxx it will automatically turn that into
$myvar.xxx = $myvar -> get xxxx

e.g. $myShip.Sector becomes
$myShip.Sector = $myShip -> Get Sector


------
Another crazy request is for a bit of type safety (even thou the language it self doesn't use it). Perhaps just warnings during compile/build or what ever, which just does some quick checks.


-----
B.t.w Won't this become a bit ... underused.. when XR comes out? (I'd image quite a few people will move from x3tc to xr)

Nicoman35
Posts: 681
Joined: Thu, 17. Nov 05, 13:12
x3tc

Post by Nicoman35 » Thu, 24. Nov 11, 09:27

Another anoyance: THE STARS. I mean those: *
If I want to deactivate a section of my script e.g. for testing purpouses, I have to put a * in fornt of each row of the section.

Would be wonderful if you could implement a function, which reduces this effort.

Firewrath
Posts: 121
Joined: Fri, 3. Aug 07, 05:49
x3tc

Post by Firewrath » Thu, 24. Nov 11, 10:49

mr.bear wrote: Firewrath:

the answer to your first question is that an install is needed for the data to convert an MSCI script into words, as it's stored as almost purely numbers. last time i released a beta i discovered a few people wanted to use it without an install, so now you just need the basic files - the TFiles for example, and the main .xml file containing all the game strings - about 3-4mb in total.

Im gonna add opening and saving .txt files, that might also be helpful for you.
Hrm. Then the option to extract all needed files to a subfolder next to the editor .exe would be great. Specially if it could be renamed for people working on different mods.
(With an option to update the extracted files ofcourse, ^-^)
Or if said necessary files could be kept in a Project folder, then loaded when that project is opened and when that project is closed and new one is opened, the necessary files from the new project would be loaded.


The reason this is a thing for me, is because im not always able to be at my PC and tend to run a bunch of things off a USB key, so a related question. ^-^
Will this be portable?
Like just unzip and run? no writing to the appdata folder or registry, that kind of thing,...


Also:
s9ilent wrote: B.t.w Won't this become a bit ... underused.. when XR comes out? (I'd image quite a few people will move from x3tc to xr)
Well, not by me,...
Im one of those ppl that have ...issues with Steam, so it looks like i'll be playing X3TC for a long time.
(Unless theres an XR stand alone box, but even then thatll be 3-4 years after the game is released.)

User avatar
mr.bear
Posts: 444
Joined: Sat, 11. Dec 10, 01:38
x2

Post by mr.bear » Fri, 25. Nov 11, 12:30

Nicoman:

I could add a function to comment/un-comment all the currently selected lines, like the newer versions of visual studio - is that what you mean?

Firewrath

It saves your preferences to the registry im afraid, but there's no install program - you do just unzip it and run. if it cant access the registry, eg. internet cafe, it uses 'default' preferences which you can still change (to select the game data folder, for example) but wont be saved when the program closes.

i really like your idea about using different game data folders for different projects, it'd work really well with shimrod's workspace idea.

how about "a workspace file would link a bunch of scripts and language files, and (optionally) define a custom game data folder."?

s9ilent

object orientated programming: definitely not. sorry man, its too complicated for me to write a complex interpreter like that - i'm not sure i know how!

type safety: if a function explicitly asks for a number and you provide a string, it will cause an error, but do you mean that if you assign a string to a variable, and pass that variable to function that expects a sector, the compiler produces a warning?

i really like your idea but i wont make you any promises - i could document the return types of the commands alright, but i dont see how i could track a variable's type once it passed through a branching conditional statement.

i hope some people do use it, despite rebirth, but apart from poisoning the development team with an arsenic flavoured christmas cake, there's little i can do about it.


mr bear
Rapunzel, Rapunzel, let down your bear...

paulwheeler
Posts: 8132
Joined: Tue, 19. Apr 05, 13:33
x3tc

Post by paulwheeler » Fri, 25. Nov 11, 15:43

mr.bear wrote:killerog/paulwheeler, can you give me the name of a mod that you have this problem with please? once ive got a pc powerful enough to play x3tc, i'll download it and make sure my program doesn't suffer the same problem.

thanks

mr bear
I have the problem with my XRM mod.

If you install the mod and open up any of the scripts in the current Exscriptor, any script line that points to a non-vanilla ware, station or ship comes up blank.

User avatar
ScRaT_GER
Posts: 1962
Joined: Tue, 8. Jan 08, 18:19
x3tc

Post by ScRaT_GER » Fri, 25. Nov 11, 17:11

I could add a function to comment/un-comment all the currently selected lines, like the newer versions of visual studio - is that what you mean?
Or maybe you could add multiline comments, e.g. with ** as delimeters?

Greetings,
ScRaT

Post Reply

Return to “X³: Terran Conflict / Albion Prelude - Scripts and Modding”