The best way to make a Minecraft server depends on your edition and how much setup you want to manage. Choose Minecraft Realms for the simplest private, always-online world; run the official Java server software for a flexible, low-cost server on a PC; use Bedrock Dedicated Server for supported Windows or Ubuntu hosts; or rent managed hosting when you need 24/7 availability without configuring your home network.
Java and Bedrock are separate by default, so identify the edition first. The instructions below start with the most flexible beginner route: a vanilla Java Edition server on Windows.
As an Amazon Associate I earn from qualifying purchases.
Choose your Minecraft server path
| What you want | Best choice | What to know |
|---|---|---|
| The easiest private server | Realms | Official cloud hosting, automatic availability and backups, but monthly fees and player limits. |
| A flexible server without a hosting bill | Self-hosted Java server | Free server software, but you manage the computer, firewall, router, backups and uptime. |
| Friends on consoles, phones or tablets | Bedrock Realms or Bedrock Dedicated Server | Bedrock players need a Bedrock server; platform multiplayer requirements still apply. |
| 24/7 play without home-network setup | Managed Minecraft host | Recurring cost in exchange for a control panel, support and hosted connectivity. |
| A custom large community or multiple services | VPS or dedicated server | Maximum control, but you manage Linux, security, updates, monitoring and backups. |
“Free” usually means free software, not zero cost: electricity, hardware, bandwidth, storage and your administration time still matter. A home server is online only while the host computer and internet connection are available.
What’s actually slowing this PC down?
Pick the symptom - the matching free tool is one click away.
Java vs. Bedrock: which edition do you have?
Java Edition is generally played on Windows, macOS and Linux PCs. Its official self-hosted server is a Java server JAR, and normal multiplayer is for Java clients.
#1 Best Overall
- POWERED BY RTX 5070 12GB + RYZEN 7 9700X - The GeForce RTX 5070 12GB GDDR7 graphics card pairs with an 8-core AMD Ryzen 7 9700X processor to drive smooth 1440p and 4K gameplay, giving this gaming PC the headroom for modern titles, streaming, and creative work.
- 32GB DDR5 6000MHz MEMORY & 1TB NVMe SSD - 32GB of high-speed DDR5 memory and a 1TB PCIe 4.0 NVMe solid state drive deliver quick load times, smooth multitasking, and generous storage, keeping this prebuilt gaming desktop responsive under heavy workloads.
- BUILT-IN 11.3-INCH Smart DISPLAY - An integrated smart screen shows real-time CPU and GPU temperatures, usage, and weather while you play, adding a distinctive and functional touch to your battlestation.
- 850W 80+ GOLD POWER SUPPLY, 360MM LIQUID COOLING & WiFi 7 - An 850W 80 Plus Gold certified power supply provides stable, efficient power with headroom for future upgrades, while a 360mm AIO liquid cooler, WiFi 7, and an ARGB mid-tower case keep the Ryzen 7 CPU cool and connected in a clean build.
- READY TO PLAY OUT OF THE BOX - Arrives fully assembled and tested with Windows 11 Home pre-installed, so your prebuilt gaming computer is ready to set up in minutes. Assembled in the USA, and backed by a one-year limited warranty and lifetime free technical support.
Bedrock Edition is used on Windows, consoles, phones, tablets and other Bedrock platforms. Mojang provides a separate Bedrock Dedicated Server for supported Windows and Ubuntu systems.
Minecraft for Windows includes both Java and Bedrock Edition, but players must launch the same edition as the server they are joining. Java and Bedrock cannot normally join one another. Compatibility proxies exist, but they are advanced configurations with their own version and feature limitations—not a beginner shortcut. See Mojang’s Java and Bedrock comparison.
The four ways to host
1. Host on your own computer
This is a good choice for a few friends, occasional play and readers who want maximum control without a monthly hosting payment. The drawbacks are that the machine must stay on, server load competes with the game and other applications, and outside players may require firewall and port-forwarding changes. Your public IP can also change.
Do these 3 things before closing this tab:
1Clear out junk files and repair common Windows errors2Fix the driver behind crashes, sound loss and screen glitches3Repair Windows errors before they cause bigger problems2. Use Minecraft Realms
Realms is Mojang’s official cloud-hosted option. It stays online while you are offline, supports invitations and backups, and offers three persistent world slots, although only one world is active at a time. It is excellent for small private groups but is not a replacement for a fully customizable community server.
3. Rent managed Minecraft hosting
A managed host avoids home port forwarding and generally provides a control panel, hosted connectivity, backups, support and 24/7 availability. Compare CPU allocation—not RAM alone—along with storage, location, backups, DDoS protection, mod/plugin support, file access, refund terms, renewal prices and player-slot restrictions.
4. Rent a VPS or dedicated machine
This suits experienced Linux administrators who need custom infrastructure or multiple services. You are responsible for the operating system, firewall, Java, updates, monitoring, backups and security. A cheap VPS is not automatically suitable: Minecraft performance is particularly sensitive to CPU performance and single-thread speed.
How to make a Java Edition server on Windows
Before you begin
- Minecraft: Java Edition for the players who will connect.
- A capable computer with administrator access.
- Enough RAM for both the server and the game or operating system.
- A stable internet connection with sufficient upload capacity.
- The Java runtime required by your chosen Minecraft server version.
- A plan for dated, separate world backups.
- Permission from the network owner before changing router settings.
Java requirements vary by Minecraft release and server software. Do not assume one Java version works for every 2026 server. Check the target release’s documentation and the official download information; a third-party compatibility table can be used as a reference, but is not a substitute for verifying the exact release.
Free tools Windows power users keep installed
One-click scans. No signup required.
1. Create a dedicated server folder
Create a folder such as:
C:MinecraftServer
Keep it separate from the normal .minecraft game-data directory. This makes logs, upgrades, backups and troubleshooting easier.
2. Download the official Java server
Download the server file from Mojang’s official Java server download page. Select the version your players intend to use. Do not automatically choose the newest file if your clients, mods, plugins or world depend on another release.
Rename the file to:
server.jar
Renaming is optional. If you keep the original filename, use that exact name in every launch command.
3. Confirm that Java works
Open Command Prompt in the server folder and run:
java -version
If Windows says that java is not recognized, install the compatible Java runtime and make sure its executable is on the system PATH. After installation, close and reopen Command Prompt. These checks can identify PATH and duplicate-installation problems:
where java
java -version
4. Run the server once
For a small vanilla server, this is a practical starting command:
java -Xms2G -Xmx4G -jar server.jar nogui
Mojang’s official example uses 4 GB for both initial and maximum heap:
java -Xmx4G -Xms4G -jar minecraft_server.<version>.jar nogui
-Xms sets initial heap memory and -Xmx sets the maximum. Do not allocate all system RAM to Minecraft: Windows, the client and other services need memory too. More RAM cannot fix a weak CPU, slow storage, excessive entities or inadequate upload bandwidth.
The nogui argument is optional. Leaving it out launches the graphical interface. The first run normally creates files including eula.txt, server.properties, a world folder and logs.
5. Accept the EULA only if you agree
The first launch may stop and tell you to accept the EULA. Read the agreement in eula.txt, then change:
eula=false
to:
eula=true
Only do this if you agree to the applicable Minecraft EULA. Mojang’s EULA permits installing the Java server and hosting online play, while its restrictions and related policies cover distribution, branding, access and commercialization.
Rank #2
- Powerful Processor: AMD Ryzen 5 5600GT 3.6GHz (4.6GHz Turbo) 6-Core 12-Thread processor brings faster response time to easily handle multi-threaded tasks
- Motherboard Specification: MSI A520M-A PRO motherboard provides reliable performance and expandability for your computing needs
- Integrated Graphics: AMD Radeon Vega Graphics (CPU Integration) enables you to play 1080P mainstream games at quality frame rates
- Memory and Storage: 16GB DDR4 3200MHz RAM paired with 1TB M.2 NVMe PCIe SSD for fast multitasking and quick data access
- Power Supply: 550W 80PLUS Bronze certified power supply ensures stable and energy-efficient operation
6. Start the server again
java -Xms2G -Xmx4G -jar server.jar nogui
For easier launches, create start.bat in the same folder:
@echo off
java -Xms2G -Xmx4G -jar server.jar nogui
pause
pause keeps the window open after a crash, allowing you to read the error instead of watching it disappear.
7. Configure server.properties
Stop the server with stop before editing configuration. A private survival server might begin with settings like these:
motd=My Minecraft Server
gamemode=survival
difficulty=normal
max-players=10
online-mode=true
white-list=true
pvp=true
view-distance=10
simulation-distance=8
server-port=25565
Use online-mode=true for normal authenticated play. Do not disable it as a casual troubleshooting step: changing authentication behavior can create impersonation and security risks. Keep white-list=true when the server is for invited friends.
Properties and their behavior can change between releases. Treat the file generated by your selected server version as authoritative rather than blindly pasting an old configuration.
Useful console commands include:
whitelist on
whitelist add PlayerName
whitelist remove PlayerName
op PlayerName
deop PlayerName
save-all
stop
Give operator status only to people you trust. Always use stop instead of closing the terminal or killing the process so the world can save cleanly.
Recommended Free Tools
8. Allow the server through Windows Firewall
When Windows Defender Firewall prompts you, allow Java or the server process on the required network profile. If creating a rule manually, restrict it to the server’s required port and the appropriate profile where practical.
Remember that the local firewall and the router solve different problems. The firewall permits traffic on the computer; router NAT and port forwarding direct incoming traffic to that computer. ISP restrictions, including CGNAT, can prevent inbound connections even when both settings look correct.
9. Forward the Java port
The conventional Java default is TCP port 25565, but the actual value is whatever server-port specifies. A typical router rule is:
External port: 25565
Internal port: 25565
Protocol: TCP
Destination: the host computer's local IPv4 address
Give the host a stable local address using a DHCP reservation or static configuration. Otherwise, a reboot may cause the router to forward to the wrong device. Never share the private address outside your home.
10. Connect to the server
- Same computer: enter
localhost. - Same home network: enter the host’s private IPv4 address, such as
192.168.1.25. - Outside your home: share the public IP privately, such as
203.0.113.25. Omit the port when using the default 25565. - Non-default port: use an address such as
203.0.113.25:25566.
Share the public address only with invited players. A whitelist is still important, but it does not eliminate the need for careful network and software security.
11. Whitelist the players
In the server console, run:
whitelist on
whitelist add PlayerName
The name must match the player’s authenticated account. Remove access with whitelist remove PlayerName. Do not give op privileges merely because someone needs to join.
Java server choices beyond vanilla
Vanilla
Use vanilla first if you want standard survival, maximum compatibility and a simple troubleshooting baseline. It is the official software path documented by Mojang.
Paper and other optimized software
Paper and similar projects can add plugin support, administration tools and performance-focused settings. They are not official Mojang server software. Plugins may conflict, settings can differ from vanilla, and optimizations can alter behavior. Move to this path when you have a specific plugin or management need, not merely because more software sounds faster.
Quick wins for a faster PC:
Scan for outdated or missing drivers - takes under a minuteDriver Scan →Clear out junk files and repair common Windows errorsFree Scan →Fix the driver behind crashes, sound loss and screen glitchesFind Drivers →Fabric, Forge, NeoForge and modded servers
Modded servers are appropriate for modpacks and new mechanics, but the client, server JAR, loader, mods, configurations and Java runtime may all need to match. Updates can break worlds or modpacks, and resource needs are often higher. Back up before every loader, modpack or major-version change.
How to make a Java server on macOS or Linux
The official Java server software is intended for Java Edition and can run on supported desktop or rented machines. After installing the Java runtime required by the target release, create a separate directory and run:
mkdir -p ~/minecraft-server
cd ~/minecraft-server
java -Xms2G -Xmx4G -jar server.jar nogui
Complete the same first-run EULA and configuration steps as on Windows. On Linux, use a firewall tool appropriate to your distribution, and consider tmux or screen so the server continues after you disconnect from SSH. For a persistent deployment, an experienced administrator can create a system service with restricted permissions, automatic restart policy, log handling and a tested backup job.
Rank #3
- CPU: AMD Ryzen7 5700X (up to 4.6GHz) 8-Core 16-Thread to easily handle multi-line tasks
- Main board: MSI B550M-A PRO motherboard provides reliable performance and stability
- GPU: Geforce RTX 5060 8GB GDDR7 Graphics Cards (Brand may vary) Support DLSS 4 multi frame generation, ray tracing, and Reflex 2 delay optimization
- RAM: 32GB DDR4 3200MHz (16GB*2) SSD: 1TB M.2 NVMe PCIe
- Power supply: 650W (80plus bronze) certified for energy efficiency and stable performance
How to make a Bedrock Dedicated Server
Mojang provides a separate Bedrock Dedicated Server for supported Windows and Ubuntu Linux systems. The current published requirements in the research are at least 4 GB RAM, broadband internet, Windows 10 version 10.0.15063 or later or Windows Server 2016 or later, and Ubuntu 22.04 LTS or later. The official download does not support macOS, and other Linux distributions are not officially supported.
The Tool Desk
Outbyte Driver Updater FREEScan for outdated or missing drivers - takes under a minuteDriver Scan →Outbyte PC Repair FREEClear out junk files and repair common Windows errorsFree Scan →Disk needs depend on server data and usage; the official information describes roughly 180 MB to 1 GB of available space in the relevant setup guidance. Allow additional room for worlds, logs and backups.
- Download the Windows or Ubuntu package from Mojang.
- Extract it into its own server folder.
- Read the included “How to use the dedicated server” documentation.
- Run the supplied executable or Linux startup command.
- Accept the EULA and Privacy Policy as directed by the included files.
- Review the generated configuration and set the world and player options.
- Allow the required port through the operating-system firewall.
- Forward the port on the router if outside players will connect.
- Add the server through the Bedrock multiplayer/server interface where that platform supports custom-server access.
The conventional Bedrock default is UDP port 19132, but confirm the generated configuration and current documentation before forwarding anything. Bedrock console access to custom servers can vary by platform and platform policy; do not promise identical menus or access on every console.
Bedrock add-ons and behavior/resource packs are not Java mods, and Java plugins such as Paper plugins do not run on Bedrock Dedicated Server. Console players may also need the relevant platform’s online multiplayer subscription.
How to use Minecraft Realms instead
Choose Realms when convenience matters more than server-file control. The official Realms page checked on August 16, 2026 listed these U.S. prices:
Windows Errors? Fix Them Before They Spread
Repair common Windows errors and clear accumulated junk for a smoother, more stable PC - no reinstall needed.Free scan · no reinstallOutdated Drivers Are Slowing You Down
One free scan finds every outdated or missing driver and matches the right update for your exact hardware.Free scan · exact hardware match| Plan | Price | Simultaneous players |
|---|---|---|
| Bedrock Realms | $3.99/month | Owner plus 2 |
| Bedrock Realms Plus | $7.99/month | Owner plus 10 |
| Java Realms | $7.99/month | Up to 10 |
Prices, taxes, trials and billing terms vary by country and can change. Realms are edition-specific: Java players join Java Realms and Bedrock players join Bedrock Realms. Invited friends do not need their own Realms subscription.
Realms include persistent hosting, invitations, backups and three world slots, with only one active world playable at a time. The official page says expired Realm worlds remain downloadable for 18 months after subscription expiry. Realms are a poor fit for large public communities, extensive plugins or mod-loader setups, full console/file access and detailed server-side tuning.
How to choose third-party hosting
Managed Minecraft hosting is often the practical middle ground between Realms and self-administration. Before buying, check:
- CPU model, dedicated or shared CPU allocation, and single-thread performance.
- RAM and whether it is guaranteed rather than burst or oversold.
- NVMe or equivalent storage and available disk space.
- Data-center location and expected latency for your players.
- Automated backups, retention, restore process and snapshot pricing.
- DDoS protection and firewall controls.
- Java, Bedrock, plugins, custom JARs and modpack support.
- File access, scheduled tasks and control-panel features.
- Support quality, refund period, renewal price and billing limits.
- Player-slot restrictions and whether “unlimited” claims have fair-use limits.
For example, BisectHosting advertises multiple locations, instant setup, DDoS protection, automated modpack installation, backups, a control panel and support. Its research snapshot listed monthly signals from $3.00 per GB, including 2 GB at $5.99/month and 4 GB at $11.99/month. These are provider claims and price snapshots, not independent performance guarantees; verify the current plan page before buying.
PebbleHost advertises budget plans from $1/GB, an example 6 GB Premium configuration at $13.50/month, custom JAR support, scheduled tasks, backups, FTP, a free subdomain, multiple locations and a 72-hour money-back policy. Compare its budget and premium CPU allocations rather than choosing by RAM alone, and confirm current terms at the provider’s official page.
Managed hosting is not automatically faster or safer than self-hosting. Its value is the workload transferred to the provider: availability, network setup, panel management, support, backups and sometimes DDoS protection.
Resource planning and performance
There is no reliable universal “RAM per player” formula. Performance depends on concurrent players, view and simulation distance, entity counts, farms, redstone, exploration, plugins, datapacks, mods, CPU performance, storage latency, upload speed, backups and map-rendering jobs.
A small vanilla server can start with a modest allocation if the host has additional memory for the operating system and game. Size modded servers around the specific modpack’s requirements. For a larger community, stage performance testing and monitor the server rather than promising a player count from RAM alone.
Quick wins for a faster PC:
Fix the driver behind crashes, sound loss and screen glitchesFind Drivers →Repair Windows errors before they cause bigger problemsFix Now →When lag appears, lowering view distance or simulation distance may help, but it changes gameplay. Excessively high heap allocation can increase garbage-collection pauses. Watch tick performance, CPU use, memory pressure, logs and storage activity before adding RAM.
Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Backups, updates and safe administration
Simple backup routine
- Run
save-all. - Run
stopand wait for the process to exit. - Copy the entire server folder or at least the world and relevant configuration files to a different disk or storage location.
- Use dated filenames and keep multiple known-good versions.
- Periodically test restoring a backup.
Never overwrite your only backup. Before changing the Minecraft version, Java runtime, server software, plugin set, mod loader or modpack, make a fresh backup and record the previous working versions. Avoid automatic updates on a working server unless you have a recovery plan.
Minimum security checklist
- Keep
online-mode=true. - Use a whitelist for private servers.
- Give operator privileges only to trusted people.
- Download server software, plugins, mods and scripts only from sources you trust.
- Keep the operating system and server software updated.
- Do not expose remote administration panels directly to the internet without authentication and firewall controls.
- Use a separate machine or user account when practical.
- Avoid running arbitrary downloaded tools as administrator.
- Review plugin permissions and dependencies.
- Have a moderation and grief-recovery plan for public servers.
If you charge players, sell ranks or run advertising, read Mojang’s current Usage Guidelines, EULA, Microsoft Services Agreement and relevant platform rules. The policies address paid access, disclosures, advertising, monetization, branding and avoiding the impression that a server is official or endorsed. This is general information, not legal advice.
Troubleshooting by symptom
“Java is not recognized”
Java may be missing, PATH may be wrong, the terminal may have been opened before installation, or multiple versions may conflict. Run:
What’s actually slowing this PC down?
Pick the symptom - the matching free tool is one click away.
Rank #4
- POWERHOUSE 8-CORE GAMING PERFORMANCE — Driven by the AMD Ryzen 7 8700F with 8 cores and 16 threads, boosting up to 5.0 GHz for smooth, responsive gameplay and the ability to handle AAA titles, streaming, and background tasks all at once
- NEXT-GEN BLACKWELL ARCHITECTURE — The NVIDIA GeForce RTX 5070 is powered by NVIDIA's cutting-edge Blackwell GPU architecture, delivering a massive generational leap in rasterization and ray tracing performance so you can experience your games the way they were meant to be played.
- Simplistic Design: Enjoy the latest generation of Windows 11 Home for your everyday needs. *MSI recommends Windows 11 Pro for business use.
- Cool While Gaming: In conjunction with an ARGB fan Air Cooler, the Codex R2 features four system cooling fans; three in the front and one in the rear to pull in cool air and push heat out of the PC.
- Turn on the Bright Lights: With the built-in RGB lighting, take your gaming experience to the next level by pressing the MSI LED button to cycle through lighting options. Customize lighting even further with MSI Center software.
where java
java -version
Restart the terminal, then verify that the reported runtime matches the target server release.
“Failed to bind to port”
Another server or process may already use the port, the server may have been started twice, or the port value may be invalid. Stop duplicate Java processes, choose another server-port if necessary, update firewall and router rules to match, and restart cleanly.
Local play works but friends cannot connect
- Confirm that
localhostworks. - Test from another device on the same LAN.
- Confirm the host’s local IP has not changed.
- Check the computer firewall.
- Check the router’s forwarding address, port and protocol.
- Test from an external network.
- Check for CGNAT, ISP restrictions or multiple NAT layers.
- If inbound hosting is impossible, use Realms, managed hosting or a reputable tunnel/VPN solution.
“Outdated client” or “outdated server”
Record the exact server version and have every player use the matching edition and compatible version. Snapshots, previews, release versions, vanilla software and modded clients are not interchangeable by default. Back up before changing versions.
The server runs but lags
Check CPU saturation, memory pressure and garbage collection, view and simulation distance, entities and redstone, plugins/mods/datapacks, storage, upload capacity and simultaneous backups or map rendering. Do not immediately add RAM without identifying the bottleneck.
Do these 3 things before closing this tab:
1Scan for outdated or missing drivers - takes under a minute2Clear out junk files and repair common Windows errors3Fix the driver behind crashes, sound loss and screen glitchesThe world is corrupted or rolled back
Stop the server with:
stop
Restore the newest known-good backup to a separate recovery copy first. Keep the original damaged world until you understand what happened, and never replace the only backup.
What cannot be combined
- A Java client cannot normally join a Bedrock server, and a Bedrock client cannot normally join a Java server.
- Paper plugins do not run on the official Bedrock Dedicated Server.
- Java mods are not Bedrock add-ons.
- A vanilla server does not automatically support a modded client or modpack.
- Realms does not provide the same file-system, plugin and mod-loader control as a dedicated server.
- Home hosting does not provide guaranteed 24/7 uptime when the computer or connection is offline.
Frequently Asked Questions
Can Java and Bedrock players play together?
Not normally. Java and Bedrock use separate server ecosystems. Cross-edition compatibility software exists, but it is an advanced setup with limitations.
Can I host a Minecraft server from a phone or console?
Not with Mojang’s official Java server software or Bedrock Dedicated Server. Use Realms or a hosted server instead; custom-server access also varies by platform.
Can I make a Minecraft server for free?
Yes. The official server software can be self-hosted, but hardware, electricity, internet service, backups and administration are not necessarily free.
Does the host computer need to stay on?
Yes, for a self-hosted server. It also needs to remain connected to the internet. Realms and managed hosting stay online independently of your home computer.
What port does Minecraft use?
Java commonly uses TCP 25565, while Bedrock commonly uses UDP 19132. Confirm the actual port in the server configuration before changing firewall or router settings.
Can I host behind CGNAT?
Traditional port forwarding may not work with CGNAT because the ISP does not give your router a directly reachable public IPv4 address. Realms, managed hosting or a reputable tunnel/VPN service may be alternatives.
How much RAM does a Minecraft server need?
It depends on players, view distance, entities, CPU, storage, plugins and mods. Start modestly, leave memory for the operating system, and monitor tick performance rather than using a universal RAM-per-player rule.
The Tool Desk
Outbyte PC Repair FREERepair Windows errors before they cause bigger problemsFix Now →Outbyte Driver Updater FREEScan for outdated or missing drivers - takes under a minuteDriver Scan →Can I install mods on Minecraft Realms?
Realms does not offer the general-purpose plugin and mod-loader control of a full Java server. Its supported content and customization options are more limited.
Can friends join if they do not own Minecraft?
No. Players need the relevant Minecraft edition and account or platform access required for multiplayer. An invitation does not replace game ownership.
How do I make the server private?
Keep online-mode=true, set white-list=true, add only invited player names, and grant operator status only to trusted administrators.
How do I change the server version?
Stop the server, create a complete dated backup, install the intended compatible server software, and have players use the matching edition and version. Do not upgrade a valuable world without a tested rollback plan.
What is the difference between a Realm and a dedicated server?
A Realm is official, managed cloud hosting with simple invitations, backups and player limits. A dedicated server gives you more control over files, software, plugins, mods and tuning, but you manage its administration and security.
The Bottom Line
For a few friends, choose the same edition first, then use Realms if you want the least maintenance. Choose self-hosted Java for free software and maximum flexibility, Bedrock Dedicated Server for supported Bedrock hosting, and managed hosting when you need reliable 24/7 access without home-network administration. Whichever path you choose, keep authentication enabled, restrict access with a whitelist, match versions carefully and maintain tested backups.
Quick Recap
Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.




