×
Create a new article
Write your page title here:
We currently have 3,118 articles on YumeWiki. Type your article name above or click on one of the titles below and start writing!



YumeWiki
3,118Articles

User:Nitran/R48 Guide

R48 is a public domain editor for RPGMaker games. You can allegedly (I haven't tried it) create entire games in it and then play them with EasyRPG, for free, but don't try to contribute to existing games with this editor.

Setup

  1. Have java installed. You'll probably want OpenJDK instead of oracle java, but you're on your own for that. According to this commit, OpenJDK21 doesn't work. I am personally using openjdk 17.0.7+7.
  2. Download R48. It's the jar file in the list.
  3. Download whichever game you are going to be opening.
    1. 2kki requires you to apply patches to get to the latest version. Just extract the base version and all patches, then merge the patches into the base version (in order).
    2. If requires you to run a self-extracting executable to get the game files. If you are on linux, Wine works, or you could just use a VM.
  4. Copy and paste the R48 jar file into the game installation folder. R48 is a small application so you can put a copy of it into each game install you have, or use a symlink if you know what those are.
  5. Double click on the jar file to open it. You should see a short animation before the main window opens.

Usage

  1. If you ran the jar file in the same folder as the game install, then skip this indented level:
    1. Otherwise, you will need to put the path of the game in the input box that says "path to game."
    2. You can copy a folder's path by clicking on the long bar in the file explorer then copying all the text. It will usually start with "C:/" but if it doesn't then you got a windows relative path, and I can't help you with that.
    3. You can press the add button next to the path input box to add it to a quick list of game paths.
      1. Doing this allows you to quickly switch which game you have open, so I do it, but it's not necessary.
  2. Next switch to the tab named "select engine" at the top of the screen
    1. On this tab, select the first option for RPG 2k and 2k3.
    2. When the page updates, select the language the game was made in. It doesn't really seem to effect anything. I just set the correct language anyway.
  3. Go to the "MapInfos" tab. This contains every map the game has.
    1. Some games like 2kki put the map ID in the map name, this means you can search by map id
    2. Some games don't, such as .flow. You will have to manually find the map id in the list since R48 cannot search by map id for some reason.
    3. If does both. The earlier map names don't contain the IDs but the later ones do. I wonder if this is because the author started working on 2kki in the middle of making the game.
    4. Click on an entry. Not much will happen.
  4. Switch back to the "Maps" tab. This is the main view for everything.
    1. Instructions for this in next section.

Map View

  1. There is now a second bar below the first one for interacting with the map view.
    1. The first three tab (L0, L1, Deepwater) are rarely useful. Ignore them.
    2. The events tab is used to view all properties of an event.
      1. Anything that is in any way dynamic is an event.
      2. Events can have multiple pages of properties, and all properties are per-page.
        1. I think only 1 page can be active at a time.
        2. I don't know which order the active page is chosen in, but I think it's the last page with an active condition.
      3. Events may have a sprite (image).
      4. Events have many properties such as their code, which either runs on interaction or every frame, depending on the event's mode.
        1. I still don't know the difference between auto run and parallel, but it's not like it matters.
      5. Events have a collision layer, such as below the player (to block other events), or same level as the player (to block the player).
      6. Events have conditions for them appearing. Usually switches or variables.
      7. Events can temporarily be killed (until the map is reloaded).
    3. Layer visibility: you can turn on or off certain parts of the view, such as the panorama (background), or the passibility overlay.
    4. "..." group:
      1. Properties: lets you see properties about the map itself
        1. You can change the tileset in this window. Why would you need to do that? Because some authors cram 6 worlds into 1 map and each world has a different tileset.
          1. Example: Yume 2kki:Marshmallow Shallows uses the wrong tileset in the editor. You have to set it to the right one to take a screenshot.
            1. How do you find the right one? Viewing event code in the world that teleports to here. There's a command to change the tileset. Good luck.
      2. Export shot.png: creates an image of the map (with whatever layer visibility you have set) and saves it
        1. This is saved to a file named shot.png in a folder named r48 in the same folder as the jar file was ran in. This could be somewhere unexpected like your user (~) folder if you didn't double click the jar.
        2. Each time you export another image, it overwrites the previous one. Rename the file between each export.

Other

  1. There is a tab called "database objects" which contains an .ldb file with all global stuff in it like common events and tilesets. Might be useful.
  2. Switches are ON/OFF things. Variables are 0 to 9999 numbers. Events and common events are functions and global functions.

Tips & Tricks

  • Read the wiki pages for common events, switches, and variables.
  • 2kki authors usually put all of their background code in the top-left of the map, along with comments.
  • You can do a lot of really stupid indirection in RPGMaker that makes it hard to figure out what is actually going on. R48 doesn't seem to have any tools that help with this.
  • You can blank out the texture used for dev icons to make your screenshots prettier, and so you don't have to remove them yourself. Thanks for showing me this yesterday User:Volvulus.

Extra

Nix code, if you happen to be using nix for whatever reason:

with pkgs; stdenv.mkDerivation {
  name = "r48";
  src = fetchurl {
    url =
      "https://github.com/20kdc/gabien-app-r48/releases/download/v2.0-rc2/v2.0-rc2.jar";
    sha256 = "sha256-jHF8Pm2jLSIniEUbwNcpVUWdHm0mNLNLvR6v5axdGsQ=";
  };
  phases = [ "installPhase" ];
  installPhase = ''
    mkdir -p $out/bin
    cp $src $out/bin/r48.jar
    echo 'LD_LIBRARY_PATH="${
      with pkgs;
      lib.makeLibraryPath [ alsa-lib libGL ]
    }" ${pkgs.jdk17}/bin/java -jar "$(dirname "$(${pkgs.coreutils}/bin/readlink -f "$0")")/r48.jar"' > $out/bin/r48
    chmod +x $out/bin/r48
  '';
};