Create levels and episodes for TheXTech - TheXTech/TheXTech GitHub Wiki

This engine has full compatibility with almost all old episodes developed for SMBX 1.3 with some minor exceptions (if a certain level or episode does rely on the bug of the old game, you can add the "compat.ini" file at your level or episode to re-enable certain bugs which are required for level or episode to work normally). Also, you may switch the speed-run mode that will fall back into the enforced compatibility mode depending on the selected mode (mode 2 keeps these bug fixes that have existed at SMBX2, and mode 3 enables all bugs of the SMBX 1.3 game). At the same time, the engine gives a lot of extra features and you are not enforced to fully target SMBX 1.3 limits (see the paragraph below), all levels and episodes saved in the new format will work on TheXTech for all supported platforms.

You should give a note that your episode requires SMBX on the TheXTech engine 
for the work of your episode when you do publish it.

Note: TheXTech is currently intended for playing past works. You can still use it for your creations, but it's currently NOT intended for.

Content

New features of TheXTech engine

Together with the full compatibility with episodes of the old format, TheXTech gives you a lot of new features you can use in your episodes.

You can save your level and world maps in modern LVLX and WLDX formats as they are natively supported by TheXTech including the numerous unique features that came from the Moondust and the SMBX-38A standards.

General extras

  • The engine does the full support for PNG graphics for level-wide and episode-wide customization.
  • Supported for a lot of music and sound formats.
  • Customizable player hitbox calibration files (the same as for Moondust (PGE) Engine and SMBX2 being used) which you can create through the Moondust Calibrator utility, included with Moondust Project toolchain.
  • Support for level-wide and episode-wide "sounds.ini" and "music.ini" files to override the default music and SFX.
  • LunaDLL Autocode support as a built-in platform-independent implementation named LunaScript. This system allows you to use the Autocode scripts from the LunaDLL hack for SMBX 1.3. Unlike the original LunaDLL, it works on any other operating system (like Linux, macOS, Android, etc.) and on any other processor achitecture including ARM and PowerPC. NOT RECOMMENDED FOR CREATION!

Level extras

  • Checkpoints can be used multiple times: the player will resume at the last taken point, and all previously taken points will disappear with the triggering of a "dead" event per every taken checkpoint. The old behaviour can be restored back using the "compat.ini" property per episode or per level.

Sections

  • Vertical section wrap
  • Support for more than 21 section

Background objects

  • The full ability to use the Z-Layer and Z-Offset at background objects.

Warps

  • The warp now has an "on-enter" event trigger.
  • The custom "stars needed" message text: you can tell everything instead of the standard "you need X stars to enter" message at a specific warp entry.
  • Two-way warps: you can use only a single warp entry to allow the player to go through the warp in both directions.
  • Portal warps: like an instant, but horizontal speed won't be zeroed and the player continues their move in the same direction as entered.
  • Cannon pipes: players will exit from the pipe with a shot effect with a given force value.
  • Various transition effects when going through warps.
  • "No interscene" flag: when the player enters, show the black screen instead of the player's portrait and their lives left.
  • Ability to don't print the number of collected stars at the destination level when the player stands at the warp entrance.

NPC

  • Some bunch of NPC (Rail platforms, Billy Gun, Bowser the IIIrd, etc.) got their own special option (accessible via TheXTech SDK for Moonudst Project) which could toggle the behaviour of these NPCs.

World map extras

  • On world maps, there are more than 5 credit lines available.
  • The ability to set up the custom music file provided.
  • World maps have their own directory (by the same method as levels) that allows you to avoid the episode root directory being filled by the world map resources.

Using a modern development kit

This is an officially RECOMMENDED way of levels and episode development ways.

You need to simply download the laboratory version of standalone Moondust Devkit (former PGE Project Devkit) and take the latest "TheXTech SDK" configuration package.

How to prepare the development kit

  • Download the latest laboratory version of the Moondust Project kit for your platform
  • Download the content of the "TheXTech SDK" repository and install it:
    • Note: If you install the Moondust Project on Windows using Online Installer, you can skip this step.
    • Find the directory for configuration packages of the Moondust Project
      • On Windows, if you downloaded the portable package, the configuration packages directory is the "configs" at the same directory as executables
      • On Windows, if you installed the package via Online Installer, the configuration packages directory will appear at your user directory: %UserProfile%\.PGE_Project\configs
      • On Linux, if you downloaded the portable package, the configuration packages directory is the "configs" in the same directory as executables
      • On macOS, the configuration packages directory is the ~/Library/Application Support/PGE Project/configs (it will be auto-created on first Editor launch, so, launch it before installation of the config pack), use the Cmd + Shift + G key combo in the Finder to open that directory.
    • Unpack the content of the "TheXTech SDK" archive into the configuration packages (configs/TheXTech SDK) directory.
  • Try to start the Editor application and select the "TheXTech SDK" configuration package.
  • If you use the TheXTech SDK, the first time, it will ask you to select the directory that contains game resources for TheXTech which you want to use in the development process. On macOS, you should select the TheXTech-based game application itself.

How to fix the level testing

Usually, the level testing should work out of box without the necessary to re-configure it. However, if it doesn't work for any reason, you can fix it by the next way:

  • Open (or create a new) any level file
  • Open the Test -> TheXTech menu, and choose the Change path to TheXTech... menu item.
  • You need to specify (or browse) the full path to the actual executable of the game and press the Ok button.
  • Once you set this properly, you can press the F5 key to start the level testing now.
  • While the level testing is going, you can use the "magic hand" feature to grab/put elements in the running game: select the element at the editor's toolbox, then switch to the running game's window, and put the element into the screen. You can toggle the eraser by pressing the middle mouse button or switch the selection mode by pressing the right mouse button.

Alternative ways to develop episodes for TheXTech

Using built-in experimental editor

This editor is introduced in the TheXTech version 1.3.6. Its main purpose is to be used on portable and mobile devices, or as a tiny alternative on the desktop. However, it doesn't handle all features of TheXTech. This editor is based on the code of the default editor of SMBX 1.3.

Using the classic development kit of SMBX 1.3

You also can use the same tools as you used to develop episodes for the original SMBX 1.3 (including the classic built-in editor of the old game), the result thing should just work on TheXTech normally. This way is NOT recommended as you will don't have any access to any new functionality of TheXTech.

Or even using SMBX-38A Editor to make TheXTech episode

You also can use the SMBX-38A editor to develop episodes for TheXTech normally as the game can read SMBX-38A files. However, you should pay attention that there are not all functions of SMBX-38A supported by TheXTech:

Important note: Due to several critical bugs that prevent normal work of some SMBX-38A levels, highly recommend targeting your episode to the TheXTech 1.3.6 and higher.

Important note 2: Until to claim that episode is compatible with TheXTech, please carefully test it on this engine and make sure there is no unexpected behaviour happening here.

Unique features of SMBX-38A supported by TheXTech

  • Levels
    • PNG graphics.
    • Lot of music and SFX formats supported (powered by MixerX sound library).
    • Checkpoints can be used multiple times at the same level.
    • Sections
      • Vertical wrap flag is supported.
    • Warps
      • Standing on the ground is a required flag (since TheXTech 1.3.6).
      • Portal warp type (called "loop" in SMBX-38A).
      • On-enter event hook.
      • Customizing the "You needed X stars to enter" message.
      • Option to hide the number of destination-level stars.
      • Cannon exit.
      • Ability to disable the showing of the enter scene (the screen where the playable character's portrait with a number of lives remaining is shown).
    • Events
      • New well-controllable auto-scroll system (simple style only, the advanced style (so-called "SMM"-style) is not available yet).
    • LIMITATIONS
      • You can't use diagonal or absolute-degree angles at generators and warp enter/exists, you still need to use 4-direction angles (0, 90, 180, 270).
      • Advanced auto-scroll style (SMM-style) doesn't work yet. Simple (SMBX 1.3) auto scroll works fine and can be disabled/enabled dynamically with no limits.
      • You can't use conditional expressions and variables.
      • You can't use game objects (blocks, BGOs, NPCs) out of the SMBX64 range.
      • You can't use physical environment zones other than water and quicksand types.
      • TeaScript is not supported at all as well as variables and event conditions that depend on them. You can use LunaDLL Autocode (natively supported by TheXTech since 1.3.6) features to implement some of the features you want.
      • Wings on any block/BGO/NPC are not supported.
      • NPC customisation by the Editor side is not supported.
      • Block/BGO can't be customised (except for graphics).
  • World maps
    • More than 5 lines of credits.
    • Custom music at world map fields.
    • LIMITATIONs
      • You can't use world map events, they aren't supported.
      • You can't use event boxes except for the music boxes only.
      • Variables aren't supported as well as TeaScript.

For other needs, you can use different tools and features to customise the overall of your episode: music.ini and sounds.ini files, player calibrator's INI files to customize hitbox setup per playable character. For scripts, you can use LunaDLL Autocode language, but, pay attention that TheXTech has a different implementation with some extra features that are not supported by the original LunaDLL as well as its successors in face of LunaLUA and SMBX2. In later versions of TheXTech possibly the Lua scripting language with TheXTech's own API will be added.