KittehCreations Header Image

OneShot Modding Guide [WIP]

Version 2 by TehAwesomestKitteh (Last Updated: Jan 3, 2025)

Suggestions, questions, etc. not covered in this guide? Come ask in the Kitteh Space Station Discord Server


Hullo! This is the improved version of my old OneShot Modding Guide. If you wish to see the no-longer maintained, old version. You can click here. This guide will cover things from stuff that you need, how to make your own NPCs, and other things that are present in OneShot. Like all things however, this is merely a guide, and so you're encouraged to experiment on new things.

Or if you're only here to find out how to make another "OneShot 2: Electric Penguin Boogaloo", then that's fine as well since most of the basic things will be covered anyways.

Table of Contents [HIDE]

Repaints - Completely Basic Modding

This part covers the most basic form of modding. It requires no tools at all except images. This form of modding is called "Repainting". Which is exchanging an existing image in the game with a new one of the modder's choice.

Doing this is super simple. Just go to OneShot's directory*, Graphics, then go to the appropriate folder that has the image and replace it with your new one. Now when you play OneShot again, wherever that image will be used, it will use your new image.

An important note: When replacing the image it should be the same name (For example: If you replace "niko" you should also replace the image with a "niko"), and same file extension (.png, .wav, etc.)

Although it's called "repainting", this also applies to audio. Same thing you have to do: replace the file with the same name and file extension.

* On Windows this is Steam/steamapps/common/OneShot


Introduction/Requirements for Modding

Now if you're not repainting, but planning to actually mod the game. Then the rest of the guide is for you. As a note to those reading, this guide is focused on how to mod OneShot (therefore tutorials on how to code, how to draw, etc. will not be covered except for the walkthroughs to mod the specific game mechanic) and is aimed towards people who are new to modding OneShot.

First and foremost you'll need the proper tools. The following are what you'll need:

  • RPG Maker XP (Throughout the guide, this will be referred to as "RPGXP")

  • Alternatively, you can also use this tool made by 20kdc. (This guide covers modding using RPGXP though)

Other tools for making art, music, etc. are up to the modder.


Setting Up the Mod Workspace

The mod workspace is essentially a copy of OneShot that you can edit. This is also to prevent breaking your original OneShot in case you mess with something you shouldn't have. To set it up, simply follow these instructions on the mod template. Read it carefully and follow the instructions. Everything should set itself up. What follows now is the modding proper.


MODDING

To start, run Game.rxproj. It should look something like this:

The highlighted are:

  • The tileset. This is the palette you'll use to decorate the world.

  • Map Navigator. This is to switch the map/room you're actively viewing.

  • Main View. This is what you'll see and be interacting with most of the time. The translucent white squares are Events.

  • Map ID and Coordinates. Self-explanatory. The coordinates shows the square you currently have selected (on Event layer), or the square you're hovering over (on regular layer).

  • Layer. Click on these to switch between Layer 1, Layer 2, Layer 3, and the Event layer. If you're an artist, the first 3 layers are like regular art layers, with the tileset as your palette. The last layer is for placing, editing, deleting, etc. Events.

  • Database. You'll be using this a lot if you're gonna modify any existing content or wish to add your own.

  • Script Editor. Same as above, but more technical and code-oriented. For advanced mod creation.

  • Finally, the playtest button. This is what you click to test out your mod.

As a side note, the mod uses the same save file as your OneShot save. So make sure to always have backups of everything.


Items

OneShot's Item system consists of four things:

  • The vanilla RPG Maker XP Items Database (and Common Events Database)

  • The variable 0001: g Item

  • and the variable 0002: g New Item and script (Data_Item)

All items are gained and lost by using RPG XP's "Change Items..." Event commands

All items are also created or defined in the Items Database, but their functionality depends on the use of the three things. Each of which are explained below.

Basic Items

These items are items that are usually combined with another, or interacted with something in the world. Examples are the sun, the bottle of alcohol, and the amber from Silver.

To make one, pick an empty slot in the Items Database, give it a Name, Icon (icons are found in the folder "Graphics/Icons"), and Description, and you're done. For reference, this is the sun's definition:

And how it appears in-game:

Usable Items

These items are items that can be used directly. Examples are the weird film and the gas mask. They're different in that in-game they pop up with a green name.

To make one, do the same steps you would do with a Basic Item, but also set the "Common Event" field to a common event you would like to run. If one doesn't exist, define a new one.

For reference, here is the definition for a mod item. The hard hat:

Note that it has a name, description, and icon. But also it has a Common Event defined, 127: use helmet. Which is defined here:

Now whenever it's used in-game, the item will have green text, and it will run whatever was in its defined common event. Like so:

Using Items with the world

Whenever you select an item in the inventory, it highlights it and the icon appears in the lower-right. But what this also does is set the variable 0001: g Item to match the ID of the item (the number on the left in the Items Database).

To define behavior for an interaction:

  • Open the Event that you want to be affected

  • Add a "Conditional Branch"

  • And set it to test "Variable 0001: g Item" "Equal to" the ID of the item

  • Then add the details within

Whenever the item's ID matches that of what's checked, it will run whatever is inside the conditional branch.

As an extra note, changing g Item with the "Control Variables..." Event command will also change the "active" item the Player is holding. Useful when "unequipping" it or vice versa

Combining Items

When you combine two items, 0002: g New Item gets set based on the result provided by the Data_Item script. Afterwards, Common Event 001: "Use Item" is triggered, and the conditional branch that matches g New Item runs.

To add your own recipe, first take note of the IDs of the items you want combined. Next, open Data_Item and insert your recipe and g New Item result.

In case it's confusing, the format is "[a, b] => c," (commas included). Where "a" is the smaller item ID of the two, "b" is the bigger item ID of the two, and "c" is what to set "g New Item" as.

"a" and "b" can be any item, but "c" has to be unique (unless you want to associate the combination with an existing result)

Fast Travel

Unlocking and Prevention

To create a Fast Travel location, first define a new "Zone" in the Data_FastTravel script. Copy the existing format of one of them, and name your own something unique. The Zone's :key and the ones within it will be used for unlocking and marking a location, while the tr("value") is for how the name would look like in-game.

Once you've done that, make an event at the fast travel point you want the player to end up on. unlock_map unlocks the location in the fast travel menu, with the first argument being the :zone, then the specific :location, and lastly the direction you want the player's character to face towards when they travel:

Here I've set my zone to be ":equinoxmod => Zone.new(tr("The Park") [...]", :equinoxmod is the identifier for the script, while The Park is what pops up on the menu. Similarly, :park is set to tr("park square"):

Now to prevent fast travel, create an Event with "Parallel Process" enabled, and put in a disable_travel Script then Erase Event. Alternatively, find one of the "indoor graphic" events in the "indoor" rooms of the base game, and copy-paste it.

If done correctly, fast travel will be disabled in the room that event is in.

Text and Dialogue

Format and Formatting Codes

[TBA]

Saving

Persistent Data

[TBA]

Advanced Modding

[TBA; This section will include utilizing OneShot's "piping" system in order to interact with external custom programs (such as the Journal).]

[TBA; As well as utilizing RPG Maker's Ruby scripting for custom functionality.]

UPDATES

<10/25/2020> OVERWORLD
<7/16/2020> Cheap Shots
<7/16/2020> Cheap Shots
<5/17/2020> Cheap Shots
<4/3/2020> Cheap Shots
<3/18/2020> Cheap Shots
<2/20/2020> Cheap Shots
<2/3/2020> Cheap Shots
<1/30/2020> Cheap Shots
<1/23/2020> Cheap Shots
<1/20/2020> Cheap Shots
<1/19/2020> Cheap Shots
<1/17/2020> Cheap Shots
<1/16/2020> Cheap Shots
<1/16/2020> Cheap Shots
<9/26/2019> OVERWORLD
<8/4/2019> OVERWORLD
<6/19/2019> OVERWORLD
<6/18/2019> OVERWORLD
<4/15/2019> OVERWORLD
<3/11/2019> OVERWORLD
<3/6/2019> OVERWORLD
<3/2/2019> OVERWORLD
<2/26/2019> OVERWORLD
<2/25/2019> OVERWORLD
<2/20/2019> OVERWORLD
<2/19/2019> OVERWORLD
<2/17/2019> OVERWORLD
<2/16/2019> OVERWORLD
<2/15/2019> OVERWORLD
COMPLETE LIST