GBStudio Platformer Plus
Platformer Plus is a set of changes to the GBStudio platformer engine that add new mechanics and allows designers to further tweak platforming.
While you're here, check you my new book, Run and Jump: The Meaning of the 2D Platformer, available for free!
New features include:
- Support for Slopes (still alpha version, dashing doesn't work with slopes)
- Solid Actors, Platform Actors, and Gravity
- Advanced Tweaks to Player Movement
- Wall Jumping, Double Jumps, and Floating
- New Dashing Mechanic and options
- Advanced Running Mechanics
- Drop-Through Floors
- New Camera Controls
- Powerful New Scripting Events
- A sample project that shows ways to create advanced mechanics.
Using Platformer+
All of these options can be found in a new Platformer Plus settings panel in GBStudio, and you can learn more in the documentation here. You can find the most recent experiments and bug-fixes on GitHub here.
Note: There are two versions of Platformer+ available here. V2-alpha is designed to work with the new slope tiles in GBStudio 3.2. However, it is still a work in progress. Please report any bugs you find. Dashing does not currently work well with slopes. V1.7 incorporates some recent bugfixes and gets rid of the notification that it was made for an earlier version of GBStudio.
Feel free to use this in any projects, or to edit and extend the changes. Attribution is appreciated.
Installing
Download the 'zip file, and unzip it into your GB project folder.
Special Thanks
GumpyFunction, for the Coyote Time and Jump Buffer elements. Pearacidic, for some engine ideas. PauTomas, for providing the Player Fields Plugin.
Updated | 27 days ago |
Status | Released |
Category | Assets |
Rating | Rated 5.0 out of 5 stars (27 total ratings) |
Author | hauntology |
Genre | Platformer |
Tags | Asset Pack, gbstudio |
Download
Install instructions
GBStudio 3.2
Download the zip file, and unzip it into your GB project folder. It should look like this:
Development log
- Alpha version of slopes for GBStudio 3.2Apr 14, 2024
- Update to 1.65Apr 07, 2023
- Bug fixesFeb 26, 2023
- Removed extra filesFeb 17, 2023
- QOL updates and Sample LevelFeb 16, 2023
- Update to 1.62Jan 25, 2023
- Bugfix for slidingJan 17, 2023
- Update to 1.6Jan 15, 2023
Comments
Log in with itch.io to leave a comment.
With wall jumping, is there a way to prevent the player from jumping directly up - in other words, I want the player to always kick off in the opposite direction of the wall, and never straight up
Any way of making PlatformerPlusGravity work on GB Studio 4?
I was wondering the same thing
I got the pack and put it in my plugins folder for my game, but I can't see it in the settings tab. Did I do something wrong?
what gb studio version are u using?
GB studio 4 release lets goooo :). Ill support if there is a place to donate or pay.
Is it possible to limit Extra Jumps only to when a variable is true, or do they have to simply be on or off for the entire program?
You can use the 'Update Engine Field' event to change any of the Platformer+ settings on the fly. The extra jumps one is a little tricky because the jumps reset once you land. So if you change the number mid-air, it won't update until you touch the ground again. You can also use the 'Update Platformer+ Field' to change the current number of extra jumps to increase or reduce the number before the ground reset.
Thank you very much! With this easier to understand reply, I was easily able to implement the object I intended :)
Is this project dead? Github was displaying a message that the repo has been archived.
The project is still alive, just waiting until I have a bit of time to update. The rapid changes to GBStudio make keeping pace difficult at the moment. The plugin still works, just gives a warning that it was made for a previous version.
I'm not sure what the issue you're seeing with the GitHub is, it looks normal from what I can see.
thanks for the update!!!
Alpha crashes my computer when GB Studio starts to compile topdown for some reason.
hello! congratulations for this magnificent plugin, thanks to you I managed to make my first platform video game, Stair Tower, I am waiting with exaggerated impatience for the update for version 4 of gb studio!
same here. I’m basically waiting for it to
Continue my game development lol.
Hello! I love your plugin so much! I was wondering if there was a way to have a script to enable/disable double jumping within a level?
Yup! You can use the update Engine Field event to change most of the P+ settings during a scene.
Love this plugin, adds a lot of functionality I was looking for in GB Studios! Eagerly awaiting an update to work with GB 4.0, have some levels I'd love to utilize these tools on!
Hi 50CentCowboy, the current plugin should work with 4.0. it will produce a warning about the version, but that won't stop it from compiling. The only problem is that dashing and wall jumping don't work well with slopes.
Okay, I'll give it another go. When I tried to run, I got this line in the Debugger:
"Plugin "PlatformerPlus" was created for an older version of GB Studio and may not work correctly. Plugin uses engine "3.2.0-e4" but GB Studio is using engine "4.0.2-e0" and it never seemed to finishing compiling. I'll give it more time to see if it eventually completes.
yes an update for official gbs4 would be awesome. Can I donate to the effort?
Hi. Thank you for the plugin.
Is there a way to make consistent jumps? I'd like to do something like in the Dizzy game series, where the character always jumps the same distance regardless of how fast it moves. In GB Studio, jump distance depends on walking speed. I managed to do this by changing the min and max velocity, but the same applies to walking - the player moves the same distance as when jumping. I would like to maintain normal walking mechanics and always jump the same distance.
I can imagine a few ways to accomplish this, but generally you'll want to use 'Attach Script to Platformer+ State' and then use 'Start Jump' to change the max speed and use PauTomas' plugin to set the current speed to match. Then add another script on ground to retire the normal walk
Thak you very much. I will try that.
Amazing plugin for gb studio!
I have noticed an interesting thing with the collisions with solid actors: it does not exactly work the same way when approaching a solid actor from the left or from the right
· When you approach a solid actor from the left until it makes contact, then stop pushing the button "right", the status between player and actor is "on hit" and will trigger the events of the "on hit" from the actor
· (but) When you approach a solid actor from the right until it makes contact, then stop pushing the button "left", the position of the playes is one pixel further away from the actor and does not trigger the "on hit" events of it.
I am developing a little game where the push or pull of objects (actors) is done by approaching the actor, then push B and then push the direction to push/pull it; it works when I approach the object from the left but it does not work when I approach it from the right due to de explanation from above... and it is a big pitty!! how could I correct this in the json code of the plugin please?
Thank you for your time and attention!! :D
Thanks for checking in Lizarra. I'll look into this. If you want to provide more details about the issue, the best platform is he GBStudio discord. I'm usually active there regularly
Can you update this to work with 4.0? Thanks!
agreed
Now it's time for update 4.1.
I guess there's nothing the current update can't do in GB Studio 4.1 as far as I'm aware...
I can’t wait. Supposedly it already works but it is buggy. Hoping for an official update. I’d even pay more for it,
will the platformer camera or gravity be updated to also work with 3.2 one day? Thanks again for this amazing plugin!
Is there a way to jump the character off the ladder, go down by pressing the downward button at the end of the ladder, and go up to a platform through the ladder below?
(Got your book on my kindle and wrote a review)
for the other plugins I got this:
Using engine plugin: PlatformerCamera\engine
Plugin "PlatformerCamera" was created for an older version of GB Studio and may not work correctly. Plugin uses engine "3.1.0-e15" but GB Studio is using engine "3.2.0-e4".
Using engine plugin: PlatformerPlus\engine
Plugin "PlatformerPlus" was created for an older version of GB Studio and may not work correctly. Plugin uses engine "3.1.0-e15" but GB Studio is using engine "3.2.0-e4".
Using engine plugin: PlatformerPlusGravity\engine
Plugin "PlatformerPlusGravity" is based on an unknown engine version and may not work correctly. Plugin authors can fix this issue by making sure `engine/engine.json` exists in the plugin containing at least `{"version": "3.2.0-e4"}`.
have the other 3 plugins been updated?
also is there a way to donate or pay ?
Platformer Gravity doesn't currently work with 3.2, but the warnings on the other two plugins won't cause any problems and should go away after the first successful build. You can also find the older version of GBStudio here: https://github.com/chrismaltby/gb-studio/releases/tag/v3.1.0
I've been doing some updates to try and get a fully compatible version working for GBstudio 4.0 when that comes out of Beta.
nice! yea I'm thinking of waiting to start for 4 to come out. thanks for the reply
can’t wait for the 4 release :)
While working on my platform game, I noticed that there is a missing event to make enemies jump
Unfortunately, enemies in GBStudio don't have their own physics calculations--even one more actor with the same level of physics as the player slows down the gameboy to a crawl. The PlatformerGravity plugin is designed to do some very basic version of gravity/collision (which can sort-of be combined with the move event to create a jump). Even with just that version of physics you can see the slowdown.
I see, too bad.
I'm hoping for a new update that lets me have moving platforms and slopes in the same scene—something I need for my Mario fangame.
I love that I can attach scripts to platformer states. I've used that to play a sound when the player jumps.
LOVE this plugin! I'll be keeping an eye out for an update compatible with 3.2, even if I could disable this in certain scenes just so I can get my rom exported. Thanks for all your hard work!
Hello, thanks for this.
Currently I receive this annoying window every time I run the project, I am waiting for the update to 3.2 to make this window disappear!
Hi,
just edit engine.json file of the plugin and replace "version" with:
"version": "3.2.0-e3"
I did that, but kept getting the same errors :(
This one is very good! It makes me wonder how people are able to make platform games without this plug-in. Have you considered making some parts of it into the standard gbstudio? I think the facing direction fix on the air and solid actors are almost a must have for every game. Thanks! Also, amazing demo. Can't wait for 3.2 support.
hope this comes out soon gbstudio v3.2.0 compatible version
It'll be a little while before I can integrate the slopes code, but this version should still work with 3.2. It will just ignore any slopes that you add to your scene.
i tried compiling a project with plat+ on 3.2 and it could not compile regardless of having slopes in the scene or not
I tried to upload a project of mine with the latest version, and it gives me problems too
The base plugin should work, but the camera and gravity plugins won't work in 3.2
just tried it with only the base plugin and the game compile
Just released a game using your plug in, thanks a lot for it, I wouldn’t be able to do it otherwise !
Thanks a bunch! This plugin has helped me not only make my games easier, but also helped me in the production of making my own engines to better match my games!
Hi! thank you for this plugin! I'm looking forward to playing around with this.
Quick question: is this compatible/interoperable with the Player Field plugin?
I have a "grounded" variable set with player field for a jumping attack, but when I tried building and running I get this warning:
?ASlink-Warning-Undefined Global '_grounded' referenced by module 'script_input_2'
- 1
Should I set this up using P+ and remove the player field plugin?
Yes, unfortunately do to the changes to how platforming works, it isn't compatible with the grounded check anymore. You can still use other parts of the player fields though. Instead, you need to check what state the player is in using the Store Platformer+ State to Variable event, and check if that is grounded
Yes! I should've checked the documentation first. Now I feel dumb lol
I tried with the P+ fields and didn't work but now I realized I should've set the current jump state to 0 and not 1.
Apologies! and thank you for the prompt response :D
Hi. First let me thank you for this awesome demo.
Why does the character starts bouncing in the demo and in the downloaded version, it doesnt?. What do I have to do to have the character just being able to bounce from the start and not use the other things like the aim thing?.
Thank you.
Hi, thanks for pointing this out!
It looks like somehow the script got deleted, before I uploaded it. But it should be simple to add back:
In the bounce scene, there are two trigger areas on the right hand side. The top one has an On_Enter script. If you copy that, and paste it on the scene's OnInit script after the minJumpVal = 8000 event, then the bouncing should work again.
Hello. Sorry for asking. The two triggers that you say are the yellow rectangles on the right, correct?. When I click the top one, in the events "box" it shows an event called "PM_event_platplus_state_script". I click on it and nothing happens. How do you see scripts in gb studio?. Also, where can I find the Onlnit script?.
Thanks. I should say that Im new to gb studio and I dont know much.
I Just recently found that you dont edit the background in gb studio, you make a png image and then paint the collisions.
So two notes:
1) To answer your questions, it sounds like the project didn't get fully unzipped, and that some of the plugins are missing or in the incorrect folder. Make sure you extract everything and keep the file directory the same. Rather than PM_event_platplus_state_script, it should read "Attach a Script to a Platformer+ State." You can find the OnInit for the scene by clicking anywhere in the scene that isn't an actor or a trigger.
2) Some of the techniques for the bounce are a bit advanced, I'd recommend you play around with GBStudio a bit before trying to replicate that particular bit. The Discord is a great community for learning the ropes, and also a really good place to ask questions!
Thank you.
Absolutely loving it so far!!!! But ... Did you know it breaks the shoot-'em up mode?
(camera doesn't follow until the player gets all the way to the right of the screen. The bug is Repeatable even in a fresh build of the demo template. Without making any other change simply adding the plug in breakes the sh'mup stage)
I think the issue is causes by the PlatformerCamera plugin, which needs to alter some files shared across scene types. If you remove that plugin, you can still keep almost all the general Platformer+ functionality.
Sorry for the long delay in response thank you, i can confirm. fixed the problem.
awesome work! Thanks a bunch!
I noticed there is a lag between the initial jump and the extra jump. How could I reduce this lag to 0?
We talked about this in the discord, but if anyone else wants a fix for this, the GitHub version has one.
Amazing plugin. This makes creating platform games in GB Studio much more pleasant and interesting. Thank you!
One request. I would love to see non-player sprites (e.g. an enemy or key) walk or stand on moving platforms. Is there a chance collision will get added in the future for Actors other than the Player? Or is this completely out of scope?
Unfortunately, the way collisions are handled in GBStudio more generally makes this impossible. There might be some way to do a workaround without actual collisions, but I'm not sure how.
Hmmm too bad. I got pretty close to a workaround with conditional movement & identical movement speeds, but it is still buggy... probably need to go back to the drawing board. Thanks for the answer though!
can we get another plugin file WITHOUT the minimum jump frames field? setting it to 0 still lets u do lil hops for me, i wanted to set up a physics where i can uodate my jumps and have no jumps at all. or maybe its bad scripting on my part?
It seems like there are a couple of issues going on, but there isn't a way to pull out the minimum jump frames from how the rest of the plugin is setup. You can get jumping down to nothing by setting Jump Velocity = 0 and Minimum Jump Height = 0 (jump frames only divides the amount in jump velocity). It still has a frame of jump animation, but if you want to get rid of that the best bet is just to overwrite the jump button entirely.
As for updating the jump physics, they will update but currently you have to wait until the next scene to see the change (because of some interactions between a number of other variables, the game needs to do some error checks when it loads a scene for jumping). I'm planning on adding an event that lets you update the jump fields directly, but I haven't had a chance to create it yet.
yeah that scne chnge b4 an update can be a little tricky to pull when u want to update any grvity real time. thanks! hope the next update solves these issues good luk
I did some tests with enemies that shoot projectiles, and I noticed that if they shoot to the left, the mapping does not completely match the height of the enemy shooting i
thanks for the report. My guess is that Platformer+ isn't t causing the projectiles issue (projectiles are handled by another file that the plugin doesn't alter). If you want to dig into it more, I'm on the GBStudio discord regularly
notice the plugin now conflicts with pautomas' player fields on ground plugin, any way to have them both? or a way in pplus to check if player is on ground?
I decided to remove support for 'grounded' because it added a little bit of additional slowdown to the code. Instead, the recommended way is to use the Store Platformer+ State in Variable event, and then check whether it is the ground state.
If anyone really wants to see grounded come back though, I can re-add it.
thanks for the clarification. glad the other fields are working still,
while I was creating my platform game, I noticed that at the change of scene the character has a frame change for an instant, I tried to see better while it happens, and when it happens it seems to change the jump frame quickly, to then put the character still , as it should be.
thanks for reporting this! It's an issue I recently patched, so if you grab the GitHub version it should fix the problem. The other thing to check is that when you use the change scene command, make sure to set your characters direction.
I'll check right away. Thanks for the reply!
Hey thanks SO MUCH for creating this! This has helped me create better platformer physics for my next game!
If possible, would you be willing to share the gbstudio project for this demo? I would really like to take a look at the assigned settings values for the different parts of the demo. I'm having a hard time wrapping my head around how the settings work together.
Also is there a recommend way for setting a 'jump height minimum' for when the player just taps the jump button instead of holding? It seems that every time I tap the jump button, the player only jumps a few pixels into the air. I would really like to fine tune how far the player jumps when I tap the jump button.
Thanks again for this amazing plugin!!!
Unfortunately, I don't have the project files for the sample level anymore.
For minimum jump height, my recommendation is starting with the default jump height of 1792 and turning down the classic gbStudio jump height to something low or even 0 and tweaking it up.
Thanks! I'll give it a try.
Hello, I am new to Gb Studio. I put in the project folder the Platformer plus plugin, but nothing appears in parameter? Tested on mac and windows!I'm definitely not doing it well. is it possible to have a screenshot of the installation? Or other?
Thank you.
Sorry! I just found the solution in the documentation "how to install a plugin"
;)
i think i installed it (put plugin folder in project..) but I only see "actor gravity"
is there more im suppose to be seeing? thanks. plus I got error
Packing Data...
Linking...
?ASlink-Warning-Undefined Global '_actor_gravity_on' referenced by module 'scene_1_init'
?ASlink-Warning-Undefined Global 'b_actor_gravity_on' referenced by module 'scene_1_init'
1
Warnings:-
- ?ASlink-Warning-Undefined Global '_actor_gravity_on' referenced by module 'scene_1_init'
-
- ?ASlink-Warning-Undefined Global 'b_actor_gravity_on' referenced by module 'scene_1_init'
It's probably easier to troubleshoot this live. If you join the GBStudio discord, I'm happy to help you get it up and running. https://discord.gg/bxerKnc
im there as zartan917...
Hi, I have the same problems. How did you solve it? Thanks
hi i think i got an update version on github and/or i just reimported everything tried again and it worked
Thanks
All of the additional functionality that has been added is fantastic, so thanks again.
I have a feature request:
Drop through platforms - would it be possible to limit the amount of platforms you drop through to a single one? At the moment if I keep holding the button/s I continue dropping through platforms forever. Ideally the player would have to press down/jump again for each platform below.
Thanks for the request! I'm taking a little bit of a break, but once I get back into it I should be able to add that without a problem.
Amazing, thank you :)
I've added this feature. It's not on the itch.io page yet (finishing up some new camera stuff) but the Github version has the update.
just getting started with this, but loving it so far! Is there a way to do a ‘backwards’ dash? I would love to incorporate that into a dodge roll mechanic of sorts. Thanks!
It depends on what you want out of a backwards dash. Right now you can use the Store Platformer+ State event to check when the player enters a dash and use that to play a different animation (ie. facing backwards).
The next version will have a new event that will let you set the current state, so that you can cause dashing to happen whenever you want through your scripts (ie. attach it to a specific button combo).
awesome! I’ll give that a shot. Thanks for the reply! And thanks for all your hard work. It’s a bit daunting at first, but I love all of the extra stuff I can mess around with and tweak.
Awesome work.
Is it possible to have double jump levels be unlocked in game by setting a variable? or just within the GBS settings.
Yes, GBStudio 3.1 has an event to Set Engine Fields, and you can use that to change the number of double jumps from any script.