#waterfall-help
1 messages · Page 16 of 1
Uh help please, I just setup waterfall but when my players connected again they had no items o.0
fixed it, had to set ip-forward in bungeecord and bungeecord in all servers
testing stuff in production? me? never o.0
me irl
@reef fulcrum Does Bungeeguard work on sponge servers? Only mentions paper in the github, I use paper and sponge servers, So wondering If I could use that
Shamefully not, would be one of those nice to haves if somebody ported it over though
Does SpongePls not fully protect? How is BungeeGuard better, just curious
Different things, SpongePls just does some stuff to allow bungeecord connections to forward properly on forge servers, not needed with waterfall
BungeeGuard actually uses a token to ensure that the proxy connecting to your server is actually yours
That doesn't look like it's one of our messages
Sounds like a plugin on the server itself or something is kicking the client as they're connecting
That is downstream
I don't know much about waterfall etc, however everything seems to be working fine. That being said, is there anything I should be aware of in terms of protecting the server from hackers? So they don't get OP etc?
wat da firewal
it cost mony
just
get ur friends and spam proxyes all ower
lol
UFW is free
Or get a host that does all that for you...
hmm my fav at time server gets dosed rn
Is there a way to prevent fallbacks to different servers? i.e. if the primary server is down (the only listed one in priorities) I don't want players to be pushed into another world, I just don't want them to be able to connect at all
@gentle topaz Yes, use UFW and only allow incoming traffic on ssh and your waterfall server port.
@vernal jay This is probably a stupid question, so don’t judge me 😅
How exactly do I do that/set that up? I’ve never setup anything like bungeecord etc before, so this is all new to me.
@gentle topaz what's your host? Is it shared or do you have root access?
holy crap what terrible deals
but okay
@gentle topaz do you have root access?
yeah
@gentle topaz what services do you run on it?
To use ufw properly you'll need to setup rules for each service you access
if every server is running on the same box, just set the server-ip to localhost
I got it sorted! thanks 
Is there a way to prevent fallback? One of my servers is restricted as it's a WIP, but when the main server fails, it automatically fails over to the private server
Don't add it as a fallback
Then it shouldn't be connecting you to it unless that was your last server and you don't have force_default_server enabled
electroniccat: It wasn't the last server of anyone that was sent there, though I don't have force_default_server enabled
what's up with this?
server log has nothing, client log has nothing
waterfall has nothing

if client log has nothing then it must originate from... proxy or server
Perhaps from a third-party.. Do you have any plugins running on your proxy server?
i don't think there's any packet 120, so im guessing its from the proxy
I have a problem;
Poeple can still connect to a server when its restricted, I use a plugin that handles server movement on the servers itself because I set some ailiases in the commands.yml for shorter commands to move servers (this one: https://dev.bukkit.org/projects/microjump ) it doesnt matter what permissions i have it just moves you to the server.
restricted only affects BungeeCord commands like /glist and /server. it doesn't stop a plugin from connecting to the server if it wants to.
is there then a way to make like short commands on bungeecord itself so i dont have to use the specified plugin?
I have a couple of ailiases for /server lobby like /hub /lobby
same for my other servers
like that my normal servers have a commands.yml but then for bungeecord
or do i need to post that on github?
(DiscordBot) https://github.com/mikroskeem?tab=overview&from=2018-12-01&to=2018-12-31 -- mikroskeem (Mark Vainomaa) · GitHub: "Dec 1, 2018 ... Mark Vainomaa mikroskeem. Block or report ... Tallinn; https://mikroskeem.eu/ .... Perl Dec 28; mikroskeem/ServernameCommands Java..."
much useful
saw this one aswell https://www.spigotmc.org/resources/commandcontrol.76/
did not yet try it tho
also more info on my packet id 120 issue: it usually happens when someone tries to use commands
perhaps something related to tab completion
maybe some plugin is messing with tab responses?
yeah but now which one :D
The fact that bungee isn't flipping its lid kinda indicates that the packets seem legit
so o.O
inb4 my packet construction patch causes this, but that'd not make any sense
packet ID suggests that bungee can't even be the issue there unless you've got something popping directly into the stream
i'm trying to attach custom log4j2 config to a client for last 30 minutes, so i could track that down
hm lemme think what could mess with command completions...
authme messes with them on login, disables completions until you're logged in
but that shouldn't blow up the client
hmm
this happens on 1.13.2 as well
funny is that this started happening only after i put my waterfall fork in front 
so maybe broken rewrite?
but then again this happened even when i disabled entity rewrites
try re-enabling it
I do know that there is a known issue that I tried digging into but didn't manage to figure it out
(yet™)
i did
groovy?
ya
i should consider switching my beanshell out for that
.g mikroskeem BukkitGroovy
(DiscordBot) https://github.com/mikroskeem/BukkitGroovy -- GitHub - mikroskeem/BukkitGroovy: Execute Groovyscript from...: "Execute Groovyscript from command. Contribute to mikroskeem/BukkitGroovy development by creating an account on GitHub."
icic
yea i used to do the same with beanshell pretty much
has the advantage of being java
which is better than groovy
:^)
miniaturepets 🙄
okay things got waaaay more weird
it doesn't happen only with commands
it happens when flying around the map with an elytra as well
false alarm nvm
Not really, I'd kinda wonder what's going through before that though
That's what I'm thinking, wondering if something shows up
i disabled bunch of plugins what could potentially cause this
it still shows up
anyway... how do i cancel packet sending
i'm throwing in this hacky patch into prod for now
okay i went through... disabling all plugins on server side
disabling luckperms made that issue disappear
that does not make any fuckin sense....
nah, disabled that and still occurs
eh, i'll leave this here
maybe some day i'll figure out... #todo
are those boxes supposed to line up
probably
but pterodactyl's console sucks so
close enough
also my epic patch if someone wonders
🤔 thats pretty strange
> [18:36:16 INFO]: [Dr4nk] disconnected with: Looks like your connection is out of sync!
hm, anyone has a packet id extractor or something around?
i'm thinking of generating a json file of protocol ids allowed for specific minecraft versions
Hey mikroseem I think alodi has the same issue as you maybe
they got disconnected on a command completion
On command completion I get disconnected and waterfall throws this -
[13:39:39 WARN]: [/91.125.212.2:57695|Alodi] <-> DownstreamBridge <-> [hub] - bad packet ID, are mods in use!? Empty minecraft packet!
[13:39:39 INFO]: [Alodi] disconnected with: The server you were previously on went down, you have been connected to a fallback server
And a gfy of it happening - https://gfycat.com/greedycautiousduck
worldedit may be a symptom but afaik we are clean with our completion usage (i.e. use the api normally)
but this might help track it down?
Is there meant to be completion for the block type when doing //set? If there is, I don't get that, might be related
technically no
worldedit doesn't provide completions for patterns yet (it's actually in a separate branch atm)
Ah okay
but our command framework in general does look for completions whenever asked for
so it's technically parsing the command, seeing that it's valid, and then providing empty completions
@Alodi what server version are you testing that on?
because I have the same issue on 1.13.2 and have a weird bug where I can't /setblock the portal with the facing state either?
ah I see what's going on
it's axis, not facing
@wizjany your issue is caused by unknown block states (it's axis, not facing for the nether_portal block)
if you use axis in the worldedit command it will work ;)
phoenix616 - if I attempt with [x=x] that also crashes it
yes, because there is no state called "x"
I don't claim that
phoenix616: @wizjany your issue is caused by unknown block states (it's axis, not facing for the nether_portal block)
this is about the command completion/checking
if the completion was the issue, piston would spit out an error
typing "//set nether_portal[axis=x]" works without issues, typing "//set nether_portal[anything=x]" disconnects
as it happens, the proxy is disconnected him for a bad packet
yes, because axis=x completes correctly
it's disconnecting me for "empty packet" too
anything=x turns up blank
"io.netty.handler.codec.CorruptedFrameException: Empty Packet!"
so the issue is that waterfall isn't allowing empty completions
yeah, let me check if I run the latest first xD
it doesn't say anything about empty lists being "invalid"
especially not "invalid packet" levels of invalid
also it works fine without waterfall afaik
yeah, running latest watefall
so it's the proxy that doesn't like whatever is being returned
works properly in vanilla though but I guess their tab completion uses some different code with the syntax checking and what not
ah, there is a config option "allow_empty_packets" in Waterfall
no, it's disabling the empty check that I get thrown when I disconnect
meh, there is no command to reload the watefall config :S
+ /**
+ * This setting provides the ability to allow servers/clients
+ * to send empty packets without kicking the player with an error.
+ *
+ * This option is not encouraged or supported in any capacity, and is
+ * provided as a last ditch effort for server owners to allow players
+ * to connect in such a broken state as allowed by vanilla.
+ */

so, why is empty completions (valid api usage?!) causing a broken state
if that's even what it is
because Minecraft is Minecraft? xD
wait no, the config gets reloaded on the normal greload. It's just that the WaterfallConfiguration extends the normal Bungee one which I didn't expect
idk i'm throwing in general purpose packet id verifier lol
maybe indeed empty completions are causing errors 
but not sure
wiz i have kinda different issue, @vernal jay simply gets kicked by an empty packet where my players get kicked by a broken packet
oic
78 9c - that's zlib compressed.
i see
78 9c 03 00 00 00 00 01
empty 
import zlib
data = [
0x78,
0x9c,
0x03,
0x00,
0x00,
0x00,
0x00,
0x01,
]
print([hex(d) for d in zlib.decompress(bytearray(data))])
maybe helpful for someone some day
@tidal musk Well, I think that'll explain quite a bit...
Compression might be in the wrong place in the pipeline
yeah that rang a bell
i'm investigating right now
server has compression turned off
What is the client?
Hmm. Is compression enabled on the proxy?
The client is happy to send zlib-compressed streams once it receives Set Compression
yeah but that comes from the server
Very interesting!
i examined every single plugin what is messing with packets
I think your best tool is Wireshark
yeah
@unreal stag how on earth did you recognize that as zlib compressed
magic numbers are pretty recognizable once you know them
https://asecuritysite.com/forensics/magic knock yourself out
good starting point at least
My CS professor (who also loves giving paper tests over Huffman encoding) likes to say that there are many things that a computer only knows how to do because a human knows how to do it.
Obviously this maxim is getting a little stretched by artificial intelligence systems, but cutting that out...
@unreal stag Yeah we had a fair few huffman questions this semester too
Oh cool, thanks wizjany
meh i'll disassemble packets by hand
how much ram does waterfall need i have around 20 players max 50 but its gonna go up
512MB, but more is fine
afaik I run mine with 128MB xD
or no, apparently it's also 512 🤔
maybe I increased it a while ago xD
sorry im new but how do i stop the server because stop in the command line just says command not found
end for bungee, not stop
hmm
i had packet compression on server set to 0 accidentally
should've been -1
maybe that caused some weird behaviour?
e.g empty packet from server -> compressed -> treated as a raw packet
should i put mysql in the same server as the waterfall and sub-servers or a diffrent vm
Depends if you want it seperate or not, having it local has some gains
its all gonna be on the same system
just different vms
im guessing the gains are latency
pretty much, no idea if java lets you use a local socket to save yourself even further, but overall less external communication the better, on the same machine/DC that's not going to be amajor concern, but if you want those extra ms 🤷
5.7 is more supported by outdated bukkit stuff
ok
is this guide ok for setting it up
There is a newer version which I'd generally recommend, but I'm likely more in a position to throw plugins out
DOs guides are pretty good
nvm
It should
Okay/
btw some info on my packet issue:
setting packet compression on server to -1 (instead of 0 accidentally) turned my error into basic empty packet error
so i guess... everything is fine
Is waterfall multithreaded? Would it benefit me to go from 2 core @ 2GHz to 4 core @ 2Ghz?
It's multithreaded yes, but unless you're on a few hundred players I really doubt it's going to matter at that level
Everyone on our servers just had really bad pings for about 5 minutes, I noticed at that time that the CPU load average on the proxy server was ~3 and my research suggests load average should not exceed the # of cores you have
We had about 120 people on
Hm, maybe you do need more cores then
AMD moaaar cooores
Only thing I can think of... it has 1GB of ram allocated to waterfall and 5GB free on the system , and pings between the proxy and the dedicated servers was consistently 1-5ms, so only other thing I can think of is a network issue on the proxy's public interface side, but I don't think so.
Ok we are having the issue again and CPU load average is now 4... I'm convinced. I wonder what's causing all that load though, we didn't have this issue a week ago
84% of CPU load is from waterfall
Depends what's going on, you are running on linux? if theres plenty of memory, best next suggestion involves hooking up a profiler to see what's going on
How do I put nothing for forced_hosts ? Putting [] breaks waterfall
[] is for a list, {} is for a map
Hello, yesterday I restarted my server and since then my players can't connect to it with the error:
[12:35:20 INFO]: [xxx] <-> ServerConnector [pixelmon] has disconnected```
It was working fine before I restarted so not sure what's causing this. Also tried to make a fresh forge server and same error is happening.
I also see no logs?
This is a weird bug, but sometimes my waterfall messes up the server IPs - like I'll connect to hub, and it'll take me to creative, and doing /glist shows that I'm in hub. Restarting fixes the issue
@kind lily what error do your players get?
Hey what is always_handle_packets: true mean?
what happens if I put it to false?
not a setting I've ever heard of
Anyone know why waterfall could be getting servers mixed up? If I do /server hub it sends me to my creative server, and vice versa, though it's fixed when I restart waterfall
@tidal musk Nope, I'm running everything in docker containers
with dedicated ip-s?
e.g --ip flag
i misconfigured my servers back in the day, used container ips
@tidal musk Using docker dns
i see
I mean, it takes an IP address and should use that
e.g. container is called "hub" for hub-server, so waterfall has the address as "hub:25565"
Are you maybe getting hit with dns TTL?
are you restarting your game servers often?
your issue makes sense now
your container ips change
but waterfall does not re-query addresses
ahh
but waterfall does not re-query addresses
it's always fucking dns
server start -> redis -> waterfall (hey i'm up, my ip is ...)
hm
ya it's pretty nice
why would the ip change...
because there is no garauntee that the new container will get the olds IP
Yes, but you're not using that IP
hnm
docker dns will more than likely be using the IPs of the actual containers themselves
Well, not sure, probably because the panel forces the ip 0.0.0.0 in config.yml/server.properties
Just block the downstream server's port
Trying to load BungeeMsg onto waterfall and keeps giving this error: https://pastebin.com/tmchGBnR
looks like a broken config file
ah okay cause when I usually loaded the plugin it would say this:
[12:05:25 WARN]: Exception encountered when loading plugin: BungeeMSG java.lang.NoClassDefFoundError: net/md_5/bungee/log/ConciseFormatter at fadidev.bungeemsg.managers.LogManager.loadLog(LogManager.java:110) ~[?:?] at fadidev.bungeemsg.BungeeMSG.loadConfig(BungeeMSG.java:505) ~[?:?] at fadidev.bungeemsg.BungeeMSG.loadData(BungeeMSG.java:312) ~[?:?] at fadidev.bungeemsg.BungeeMSG.onEnable(BungeeMSG.java:106) ~[?:?] at net.md_5.bungee.api.plugin.PluginManager.enablePlugins(PluginManager.java:283) ~[Waterfall.jar:git:Waterfall-Bootstrap:1.14-SNAPSHOT:b878fc1:279] at net.md_5.bungee.BungeeCord.start(BungeeCord.java:281) ~[Waterfall.jar:git:Waterfall-Bootstrap:1.14-SNAPSHOT:b878fc1:279] at net.md_5.bungee.BungeeCordLauncher.main(BungeeCordLauncher.java:62) ~[Waterfall.jar:git:Waterfall-Bootstrap:1.14-SNAPSHOT:b878fc1:279] at net.md_5.bungee.Bootstrap.main(Bootstrap.java:15) ~[Waterfall.jar:git:Waterfall-Bootstrap:1.14-SNAPSHOT:b878fc1:279] Caused by: java.lang.ClassNotFoundException: net.md_5.bungee.log.ConciseFormatter at net.md_5.bungee.api.plugin.PluginClassloader.loadClass0(PluginClassloader.java:53) ~[Waterfall.jar:git:Waterfall-Bootstrap:1.14-SNAPSHOT:b878fc1:279] at net.md_5.bungee.api.plugin.PluginClassloader.loadClass(PluginClassloader.java:27) ~[Waterfall.jar:git:Waterfall-Bootstrap:1.14-SNAPSHOT:b878fc1:279] at java.lang.ClassLoader.loadClass(Unknown Source) ~[?:1.8.0_211] ... 8 more
I would need to add the log folder into waterfall and it'll fix it
Contained Bungeelogger.class, colouredwritter etc.
Will you guys ever add that or its not necessary for you guys?
Maybe we got rid of that class?
They're depending on internal implementation, not API
ah okay
Dont think so, I have to open Waterfall in winrar and drag this log folder I have into the net > md_5 > bungee directory
Is there a way to have waterfall automatically restart?
No, that's up to how you're managing the proxy instance
You mean start on reboot?
Wait it worked perfectly
but somehow the DNS records still get mixed up
So my server containers get brought up at 30 seconds past the hour, and waterfall gets brought up at 60 seconds past the hour
...yet somehow waterfall confuses the IPs of two of my servers, so hub and creative are switched
Docker DNS isn't at fault as if I go into a container and ping hub it gets the correct IP
Just because I gotta ask
You are 100000% that the servers are named correctly and stuff?
I have no idea how your setup is, but the proxy ain't going to get something other than info from your DNS server
servers:
hub:
motd: '&1Alchemy Hub'
address: hub:25565
restricted: true
survival:
motd: '&1Alchemy Survival'
address: survival:25565
restricted: true
creative:
motd: '&1Alchemy Creative'
address: creative:25565
restricted: true
very sure 😉
And if I restart the issue is fixed
Hello guys, I am running waterfall on a multicraft panel and every 30 or so seconds /glist is run by console. Is there any way to prevent this from being constantly executed?
I presume it is a config item.
@vernal jay if servers get "mixed up" by waterfall
then you should really consider monitoring the docker internal dns
for example, server ips can get "mixed up" when you are stopping both containers and starting them in different order
either try the solution i suggested before (plugins + redis)
or create separate docker network for your servers
like this:
docker network create --subnet=192.168.88.0/24 minecraft
if you are using docker cli to create server containers
then use --network minecraft --ip 192.168.88.x flags
@tidal musk hm could you point me to which plugins I could use to do that?
And yeah assigning static IPs was also something I considered
well, i made those plugins myself
Oh
Can waterfall protect me from this?
I mean, there ain't really much to protect from there
Could it automatically drop the IP or anything?
No, that would be plugin territory
hey, are there waterfall compatible portal plugins?
@Omega489 all bungee plugins will work
oh neat
I'm setting up waterfall for the first time today.
Its going well. I can connect all the servers are working.
I have an issue though.
When I log in through waterfall, the main server joined me as a new player
When I log in through waterfall, the main server joined me as a new player
like it doesn't remember that I'm an existing player with an inventory etc.
Is this usual behaviour?
You need to setup ip forwarding
I'd suggest reading the bungee installation instructions
no it forwards both the real IP and the online mode UUID from the proxy to your minecraft servers
Waterfall is a drop in replacement for bungee, right?
was for me @floral hull
yes, it might lag behind upstream changes by a couple of commits/hours but otherwise it has everything bungee has + more
Ahh perfect, thank you. I'm going to give it a try
Project Waterfall build #284: SUCCESS in 3 min 17 sec: https://papermc.io/ci/job/Waterfall/284/
Project Travertine build #101: SUCCESS in 1 min 25 sec: https://papermc.io/ci/job/Travertine/101/
Got a few dumb questions, What MC versions does waterfall support? If I was to use the latest what versions can connect through it? I'm assuming it supports 1.8+
Does Travertine only support 1.7.10 or does it support versions 1.7.10 +
waterfall supports 1.8 -> 1.14.2, travertine supports 1.7 -> 1.14.2
Do the builds make a huge difference? I'm assuming for 1.14 support you need one of the latest builds, but otherwise i'd assume just keep as up to date as possible?
yes, id always keep your software up to date
Will do chief, thanks for the info
Can 1.14+ use EssentialsProtect?
Would I be able to set up waterfall to have a queue for my server relatively easily? I have just deployed Pterodactyl to my new dedicated server
yes, you can use waterfall for that
oi boys
where do i find the description of waterfall.yml?
There pretty much isn't one
Any documentation was basically on the aquifier site that was kinda neglected anyways, started some reworks but it was just mostly tryna restructure stuff at that point
:-/
https://pastebin.com/raw/YSKwxeah
I tried to compile the jar but it kept saying that
how do i fix it?
looks like the patches didn't apply, check your antivirus software/try it somewhere that's not in the desktop, make sure that you checked the repo out using git
Yeah, turn off A.V and put it another location instead of desktop and double make sure i am using repo
fatal: could not open '/g/Tmp/zip
folder
folder/Travertine/Waterfall-Proxy-Patches/*.patch' for reading: No such file or
Something did not apply cleanly to Travertine-Proxy.
Please review above details and finish the apply then
save the changes with rebuildPatches.sh
weird
The waterfall patches are there
try a folder without spaces?
spaces in folder names are generally the worse thing you can do to scripts, they're generally not written expecting it
ohh okay thank you
Same goals as paper, basically, improve performance, add more API and features
Is there a list of the API and additional features?
atm no, but you could take a look at the patch list on the repo
link?
.g github Waterfall
(DiscordBot) https://github.com/PaperMC/Waterfall -- GitHub - PaperMC/Waterfall: BungeeCord fork that aims to...: "Waterfall Build Status. Waterfall is a fork of the well-known BungeeCord server teleportation suite. Waterfall focuses on three main areas:..."
Where do I find the patch list?
see the BungeeCord-Patches folder
Not really my avenue, that would be the ring leader, Z
z750?
yup
okay thanks
I get this when trying to move from a server with viabackwards to a server with forge (waterfall)
[ViaBackwards] Could not find new channel for XaeroMinimap
The client does not join the forge server
Ask support in viaversion discord, this has nothing todo on this server.
what does prevent_proxy_connections do, quick rundown or link to code?
from https://minecraft.gamepedia.com/Server.properties
`If the ISP/AS sent from the server is different from the one from Mojang's authentication server, the player is kicked
true - Enabled. Server prevents users from using vpns or proxies.
false - Disabled. The server doesn't prevent users from using vpns or proxies. `
probably the same thing. the man himself doesn't know what it does
https://i.imgur.com/h8xNFL3.png
mmm okay :L
@tidal musk ill help
Shut up
it just means the ip has to match
Ian has it right
match what?
does it effectively cause a vpn block sans plugin?
it can
just trying to figure out what the point of it is
its detailed in here
the client has to hit the "joined" endpoint and the server hits the "hasJoined", optionally supplying the client's ip
The ip of the client login session must match the ip on the server.
Prevents usage of online proxies, which do encryption exchange for you and only give you the key for connection
it can prevent some vpn's since mojang blocks some AS's from logging in
Was used for account leak sites to give online mode aacountals without actuqlly giving out userbame and password
interesting
the real question is what do you want it to do @tidal musk
I'm just asking because I was asked by the guy who does the plugins on my server
And he was like "should i enable this"
¯_(ツ)_/¯
nice
My players keep on getting stuck on loading when switching servers
It's really annoying them.
What works is to go to the server they are trying to join and teleport them.
are you using the disable entity metadata option?
What is that
waterfall.yml
Yea, re-enable that, there is an open issue on the tracker, need to go deeper than what I had the time to last time
It is set to true
Set it to false
Then I lose forge but I guess I can run it separately
Is it possible to change whether a server is restricted and not editing config.yml and doing /greload or i need a full restart?
Nope, I've been considering revising some of that stuff but it's very, mess...
aw
yep it's a mess
i tried to implement it into my fork but it got quite tricky
it's less tricky if you have plugins which don't touch servers/won't die because of mutability
Yea, I was looking over it and couldn't really see any good fixes beyond making stuff mutable or breaking plugins
Am I able to set up a queue server with Waterfall?
if you have plugins that provide a queue functionality, sure
uh, did anyone ever try disconnect a player from any server but still keeping him connected to the proxy by letting him watch thecredits screen? because it looks like the player is removed from the world completely and that would mean the client doesn't expect any world to be available or something? Oo
Hi guys, can i ask you one question, would giving players a domain name (like cookies.fun) and making that domain point to my waterfall ip increase their ping?
No
ty
Hey is there any tutorial on how can I setup a hub with waterfall and the mainserver with papermc ?
follow generic spigot+bungeecord setup tutorials, but just use waterfall + paper software ;)
wat
wym spoof names? lol
you mean logging into any account because the server is in offline mode lol?
well, if they are able to log in with any name they choose, then they're probably bypassing bungee.
which would indicate a set up problem by whoever set it up
^ More than likely somebody didn't secure the network properly
Bungee mode puts your server into a mode where anybody who knows what they're doing can login with whatever IP/UUID they want

You can configure the bind address in the config file
lmao barty
nice job
shit happens
i'd use external web server anyway
meh, just reverse proxy the shit out of it
i have following setup on one of my boxes:
nginx -> nginx -> nginx -> haproxy
nginx is perfect for this imo
tbh could replace my setup with direct nginx -> haproxy as i linked machines together using a vpn...
well nginx needs to serve the files
however reverse proxying nginx behind nginx won't kill you
Yea, something needs to serve the actual files, you can use dynmaps internal server or something external
using an external web server handles requests much better than their built-in java server
nginx is lighter solution tbh, also works fine when server is offline
the map i mean
i think?
either way external web server can handle more load fine generally, taking less resources at worst case
at best, serving files faster & still taking less resources :D
Soo ive an issue since i updater waterfall 4 days ago
A lot of people get kicked just reason "Disconnected" but the console output is example:
[<user>] disconnected with: ReadTimeoutException : null
Anyone know why and how to fix this. It's getting annoying
Whatever threw that message closed the connection because it wasn't sent a packet in so long
Are players actually complaining about it or?
if they are, you'd need to look into what connection is being closed, and then basically work out why it's happening
Is it in logging on? Is it any better if you try to teleport yourself to spawn or something?
what do you mean
no
it happens mainly when you stand afk
or like for 10 seconds afk
then it also happens
not always
but 8/10 times happens
The timeouts 30 seconds, so I honestly have no idea
Maybe try without plugins?
Been connected on 284 for the past few hours AFKing pretty frequently without any issues
it happens pretty recent
i will updae waterfall rn
and maybe update paperspigot on all servers
since i did not do that for long time
could that be an issue?
nvm they are latest
yes
the server runs stable
Its a pretty good host running on a 20 Core dedicated and 64 memory (using only 10%) of the stats, checked all timings they also seem to be stable, tps is always 20TPS.
@reef fulcrum
I honestly have no idea
Is there a known waterfall plugin to 'cool' people down from using 'autoreconnect' on their cheat client? This guy just keeps leaving rejoining, and I wanna find a way to put a cooldown on reconnecting. I know some anticheats have this feature, but I don't want to install an anticheat for this 1 feature.
Any ideas?
not necessary, it's a config setting
Ah okay. Will check cfgs now
greload?
It will break the list, and looking at it I couldn't really see a good fix beyond making the server info classes mutable or risking a plugin break
Only common instance I knew where the server count wouldn't match the player count of servers
What does this mean https://i.imgur.com/LUE5JWa.png ?
Hey all does anyone know if there is any method in Kashike's text api that can convert from the old &c serialization used to generate Color codes in chat ie ChatColor.RED would serialize to §c ...I have a file that I used to generate some formatting typically I would have done something like ChatColor.getbyChar(char) to retrieve a ChatColor enum.... or should I just create a simple enum to map them
Narimm: first, update to text libraries 3.0.1 and adapter 1.0.0, then LegacyComponentSerializer class is what you wany to look at
Is it normal bungee behavior that if a user is connecting to a offline server it just cancels the connection?
iirc it just moved the player to another backend that was available
i have a player stuck connecting to a offline server oof
anyone knows if exist a command like "timings" for paper but in waterfall?
I have huge cpu usage and i don't know why
No, timings doesn't make sense given that there is no "tick"
afaik, spark works, but better off with a proper profiler attached to it
so i can't know what's the cause of the high cpu usage
Timings doesn't record CPU usage
There are tools specifically designed for debugging these kinds of issues, without domain specifics
yourkit, jvisualvm, jprofiler
uhm thanks
Depends on when the server went offline afaik
It's supposed to basically go down the list of servers until they can connect
I believe i have force default server disabled... thats probably why
still dumb concept imo
because the player cant join any other server, when he joins the proxy rejects the commection instantly
No
They try connect to a server thats offline (because we're doing maintenace).
And the proxy should move them to another server that is not offline
Connect to a server that is offline how
Last time they played they disconnected in X server which is offline
ah, so, last server
don't you love when your server crashes because of a command block?
How did you place the command block?
I've not looked at it properly yet, but that looks fishy
Does it work if you place a command block normally?
let me check
i don't really expect that to change much but it might idk
when the command block runs that is the problem
yep still does it
Odd, just placed one in the world and it's working fine
no the command is like /blockdata or something let me check
with unconditional
seems to be specific to the command
let me get the command
blockdata ~ ~ ~ (auto:0b)
hm it seems to be tied to the commands ran
Cause of unexpected exception was
java.lang.NullPointerException: null
at net.minecraft.server.v1_14_R1.TileEntityCommand$1.getWrapper(TileEntityCommand.java:39) ~[patched_1.14.2.jar:git-Paper-65]
at net.minecraft.server.v1_14_R1.CommandBlockListenerAbstract.a(CommandBlockListenerAbstract.java:110) ~[patched_1.14.2.jar:git-Paper-65]
at net.minecraft.server.v1_14_R1.BlockCommand.a(BlockCommand.java:98) ~[patched_1.14.2.jar:git-Paper-65]
at net.minecraft.server.v1_14_R1.BlockCommand.tick(BlockCommand.java:84) ~[patched_1.14.2.jar:git-Paper-65]
at net.minecraft.server.v1_14_R1.IBlockData.a(IBlockData.java:201) ~[patched_1.14.2.jar:git-Paper-65]
at net.minecraft.server.v1_14_R1.WorldServer.b(WorldServer.java:553) ~[patched_1.14.2.jar:git-Paper-65]
at net.minecraft.server.v1_14_R1.TickListServer.a(TickListServer.java:90) ~[patched_1.14.2.jar:git-Paper-65]
at net.minecraft.server.v1_14_R1.WorldServer.doTick(WorldServer.java:268) ~[patched_1.14.2.jar:git-Paper-65]
at net.minecraft.server.v1_14_R1.MinecraftServer.b(MinecraftServer.java:1177) ~[patched_1.14.2.jar:git-Paper-65]
at net.minecraft.server.v1_14_R1.DedicatedServer.b(DedicatedServer.java:418) ~[patched_1.14.2.jar:git-Paper-65]
at net.minecraft.server.v1_14_R1.MinecraftServer.a(MinecraftServer.java:1060) ~[patched_1.14.2.jar:git-Paper-65]
at net.minecraft.server.v1_14_R1.MinecraftServer.run(MinecraftServer.java:904) ~[patched_1.14.2.jar:git-Paper-65]
at java.lang.Thread.run(Unknown Source) [?:1.8.0_201] that is in the console
and electroniccat are you always online?
I've always got a machine turned on somewhere
lol
I host plex off my desktop, so I tend to keep it running so I can use it, and startup takes too long too, soooo
Does disabling your plugins help with it?
Otherwise I'm probably going to need what you're putting into the world exactly as I cannot replicate the issue here
i don't have any plugins just bstats there
just commands
i have the structure file thing that might help
Yea, I'll probably need it at this point, pretty much no issues here
where should i put it
You could probably upload it to discord
Yea, I pasted it in and it blew up
ok
hmm
werid
ok i am just going to use a newer verison of the thing i have
so i'm just going to close this
wait what verison?
tested on latest
Yea, your CustonName is invalid in there from the looks of it, this is from the file I created:
That's from yours
Fork of bungeecord
Is anyone else running into issues when trying to build travertine in intellij with the current script?
[19:08:07] [Server thread/ERROR] [FML]: FMLIndexedMessageCodec exception caught
java.lang.NullPointerException: null
[19:08:07] [Server thread/ERROR] [FML]: SimpleChannelHandlerWrapper exception
java.lang.NullPointerException: null
[19:08:07] [Server thread/ERROR] [FML]: SimpleChannelHandlerWrapper exception
java.lang.NullPointerException: null
[19:08:07] [Server thread/WARN] [io.netty.channel.embedded.EmbeddedChannel]: More than one exception was raised. Will report only the first one and log others.
java.lang.NullPointerException: null
[19:08:07] [Server thread/ERROR] [FML]: FMLIndexedMessageCodec exception caught
java.lang.NullPointerException: null
[19:08:07] [Server thread/ERROR] [FML]: SimpleChannelHandlerWrapper exception
java.lang.NullPointerException: null
[19:08:07] [Server thread/ERROR] [FML]: SimpleChannelHandlerWrapper exception
java.lang.NullPointerException: null
[19:08:07] [Server thread/WARN] [io.netty.channel.embedded.EmbeddedChannel]: More than one exception was raised. Will report only the first one and log others.
java.lang.NullPointerException: null
>
Can anyone help me with this?
A forge client is trying to join a forge server from a paper server with protocolsupport
so, no new versions of waterfall?
for what?
Hi, I've looked through 21 pages of search in Discord here, and spent much time on Google. I am trying to figure out how to get waterfall or bungee to stop suggesting commands they don't have permission to use. for example if they hit tab they all of a sudden see ban or lpb and even the serverListPlus commands as a suggestion. I don't want to completely disable tab complete, but I should somehow be able to filter it. I've got things working on the spigot side where it only suggests commands they have perms to, but for some reason waterfall and bungee don't honor that.
@visual steeple waterfall supports 1.8-1.14.2
and travertine is a version of waterfall which supports 1.7
@CreepingDespair I don't think it supports that out of the box. either use a plugin to to remove them (not sure if one exists, mine unfortunately isn't compatible with Bungee yet :S) or open an issue on waterfall/bungee for that functionality to be added (or add it yourself)
are there any solutions associated with server captcha \ check players (antibot)?
Can i use 1.14 on spigot, 1.8 spigot and latest waterfall?
Yes, Waterfaull supports 1.8-1.14.2
Thx
are there any solutions associated with server captcha \ check players (antibot)?
Like BotFilter by Leymoo
Can anyone suggest a persistent inventories plugin that doesn't require mySQL? I don't have access for installing mysql on my server machine
what does the plugin do
Allow a player to take their inventory between connected servers
There really ain't a way to do that without having some form of shared storage place
Any reason you can't install mysql? It's pretty much an essential in the hosting world
I'm not an admin on the machine that I run. I need to bug the admin more to install it then
yeah you pretty much need some kind of storage system that can be shaded across potentially remote servers
and mysql is the most common
and widely available, worst case you could even just rent a cheap VPS and put one on there
huh that's an idea
I'm writing a bungee plugin and I want to error the startup of the bungee when a config could not be found. What is the best way to cancel the bungee startup?
System.exit, I'd guess
does other plugins get still loaded after getProxy().stop()?
No, the server is shut down
How can I make the plugin load before any other?
There is no way to garauntee that
Noob question but... how much does the specs of a proxy server effect the performance of a server which game play occurs on?
Does Waterfall also support the "update" folder like Bukkit?
@gentle topaz I mean, you don't wanna run it on a raspberry pi but it doesn't require high end specs. It's best to keep the proxy on the same system or at least the same network. It needs barely any RAM.
My dreams of running it on a raspberry pi has been shattered :,(
and thank you! @thorn magnet
Good afternoon everyone.
I'm currently trying to set up a waterfall setup (just locally for now to make sure it works before it goes live). I seem to have missed something within the config as I get the error
disconnected with: Could not connect to a default or fallback server, please try again
Setup is (all on the same host at the moment which will change in the live environment):
- waterfall server (followed some config suggestions from the bungeecord page) with queryport 25565 and host: 0.0.0.0:25565
- spawn running on 25566 (and spigot.yml has bungeecord: true)
- test running on 25567 (with the same)
Listed the spawn and test on the config file under servers (tried both, with 0.0.0.0:PORT and 127.0.0.1:PORT settings as suggested on some websites).
Happy to poste configs into a pastebin if that helps.
Must be something super basic I'm missing 😅
Me has done a dumb - sorry guy's - found the error in the end - small fixes in the server properties.
Take a look at a plugin that does is already, I know phoenix has one
Beyond that it's a case of reflecting into the protocol registry and adding packets in there manually
Do You know name of this plugin?
it was his resource pack one iirc
is there 1.14 waterfall/bungee?
yes..
guys i have a serious problem with waterfall
When someone tries to enter my server it says "connection lost: Disconnected", when instead the server is added to the list it says impossible to connect to the server, unless you do 3 or 4 times refresh or restart the launcher.
please help
are there any solutions associated with server captcha \ check players (antibot)?
botfilter is a bungeecord build, but i need waterfall
Egg has a plugin on the website, but like, overall "don't disable the authentication mechanism that mojang provides and then expect support for the fact that you removed it"
z?
what?
@lusty hatch
are there any solutions associated with server captcha \ check players (antibot)?
thanks
please someone can help me?
There ain't much we can help with there
There is a client bug around connecting to servers that I've managed to trip that causes similar effects
Thank you
@reef fulcrum hi do u know a way to get a users rank using waterfall
im now using dis String finalMessage = staffChatFormat.replace("%Name%", sender.getName()).replace("%Server%", sender.getServer().getInfo().getName()).replace("%Message%", message);
Bungee doesn't have a permission API
If you mean the stuff in config.yml, you'd need to look at the config yourself
if you're using something like LuckPerms, you'd need to use their API
Or, send that info from the server itself to waterfall
ah oki thanks for the tip
im indeed using LuckPerms
so i have to use their API then
;p
re rank: as bungee config.yml does not really care about ordering of groups, then you need to figure out what to do when player has multiple groups assigned
e.g
groups:
mikroskeem:
- default
- admin
are there any solutions associated with server captcha \ check players (antibot)?
so
i was thinking
i could set up a waterfall on a hosted server that redirects to my regular server
does it protect my regular server from getting attacked?
https://pastebin.com/qAYnGQAC
Waterfall disconnecting randomly, worked fine before I re-installed our plugins. not sure which is causing the issue
read timed out means that something didn't send a packet in so long that it just closed the connection
Any way i can figure out wwhy thats happening?
I have a Minecraft server with waterfall and papers. A friend have the same. So it's possible to make another waterfall with a lobby and in this lobby you can choose which server you want. One should also be able to see in the tablist who is online on both servers and the chats should be connected. Is that possible?
Don't nest proxy instances
do you have an idea how I could connect it? For me and for him, it's just important that you always stay where you have logged off
The best option is basically to host a single proxy and connect them together
Yes we know that would be the best options, but we didn't know how we can do it. Because the prblem is, you stay at my server in the farmwelt, then you go to lobby and choose his server and then back, how would minecraft know that you are in the farmwelt and not at the citybuild. know what i mean? important was that when you you choose the server between a lobbysystem you should always tp there where you was last
hmm I have to think about how that is feasible, thank you for your help
You need a single waterfall instances for you all to share, and then you add both yours and his servers to that single proxy
People then connect to that and jump where they want
https://pastebin.com/qAYnGQAC
Waterfall disconnecting randomly, worked fine before I re-installed our plugins. not sure which is causing the issue. Any way i can figure out why thats happening?
Does Waterfall not support 1.7.10 anymore?
Travertine does
Ah crap, thank you.
i got this error frequently with latest waterfall
https://pastebin.com/LKxqrC2S
Im unsure if this happens with other users, but when using the newest version of Travertine, users on one of my modded 1.7.10, the players get kicked immediately when they eat most foods and then can never join back. The other server software works fine (Hexacord 1.7.10-1.13).
is there anything i can look at to see how much better waterfall scales to bungeecord?
@unique linden Does waterfall support 1.7-1.14?
you didn't need to tag him to get an answer for that, @ocean kestrel
Sorry
Waterfall supports 1.8-1.14.2
Then how do some servers that are networks have 1.7-1.14 users join? Is that like custom made?
if you're looking for 1.7 support, then you should look into Travertine
which is pretty much Waterfall but with 1.7 support
So what your saying is
if you want Waterfall with 1.7 support, then use Travertine
the latest travertine has the lastest 1.14 support down to 1.7 support? And if so, how hard of a transfer from bungee to this?
no new config necessary?
pretty much
dead ass?
what?
that simple?
as i said, it's as simple as replacing the proxy jar
that's overly simple, okay wait what about the bungee plugins I have such as the /server and what now. And I also have like certain plugins that have bungee support. Will that be effected?
as both Travertine & Waterfall are simply modifications to BungeeCord, then everything should work out of box
more API features, better stability and speed mainly
greload is broken now?
I've just updated IP, just IP I didn't add or remove servers
and greload won't pick it up
this was working fine on bungeecord 😐
if you change server entry's ip and then reload the proxy, then it should be picked up fine
if you have some dumb plugins caching serverinfo objects then its their fault
Which version of waterfall is for 1.13.2?
@tidal musk Yeah i had a question that i fixed myself
does waterfall support 1.14.2?
Yes
cuz whenever I try to join it says "Could not connect to a default or fallback server, please try again later: io.netty.channel.AbstractChannel$AnnotatedConnectException"
i have all the ports set up properly i believe lol
Probably your config isn't setup right.
here's the config https://pastebin.com/2zHzNLRW
it doesn't say there's any issue with the yaml parser tho so it's just something not working right i guess
fixed it - it didn't like the localhost in the server addresses
So I mentioned a couple of days ago that since ive updated to Trav from Hexacord 1.7.10-1.13.2, at least one of my modded servers has a huge bug with food. Whenever someone eats something that has some type of effect (and sometimes vanilla food), it kicks the player and cant come back onto the server. Is there a way to fix this.
Depends on why it's kicking them ,btw; Some mods like to mess around with the packets which ends up breaking waterfall due to some bug fix we have for forge
It's one of those catch 22 situations where the platform the workaround exists for is also the most troublesome \o/
Alrighty, thank you.
Wrong channel, but paper offers many performance improvements and bug fixes over spigot for users, and more API for developers
@reef fulcrum thanks
Hey guys, is it possible to set more than one domain to point to the same waterfall proxy, but then make the waterfall proxy redirect to a particular server based on the domain they joined from?
it's possible
How would i go about it?
forced hosts in config.yml
I'll check it out thanks.
Found a post explaining in detail based on your feedback, thanks a lot guys!
https://www.spigotmc.org/threads/bungeecord-forcedhosts.25082/
@reef fulcrum hi, do you know why this occurs sometimes for users?!?
[19:06:04 ERROR]: [Fival|/your ip:63825] <-> ServerConnector [LS1] - encountered exception: net.md_5.bungee.util.QuietException: Unexpected packet received during server login process!
0d01
[19:12:18 WARN]: No client connected for pending server!
[19:12:18 ERROR]: [Fival|/:64013] <-> ServerConnector [LS1] - encountered exception: net.md_5.bungee.util.QuietException: Unexpected packet received during server login process!
0d01
[PaperMC/Travertine] Issue opened: #107 "always" & "never" duplicate string
Hey can someone help meh please?

Is anyone able to recommend a network wide player whitelist solution? Just a simple "all servers have the same whitelist" plugin/solution?
steveabraham
https://www.spigotmc.org/resources/bungee-whitelist.56117/
Waterfall is compatible with Bungee plugins
A proxy doesn't do much by itself so performance hit is not much, 512MB ram is enough
It's easy to set up (couple of config settings + firewall or bungeeguard setup) so setting it up when you want to add new servers will do just fine
rather than later
@barren snow Thanks! I think I had issues with that one, but will test it again.
if that's not working, then I'm using this
https://github.com/gb2233/BungeeWhitelist/releases
ofunny then go ahead, the proxy if properly set up won't impact your server
nice, thank you
@barren snow Ah nice, thank you. It says per world, but presumably that just an option and global is possible?
just don't use a servername when you toggle the wl or add/remove users
gotcha, brilliant, thanks. all the ones I found were abandoned or caused random errors, will give your one a shot.
Hi, maybe one last question, since I did not find a guide to install waterfall; I thinks is ok to use https://www.spigotmc.org/wiki/bungeecord-installation/ since it is a fork or do I have to mind anything special
The home of Spigot a high performance, no lag customized CraftBukkit Minecraft server API, and BungeeCord, the cloud server proxy.
Yes. Just use Waterfall's JAR instead of BungeeCord's.
Ty
Players connecting get hit with the "disconnected with: Kicked whilst connecting to Hub: Outdated server! I'm still on 1.13.2"
But when they rejoin, it allows them through
They are connecting with 1.14.2
hello
anyone there?
I am a Chinese, I want to add Chinese comments to waterfall.yml.
Where is the explanation for this document?
@lean zenith enable latebind on spigot server and try again
how to hide " InitialHandler - read timed out" message ?
Try quietcord idk
I tried but not working
Why you want to remove them
@silent granite should I just do that on the hubs they are connecting to or all servers?
So i just finished linking my survival server and Creative server with Waterfall. I guess by changing the " online-mode=false " it changed user ids. so now on my Survival server the players do not have their inventory. is there a fix for this?
set bungeecord to true on the backend server configs
make sure waterfall is running in online mode
it should pass that data through once that is done
set to thrue wherE?
spigot.yml
not that I recall
thank you. you helped me a ton.
guess i needed to do this too in the bungee config.yml " ip_forward: true"
nope
as far as server Priorities the first on the list is the first priority and if that servers not up it lets players connect to the second on the list?
yes
it checks version compat + up/down
I dont think it does anything for full servers
not 100% but I'd think it doesnt
ok So if the server is full it will not let people connect
even if there's a second server in the priorities
that is my understanding
ya i just tried it
but Im not the bungee/waterfall proxy guy
could most likely be done with a proxy plugin + server channels
what guy are you?
he's 
🌮 guy
@tidal musk (I'm not sure) if you are using paper, you should also enable bungee online mode in paper.yml
@silent granite I have hubs behind the proxy, so I would be.
@silent granite When I receive a bot attack, too many logs occur. I find this message unnecessary
because this message indicates that something is wrong?
There are plugins to filter it from the logger etc, I personally consider all form of support void when you have such plugins installed, however
we have tons of useless logs, however, living with that
actually we reworked a logger a bit, so it sorts logs in directories by date
i mean yep
right now they are
and by mistake we found this
because i forgot to remove debugging
ideally you could provide a complete log or more of your log
this is because of how checking if channel is closed done in ChannelWrapper
it tries to write to already closed channel, and fails
General gist is that you can filter them with the logger, never cared enough to do it and if you toyed with the logger too much you might have broken any plugin which tried to do that, but 🤷
@harsh jewel try BotSentry
antibots are useless, aren't they?
the main issue with this 'antiots' is that if they are filtering ips using iptables, or any other tools that reads rules step by step
you can make it so large, so it will lag as hell
Most of them (at least those I checked out) usually depends on login limiting, and checking if the client pinged the server before join (aka join from the MP serverlist) and just cancel prelogin for the rest if an attack is active
Some make caches from proxylist apis, some cache player ips that were legit
These things are usually queried from ram, so they are fast,and prelogin event is async
Obv a large enough attack could still kill your server
IMO, they are useful so bots doesn't irritate players
letting plugins use things like iptables feels icky to me, as beginners just run the server as root instead of properly configuring things (plus shared hosts don't allow you OS level access)
@kind karma useless?
You run a big server?
@silent granite I have AntiBotDeluxe
@silent granite yes, but we are using our launcher and some protocol based checks, so you cannot connect without it
(even all the work is removed from the proxy, and client resets scoreboards, boss bar and all that stuff on its own)
such as sending invalid packets that normal client will never process and fall on trying to decode it
plus launcher is heavily obfuscated, some classes are generated during runtime, so I saw no one bypassed it
all the calls are mostly done via java.lang.invoke, tons of sensitive checks of how launcher was started, even checking count of stack frames in stack trace
@harsh jewel try BotSentry
@kind karma so the players just can join through your launcher?
@kind karma ...I mean, there's Wireshark and stuff.
You could even just MITM the Minecraft protocol
It would not be too hard to bypass, perhaps more difficult, but still bypassable
yea, you're just raising barrier of entry
both for legitimate players and cheaters
always remember, the client has control over its own jdk
server will never have that
@unreal stag first thing you need is to reverse launcher's protocol, because authorization is not done through mojang
@strange brook and we have our own jdk
that launcher loads to start the game
it has it's own problems e.g it does not work on jre without jfx, that's why we are planning to migrate to Rust + Electron
Quick question, what does the allow_empty_packets option in the waterfall.yml do and are there any potential issues with changing it to true?
It's a bandaid
The client allows packets without any contents, bungeecord doesn't, which has this fun effect of making it seem like bungee is breaking when the issue is actually a bad server, that setting lets you workaround that by making waterfall ignore such packets instead of disconnecting people
Can you tell me why I received this error?
https://pastebin.com/ARXBKVGY
What does it mean?
Does anyone know what this error is due to? https://pastebin.com/3RvcBTT3
@Burak Ataman only possible if you have public backend paper server ports and don't properly setup your firewall to only allow the proxy
@tidal musk someone sent invalid packet
oke
evening all
i'm starting to pull my hair out with a bungeecord problem ( running waterfall and paper exclusively ) with regards to UUID's and whitelisting
for some reason some players are not resolved properly, tried multiple different things to see what the problem could be
hms, actually if the whitelist is turned off and the player logs in, and then i add the player it does seem to work, do have a double whitelist entry now
You do have bungee mode enabled in spigot.yml?
@kind karma and how can I fix that?