מה ההבדל בין ESX ל־QBCore בשרתי FiveM?
כאשר בונים שרת FiveM Roleplay, שניים מה־Frameworks המוכרים ביותר הם:
ESXו:
QBCoreשניהם נותנים את הבסיס שעליו בונים את שרת ה־RP, אבל הם בנויים בצורה שונה, משתמשים במערכות שונות ולא תמיד ניתן להעביר סקריפטים מאחד לשני.
1. מה זה בכלל Framework?
Framework הוא למעשה הבסיס של שרת ה־Roleplay.
במקום לתכנת מאפס מערכות כמו:
• כסף
• עבודות
• שחקנים
• Inventory
• רכבים
• בנקים
• משטרה
• פרטי דמות
• Items
• Permissions
ה־Framework כבר מספק את המבנה שעליו הסקריפטים האחרים עובדים.
לדוגמה:
ESXאו:
QBCoreהם לא "שרת RP מוכן" בפני עצמם.
הם הבסיס שמחבר בין המערכות השונות של השרת.
2. מה זה ESX?
ESX הוא אחד מה־Frameworks הוותיקים והמוכרים ביותר בעולם FiveM.
הגרסה המודרנית נקראת בדרך כלל:
ESX LegacyESX מספק מערכת בסיסית לניהול:
• שחקנים
• כסף
• Accounts
• Jobs
• Items
• Inventory Integration
• Vehicles
• Player Data
• Database
לאורך השנים נבנו עבור ESX אלפי סקריפטים, ולכן יש לו אקוסיסטם גדול מאוד.
3. מה זה QBCore?
QBCore, או בקיצור:
QBהוא Framework מודולרי ל־FiveM שנבנה במיוחד עבור שרתי Roleplay.
הליבה שלו נקראת:
qb-coreומערכות נוספות בדרך כלל מגיעות כ־Resources נפרדים.
לדוגמה:
qb-inventoryqb-policejobqb-ambulancejobqb-garagesqb-bankingהרעיון הוא לבנות את השרת באמצעות מערכות מודולריות שמתחברות ל־QBCore.
4. ההבדל המרכזי
בפשטות:
ESX הוא Framework ותיק עם אקוסיסטם עצום והמון סקריפטים שנבנו עבורו לאורך השנים.
QBCore בנוי בגישה מודולרית מאוד, כאשר חלק גדול ממערכות השרת מחולק ל־Resources נפרדים שמתחברים ל־Core.
שניהם יכולים לשמש לבניית שרת RP מתקדם מאוד.
5. מבנה ESX
בשרת ESX ניתן לראות Resources כמו:
es_extendedesx_societyesx_jobsesx_vehicleshopesx_ambulancejobesx_policejobה־Resource המרכזי הוא:
es_extendedרוב הסקריפטים של ESX מתקשרים עם המערכת הזאת.
6. מבנה QBCore
ב־QBCore ה־Core המרכזי הוא:
qb-coreולצדו ניתן לראות מערכות כמו:
qb-inventoryqb-targetqb-menuqb-inputqb-policejobqb-ambulancejobqb-garagesכל מערכת יכולה להיות Resource נפרד.
7. Player Data
גם ESX וגם QBCore שומרים מידע על השחקן, אבל המבנה וה־API שלהם שונים.
ב־ESX סקריפטים בדרך כלל עובדים מול:
ESX.GetPlayerFromId()ומידע על השחקן נמצא בתוך אובייקט ה־ESX Player.
ב־QBCore משתמשים בדרך כלל ב:
QBCore.Functions.GetPlayer()והמידע נמצא בתוך:
Player.PlayerDataלכן סקריפט שנכתב ל־ESX לא יעבוד אוטומטית ב־QBCore.
8. Jobs
בשתי המערכות ניתן ליצור עבודות כמו:
• משטרה
• EMS
• מכונאי
• מונית
• עורך דין
• מסעדה
• כנופיות
• עבודות אזרחיות
אבל מבנה ה־Job שונה בין Framework ל־Framework.
לדוגמה, סקריפט שבודק:
ESX Jobלא בהכרח יבין:
QBCore Jobבלי התאמה בקוד.
9. Inventory
אחת הטעויות הנפוצות היא לחשוב שלכל Framework יש Inventory אחד שחייבים להשתמש בו.
בפועל ניתן להשתמש במערכות Inventory שונות.
ב־QBCore נפוץ לראות:
qb-inventoryאבל ניתן להשתמש גם במערכות אחרות שתומכות ב־QB.
ב־ESX קיימים Inventories שונים התומכים ב־ESX.
לדוגמה, שרתים רבים משתמשים במערכות Inventory חיצוניות.
לכן Inventory הוא לא בהכרח ההבדל המרכזי בין ESX ל־QB.
10. Target System
ב־QBCore מאוד נפוץ לראות:
qb-targetמערכת Target מאפשרת לכוון על Object, NPC או מקום בעולם ולפתוח אפשרויות אינטראקציה.
לדוגמה:
Open ShopTalkSearchOpen Garageגם ב־ESX ניתן להשתמש במערכות Target שונות.
כלומר Target אינו מוגבל ל־QBCore בלבד.
11. סקריפטים ותאימות
זה אחד הדברים החשובים ביותר שצריך להבין.
סקריפט שמסומן:
ESX Onlyלא בהכרח יעבוד על QBCore.
וסקריפט שמסומן:
QBCore Onlyלא בהכרח יעבוד על ESX.
יש סקריפטים שתומכים בשניהם:
ESX / QBCoreויש סקריפטים שמשתמשים ב־Bridge כדי לזהות אוטומטית את ה־Framework.
12. מה זה Bridge?
Bridge הוא שכבת התאמה שמאפשרת לסקריפט אחד לתמוך במספר Frameworks.
לדוגמה:
ESXQBCoreולפעמים גם Frameworks נוספים.
במקום שהמפתח יכתוב את כל הסקריפט מחדש, ה־Bridge מתרגם פעולות מסוימות למערכת המתאימה.
לדוגמה:
קבלת שחקן
הוספת כסף
הורדת כסף
בדיקת Job
הוספת Item
שליחת Notification
13. Database
שני ה־Frameworks משתמשים בדרך כלל במסד נתונים כדי לשמור מידע קבוע.
לדוגמה:
• דמויות
• כסף
• רכבים
• Items
• Jobs
• Properties
• נתוני שחקן
ברוב שרתי FiveM המודרניים משתמשים ב:
MySQL / MariaDBוב־Resource כגון:
oxmysqlמבנה הטבלאות והנתונים של ESX ושל QBCore שונה.
לכן אי אפשר פשוט לקחת Database של ESX ולהפעיל אותו ישירות על QBCore.
14. מערכת Characters
שני ה־Frameworks יכולים לעבוד עם מערכת Multi Character.
כלומר שחקן יכול ליצור מספר דמויות שונות.
לדוגמה:
Character 1Character 2Character 3אבל המערכת שמנהלת את הדמויות והדרך שבה הנתונים נשמרים שונות בין ESX ל־QB.
15. קהילה וסקריפטים
ל־ESX יש יתרון גדול מבחינת כמות השנים שהוא קיים וכמות הסקריפטים שנכתבו עבורו.
ניתן למצוא המון Resources ישנים וחדשים שתומכים ב:
ESXגם ל־QBCore יש קהילה גדולה מאוד ומבחר גדול של סקריפטים.
כיום הרבה מפתחי FiveM מציעים תמיכה בשתי המערכות:
ESX + QBCoreלכן לפני רכישת סקריפט תמיד מומלץ לבדוק באיזה Framework הוא תומך.
16. קוד ופיתוח
אם אתם מתכננים לתכנת הרבה מערכות בעצמכם, חשוב לבחור Framework ולהכיר את ה־API שלו לעומק.
לדוגמה ב־ESX:
local xPlayer = ESX.GetPlayerFromId(source)ב־QBCore:
local Player = QBCore.Functions.GetPlayer(source)גם אם הפעולה שאנחנו רוצים לבצע דומה, הדרך שבה מבצעים אותה יכולה להיות שונה.
17. הוספת כסף
לדוגמה, ב־ESX הפעולה עשויה להיראות בסגנון:
xPlayer.addMoney(1000)ב־QBCore ניתן לראות פעולה בסגנון:
Player.Functions.AddMoney('cash', 1000)המטרה זהה:
להוסיף כסף לשחקן.
אבל ה־API שונה.
18. Events ו־Callbacks
גם ESX וגם QBCore משתמשים ב־Events ו־Callbacks כדי להעביר מידע בין Client ל־Server.
אבל שמות הפונקציות והמבנה שונים.
לדוגמה, קוד שנבנה סביב:
ESX TriggerServerCallbackאינו אותו דבר כמו מערכת ה־Callbacks של:
QBCoreלכן בעת המרת Script צריך להתאים גם את החלקים האלה.
19. ביצועים
אין תשובה נכונה בסגנון:
ESX תמיד מהיר יותראו:
QBCore תמיד מהיר יותרביצועי שרת FiveM תלויים בהרבה יותר דברים:
• איכות הסקריפטים
• כמות Resources
• Database Queries
• Loops
• Events
• Server Hardware
• OneSync
• מספר שחקנים
• Optimizations
• Maps
• Vehicles
• Scripts צד שלישי
שרת ESX שבנוי טוב יכול לעבוד מצוין.
שרת QBCore שבנוי טוב יכול לעבוד מצוין.
וגם להפך — Framework טוב לא יציל שרת שמלא בסקריפטים לא אופטימליים.
20. איזה מהם יותר קל?
זה תלוי מאוד בניסיון שלכם.
אם כבר עבדתם שנים עם:
ESXכנראה יהיה לכם קל יותר להמשיך עם ESX.
אם אתם מכירים:
QBCoreומערכות QB, יהיה לכם קל יותר לעבוד עם QBCore.
ה־Framework שאתם והמפתחים שלכם מכירים טוב הוא בדרך כלל הבחירה הנוחה ביותר.
21. ESX מתאים במיוחד כאשר...
ESX יכול להתאים מאוד כאשר:
• כבר יש לכם סקריפטים של ESX
• יש לכם Developer שמכיר ESX
• רכשתם Resources שתומכים ב־ESX
• יש לכם שרת קיים על ESX
• אתם רוצים להשתמש במערכות קיימות שבנויות עבור ESX
22. QBCore מתאים במיוחד כאשר...
QBCore יכול להתאים מאוד כאשר:
• יש לכם Developer שמכיר QB
• אתם בונים שרת חדש סביב Resources של QB
• רכשתם סקריפטים התומכים ב־QBCore
• אתם אוהבים מבנה של Resources מודולריים
• המערכות שאתם רוצים להשתמש בהן נבנו עבור QB
23. האם אפשר לעבור מ־ESX ל־QBCore?
כן, אבל זה בדרך כלל לא מעבר של כפתור אחד.
צריך לבדוק כל מערכת בשרת.
לדוגמה:
InventoryJobsPoliceEMSHousingGaragesBankingVehiclesPhoneBusinessesDatabaseייתכן שחלק מהסקריפטים תומכים בשני ה־Frameworks וצריך רק לשנות Config.
אבל סקריפטים אחרים יצטרכו המרה או החלפה מלאה.
24. האם אפשר להשתמש ב־ESX ו־QBCore ביחד?
בדרך כלל לא מומלץ לבנות שרת עם שתי הליבות במקביל.
כל Framework מנהל מערכות בסיסיות משלו כמו:
• Player Data
• Money
• Jobs
• Items
• Events
• Callbacks
הפעלת שתי מערכות Core במקביל עלולה ליצור התנגשויות ובעיות תחזוקה.
במקום זה מומלץ לבחור Framework מרכזי אחד.
לדוגמה:
ESXאו:
QBCoreולבחור Resources שתומכים בו.
25. אפשר להשתמש ב־OX עם ESX או QB?
כן.
מערכות מסוימות ממשפחת OX יכולות להשתלב עם Frameworks שונים, בהתאם לתמיכה של כל Resource.
לדוגמה:
oxmysqlox_libox_targetox_inventoryאבל תמיד צריך לבדוק שהגרסה וה־Resource שבו אתם משתמשים תומכים ב־Framework שבחרתם.
השוואה מהירה
ESX
• Framework ותיק מאוד
• אקוסיסטם גדול
• המון סקריפטים קיימים
• ESX Legacy הוא הבסיס המודרני של ESX
• מתאים מאוד למי שכבר עובד עם ESX
QBCore
• Framework פופולרי מאוד ל־FiveM RP
• בנוי בצורה מודולרית
• הרבה Resources רשמיים וקהילתיים מתחילים ב־QB
• API ומבנה Player Data שונים מ־ESX
• מתאים מאוד למי שבונה סביב מערכת QB
ההבדל החשוב ביותר
בסופו של דבר גם:
ESXוגם:
QBCoreיכולים לשמש לבניית שרת FiveM RP מלא ומתקדם.
ההבדל האמיתי הוא בעיקר:
מבנה הקוד
API
Player Data
Resources
Database
מערכת Jobs
מערכת Items
תאימות לסקריפטים
ולכן אין Framework אחד שמתאים אוטומטית לכל שרת.
לפני שבוחרים מומלץ לבדוק:
איזה סקריפטים אתם רוצים להתקין
איזה Framework המפתח שלכם מכיר
איזה מערכות כבר רכשתם
והאם אתם בונים שרת חדש או ממשיכים שרת קיים
סיכום
אם השרת שלכם מבוסס על:
ESXהשתמשו בסקריפטים שתומכים ב־ESX / ESX Legacy.
אם השרת שלכם מבוסס על:
QBCoreהשתמשו בסקריפטים שתומכים ב־QBCore.
לפני התקנת כל Resource חדש, בדקו תמיד האם הוא תומך ב:
ESXאו:
QBCoreאו בשניהם:
ESX / QBCoreהבחירה הנכונה ביותר היא זו שמתאימה למערכות, לסקריפטים ולצוות הפיתוח של השרת שלכם.