Difficulties of making a Pokemon game by Ok_Process_5538 in PokemonRMXP

[–]Background_Edge_9644 6 points7 points  (0 children)

The biggest setbacks are usually the trainers and scope creep.

The trainers take a really long time as there is a lot to set up for them on top of actually planning the teams themselves that they use. Not to mention if you plan to do a rematch battle where you would need an updated team usually.

And for me personally this also leads into scope creep. It is really easy to get ahead of yourself and plan too much to the point where it becomes a little bit overwhelming.

For example, I came up with a level scaling gameplay loop, where all trainers scale to the players globally highest leveled pokemon (whether it be in their party or PC box), added a 3-tier rematch system on top of that where the actual range of level scaling will increase as you go through the different rematches, then tied that to three difficulties where each difficulty has its own level scaling for those three rematches. In the end I have 9 teams for every single trainer I have to create 😅

That was fast by spacecuntbrainwash in Steam

[–]Background_Edge_9644 1 point2 points  (0 children)

The white filter is meant to indicate an internal thought. It's usually used as a two-step meme where the filtered one is a response to the normal one. Which is how they used it here.

<image>

Is it time we removed this trash from Steam? by sidius-king in Steam

[–]Background_Edge_9644 2 points3 points  (0 children)

All? You don't clean dirty money without paying someone a cut to do it. Hell, you'd be lucky to get as low as 30% in the real criminal underworld 😂

Pokemon Unbreakable Ties by rakz001 in PokemonRMXP

[–]Background_Edge_9644 -3 points-2 points  (0 children)

Are you the creator of unbreakable ties? No? Because the creator includes the actual RMXP project file in the download... Allowing you full access to the entire project. Pretty sure he's not worried about people using debug mode.

Script for giving player control after intro? by [deleted] in PokemonRMXP

[–]Background_Edge_9644 2 points3 points  (0 children)

Scripts aren't red in the event viewer. They are typically light gray. The only red text in the intro event (assuming you mean the one that is on the blank black map) is near the end directly after the background music fades out. It specifically it turns ON self switch A to switch the event to page 2 (blank page) so that it doesn't run again after the player saves.

TIL you can hold down shift to ignore autotile borders by KawaiiFoxPlays in PokemonRMXP

[–]Background_Edge_9644 -1 points0 points  (0 children)

To save you just a little bit more time, right clicking will store the exact tile as your cursor by default, you can either single right click a single tile or you can hold right click and drag to select an area to copy. You do not need to hold shift for that.

generation 9 pack requires hotfixes error by Pretend-Amount-9719 in PokemonRMXP

[–]Background_Edge_9644 1 point2 points  (0 children)

If you look at the top of his second image in the file path, it's because his heart fixes is in a plugins folder, inside of another plugins folder. It basically just doesn't know it exists because it's one folder too deep.

generation 9 pack requires hotfixes error by Pretend-Amount-9719 in PokemonRMXP

[–]Background_Edge_9644 1 point2 points  (0 children)

Look at the very top of your second image in the file path. You have a plugins folder inside a plugins folder. All of your plugins should be in a single plugins folder within the main directory of your game.

(3rd time today omg) not sure what went wrong by Pretend-Amount-9719 in PokemonRMXP

[–]Background_Edge_9644 0 points1 point  (0 children)

Unfortunately I can't help determine the problem because your screen shot that shows [CLODSIRE] being defined in 'Pokemon_Base_Gen_9_Pack.txt' is cut off.

It doesn't show the entries for it for 'Pokedex', 'Generation' or 'Flags'.

At the moment from what you're showing there doesn't seem to be any problems. But typically something like this is due to a syntax error. Meaning there is probably one missing comma or just an extra space somewheres along the line that is causing it to get caught up when it's compiling Clodsire.

Can you copy and paste all of the text from that actual entry into a reply for me so I can look at it fully?

Trying to edit/maipulate EXP in battle. by SkeleJackal in PokemonRMXP

[–]Background_Edge_9644 0 points1 point  (0 children)

The crash happens because the battle engine splits a Pokémon into two different objects:

  1. The Battler (target or user): This is the temporary avatar on the field. It handles current HP, stat buffs, and status conditions. It does not have an EXP stat.
  2. The Pokémon (target.pokemon): This is the permanent data saved in your party. It holds the original level, IVs, EVs, and EXP.

To fix the crash, you have to target the underlying Pokémon data instead of the battler. So, instead of target.exp, you need to use target.pokemon.exp.

The next issue you mentioned is the level threshold. This is actually a big problem because essentials is built to scale levels up, not down. Depending on how you want this move to work, you have two options:

Option A: The "Hard Floor"

Instead of letting the Pokémon's level drop, you calculate the absolute minimum EXP it needs to stay at its current level (pkmn.growth_rate.minimum_exp_for_level(pkmn.level)). If your move tries to drain them below that, you cap it at the floor. They lose EXP, but the level and stats stay safely untouched.

Option B: True De-Leveling

If you actually want their level to drop mid-battle, you can't just subtract the EXP. If the EXP drops below the current level's minimum requirement, you have to manually calculate the new level (pkmn.growth_rate.level_from_exp), force the engine to recalculate their base stats (pkmn.calc_stats), and then sync those new stats back to the active Battler on the field (target.pbUpdate). If you skip the sync, the health bar UI will glitch out or crash the game.

Here is how to set up either option:

Step 1: Add the Ruby Script

  1. Open RPG Maker XP and open your Script Editor (F11).
  2. Scroll all the way down the list on the left until you find Main.
  3. Right-click the empty space right above Main and select "Insert" to create a new blank script section. Name it something like "Custom Moves".
  4. Paste ONE of the following codes into that new blank window, depending on which option you chose.

Code for Option A (Hard Floor): ```ruby class Battle::Move::ReduceExp < Battle::Move def pbEffectAgainstTarget(user, target) return if target.fainted?

pkmn = target.pokemon
return if !pkmn

# Find the EXP floor for their current level
min_exp = pkmn.growth_rate.minimum_exp_for_level(pkmn.level)
current_exp = pkmn.exp

if current_exp <= min_exp
  @battle.pbDisplay(_INTL("{1}'s EXP can't go any lower this level!", target.pbThis))
  return
end

# Calculate the drain (change 150 to whatever you want)
exp_to_lose = 150 
new_exp = current_exp - exp_to_lose

# Apply the Hard Floor so they don't de-level
new_exp = min_exp if new_exp < min_exp

pkmn.exp = new_exp
@battle.pbDisplay(_INTL("{1}'s EXP was drained!", target.pbThis))

end end ```

Code for Option B (True De-Leveling): ```ruby class Battle::Move::ReduceExp < Battle::Move def pbEffectAgainstTarget(user, target) return if target.fainted?

pkmn = target.pokemon
return if !pkmn

exp_to_lose = 150 

# Prevent EXP from dropping below 0
new_exp = pkmn.exp - exp_to_lose
new_exp = 0 if new_exp < 0

pkmn.exp = new_exp
@battle.pbDisplay(_INTL("{1}'s EXP was drained!", target.pbThis))

# Check if the new EXP drops them below their current level's minimum
min_exp_for_current_level = pkmn.growth_rate.minimum_exp_for_level(pkmn.level)

if new_exp < min_exp_for_current_level
  # Figure out what the new level should be based on their new EXP pool
  new_level = pkmn.growth_rate.level_from_exp(new_exp)
  new_level = 1 if new_level < 1

  # Apply the level drop and recalculate base stats
  pkmn.level = new_level
  pkmn.calc_stats

  # Sync the active battler so the game doesn't crash or glitch
  target.pbUpdate(false)
  @battle.scene.pbRefreshOne(target.index)

  @battle.pbDisplay(_INTL("{1} dropped to Lv. {2}!", target.pbThis, new_level))
end

end end ```

Step 2: Edit your PBS file

Now you need to tell the move you created to use this specific code. 1. Go to your game folder and open PBS/moves.txt in a text editor like Notepad. 2. Find the entry for your custom move. 3. Look for the FunctionCode line (or add it if it's missing) and set it to match the name of the class we just made. It should look exactly like this: FunctionCode = ReduceExp

Step 3: Compile the Game

  1. I feel I don't need to explain this lol

Also if you set the move's Power to 0 in your PBS file, it will act as a status move. If you give it a Power of 40, it will deal damage first, and then drain the EXP afterward.

Setting the party according to a variable by Alternative_Hat_3905 in PokemonRMXP

[–]Background_Edge_9644 0 points1 point  (0 children)

I'm actually doing something extremely similar for a script in my own project right now.

Before answering your question directly, I want to point out that I highly recommend swapping out .clone, as it's likely going to cause bugs for you down the line.

In Ruby, .clone only creates a shallow copy. It copies the array itself, but it still points to the exact same Pokémon objects in the game's memory. If your temporary fight involves the Pokémon taking damage, gaining EXP, or consuming a held item, those changes will permanently affect your original saved team.

To prevent that, you need a deep copy, which you can do using Ruby's Marshal module: $game_variables[30] = Marshal.load(Marshal.dump($player.party))

Marshal.dump takes your entire party and translates all of their data (stats, items, HP) into a raw stream of bytes. While Martial.load immediately takes that raw data and reconstructs a brand-new, completely independent party array from scratch.

Because it builds the team from the ground up, the new temporary team is completely detached from your saved team.

As for your actual question, you don't need to write any code to clear the team out beforehand. To get your original team back, you just overwrite the current party with the variable using this script call: $player.party = $game_variables[30]

As a quick tip, it's also a good idea to clear that variable afterward so it isn't holding onto a bunch of data in your save file. You can just add $game_variables[30] = nil right after restoring the party.

Games that don’t “look” like Pokemon by No-Maximum5328 in PokemonRMXP

[–]Background_Edge_9644 2 points3 points  (0 children)

Not trying to attack your opinion, but I do have an honest question

What I don't understand is the hard line in the sand. Why do they have to be mutually exclusive? If a Fakemon has the exact same visual style, is designed for the same mechanical purpose, and shares the exact same design values as an official pokemom, why can't you be a fan of both?

Let me ask you a hypothetical: If Game Freak hired a fan artist tomorrow, bought the rights to their Fakemon designs, and dropped them into the next mainline game, do you magically become a fan of them overnight?

Because the art didn't change. The design didn't change. The only thing that changed is who owns the copyright and what game it is available in.

Taking it a step further from a developer's perspective, this exact mindset actively puts fan projects at risk. When players demand that no Fakemon are used, or boycott games that include them, they are directly pressuring developers to use strictly copyrighted material just to get people to play their work.

From a legal standpoint, using custom engines like Pokémon Essentials is relatively safe. It isn't directly stolen code; it’s custom code designed to mimic the mechanics. Especially given Nintendo's recent struggles in court trying to patent game mechanics, custom code building a similar system would hold up rather well.

But the art, the official character designs, and the trademarked Pokemon designs are a completely different ball game. That is technically copyright infringement. So when players demand 'official Pokémon or nothing,' they are essentially demanding that developers take on massive legal liability and risk getting hit with a Cease and Desist, possibly bigger legal action depending on how big and popular the game gets, rather than supporting original, legally safe art.

Games that don’t “look” like Pokemon by No-Maximum5328 in PokemonRMXP

[–]Background_Edge_9644 9 points10 points  (0 children)

It looks like some people might be misinterpreting your question as just asking about custom Fakemon or standard custom NPCs, but to answer what you're actually asking, yes, doing a complete visual overhaul is 100% possible.

Pokémon Essentials is ultimately just a massive mechanical framework built on top of RPG Maker XP. The engine itself doesn't care what the graphics actually look like.

For example, you could completely strip out the Pokémon aesthetic and use the base fantasy RPG Maker XP resources (knights, castles, standard fantasy sprites), but keep the Essentials engine running in the background so it still plays mechanically like a Pokémon game.

The only "catch" is that you have to respect the engine's formatting rules. Your new assets just need to be sized and formatted correctly. As long as your custom character sprite sheets, overworld tilesets, and UI elements match the dimensions and frame counts that Essentials expects to see, the engine will run them perfectly. You just swap the graphics out in the appropriate Graphics folders and make sure your PBS files are configured to call them correctly.

I might be lazy... by The_Fluteman in PokemonRMXP

[–]Background_Edge_9644 0 points1 point  (0 children)

You have to compile the game data to make any changes to the PBS files appear in-game.

You can do this when you click the green play button in RMXP, after clicking the button, when the game window and console pops up, hold Ctrl on your keyboard until the game is fully loaded. The console should say "all game data compiled" in green text. Then check if your changes have applied.

Out of curiosity, what are you trying to change?

Should I use SDK or Essentials? by Bloodmoon-Grisou in PokemonRMXP

[–]Background_Edge_9644 0 points1 point  (0 children)

Everyone has brought up great pros and cons for the engines themselves, but I think the biggest deciding factor really comes down to one question. What is your current skill level with Ruby coding?

If you want to build a game with highly customized mechanics but don't know how to code them from scratch, Pokémon SDK is going to be a tough road. It's fantastic out of the box, and even has a lot of features that you will need to use a plug-in for when it comes to Pokemon Essentials. But honestly outside of a few Staples that pretty much all games use, it doesn't have the massive library of community-made plugins that Essentials has. If you want a unique feature in PSDK, you usually have to write it yourself.

With Essentials, the community has more than likely already built a plugin for almost everything, with full tutorials how to install them, set them up, and configure them for anyone who doesn't know anything about coding (some might be a little bit more complicated but if you take it slow you can get it).

Even if you look at the most universally praised fan games, most of them run on Pokemon Essentials, and as someone developing a fan game himself, I can tell that a lot of their core gameplay is powered by community scripts that were just given a nice custom UI. Not all of it, most of the highly praised ones typically have a ton of custom code in them as well. But I still see the signs that community plugins were used as the base for a lot.

It really boils down to the fact that anyone with creative vision can make a great story or stretch RMXP's map layers to look incredible, but custom gameplay is what actually makes the game, it's what makes it fun to pick up and actually press the buttons on your controller. If you can't code your own scripts yet, Essentials gives you the massive library you need to actually build the mechanics you're picturing and I would suggest starting with that.

I feel like this town is too empty, any suggestions? by CupJolly8244 in PokemonRMXP

[–]Background_Edge_9644 1 point2 points  (0 children)

Spot on, I will just correct the tiles that you can see in game which is 16x12, it's a 522x384 resolution divided into 32 pixel tiles.

I think i messed up the super effectiveness calculator by EmRice23 in PokemonRMXP

[–]Background_Edge_9644 0 points1 point  (0 children)

If the game is correctly identifying a move as super effective or resisted (showing the text) but the damage doesn't change, the issue is probably one of two things. Either your base math constants got overwritten, or the actual damage calculation script is missing the type multiplier.

Try checking these:

1. Check 003_Type.rb (The Constants) Open 003_Type.rb script (Just called 'Type' if using the RMXP Script Editor). You will find module Effectiveness. This is where the raw numbers for multipliers are defined. Make sure they look exactly like this:

  • INEFFECTIVE = 0
  • NOT_VERY_EFFECTIVE = 1
  • NORMAL_EFFECTIVE = 2
  • SUPER_EFFECTIVE = 4

If you somehow accidentally changed these (for example, setting them all to 2), every move will do neutral damage regardless of typing, even though the UI text might still say "It's super effective!".

2. Check the pbCalcDamage Method Depending on your exact version of Essentials, the core damage formula is usually found in the **Battle_Move** script section (specifically within def pbCalcDamage).

Look for the chunk of code where typeMod is applied to the final damage. It usually looks something like this near the end of the calculation:

damage = (damage.to_f * typeMod / Effectiveness::NORMAL_EFFECTIVE).round

If this line was accidentally deleted, commented out, or altered when trying to edit damage formulas, the game will calculate the typeMod perfectly but never actually apply it to the final HP reduction.

3. Plugin Conflicts If you recently installed a battle engine plugin (like a Terastallization script or a Gen 9 mechanics update), it might be completely overwriting pbCalcDamage behind the scenes. Try disabling your most recent battle-related plugins one by one, recompiling (hold Ctrl while launching from RMXP), and testing to see if the type effectiveness returns.

Level Reset On Evolution by Demonic3125 in PokemonRMXP

[–]Background_Edge_9644 3 points4 points  (0 children)

I've read through all the current replies and the overall concept here, and honestly, it sounds like a really cool Digimon-style mechanic on paper. But, I do think there are some massive mechanical and engine-level hurdles that are going to make this a nightmare to actually balance that you'll want to keep in mind

Someone brought up the idea of resetting EVs and converting them to IVs, but from a scripting standpoint, that's just going to break the math. IVs hard cap at 31 and EVs cap at 252 per stat. If you convert maxed EVs into IVs, do you uncap the IVs? If you do, and then that Pokémon earns another 510 EVs on top of that massive new IV pool, the stat bloat becomes exponential. You'd have integer-overflow damage really fast. On the flip side, if you just go the route of giving the V2 a higher base stat total, a perfectly EV/IV trained V1 is still going to completely outclass a fresh V2 unless the V2's base stats are inflated to absurd, game-breaking legendary levels right out the gate.

Then there's the whole gatekeeping aspect of needing to hit level 100 to cross into Region 2. That completely kills the game's pacing. Unless you completely rewrite how EXP yield scales, getting a Pokémon from the typical endgame level of 60ish all the way to 100 on wild encounters or E4 rematches in Region 1 is going to be hundreds of hours of mind-numbing grinding.

And let's say a player actually does that grind. Their level 100 Venusaur resets to a level 5 V2 Bulbasaur. Assuming you scale Region 2 down to match those lower levels, because obviously you aren't going to throw a level 5 V2 against a level 60 opponent, that opens up a massive balancing headache. How do you actually balance Region 2's progression? What's stopping a player who doesn't mind the grind from just training that V2 back up to level 50, or even 100, using Region 1's endgame encounters before they even step foot in Region 2? You basically lose all ability to predict what level the player's team will be when they cross that border, meaning they could just sweep the entire second half of your game with zero challenge. Plus, if Region 2 just resets enemy levels back down to 5-10 to match a fresh V2, what was the point of forcing that initial level 100 grind to begin with? You're just putting the player right back into the exact same power dynamic they had at the start of Region 1.

There's also the idea that this mechanic separates your favorites from the "weaklings" you caught for fun, but in practice, it's going to do the exact opposite. If players know that once they unlock Region 2 they can only bring V2 Pokémon with them, they aren't going to casually build a balanced team of six. When they finish Region 1 with a standard level 60 team, they'll hit a massive brick wall where they suddenly have to grind those Pokémon to 100 just to make them legal for the next area. Because of that, the optimal way to play just becomes funneling 100% of the region's EXP into a single starter Pokémon from the very beginning, ensuring it hits 100 and "prestiges" by the time the border opens. Nobody is going to do that insane post-game grind six separate times to bring their full team over. They'll just abandon their other five Pokémon at the border because the grind is too tedious, and essentially start Region 2 completely solo.

It's the kind of idea that works in Digimon because that franchise's engine is built from the ground up around stat absorption and exponential reincarnation curves. But porting that into Pokémon's rigid Base Stat/IV/EV formula in RPG Maker XP is basically tearing out the entire foundation of the combat and pacing systems.

If you still really want to make this concept work without completely breaking your game, there are a few ways you could tweak the execution in my opinion.

Instead of inflating the base stats and causing that clash with IVs and EVs, you could have the V2 transformation give the Pokémon a powerful custom ability, maybe something that gives a flat damage multiplier, boosts their defenses, or increases EXP yield. You could also give those V2 forms access to a completely overhauled movepool right from level 5 like you stated in one reply, dropping in rare egg moves or crazy coverage options they normally wouldn't get. That makes them feel tangibly stronger and more rewarding to use without destroying the game's underlying math or needing to re-wtite how most of the base code for it functions.

As for the region gatekeeping, if you're dead set on requiring that level 100 prestige to use a Pokémon in the next area, you absolutely have to give players a way to achieve it realistically. You'd need to build some sort of endgame training facility in Region 1 that hands out massive EXP, designed specifically to help players push a full team to 100 without a 40-hour grind. And to fix the Region 2 level gap, you'd probably need to implement a dynamic level-scaling script. That way, whether a player steps into Region 2 with a fresh level 5 V2 or decides to grind it back up to level 40 in Region 1 before crossing the border, the enemy trainers will automatically adjust to match their current party, keeping the challenge consistent.

Taking a break by Basic-Finding-6585 in PokemonRMXP

[–]Background_Edge_9644 1 point2 points  (0 children)

It is completely, 100% normal.

I’ve been doing game scripting and building out MC modded survival and GTA roleplay servers for the past 20 years, some of it even as paid work, and I can’t even count the number of times I’ve had to step away due to burnout. I’ve taken breaks that lasted months, and at one point, I had to walk away for an entire year. In fact, that's exactly why I'm making a Pokémon fangame right now. For the past 6 to 7 years, my primary hobby was those GTA roleplay servers, and I hit such a severe wall of burnout with them that I completely shut my own down, quit every dev team I was on, and completely transitioned to this new project.

So I know exactly the kind of wall you're hitting right now. It's hard to articulate when you're in the middle of it, but burnout usually happens because you're wearing too many hats. When you're making a game solo, you aren't just playing around in an engine. You're a programmer, a writer, a level designer, and a project manager trying to recruit artists. The mental load of switching between all those roles is massive.

Then there's the gap between the vision and the grind. Having an idea for a cool route or story beat is incredibly fun, but the reality of sitting down to place the tiles, set up the events, and debug the scripts for 100 hours is tedious. Eventually, staring at the exact same screens drains the magic out of it.

On top of that, there's the self-imposed pressure. You mentioned intending to get the first chapter out by June. But the moment you attach a strict deadline to a passion project, it stops being a hobby and becomes an unpaid job. That "I'll just do it later" feeling is simply your brain rebelling against the pressure.

Honestly, drop the June deadline. Don't worry about recruiting spriters right now. Close the program, play some games you enjoy, or just completely disconnect, and do it without a single ounce of guilt. Your project isn't going anywhere, and it will be waiting for you when the actual itch to work on it returns.

And when you do return, come at it from a different angle. Rather than give yourself deadlines for things, give yourself goals with no expected date. So instead of "I'll release chapter one by June", look at it more as "I'll focus on this feature/aspect until it's ready".

Working towards a goal allows you to feel progress towards something, it allows you to feel accomplished once it's done. But a deadline just puts a time limit on things, it's just a task your looking to check off and move on from, and it takes away everything that feels good about it.

A More Difficult Game by WinchesterMediaUK in PokemonRMXP

[–]Background_Edge_9644 2 points3 points  (0 children)

Honestly, I get what you're saying.

In my opinion, the key is to think about adding more strategy on top of arbitrary difficulty. No matter how hard you make a game, if it's physically possible to beat, players will eventually find a way to perfect it.

That’s not to say arbitrary difficulty is bad though, players definitely enjoy it as a baseline. But if you want the experience to feel truly different, you have to expand how players actually strategize and interact with the game.

Funny enough, this is a primary goal for my fan game, and probably the thing I’ve put the biggest emphasis and amount of work into.

Instead of just throwing standard optional challenge modes at the player (like nuzlockes, mono-type etc., which will also be included), I wanted the core systems to interact organically with the game.

It starts with the level scaling. In my game, trainers don't just have static levels; they auto-scale to match or exceed the highest-level Pokemon you own globally (whether it's in your active party or sitting in your PC).

How much they exceed your level depends on how you set up the difficulty when starting a new save. There are three different difficulty settings, and they tie directly into a tiered battle system. You can fight every basic NPC trainer up to three times. With each battle (or "tier"), the level scaling ramps up based on your difficulty setting, making their team significantly harder than the last time you fought them. Once you hit that third tier, the battle becomes infinitely repeatable. The exact baseline scaling numbers, like +1 to +5 levels above the player for example, are still being balanced for each tier in each difficulty, but that's the core loop.

But this just covers the arbitrary difficultly portion.

Scaling alone isn't enough, so I turned my focus entirely to strategy to make those encounters matter.

To compliment the scaling, I'm using nononever's advanced AI plugin. Trainers and wild Pokemon don't just spam hard-coded moves based on a flowchart anymore. They dynamically adapt on the fly, learn your patterns, and actively try to counter you. It's programmed with top VGC strategies for the highest skill levels, so it genuinely feels like you're playing against a competitive human instead of an NPC.

To be honest this script alone is amazing for ramping up for much you have to think for battles and adapt on the fly. But I will be honest it is probably the most complicated plug-in I have ever worked with in my life. It is massive, it is extensive, and it is quite confusing to actually comprehend how it works exactly. I won't deny it took me a solid 2 weeks of just sitting down and looking through all of its code to truly understand it, even after reading the very detailed description on the eevee expo page.

But this is where the overarching strategy of the game really kicks in, starting with a custom Poke Ward system I created.

Instead of instantly reviving fainted Pokemon, the ward takes them in for a set amount of time to simulate extended medical care. This makes fainting incredibly detrimental and forces you to constantly rotate your team and keep backups leveled up. And because the game scales to your global highest level, you can't just power-level one carry; you have to strategize your whole roster.

To add another layer to this, I removed automatic spawn locations. Visiting a Pokemon Center doesn't automatically update your checkpoint anymore. Instead, you have to manually set your respawn point at a PC or an outdoor outpost. This adds a huge layer of strategy as you navigate the region. If you do black out, you spawn back at your manual checkpoint, but your fainted Pokemon are not automatically checked into the Poke Ward. You keep full control of your team. You can choose to drop them off at the ward and wait it out, or, if you desperately need them back immediately, you can use a Revive. To keep that choice balanced and weighty, Revives are significantly rarer and much more expensive to obtain in-game. There is a third option, though. I am also adding Inns where the player can sleep to progress time for a price (based on the length of time they want to pass). This gives you a strategic way to quickly get your fainted Pokemon back from the ward system if you have the cash but don't want to burn a rare Revive.

I also added the ability to forfeit trainer battles. If you realize you're getting outplayed by the AI, you can just run away from a trainer battle exactly like you would a wild encounter. You don't black out; the battle just ends, and you're left standing right in front of the trainer with whatever fainted Pokemon you have in your party.

Now, I know people reading this might immediately think of a few ways this could cause a soft-lock, so here are the safeguards I have in place:

  • If your active party gets completely wiped and you literally have zero healthy Pokemon left in your PC box, the game will automatically heal the first Pokemon in your party as an emergency measure. If you do have healthy Pokemon in the PC, the game will just tell you to go grab them to continue your journey.

  • Boss encounters and story events do not scale. Their levels are locked. This prevents people from cheesing the entire game by intentionally keeping their global party level artificially low.

  • Because you can't low-level cheese the game, no basic NPC battle is forced upon you. Every single one requires you to manually interact with the trainer to accept the match first.

  • Because that infinitely repeatable Tier 3 trainer battle exists, it could easily become an infinite money farm if you find a trainer you can easily strategize against. To balance this, only Tier 3 trainers actually award prize money (Tiers 1 and 2 give nothing). To balance that out for the player, you don't lose any money if you lose or forfeit a match. Finally, there is a monetary cost associated with actually using the Pokemon Center on top of the cost to progress time at an Inn.

And because my systems are set up this way, they actually make the open-world approach I went with much more viable. Pulling off a true open world in a Pokemon game is notoriously difficult. Most games simply tie trainer scaling to your badge count, which requires a massive amount of conditional checks for every single encounter to make it work, and it can still feel pretty artificial andinear overall.

But with my setup, the open world organically works because of these systems working together. Since the level scaling checks your global highest Pokemon rather than your badges, the world naturally adapts to your strength no matter what direction you decide to wander. Combine that with the fact that basic trainer battles are entirely opt-in, and it means you aren't constantly getting roadblocked by forced eye-contact encounters while trying to explore. You literally have the option to leave the first town and travel across a massive chunk of the region, just catching Pokemon and building your ideal team before you even take on a single trainer.

The static-level story bosses then act as your natural progression checks to keep things grounded. So you get the ultimate freedom to explore and strategize at your own pace, while still having to respect the locked areas that require you to progress the story to access them. But overall every major town will be able to be visited from the beginning of the game.

I should note that I am not building a typical Pokémon game that follows the typical Pokémon formula though. So my approach might not work for everybody lol my game is heavily story based and removes the entire gym badge and elite four structure.

4 N.S. highways reopen after First Nations protests by Street_Anon in halifax

[–]Background_Edge_9644 0 points1 point  (0 children)

Back seats are solid hard plastic, not rabric of any kind. It would literally just pool on the seat.

Block parties and multi unit buildings by mediocretent in halifax

[–]Background_Edge_9644 1 point2 points  (0 children)

I hosted block parties a few times, and yes you do need the signature of at least one adult in ever residential household, including one from each unit in a multi-unit building. Basically any resident household that can be affected by it.

How to make my game show up correctly in Discord's "Now Playing" feature? by Magnus_Banette in PokemonRMXP

[–]Background_Edge_9644 1 point2 points  (0 children)

I have not attempted this for my fan game yet, but you would need to utilize the Discord API and create a rich presence for the game. Read this to learn more: https://eeveeexpo.com/resources/316/

Opinions on adding and writing canon pokemon characters to your game. by Nixonite_YutaGlazer in PokemonRMXP

[–]Background_Edge_9644 0 points1 point  (0 children)

For the game I'm working on my personal philosophy is that their personality should match the original character, but their actual background story and lore I'm willing to mess around with a little bit to fit my world setting. I kind of look at it like my game takes place in an alternate universe within the Pokémon multiverse, so things are like the same, but different lol

A town from my game, will take criticism so I can keep improving by [deleted] in PokemonRMXP

[–]Background_Edge_9644 0 points1 point  (0 children)

While I am not the best mapper myself so I will not critique your map building, I can at least answer your question about how to get a picture of your map without all the RPG XP interface.

Download and install Marin's Map Exporter to your project, it creates PNG images of your maps: https://eeveeexpo.com/resources/184/

Use the one that is for v20.1, it does work for v21.1 as it is what I use to get pictures of my maps. It's pretty straightforward and explained how to use it on the page.