SMEdit

SMEdit
SMEdit.png
Type

Editing Tool

Author

jjaquinta

Forum Thread

Forum

Download

Download


SMEdit is an offline tool for ships in StarMade mostly coded by Jo Jaquinta jjaquinta. You can find the source, releases and issue tracker on the github project: [1].

Install and Running

Look up the releases pages on the GitHub project and follow the instructions for the latest release.

Features

The objective of SMEdit is to provide a tool that does things that are very hard to do in the in-game editor. It is designed to complement the in-game editor, not replace it. The features developed for that reflect this.

  • Move and rotate core. People often make regrettable decisions when placing their ship's core. Or end up building the ship facing the wrong way. Correcting this is virtually impossible in the in-game editor. SMEdit lets you move the core, or rotate the ship around the core.
  • Paint and style. Giving a ship a color scheme has to be thought out in advance in the in-game editor. Specific quantities of specific hull elements have to be bought in advance. SMEdit lets you "paint" an existing design. So you can concentrate on designing in the game, and paint it later. There are tools to selectively replace colors across the whole ship or a selection of the ship. Another tool lets you paint a variety of "stripes" on the ship. Yet another one lets you add lettering from any font installed on your computer.
  • Import standard models. SMEdit can import ships designed for other systems. It supports OBJ files, but it is a little fragile to deviations from the OBJ spec. (Please upload samples of any breaking files to the issue tracker.) The binvox tool does a very good job at converting OBJ and other formats to its' own binvox format. And SMEdit is very good at importing binvox files. SMEdit can also import Schematic files. Conversion of Minecraft IDs to StarMade IDs is user configurable. It can also import STL files, which are popular for 3D models.
  • Basic hull generation and filling. You can generate hulls in a number of basic shapes such as spheres, cylinders, boxes, etc. You can then fill them proportionally with thrusters, weapons, etc. This is a quick way to flesh out a basic ship.

Macros

SMEdit has the ability to record and playback macro commands. If you find yourself doing a common set of tasks multiple times, you might consider creating a macro.

Recording a Macro Selecting Edit -> Macro -> Record starts the recording process. You should specify the information that you want to identify the macro with. The name is what will appear on the menu. The placement indicates which menu it will appear on. Note the Generation and Modification macros both appear on the Mods menu. The Paint macros appear on the Mods button on the paint bar. The Enablement field lets you scope the macro to a specific model type. Lastly the priority will let you specify the placement in the menu. Low numbers are towards the top, high numbers are towards the bottom. The items are grouped into multiples of ten. To see what priorities are there for existing feature, you can use Edit -> Plugin Report to list them. Subsequent commands you issue will be recorded in the macro. When you select Edit -> Macro -> Stop Recording, the macro is saved. It will then appear in a menu, and when you select it, all the commands you recorded will be run on the current model.

Deleting a Macro If you made a mistake, or no longer need a macro, you can use Edit -> Macro -> Delete to remove any recorded macro.

Editing Macros A macro is recorded in Javascript. You can find the files in the jo_plugins/macros directory. You can edit these with any text editor. You can add in any looping or conditional branching you wish. It's a full Javascript implementation. Additional Classification lines may be added if you want it to appear in multiple places.

Running Unregistered Macros For convenience, recorded macros are saved in the system. You may choose to relocate these elsewhere, or write ones from scratch in a different location. If so, you can choose Edit -> Macro -> Run to pick these other files and execute them. Debug messages, print, and println commands are printed on the console. You have to be running SMEdit from the command line to see them.

Video Tutorials

Gallery

Some things that were created with SMEdit:

Tips and Tricks

Selection

A selection may be initiated by holding down Shift and left-dragging the mouse over a region. The selection box is indicated by colored sides. Bright red is the +X side, dark red the -X side, bright green the +Y side, dark green the -Y side, bright blue the +Z side, dark blue the -Z side. Since a ship is three dimensional, and the mouse operates on two dimensions, this is seldom the final selection you want. The selection may be adjusted in a number of ways. Typing WASD(QE) will move the entire selection along the main axis. Shift+WASD(QE) will move the high part of the selection, Ctrl+WASD(QE) will move the low part of the selection. Through a combination of these (and a lot of trial and error until your fingers get used to it) you can create a rectangular selection anywhere you want. The Edit -> Select All menu option is a shortcut to select the entire ship.

Specific Block Deletion

Sometimes you just want to get rid of a specific type of block. You can do that with the block replace tool. For the target block, choose "Air". Then only that block will be removed. If you only want to remove blocks from a specific portion of your ship, draw a select box around that portion before doing the replace. Then only the matching blocks within the selection will be replaced.

Easy Trial Runs

If you are iteratively working on a object, say you are experimenting with hull generation, coloration, or model import, you may find it easier to edit a Your Ship object, that create a blueprint and use it to create a new ship. Launch StarMade and create or select a ship you don't care about. Remember it's name. Exit StarMade and in SMEdit File -> Open that ship from the Your Ships twistie. Now do the operation you are testing and click File -> Save. Run StarMade again and you should be next to the altered ship. You can repeat this for different trials. You need to exit StarMade each time, but you don't need to exit SMEdit.

Troubleshooting

Out of Memory

If you are working with a large ship or object, SMEdit may freeze or fail unexpectedly. If you are running with a console displaying you might see a "Java Heap Exception" error. There is also a small memory meter in the lower left corner of the screen. This displays the free memory. (Hovering over it will give a more complete account.) If this runs out, a crash like the above will happen.

Java allocates a certain amount of memory to your program by default. It does not automatically grab memory as needed. This is a security feature to prevent a rogue program from hogging all the system resources. To change this default value, you need to invoke Java from the command line and add an argument to specify how much memory to use. If you invoke SMEdit from the command line with java -jar SMEdit.jar, then you could use java -Xmx1g -jar SMEdit.jar to tell it to give one gig of memory. You should see the change reflected in the memory meter. The amount of memory you can allocate depends on your hardware. Experiment with different values. You will get an "Invalid maximum heap size" error if you pick a value too large. Note: if your machine has 8GB of memory installed, that does not necessarily mean that there is that much free at any given time to allocate to a single program. The operating system takes a big chunk of memory, and each other running process (of which there are lots) takes its own fair share. Experiment with different values to see what works best.

In addition to improving the memory, computers that use 64-bit operating systems, can download and install 64-bit Java, which will allow the use of the -d64 modifier, for example, java -d64 -Xmx1g -jar SMEdit.jar. For 64-bit systems, this should allow a far longer maximum heap size, and dramatically improve performance with large objects.

Console Message

If the program hits an unexpected error, it will usually print a message on the console. If you are running from the GUI, you will not see this. To be able to see console messages, you need to run the tool from the command line.

Launch the command line (CMD on Windows, Terminal on Mac/Linux). Change (cd) to your StarMade directory. Then type java -jar SMEdit.jar. The program will run normally, but messages will be produced in the console window.

Creating .bat Files For Command Line Usage

To simplify running SMEdit using command line modifications, you can create a text file with the file extension ".bat" (for example, SMEdit.bat). Doing so will turn the file into a form of script that will both open the program and set the modifiers by simply running the .bat file like how you would a program. Once created, open the .bat file in Notepad. For the average computer with 8GB memory, adding a single line with the code java -d64 -Xmx4g -jar SMEdit.jar should suffice for both memory and troubelshooting needs. The .bat file should be located in the same folder as SMEdit. If there are any problems with getting SMEdit to launch using the .bat file, or are looking to track SMEdit's console for troubleshooting, add pause as a second line in the .bat file, so that way the window stays open before closing, so you can determine the problem, for example:

java -d64 -Xmx4g -jar SMEdit.jar
pause

Help and Feature Requests

The development of SMEdit is being tracked on the Issue Tracker on GitHub. When reporting a bug for SMEdit, please include the following:

  • Step by step, what you did
  • What actually happened
  • What you expected to happen
  • Any and all files needed to recreate the steps given

If possible, record a macro of the steps you use.

External Links

References


Need wiki hosting?

Do you need a wiki for your Minecraft mod/gaming wiki? We'll host it for free! Contact us.

Other wikis

Indie-game wikis
Powered by Indie Wikis
Looking for a server?

Join Techworld - an amazing custom modpack server.