Client Upload Part 1

RD Core / Commit #4

Commit Client Upload Part 1

Alex Alex committed 19/10/2026 00:04 main Patch
4,149 files +18,091 -7
A RD_Client/mods/game_partyIcons/icons/Sorcerer.png +0-0 View file
Binary file not shown.
A RD_Client/mods/game_sendshader/sendshader.lua +20-0 View file
@@ -0,0 +1,20 @@
1+local OPCODE = 47 -- change this
2+function init()
3+ ProtocolGame.registerOpcode(OPCODE, setMapShader)
4+end
5+
6+function terminate()
7+ ProtocolGame.unregisterOpcode(OPCODE)
8+end
9+
10+function setMapShader(protocol, msg)
11+ local map = modules.game_interface.getMapPanel()
12+ local action = msg:getU8()
13+ local shader = msg:getString()
14+
15+ if action == 1 then
16+ map:setShader(shader)
17+ else
18+ map:setShader('Default')
19+ end
20+end
A RD_Client/mods/game_sendshader/sendshader.otmod +7-0 View file
@@ -0,0 +1,7 @@
1+Module
2+ name: game_sendshader
3+ description: sendshader
4+ autoload: true
5+ sandboxed: true
6+ scripts: [ sendshader ]
7+ @onLoad: init()
A RD_Client/mods/game_titles/titles.lua +131-0 View file
@@ -0,0 +1,131 @@
1+local playerTitles = {
2+
3+["[Dev]Mapper"] = {title = "[Lord Game Master]", color = "#FFA500"}}
4+
5+local npcTitles = {
6+["Eryn"] = {title = "[Maestro Misionero]", color = "#f5c367"},
7+["Armin"] = {title = "[Ancestral Task]", color = "#677ef5"},
8+["Magnus Blackwater"] = {title = "[Captain of Ships]", color = "#67caf5"},
9+["Shipwright Trader"] = {title = "[Ship Parts]", color = "#a68556"},
10+["Alaistar"] = {title = "[Potion-Ressources]", color = "#e5f280"},
11+["Alesar"] = {title = "[Djinn Seller]", color = "#e5f280"},
12+["Alexander"] = {title = "[Magician Shop]", color = "#e5f280"},
13+["Alice"] = {title = "[Blessing Seller]", color = "#e5f280"},
14+["Apotroph"] = {title = "[Mission]", color = "#67caf5"},
15+["Asnarus"] = {title = "[Refill Shop]", color = "#8e2b99"},
16+["Banker"] = {title = "[Bank]", color = "#e5f280"},
17+["Benjamin"] = {title = "[Postman]", color = "#e5f280"},
18+["Bonifacius"] = {title = "[Food Seller]", color = "#e5f280"},
19+["Captain Bluebear"] = {title = "[Boat Captain]", color = "#67caf5"},
20+["Captain Breezelda"] = {title = "[Boat Captain]", color = "#67caf5"},
21+["Captain Fearless"] = {title = "[Boat Captain]", color = "#67caf5"},
22+["Captain Gulliver"] = {title = "[Boat Captain]", color = "#67caf5"},
23+["Captain Kurt"] = {title = "[Boat Captain]", color = "#67caf5"},
24+["Captain Seagull"] = {title = "[Boat Captain]", color = "#67caf5"},
25+["Captain Seahorse"] = {title = "[Boat Captain]", color = "#67caf5"},
26+["Captain Sinbeard"] = {title = "[Boat Captain]", color = "#67caf5"},
27+["Captain Snake"] = {title = "[Boat Captain]", color = "#67caf5"},
28+["Captain Thief"] = {title = "[Boat Captain]", color = "#67caf5"},
29+["Captain Tiberius"] = {title = "[Boat Captain]", color = "#67caf5"},
30+["Captain Waverider"] = {title = "[Boat Captain]", color = "#67caf5"},
31+["Captain Wild"] = {title = "[Boat Captain]", color = "#67caf5"},
32+["Cledwyn"] = {title = "[Silver Token]", color = "#c4c4c4"},
33+["Coltrayne"] = {title = "[Equipment Shop]", color = "#946d3e"},
34+["Edala"] = {title = "[Blessing Seller]", color = "#e5f280"},
35+["Elyotrope"] = {title = "[Minner]", color = "#945e1c"},
36+["Elyria"] = {title = "[Herbalist]", color = "#2edb56"},
37+["Eremo"] = {title = "[Blessing Seller]", color = "#e5f280"},
38+["Eruaran"] = {title = "[Umbral Creation]", color = "#dbbe2e"},
39+["Esrik"] = {title = "[Equipment Shop]", color = "#946d3e"},
40+["Estherya"] = {title = "[Nightmare Coins]", color = "#fc3e21"},
41+["Feanor"] = {title = "[Tools Shop]", color = "#66d1a3"},
42+["Frodo"] = {title = "[Food Seller]", color = "#e5f280"},
43+["Gorn"] = {title = "[Tools Shop]", color = "#66d1a3"},
44+["Hamish"] = {title = "[Refill Shop]", color = "#8e2b99"},
45+["Hanna"] = {title = "[Gems Shop]", color = "#00ed63"},
46+["Haroun"] = {title = "[Djinn Seller]", color = "#e5f280"},
47+["Henricus"] = {title = "[Blessing Seller]", color = "#e5f280"},
48+["Humphrey"] = {title = "[Blessing Seller]", color = "#e5f280"},
49+["Inigo"] = {title = "[Ressource Shop]", color = "#ffd080"},
50+["Kawill"] = {title = "[Blessing Seller]", color = "#e5f280"},
51+["King Tibianus"] = {title = "[Promotion]", color = "#374d52"},
52+["Lailene"] = {title = "[Equipment Shop]", color = "#946d3e"},
53+["Librarian"] = {title = "[Passage]", color = "#ced993"},
54+["Nah'Bob"] = {title = "[Djinn Seller]", color = "#e5f280"},
55+["Norf"] = {title = "[Blessing Seller]", color = "#e5f280"},
56+["Peggy"] = {title = "[House Furniture]", color = "#ff7aca"},
57+["Plunderpurse"] = {title = "[Bank]", color = "#e5f280"},
58+["Pydar"] = {title = "[Blessing Seller]", color = "#e5f280"},
59+["Rashid"] = {title = "[Ressource Shop]", color = "#f5c367"},
60+["Richard"] = {title = "[Refill Shop]", color = "#8e2b99"},
61+["Riona"] = {title = "[Tools Shop]", color = "#66d1a3"},
62+["Rock In A Hard Place"] = {title = "[Equipment Shop]", color = "#946d3e"},
63+["Rostock"] = {title = "[Woodcutter's]", color = "#855309"},
64+["Royal Guard"] = {title = "[City Guard]", color = "#3d3a36"},
65+["Sam"] = {title = "[Equipment Shop]", color = "#946d3e"},
66+["Taerar"] = {title = "[Azure Seller]", color = "#3694ff"},
67+["Tamoril"] = {title = "[Gems Shop]", color = "#00ed63"},
68+["Telas"] = {title = "[Ressource Shop]", color = "#f5c367"},
69+["The Oracle"] = {title = "[Vocation]", color = "#57261d"},
70+["Tyoric"] = {title = "[Refill Shop]", color = "#8e2b99"},
71+["Xodet"] = {title = "[Refill Shop]", color = "#8e2b99"},
72+["Yaman"] = {title = "[Equipment Shop]", color = "#946d3e"},
73+["Yasir"] = {title = "[Ressource Shop]", color = "#f5c367"},
74+["Yonan"] = {title = "[Regalia of Suon]", color = "#c2a49f"},
75+["Shiny Bunny"] = {title = "[Easter Egg Event]", color = "#c0ff5c"},
76+["Buy All"] = {title = "[Merchant]", color = "#f5c367"},
77+["Naji"] = {title = "[Banker]", color = "#f5c367"},
78+["Galuna"] = {title = "[Paladin Refiller]", color = "#f5c367"},
79+["Jeweler"] = {title = "[Collars and ring seller]", color = "#f5c367"},
80+["Apothecary"] = {title = "[Potions and runes]", color = "#f5c367"},
81+["Fletcher"] = {title = "[Paladin Refiller]", color = "#f5c367"},
82+}
83+
84+local creatureTitles = {
85+["Vorondor The Eternal Flames"] = {title = "[Worldboss]", color = "#ff000d"},
86+["Aquatic Overlord Thalassa"] = {title = "[Worldboss]", color = "#ff000d"},
87+["Azazel The Infernal Seraph"] = {title = "[Worldboss]", color = "#ff000d"},
88+["Drak'thul The Void Sovereign"] = {title = "[Worldboss]", color = "#ff000d"},
89+["Dreadbone The Eternal"] = {title = "[Worldboss]", color = "#ff000d"},
90+["Dreadscale The Ancient"] = {title = "[Worldboss]", color = "#ff000d"},
91+["Gor'gul The Frienzied"] = {title = "[Worldboss]", color = "#ff000d"},
92+["Mortis The Sovereign"] = {title = "[Worldboss]", color = "#ff000d"},
93+["Thalador The Stormbringer"] = {title = "[Worldboss]", color = "#ff000d"},
94+["Tymagron The Earthshaker"] = {title = "[Worldboss]", color = "#ff000d"},
95+
96+
97+}
98+
99+
100+local titleFont = "verdana-11px-rounded"
101+function init()
102+
103+ connect(Creature, {
104+ onAppear = updateTitle,
105+ })
106+end
107+
108+function terminate()
109+
110+disconnect(Creature, {
111+ onAppear = updateTitle,
112+ })
113+end
114+
115+function updateTitle(creature)
116+ local name = creature:getName()
117+ if creature:isPlayer() then
118+ if playerTitles[name] then
119+ creature:setTitle(playerTitles[name].title, titleFont, playerTitles[name].color)
120+ end
121+ elseif creature:isNpc() then
122+ if npcTitles[name] then
123+ creature:setTitle(npcTitles[name].title, titleFont, npcTitles[name].color)
124+ end
125+
126+ elseif creature:isCreature() then
127+ if creatureTitles[name] then
128+ creature:setTitle(creatureTitles[name].title, titleFont, creatureTitles[name].color)
129+ end
130+ end
131+end
A RD_Client/mods/game_titles/titles.otmod +11-0 View file
@@ -0,0 +1,11 @@
1+Module
2+ name: game_titles
3+ description: Titles for Monsters and Players
4+ author: Avaji
5+ website: none
6+ sandboxed: true
7+ autoload: true
8+ autoload-priority: 1000
9+ scripts: [ titles.lua ]
10+ @onLoad: init()
11+ @onUnload: terminate()
A RD_Client/mods/name/name.lua +26-0 View file
@@ -0,0 +1,26 @@
1+function init()
2+ connect(g_game, {
3+ onGameStart = online,
4+ onGameEnd = offline,
5+ })
6+
7+ if g_game.isOnline() then
8+ online()
9+ end
10+end
11+
12+function terminate()
13+ disconnect(g_game, {
14+ onGameStart = online,
15+ onGameEnd = offline,
16+ })
17+end
18+
19+function online()
20+ local player = g_game.getLocalPlayer()
21+ g_window.setTitle(g_app.getName() .. ' - ' .. player:getName())
22+end
23+
24+function offline()
25+ g_window.setTitle(g_app.getName() .. ' - Offline')
26+end
A RD_Client/mods/name/name.otmod +8-0 View file
@@ -0,0 +1,8 @@
1+Module
2+ name: Name
3+ description: Renames client with character name
4+ author: Lee
5+ autoload: true
6+ scripts: [ name ]
7+ @onLoad: init()
8+ @onUnload: terminate()
M README.md +2-1 View file
@@ -1,6 +1,7 @@
11# RD Core
22
3-RD Core is a clean server base with a matching OTCv8 client, intended as a starting point for your own game. The default map spawn file is empty: no monsters or NPCs are placed through it. Existing creature definitions remain available for development.
3+RD Core is a clean server base with a OTCv8 client, intended as a starting point for your own game. The default map spawn file is empty: no monsters or NPCs are placed through it. Existing creature definitions remain available for development.
4+It has been uploaded on this repo because original link was removed from download, we aswell fixed many things to make it ready to play.
45
56## Code and support
67
Top