Speedrush is an endless challenging platformer which can be played alone, or with other users. It is the perfect game to use to chill out with friends, to challenge yourself, or to practice your platforming skills.
Mechanics
Spike - Instantly kills you when you land on top of one!

Acid block - Instantly kills you when you either land on top of one, or simply touch the acidic top of the block!

Glue Block - Stops your movement while you are grounded!

Controls
Dash - Acquire a small boost of speed for a short period of time, can only be used once while airborne (Grounding will allow you to use it again).

Run - Move across the map at normal speed on the X axis!

Jump - Jump over obstacles and blocks!

FAQ:
How do I join a friend's server?
Your friend must first be hosting a server, which can easily be done by checking the "Host" checkbox when joining in multiplayer mode, if so, ask them for their P u b l i c IP address, as this is a requirement to connect to the server. Ask your friend to port forward their router if they are comfortable doing so, and ask them to send you the port they chose.
If all these steps are completed, you can open up speedrush, select multiplayer after hitting the play button on the title screen, and enter the info you have obtained into the "Server Address" text box in the following format
{Server Address}:{Server port}
Why do the animations look wobbly?
This is intentional, as the animations are frame by framed.
What engine was used to make the game?
Unity.
- New UI assets and sprites
- Updated control panel with more accurate controls and cleaner UX
- New Mod APIs for Audio manipulation and asset spawning
- Brand new soundtrack (It's really good!)
- Encrypted server transports and session authentication via Steamworks to deter server botting
- Faster performance on Windows via DirectX 12 and on Mac and Linux via Metal and Vulkan
- Cleaner clouds and smoother parallax
- Smoother text rendering with brand new fonts
- Improved macOS support and performance
- Fixed some macOS specific bugs related to mod loading and file browsing
- Update to latest Unity version
Please Update at your convenience.
- Fixed multiple bugs, including sections not syncing in multiplayer mode
- You can now host games multiple times without restarting Speedrush
Please Update at your convenience.
Hello everyone! Here are the improvements in this update for mod developers:
- Collision capabilities
- More advanced getters and setters
- More callbacks
- Bug fixes
- Audio capabilities
- Enumerations
- And more!
The API is being updated as of right now, check back in a few hours!
Please Update at your convenience.
- Fixed Settings menu on desktop platforms
Please Update at your convenience.
- Fixed sprites not destroying properly (Modding)
- Fixed the singleplayer gameover screen not working on mobile devices
- Performance fixes
- Update to latest Unity version
Please Update at your convenience.
- Android and FireOS Support (Both available on their respective app stores)
- Update to latest Unity version
Please Update at your convenience.
- Fixed a font issue in the mode selection screen
- Fixed a control panel bug where mod icons would not be added
Please Update at your convenience.
- Tweaked Ui on the title screen
- Added a version counter on the title screen
Please Update at your convenience.
- Minor cosmetic UI tweaks
- Nametags on players
Please Update at your convenience.
- Added helpful function parameters for Lua callbacks
Please Update at your convenience.
- Fixed achievements only being awarded after leaving the game
- Fixed the game freezing if you get eliminated while dashing
This should be the last Bug fix update for awhile
Please Update at your convenience.
- Fixed time stopping when exiting the Game Over screen
- Changed 'setSpriteWidth' to 'setSpriteSize' for Lua scripts
Please Update at your convenience.
Want to make a mod for Speedrush?
Well, you've come to the right place!
Here, I'll be documenting the Speedrush Lua API, as well as the mod system itself.
Prequisites:
- Knowledge of the Lua programming language (Read the Docs Here )
- Knowledge of your operating systems file browser
- A text or code editor of any sorts (Though, I do recommend Visual Studio Code )
Scripting API
Variables
playerCount - This variable indicates how many players are online on the said server.
playersDead - This variable how many players are on the "Game Over" screen on the said server.
gameVersion - This variable indicates the version of the game.
serverPing - This variable indicates the ping of the said server.
serverPort - This variable indicates the port number of the said server
isClient - This variable indicates if the script is acting as a client or server.
scriptPath - This variable indicates the location to the current script, minus the script file name.
speedrush - This variable is important; it contains utility functions shared by Speedrush, you can
learn more about it below.
Functions
speedrush.resetGlobals() - This function will reset all Speedrush provided variables to their default
values.
speedrush.system.getCWD() - This function will return the current working directory of Speedrush's
Unity Player.
speedrush.system.getAssembly(name) - This function will return the name of the C# assembly
containing the type specified in 'name'
speedrush.system.getDeltaTime() - This function will return the Unity 'deltaTime'.
speedrush.system.getDeltaTime() - This function will return the Unity 'time'.
speedrush.system.serverPrint(message) - This function will log the message specified in 'message'
to all of the platers connected to the said server.
speedrush.discord.setPresence(presence) - (This function will only work if the user has the Discord
chat app installed and running!) This function will set
the user's Discord chat app presence to the string
specified in 'presence'.
speedrush.util.getCSharpProperty(type, property) - This function will return the value of the 'Type's
property specified in 'property', if it exists. If
not, this function will return 'nil'.
speedrush.util.callCSharpMethod(method) - Immediately calls the method with the name specified
in 'method', if it exists.
speedrush.graphics.newSprite(tag, fileLocation, x, y, width, height) - Creates a new sprite on the
screen if 'fileLocation' exists
in
the mod folder path. The
sprite will only be created if
the file specified in
'fileLocation' contains valid
image data. 'x' and 'y' specify
the location of the sprite, and
width and height do exactly
what their names imply they
do. 'tag' is used for tracking
modifying the sprite.
speedrush.graphics.setSpritePosition(tag, x, y) - Changes the sprite specified in 'tag's position to
'x' and 'y'. If you have not called
speedrush.graphics.newSprite or the tag does not
exist, this function will not do anything.
speedrush.graphics.setSpriteSize(tag, width, height) - Changes the sprite specified in 'tag's width
and height to 'width' and 'height'. If you have
not called speedrush.graphics.newSprite or the
tag does not exist, this function will not do
anything.
speedrush.graphics.destroySprite(tag) - Destroys the sprite specified in 'tag'.
If you have not called speedrush.graphics.newSprite or the
tag does not exist, this function will not do anything.
Callbacks
Callbacks are functions that you need to define in your scripts, however they will be called automatically by Speedrush when the described event is triggered.
onEnable(firstTimeEnabled) - Called when the said mod is enabled, 'firstTimeEnabled' will be 'true'
if the said mod was just added.
onDisable() - Called when the said mod is disabled.
onPlayerJoin() - Called when a player joins the said server.
onUpdate() - Called every frame of the game.
onMove(direction) - Called when a player moves in any direction, possible values of 'direction' are
"LEFT" or "RIGHT".
onDash(flipped) - Called when a player dashes, if the player is facing left, then 'flipped' will be
'true', otherwise it will be false.
onExit() - Called when a player exits the said server.
onAnimationPlay(index) - Called when a player's sprite animation changes states. The parameter
'index' (Number) indicates the animation that will be played
(0 = Run, 1 = Jump, 2 = Dash, 3 = Idle)
onFlip(flip) - Called when a player's sprite flips. if the will be flipped left, then 'flip' will be
'true', otherwise it will be false.
Packaging your Mod
Speedrush mods are very easy to package, all you have to do is put all of your script files, images, etc into a folder with a data file. This data file should simply be named 'mod' and have the file extension '.json'.
Here is an example of a good mod folder structure:
.
script.lua
ignore/
script.lua
image.png
mod.json
Keep in mind:
- Speedrush will only run scripts with the file extension: '.lua' (Notice how Speedrush doesn't attempt
to run the 'image.png' file)
- Speedrush will only run scripts in the root mod directory folder (Notice how I titled the nested folder
in the file structure example: 'ignore')
- Although Speedrush cannot run scripts in nested folders directly, they can still be required by other Lua
scripts.
- Speedrush will report script errors to you (If there is any) in the control panel window (Accessed by
pressing the 'Up' Arrow Key)
- Speedrush will block you from installing two mods with the same name.
Here is a template 'mod.json' file:
[b][i]{
"name": "Template",
"description": "Template\nMod",
"version": 1.0
}
[/i][/b]
These are the only JSON fields needed for a full mod data file, so edit them to your liking.
Distributing your Mod
You are free to distribute, sell, or share your Speedrush mod in any way.However, I do have some tips:
- Compress your folder to a .zip, .rar, .7z, etc., as most mod sharing sites do not allow a raw folder to be
uploaded.
- Add a readme file to introduce your mod in detail or provide an installation/usage tutorial.
- Follow the Semantic Versioning rules when updating your mod and/or
data file's version field.
If you've followed all of these steps correctly, you should be able to start modding Speedrush like no tomorrow!
Happy Modding!
- Fixed Lua's 'print' function not writing to the log file.
Please Update at your convenience.
- Fixed a bug where sprites would only show on the host's perspective
- You can now print a message to all clients using Lua scripts
Please Update at your convenience.
- Fixed sprite width not applying for Lua scripts
Please Update at your convenience.
I've fixed multiple bugs, one of which being that instead of the host being able to load mods, the player who last joined the server had access to the control panel.
I've also fixed some alignment issues on some UI elements, such as the game over and mode selection menu screens.
Please Update at your convenience.
In this update, officially supported modding and a few other changes have been added to Speedrush!
However, unlike many other games which support modding using the C# programming language, Speedrush uses the Lua programming language, which is much easier to learn, even if you've never coded before.
As of now, the API is in construction, however it should be done in a day or two.
I've also changed the game's font to a more fitting one and added a "Modder" achievement, which you will be awarded if and when you decide to load a mod into your game.
Keep in mind:
- Speedrush mods can be loaded using the Control Panel, which is accessed by pressing the "Up" arrow key only on a server.
- A single speedrush mod will affect all the players the the said server.
- Only the host of the server can load mods.
With that said:
Enjoy Version 1.1 - The Modding Update!
Minimum Setup
- OS: Any
- Processor: 2.5+ GHz Intel Core i3 ProcessorMemory: 4 GB RAM
- Memory: 4 GB RAM
- Graphics: GTX 660 or Equivalent
- Storage: 64 GB available space
Recommended Setup
- OS: Any
- Processor: Somewhat Recent Generation of Intel i5Memory: 8 GB RAM
- Graphics: GTX 1660 SUPER or EquivalentNetwork: Broadband Internet connection
- Storage: 128 GB available space
[ 6419 ]
[ 2200 ]
[ 4798 ]