Skip to content

SuperTux C# Editor FAQ

Ingo Ruhnke edited this page Aug 26, 2018 · 2 revisions

This is about the SuperTux C# Editor, NOT about the editor built into SuperTux

Generic

How do i find out if my level is good or not?

Ask somebody! There is an internet chat (we use IRC) that you can get on, show your level, and if you stick around for a few minutes (it takes a little while to get noticed), they'll probably love to tell you how good it is or isn't and what's right or wrong about it. Now isn't that exciting?

Keep in mind that many people on #supertux have spent many hours playing SuperTux. Therefore it is often hard for them to judge difficulty of a level. If you have a sister, young cousin or son, they may be a better judge with regard to difficulty.

Don't forget that if you're young, you should get your parent's permission before getting on the webchat. Most people that get on our webchat are nice, but that doesn't change that you need permission.

: Join using freenode Webchat or see Contact#IRC.

Oh, and if your level is good enough, the third party fansite would ask you if they can add it to the player made levels area. Let's see some levels! :)

How do I install the new supertux-editor?

You have two options:

  1. From source through Subversion.
    1. Choose the supertux-editor URL from the listing and checkout the repository:
      svn checkout http://supertux.lethargik.org/svn/supertux/trunk/supertux-editor
    2. Install the development versions of the necessary dependencies. This requires you to know methods appropriate to your distribution or operating system.
    3. Compile:
      cd supertux-editor
      make
  2. From a binary package by MMlosh or for your distribution.

What do I need to compile supertux-editor SVN edition?

You first need the supertux-editor package from the Subversion Repository.

The following packages are required by the SVN supertux-editor at runtime and buildtime:

  • gtk-sharp
  • glade-sharp
  • mono

The following packages are only needed at runtime:

  • libsdl
  • sdl-image
  • opengl
  • glu

Unix-specific dependencies:

  • make

Windows-specific dependencies:

  • Microsoft .net development program

Because of the interdependencies of these packages, you probably only need to ask your package manager to install glade-sharp. Also, most unix systems will have a good copy of make installed already.

SVN version

How do I move around in a level?

Click and drag with the middle mouse button.
There are also scrollbars since r4886.

\

Tiles

How do I add tiles to a level

Click on the layer you want the tiles on and select the tile you want from the Tiles Tool. Note: Tiles can be places only on “Tilemap” layers (check property editor's title to ensure);

How do I filter the tiles so I can find a specific one?

With the Tiles tool selected, there is a combo box above the pane with all of the tiles in it. This combo box contains categories (called tile groups) which filter what is displayed in the pane.

How do I hide layers (tiles, background, objects..)?

Click on the small eye () in the layer listing to adjust how hidden a layer is. Options are shown, semitransparent, and hidden.

How should I place the tiles for the end-level structures?

The best way to learn this is to look at existing levels. For the exit tree in MS2 the best place to look at is levels/test/tree-exit.stl at this point. Also note that using tiles for triggering the end sequence, although still supported, is no longer necessary. See What is the SequenceTrigger object for?

How do I add a new tilemap?

Select the tilemap object and place it like a normal object anywhere in the level. The result will be a new that a new tilemap is created.
Since r5427: Right-click any item in LayerList and select “Add”, this will currently (8.5.2009) add only tilemaps, but it may contain a sub-menu in the future.

\

Objects

How do I easily align an object to the grid?

Press the Control key while moving an object to snap to every 16 pixels. Press the Shift key to snap to every 32 pixels.

What is the SequenceTrigger object for?

The SequenceTrigger object is used to define the areas that start and stop the end sequence (Tux walks into Igloo / Exit). The sequence names for that are “endsequence” and “stoptux”, respectively. Also, you can use “fireworks”.

What is the SpawnPoint object for?

The SpawnPoint object is used to define places where Tux could “spawn”. This is used to mark where Tux should start in the level, the destination of doors and more. The spawnpoint where Tux will start on loading the level must be named “main” and be in the sector called “main”.

What is the Script object for?

The script object is used to define an occurrence which will happen when Tux enters the defined area. To edit the script, click the 'Edit Script' button. For details please see Scripting reference. Some examples of scripting:

Example: Moving platform

To move a moving platform: Change the platform's name. Example, Plat1. Then in the script, type:

Plat1.goto_node(#);

The node the platform starts on is 0, then 1, et cetera. To make the platform return:

Plat1.goto_node(0);

You can also make the platform go and return in one go.

Plat1.goto_node(#);
Plat1.goto_node(0);

Example: Candle

To light candles: Change the candle's name. Example, Candle1. Untick the 'burning' box.

Candle1.set_burning(true);

The candle will light. To make a candle turn off, leave the candle 'burning' and type:

Candle1.set_burning(false);

Example: Waiting

A few more simple commands:

wait(#);     (wait the specified number of seconds)

And example of using wait:

Candle1.set_burning(true);
wait(0.1);
Candle2.set_burning(true);
wait(2);
Candle1.set_burning(false);
wait(0.1);
Candle2.set_burning(false);

The result of this will be that candle1 lights, followed by candle2 a fraction of a second later. After two more seconds, candle1 and then candle2 will go out.

How do I change the background image?

Select “Background” in the sector objects view. There you can change it's properties, including what picture(s) should be used for background.
Since r5769: Background image is present as “BG Image” in LayerList. Click it.
Since r5888: Background image is present as “Background IMG.”

Other tools

How do I use brushes?

Brushes are used to clean up edge tiles. The brush tool does that by replacing a chosen 3x3 section of tiles with the best of several “good-looking” patterns stored in so-called brushes. Keep that in mind when working with brushes - a brush will never apply a pattern it does not know about.

There are already a few brushes in trunk/supertux-sharp/data/brushes that know some valid patterns e.g. for earth tiles or snow tiles. Load one in the level and then drag it over tiles to correct edge tiles of rough tile “blocks”.

Note that the brushes are incomplete, so you might need to fix some things manually. If you used a pattern a brush did not yet know, you can add it to the list of known patterns by dragging a selection around the new pattern(s) with your right mouse button. All patterns in the selected region will be added to the list of valid patterns for the currently loaded brush. Because patterns are currently 3x3 tiles in size, your selection obviously has to be at least 3x3 tiles big. Also don't forget to save the brush afterwards or your changes will be lost when you deselect the brush.

To create a new brush you currently got to “train” an empty one:

  1. Make a level that looks good.
  2. Select the tilemap you placed those tiles in.
  3. Load the brush trunk/supertux-sharp/data/brushes/empty.csv
  4. Right click and drag to select the area to get tiles from.
    • The minimum size for a selection that works is 3x3 tiles.
  5. When you are finished save the brush.

Note that a good brush would need several thousand patterns.

Sectors

Where are the sector tabs?

Near the top of the editor. The default sector in a level is called “main” and is the sector where the game will start.

How do I resize a sector?

Right click on the tab for the sector and select “Resize”.

How do I create a new sector?

Right click at the sector tab area and select “New”.

How do I delete a sector?

Right click at the sector tab for the current sector and select “Delete”.

Operating system specific notes

I'm on OpenSUSE and I get a message about that it couldn't load gtk-sharp

Could not load file or assembly 'gtk-sharp, Version=2.10.0.0, 
Culture=neutral, PublicKeyToken=35e10195dab3c99f' or one of its dependencies.

If you are on OpenSUSE and get a message like this you might want to try this and the note directly below it as well.

We (the developers) are unable to reproduce the problem but we do not use OpenSUSE. Try asking the OpenSUSE developers about what is going on there.

Does the editor work under Mac OS X?

Yes, it does, but the setup is complex; you will have to do the following:

  • install Apple's X11
  • download and build Gtk and its dependencies (Glib, Pango, Cairo, Atk, Gdk and maybe more)
  • download and build Mono and GTK#
  • install glew and boost via Mac port
  • download and build the editor

Since the Mono project doesn't pre-package Gtk# and its dependencies with the OS X installer, we are unable to provide a nice editor package. Additionally, we offer no official support, so no one might be able to help you on the mailing list if the editor crashes due to an OS X-specific problem.

Can the editor be run with Wine?

Unfortunately, since it needs mono/GTK, that would be pretty hard. The editor relies on some programs, so it could not be without manually installing the components.

: Why run it in wine? Mono binaries run natively on Linux, too. Don't be confused by the .exe extension, just run it. : Because is really hard to run with mac without it. I would be nice just to be able to open it, no building necessary. 173.55.240.235(Monstertux)

Does the editor work under Microsoft Windows Vista?

Yes, but it requires a complete setup. you will have to compile some GTK# programs amongst other things. We are able to provide a package.

SuperTux is slow when I test my level

Very common. You just need to make sure your out of the “Node Editor” and switch to the tile editor.

: There is no bug report about this so called “common problem”. Works fine on all systems I know about. : Well you must not have tested with the 0.3.0 mono one then. Its fine with the net version.

Bugs and Errors

[s=For any bug reports where please provide the full backtrace (if one exists) when reporting at our bugtracker](Template:Attention "wikilink")

I get an error about “Object reference not set to an instance of an object”

This can be several things:

  1. Check that the paths to the supertux data directory and to supertux itself in the editor preferences are correct.
  2. If you run it under mono (unless you know that you don't do it, you probably do run it under mono) check that the mono version is at least 1.2.2.1.

Note: That the Mono version with installation is not compatible with the Level Editor.

I'm using Windows Vista or Windows 7, and the editor UI is really strange

This bug has been reported on the bug tracker and will be fixed some time in the future.

My bug is not listed above

If any of the above didn't solve the problem and you manage to recreate the error, report the bug with at least this info:

  • Full backtrace
  • What you did to cause the bug
  • What OS and OS version you use
  • What versions of mono, the editor itself, GTK and GTK# that you use

These types of bugs can not be solved without that info (and sometimes we might need more details than that, so please check back at the bug once day or so if there is any more info asked for).

Category:Development Category:For Users Category:FAQs

Clone this wiki locally