• Welcome to MX Bikes Official Forum. Please login or sign up.
July 13, 2020, 12:46:05 AM


MX Bikes beta14e available! :)

Show posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Topics - JNS47

Bug Reports / UI creates border around bitmaps
May 11, 2020, 03:58:59 AM
I want to create a main menu UI, but somehow there is a border drawn around bitmaps (and sprites in buttons). Maybe you don't see it easily on the screenshot, so you might have to zoom.
borders of my images are #ffffff, so it can't be the image which causes it I guess.

tried to make borders transparent, the gray border goes away if I do this, but this makes it a lot harder to get a nice transition from the images to white as you can see here (the three colored images have a transparent border)
Other / JNS47's Bike Fonts
May 10, 2020, 06:09:38 AM
I've created some bike fonts.

first row are the shadow-black fonts in their various colors.
second row are the double-bordered-white, double-bordered-black, bordered-white, bordered-black, default-black and default-white fonts in this order.
third row are the shadow-white fonts in their various colors.

All the fonts are available in black and white and have a one-digit version (which is a bit bigger) and a two-digit version (3 digits are also possible in most cases, but it doesn't look perfect)
On some bikes the one-digit version even looks fine with more digits, but not on every bike. So go test it for yourself.

If you want to download the full pack, you can get it here:
Download all

if you want to download fonts separately (because it's 52 fonts in total, which is quite a bit scrolling), you can get it here:
Separate fonts

High-Res tga and png (feel free to use) files and some more images which I didn't want to post here because of their size are in the root folder here
(thanks to iNsane for making this nice background I used to make those screenshots there)

Sadly on the Yamaha the fonts act kinda weird, nothing I can do about it without shrinking the font, which I don't want to.
Let me know if you get any problems with downloading, installation or the fonts in general.


If anybody wants to make a Kit Font in the same style, go for it (I can provide you with my gimp project file if it helps, lol), I won't do it myself because it's just too much work adding 26 more characters of every style, even if they are pretty similar.
Other / 16 Segment Pitboard
May 07, 2020, 04:01:36 AM
A 16 segment pitboard.


This thread will be updated with further suggestions, to prevent spam
(I have a lot of suggestions, just not written in full words yet. And you'll probably hate me, because most of my suggestions would be a hell lot of work to implement)

1. Binding
Today when I wanted to watch a replay I realized all those replay actions like play/pause, fast forward, ... are now binded to the numpad. The problem with this is, in b13 default binding of rotating and changing FOV in replay were bound to the numpad. So now when I want to rotate it jumps to the next/previous frame at the same time and there is no way (I think) to unbind the replay actions. It's possible however to rebind rotating and changing FOV, so I tried that. When I bound it to another button, it worked fine but I preferred having those on the numpad, so I wanted to bind it there again. Next problem: You can't bind it to the numpad anymore after changing.

So the first suggestion is to make EVERYTHING (un)bindable and add it to the settings.

But I wouldn't create a thread just to mention this, in my opinion binding needs to be reworked.
Besides all the binds in the settings there is a "control.txt" file in our profile directory but it's a pain just looking at it. You'd argue we don't need to change anything in there, if it can be done ingame.
But is that a valid argument to have ugly config files? (It's not just the controls.txt, some other config files could use a rework as well. No offense.)
And some people might really need to change something in there, for some advanced configuration which can't be done ingame. (for example changing replay rotation back to numpad keys)

My second suggestion isn't polishing the controls.txt however, but rethinking the binding concept first.
At the moment it seems like keys are bound to actions (maybe it's not implemented that way, and it just looks like in the controls.txt) but I think it's smarter to bind actions to keys.
What I mean:
a line of the controls file looks like this atm:
CTRL_CHANGEVIEW KEY 46 0.000000 0.000000 0.000000 0 10.000000 10.000000 0 1.000000 0.000000 0.000000This way it looks like it's saying "the action ("CTRL_CHANGEVIEW") can be activated with the key (46 -> 'C' on the keyboard. Don't know why tbh, since ASCII value of 'C' is 67)"
but it's better to say "the key (46) will activate the action ("CTRL_CHANGEVIEW")".

Why? Doesn't sound like a useful change, doesn't even sound like it'd change anything, right?
But there are some things which are done cleaner if the "binding a action to an key"-way is chosen in my opinion.

The first thing is having multiple keys doing the same thing.
Here's an example done in both ways, I want to bind the throttle to my XBOX Controllers RT but I want to be able to use my 'W' key on the keyboard for the throttle as well. I'll change the syntax a bit (similar to csgo's bind commands).
Action bound to key:
bind XBOX360_RT "throttle"
bind W "throttle"
Key bound to action:
bind "throttle" XBOX360_RT
bind "throttle" W
as you can see, there is two lines starting with "bind "throttle"". That's a problem if you don't read the whole file explicit but just search for the first entry of "throttle". Sure, with the action --> key-way, you have to read the whole file as well but it makes sense to do there.

Next is binding with arguments. Currently there is no changeable bind with arguments, but the autochat uses arguments (probably it does... I mean... It has to). Thats just a stylistic thing to have everything organized.
bind 1 "autochat 'gg wp'" is better than
bind autochat 1 "gg wp" because it has the action right in front of it's argument instead of having the key between those.

Lastly, where the current way of binding key to actions looks probably cleaner: Binding multiple actions to one key.
You'd just have two separate lines like this:
bind "clutch" Y
bind "shiftUp" Y
But as csgo shows you can have multiple actions on one key with the other way as well:
bind Y "clutch; shiftUp"
You can then easily separate those actions by splitting the string inside the " on semicolons.

Yes, there was a thread already suggesting multiple actions with one key and it was rejected, but I think it's a pretty useful feature even if you can't think of a use case, someone will find one for sure.
Idk, maybe having a button for moving in replay mode and decreasing speed to X before. (If there was the possibility of binding a button to set a specific speed instead of decreasing with every click)

With that aside I can talk about the syntax of the controls.txt. I guess nobody will deny it's not very readable. I mentioned csgo before and they do a pretty good job in binding I think, in this guide you can see it.
Normal binds, toggling, increment, ... they have it all.
Those binds are just console commands which are stored in a file, this file is loaded on startup.

I've created an example syntax, it's mostly similar to JSON:
InputDevices: [
Keyboard1: {
ID: ?,
AnalogKeys: {}
Gamepad1: {
ID: ?,
AnalogKeys: {
RT: {
deadZone: ?,
RStickX_Negative: {
RStickX_Positive: {
AnalogActions: [
throttle: {
linearity: ?,
rotate_left: {
rotate_right: {
General: [
? ? "vr_reset"
Menu: [
// = click (just activate for one tick), UPARROW, DOWNARROW instead of Keycodes for readability
Keyboard1 UPARROW "focus_previous",
Keyboard1 DOWNARROW "focus_next",
OnTrack: [
// ~ = analog input
Gamepad1 RT "~throttle",
// + = key down (keep active as long as key is down)
Gamepad1 Y "+clutch;shift_up",
// '\' for escaping the ' " '
Keyboard1 G "chat \"gg\"",
Replay: [
Gamepad1 RStickX_Negative "~rotate_left",
Gamepad1 RStickX_Positive "~rotate_right",
I guess most of it is pretty clear, at least with the comments. You have different bindings for being on track than in replay, ...
But why do I have deadZone bound to the key but linearity (some other settings should be there as well) bound to the action?
Well, you most likely have a dead zone because of your controller not being perfectly centered, so such stuff should be bound to the key/stick/trigger.
But if you had linearity there as well, you wouldn't have as much control. For example if you'd have front brake and rear brake on the same button, (yeah, there is a setting for combined breaks, but still you could do this.) you don't want to brake the same amount on both of them, so they need their own setting, not the keys one.

Probably would be overkill to have linearity and such for every action AND every key separated. (if I bind throttle to "W" I want it to have a linearity of 100%, on "E" I want a linearity of 80%)

I was talking about csgo having commands for binds, well... In csgo there is actually everything a command which can be used in console. ("+forward" for moving forward, "disconnect" to go back to main menu, "connect" to connect to a server, ...) So you can bind EVERYTHING if you wish, even connecting to a specific server. I think thats pretty cool, perfect if those commands could be bound to UI, (but a lot of work) but thats gonna be another suggestion I'll once post.

Oh, maybe you've seen "focus_next" and "focus_previous" in my syntax example. My thought on this is having a boolean of "focusable" on every UI Element and with "focus_next" you jump to the next UI element (mouse over/hover) which has "focusable = true" and is visible. with a bind of "element_click" you could fulfill the possibility of Controller support in the UI.

Alright, that's it for now, thanks for reading!

(Hope I made it clear what I mean, there might be some misunderstanding, english isn't my native language. Feel free to ask.)
Wasn't sure if I should report this, because it seems strange to me, that it's behaving like that. But since I don't know anything about the code, it may really be a bug.

When riding some time on testing (I haven't tried multiplayer yet) and then going to replay, there is a bit removed from start on.
I know, thats how it should be to save resources, but on electric bikes that cutoff happens earlier. Sometimes you can't even replay a whole lap.

I didn't believe it would be just the electric bikes, I guess replay shouldn't differ upon engine type. After many tests, however, the result was that the bug just occured on the Alta bikes only (MX1 OEM and MX2 OEM). I also tried two tracks, MXB Club and SX20 San Diego. again: only the electric bikes.
When going back to the pit the start time - unlike when just starting a new track, where it first keeps on 0:00 as start for a while - increases directly.

Tried verifying my game files, just replaced 1 file (my UI, which I've changed. sad. lol)
Since this bug (if it really is one) is probably hard coded and not a setting for the bike mod, I chose to report it here.

here's a video, so you can see what I mean:

To prove that I did nothing different on the Alta bikes, here's the uncut version:

there are pinned comments with timestamps.

Probably I've spent too much time on this. lol
Paints / Forty7 Racing - '17 KX250F/KX450F
January 11, 2020, 11:50:26 PM
So I've created a paint for the Forty7 Racing team, which isn't really a team yet.
But here's the skin, it's my first attempt of making skins, so it's not perfect, but I'm still happy with it. It's for the 2017 Kawasaki KX250F and KX450F

It includes a white plate, a black plate and a red plate version.

You can download the bike skin here:

just drag the "bikes" folder of the .zip into "/Documents/PiBoSo/MX Bikes/mods" to install