<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/">
	<channel>
		<title><![CDATA[SphereCommunity - Script Submissions]]></title>
		<link>https://forum.spherecommunity.net/</link>
		<description><![CDATA[SphereCommunity - https://forum.spherecommunity.net]]></description>
		<pubDate>Thu, 02 Jul 2026 17:45:53 +0000</pubDate>
		<generator>MyBB</generator>
		<item>
			<title><![CDATA[Hit Chance]]></title>
			<link>https://forum.spherecommunity.net/Thread-Hit-Chance</link>
			<pubDate>Sun, 28 Aug 2022 08:27:56 +0200</pubDate>
			<guid isPermaLink="false">https://forum.spherecommunity.net/Thread-Hit-Chance</guid>
			<description><![CDATA[// Discord Collection<br />
// Example for sphere.ini custom [CombatHitChanceEra=0]<br />
// // Events related to all players<br />
// // EventsPlayer=<br />
// <br />
<br />
[EVENTS e_combat_hitchance]<br />
ON=@HitTry<br />
LOCAL.AnimDelay=6          // speed of how early damage happens from swing animation (1=fastest  6=best  10=long anim)<br />
ARGN1=7                        // delay between attacks (1=fastest can cause dbl hits) (7=best)<br />
local.R=&lt;R900&gt;            //  store Random number of 900 in local.R<br />
IF (&lt;ISPLAYER&gt;)         //  <br />
	serv.log (&lt;local.R&gt; &lt;= &lt;&lt;ACTION&gt;&gt;)  %   // show in console the Rrandom number and the skill amount being used in &lt;&lt;ACTION&gt;&gt;<br />
    IF (&lt;local.R&gt; &lt;= &lt;&lt;ACTION&gt;&gt;)                  // IF random number is lesser then or equal to the skillbeingused number<br />
      ACTDIFF=1                                             // (1 success) (-1 fail/miss) (1000 skill = 100% chance)<br />
      SERV.LOG &lt;i.NAME&gt; hitchance using &lt;i.ACTION&gt;  is:  &lt;&lt;ACTION&gt;&gt;) %      //  console show name, skill, skill%<br />
	  ELSE                                              // else if your skill isnt high enough you will have a miss chance<br />
		IF (&lt;EVAL RAND(5)&gt; &gt; 1)       // 1 in 5 chance  //  faster swing maybe need more than 5 // or less than 5	<br />
		SERV.LOG &lt;i.NAME&gt; hitchance using &lt;i.ACTION&gt;  is:  &lt;&lt;ACTION&gt;&gt;) %%%   &lt;EVAL RAND(2)&gt;   // show in console<br />
		ACTDIFF=-1000       // (1 success) (-1 fail/miss)<br />
    ENDIF<br />
ENDIF<br />
<br />
//or<br />
<br />
[EVENTS e_combat_hitchance]<br />
ON=@HITTRY<br />
LOCAL.AnimDelay=6  <br />
    actdiff = 1000 //actdiff  above or equal 0always hit<br />
    if ((&lt;argo.isvalid&gt;) &amp;&amp; (&lt;argo.isweapon&gt;))<br />
        local.skill = &lt;&lt;weapon.skill&gt;&gt;<br />
    endif<br />
    if &lt;action&gt; == skill_wrestling<br />
        local.skill = &lt;wrestling&gt;<br />
    endif<br />
        local.x = &lt;R1,&lt;dlocal.skill&gt;&gt;<br />
        if &lt;dlocal.skill&gt; &lt;= &lt;dlocal.x&gt; + 75<br />
            actdiff = -1000 //actdiff &lt; 0 always miss<br />
        endif]]></description>
			<content:encoded><![CDATA[// Discord Collection<br />
// Example for sphere.ini custom [CombatHitChanceEra=0]<br />
// // Events related to all players<br />
// // EventsPlayer=<br />
// <br />
<br />
[EVENTS e_combat_hitchance]<br />
ON=@HitTry<br />
LOCAL.AnimDelay=6          // speed of how early damage happens from swing animation (1=fastest  6=best  10=long anim)<br />
ARGN1=7                        // delay between attacks (1=fastest can cause dbl hits) (7=best)<br />
local.R=&lt;R900&gt;            //  store Random number of 900 in local.R<br />
IF (&lt;ISPLAYER&gt;)         //  <br />
	serv.log (&lt;local.R&gt; &lt;= &lt;&lt;ACTION&gt;&gt;)  %   // show in console the Rrandom number and the skill amount being used in &lt;&lt;ACTION&gt;&gt;<br />
    IF (&lt;local.R&gt; &lt;= &lt;&lt;ACTION&gt;&gt;)                  // IF random number is lesser then or equal to the skillbeingused number<br />
      ACTDIFF=1                                             // (1 success) (-1 fail/miss) (1000 skill = 100% chance)<br />
      SERV.LOG &lt;i.NAME&gt; hitchance using &lt;i.ACTION&gt;  is:  &lt;&lt;ACTION&gt;&gt;) %      //  console show name, skill, skill%<br />
	  ELSE                                              // else if your skill isnt high enough you will have a miss chance<br />
		IF (&lt;EVAL RAND(5)&gt; &gt; 1)       // 1 in 5 chance  //  faster swing maybe need more than 5 // or less than 5	<br />
		SERV.LOG &lt;i.NAME&gt; hitchance using &lt;i.ACTION&gt;  is:  &lt;&lt;ACTION&gt;&gt;) %%%   &lt;EVAL RAND(2)&gt;   // show in console<br />
		ACTDIFF=-1000       // (1 success) (-1 fail/miss)<br />
    ENDIF<br />
ENDIF<br />
<br />
//or<br />
<br />
[EVENTS e_combat_hitchance]<br />
ON=@HITTRY<br />
LOCAL.AnimDelay=6  <br />
    actdiff = 1000 //actdiff  above or equal 0always hit<br />
    if ((&lt;argo.isvalid&gt;) &amp;&amp; (&lt;argo.isweapon&gt;))<br />
        local.skill = &lt;&lt;weapon.skill&gt;&gt;<br />
    endif<br />
    if &lt;action&gt; == skill_wrestling<br />
        local.skill = &lt;wrestling&gt;<br />
    endif<br />
        local.x = &lt;R1,&lt;dlocal.skill&gt;&gt;<br />
        if &lt;dlocal.skill&gt; &lt;= &lt;dlocal.x&gt; + 75<br />
            actdiff = -1000 //actdiff &lt; 0 always miss<br />
        endif]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Regen Rings]]></title>
			<link>https://forum.spherecommunity.net/Thread-Regen-Rings</link>
			<pubDate>Sun, 28 Aug 2022 08:06:38 +0200</pubDate>
			<guid isPermaLink="false">https://forum.spherecommunity.net/Thread-Regen-Rings</guid>
			<description><![CDATA[// Discord collection<br />
// EFFECT [type], [item_id], [speed], [loop], [explode], [colour(hue)], [rendermode]<br />
//  (0 3) type (0 Standard flying object, The object will follow its target until it hits, and then explode if that flag is set)<br />
//  (1   Lightning effect , This is the only way to achieve the lightning effect in-game)<br />
//  (2  Ground-based effect , This effect will stay at a particular point on the map until it expires. As a result, it will appear lower than a type 3 effect. This is the only way to get an effect onto an item.<br />
//  (3  Character-based effect , This effect will follow the character as he moves, the way a flamestrike does when the spell is cast. The bottom of the effect is somewhere around the character's knees.)<br />
//********************************************************************************&#8203;******************************<br />
//**Scripted By: Blizzard (<a href="http://www.marchadium.com" target="_blank">http://www.marchadium.com</a>)**//**For Anthony (big_boy_uk89)(bennett_3001@hotmail.com**<br />
//********************************************************************************&#8203;******************************<br />
<br />
[ITEMDEF i_ring_mana_regen]<br />
DEFNAME=i_ring_mana_regen<br />
ID=i_ring_gold<br />
TYPE=t_jewelry<br />
NAME=Mana Regeneration Ring<br />
<br />
ON=@CREATE<br />
MOREM={1 5}<br />
COLOR=06<br />
<br />
ON=@CLICK<br />
IF (&lt;EVAL &lt;MOREM&gt;&gt;==1)<br />
	MESSAGE=a +1 &lt;NAME&gt;<br />
ELSEIF (&lt;EVAL &lt;MOREM&gt;&gt;==2)<br />
	MESSAGE=a +2 &lt;NAME&gt;<br />
ELSEIF (&lt;EVAL &lt;MOREM&gt;&gt;==3)<br />
	MESSAGE=a +3 &lt;NAME&gt;<br />
ELSEIF (&lt;EVAL &lt;MOREM&gt;&gt;==4)<br />
	MESSAGE=a +4 &lt;NAME&gt;<br />
ELSEIF (&lt;EVAL &lt;MOREM&gt;&gt;==5)<br />
	MESSAGE=a +5 &lt;NAME&gt;<br />
ENDIF<br />
RETURN 1<br />
<br />
ON=@EQUIP<br />
SRC.MESSAGE=Your ring gives mana.<br />
TIMER=3<br />
<br />
ON=@UNEQUIP<br />
TIMER=-1<br />
<br />
ON=@TIMER<br />
IF (&lt;TOPOBJ.MANA&gt; &lt; &lt;TOPOBJ.INT&gt;)<br />
	TOPOBJ.MANA=&lt;TOPOBJ.MANA&gt; +&lt;EVAL &lt;MOREM&gt;&gt;<br />
	TOPOBJ.SOUND=0f9<br />
	TOPOBJ.MESSAGE @72 +5 mp<br />
ENDIF<br />
TIMER=3<br />
RETURN 1<br />
<br />
[ITEMDEF i_ring_hits_regen]<br />
DEFNAME=i_ring_hits_regen<br />
ID=i_ring_gold<br />
NAME=Hitpoints Regeneration Ring<br />
TYPE=t_jewelry<br />
<br />
ON=@CREATE<br />
MOREM={1 5}<br />
COLOR=025<br />
<br />
ON=@CLICK<br />
IF (&lt;EVAL &lt;MOREM&gt;&gt;==1)<br />
	MESSAGE=a +1 &lt;NAME&gt;<br />
ELSEIF (&lt;EVAL &lt;MOREM&gt;&gt;==2)<br />
	MESSAGE=a +2 &lt;NAME&gt;<br />
ELSEIF (&lt;EVAL &lt;MOREM&gt;&gt;==3)<br />
	MESSAGE=a +3 &lt;NAME&gt;<br />
ELSEIF (&lt;EVAL &lt;MOREM&gt;&gt;==4)<br />
	MESSAGE=a +4 &lt;NAME&gt;<br />
ELSEIF (&lt;EVAL &lt;MOREM&gt;&gt;==5)<br />
	MESSAGE=a +5 &lt;NAME&gt;<br />
ENDIF<br />
RETURN 1<br />
<br />
ON=@EQUIP<br />
SRC.MESSAGE=Your ring heals.<br />
TIMER=3<br />
<br />
ON=@UNEQUIP<br />
TIMER=-1<br />
<br />
ON=@TIMER<br />
IF (&lt;TOPOBJ.HITPOINTS&gt; &lt; &lt;TOPOBJ.MAXHITS&gt;)<br />
	TOPOBJ.HITPOINTS=&lt;TOPOBJ.HITPOINTS&gt; +&lt;EVAL &lt;MOREM&gt;&gt;<br />
	// TOPOBJ.SOUND=SND_SPELL_HEAL<br />
	TOPOBJ.effect 3,i_fx_sparkle_2,1,11,0,020                                    <br />
    TOPOBJ.MESSAGE @72 +5 hp<br />
ENDIF<br />
TIMER=3                                                                                  <br />
RETURN 1]]></description>
			<content:encoded><![CDATA[// Discord collection<br />
// EFFECT [type], [item_id], [speed], [loop], [explode], [colour(hue)], [rendermode]<br />
//  (0 3) type (0 Standard flying object, The object will follow its target until it hits, and then explode if that flag is set)<br />
//  (1   Lightning effect , This is the only way to achieve the lightning effect in-game)<br />
//  (2  Ground-based effect , This effect will stay at a particular point on the map until it expires. As a result, it will appear lower than a type 3 effect. This is the only way to get an effect onto an item.<br />
//  (3  Character-based effect , This effect will follow the character as he moves, the way a flamestrike does when the spell is cast. The bottom of the effect is somewhere around the character's knees.)<br />
//********************************************************************************&#8203;******************************<br />
//**Scripted By: Blizzard (<a href="http://www.marchadium.com" target="_blank">http://www.marchadium.com</a>)**//**For Anthony (big_boy_uk89)(bennett_3001@hotmail.com**<br />
//********************************************************************************&#8203;******************************<br />
<br />
[ITEMDEF i_ring_mana_regen]<br />
DEFNAME=i_ring_mana_regen<br />
ID=i_ring_gold<br />
TYPE=t_jewelry<br />
NAME=Mana Regeneration Ring<br />
<br />
ON=@CREATE<br />
MOREM={1 5}<br />
COLOR=06<br />
<br />
ON=@CLICK<br />
IF (&lt;EVAL &lt;MOREM&gt;&gt;==1)<br />
	MESSAGE=a +1 &lt;NAME&gt;<br />
ELSEIF (&lt;EVAL &lt;MOREM&gt;&gt;==2)<br />
	MESSAGE=a +2 &lt;NAME&gt;<br />
ELSEIF (&lt;EVAL &lt;MOREM&gt;&gt;==3)<br />
	MESSAGE=a +3 &lt;NAME&gt;<br />
ELSEIF (&lt;EVAL &lt;MOREM&gt;&gt;==4)<br />
	MESSAGE=a +4 &lt;NAME&gt;<br />
ELSEIF (&lt;EVAL &lt;MOREM&gt;&gt;==5)<br />
	MESSAGE=a +5 &lt;NAME&gt;<br />
ENDIF<br />
RETURN 1<br />
<br />
ON=@EQUIP<br />
SRC.MESSAGE=Your ring gives mana.<br />
TIMER=3<br />
<br />
ON=@UNEQUIP<br />
TIMER=-1<br />
<br />
ON=@TIMER<br />
IF (&lt;TOPOBJ.MANA&gt; &lt; &lt;TOPOBJ.INT&gt;)<br />
	TOPOBJ.MANA=&lt;TOPOBJ.MANA&gt; +&lt;EVAL &lt;MOREM&gt;&gt;<br />
	TOPOBJ.SOUND=0f9<br />
	TOPOBJ.MESSAGE @72 +5 mp<br />
ENDIF<br />
TIMER=3<br />
RETURN 1<br />
<br />
[ITEMDEF i_ring_hits_regen]<br />
DEFNAME=i_ring_hits_regen<br />
ID=i_ring_gold<br />
NAME=Hitpoints Regeneration Ring<br />
TYPE=t_jewelry<br />
<br />
ON=@CREATE<br />
MOREM={1 5}<br />
COLOR=025<br />
<br />
ON=@CLICK<br />
IF (&lt;EVAL &lt;MOREM&gt;&gt;==1)<br />
	MESSAGE=a +1 &lt;NAME&gt;<br />
ELSEIF (&lt;EVAL &lt;MOREM&gt;&gt;==2)<br />
	MESSAGE=a +2 &lt;NAME&gt;<br />
ELSEIF (&lt;EVAL &lt;MOREM&gt;&gt;==3)<br />
	MESSAGE=a +3 &lt;NAME&gt;<br />
ELSEIF (&lt;EVAL &lt;MOREM&gt;&gt;==4)<br />
	MESSAGE=a +4 &lt;NAME&gt;<br />
ELSEIF (&lt;EVAL &lt;MOREM&gt;&gt;==5)<br />
	MESSAGE=a +5 &lt;NAME&gt;<br />
ENDIF<br />
RETURN 1<br />
<br />
ON=@EQUIP<br />
SRC.MESSAGE=Your ring heals.<br />
TIMER=3<br />
<br />
ON=@UNEQUIP<br />
TIMER=-1<br />
<br />
ON=@TIMER<br />
IF (&lt;TOPOBJ.HITPOINTS&gt; &lt; &lt;TOPOBJ.MAXHITS&gt;)<br />
	TOPOBJ.HITPOINTS=&lt;TOPOBJ.HITPOINTS&gt; +&lt;EVAL &lt;MOREM&gt;&gt;<br />
	// TOPOBJ.SOUND=SND_SPELL_HEAL<br />
	TOPOBJ.effect 3,i_fx_sparkle_2,1,11,0,020                                    <br />
    TOPOBJ.MESSAGE @72 +5 hp<br />
ENDIF<br />
TIMER=3                                                                                  <br />
RETURN 1]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[SERV.NEWITEM  armor]]></title>
			<link>https://forum.spherecommunity.net/Thread-SERV-NEWITEM-armor</link>
			<pubDate>Sun, 28 Aug 2022 00:10:40 +0200</pubDate>
			<guid isPermaLink="false">https://forum.spherecommunity.net/Thread-SERV-NEWITEM-armor</guid>
			<description><![CDATA[// Gathered from Discord<br />
<br />
[itemdef i_deed_platemailset]<br />
id=i_deed<br />
name=deed for a platemail armor set<br />
type=t_normal<br />
weight=1<br />
<br />
category=111<br />
subsection=dclick deed armor<br />
description=Deed for a Platemail Armor Set<br />
<br />
on=@DClick<br />
serv.newitem i_platemail_chest,,&lt;SRC&gt;  // removes item equipped from slot and equips<br />
NEW.HITS=999           // sets durability hits<br />
NEW.MAXHITS=666   // sets durability maxhits<br />
// NEW.BOUNCE       // uncomment to have the item bounce to inventory instead<br />
// serv.newitem i_platemail_chest   // creates item<br />
// NEW.BOUNCE                           //  bounces to inventory<br />
//serv.newitem i_platemail_helm,,&lt;src&gt;<br />
//serv.newitem i_platemail_gloves,,&lt;src&gt;<br />
//serv.newitem i_platemail_leggings,,&lt;src&gt;<br />
//serv.newitem i_platemail_arms,,&lt;src&gt;<br />
//serv.newitem i_platemail_gorget,,&lt;src&gt;  <br />
remove<br />
Return 1]]></description>
			<content:encoded><![CDATA[// Gathered from Discord<br />
<br />
[itemdef i_deed_platemailset]<br />
id=i_deed<br />
name=deed for a platemail armor set<br />
type=t_normal<br />
weight=1<br />
<br />
category=111<br />
subsection=dclick deed armor<br />
description=Deed for a Platemail Armor Set<br />
<br />
on=@DClick<br />
serv.newitem i_platemail_chest,,&lt;SRC&gt;  // removes item equipped from slot and equips<br />
NEW.HITS=999           // sets durability hits<br />
NEW.MAXHITS=666   // sets durability maxhits<br />
// NEW.BOUNCE       // uncomment to have the item bounce to inventory instead<br />
// serv.newitem i_platemail_chest   // creates item<br />
// NEW.BOUNCE                           //  bounces to inventory<br />
//serv.newitem i_platemail_helm,,&lt;src&gt;<br />
//serv.newitem i_platemail_gloves,,&lt;src&gt;<br />
//serv.newitem i_platemail_leggings,,&lt;src&gt;<br />
//serv.newitem i_platemail_arms,,&lt;src&gt;<br />
//serv.newitem i_platemail_gorget,,&lt;src&gt;  <br />
remove<br />
Return 1]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[SPEEDMODE]]></title>
			<link>https://forum.spherecommunity.net/Thread-SPEEDMODE</link>
			<pubDate>Sat, 27 Aug 2022 23:58:52 +0200</pubDate>
			<guid isPermaLink="false">https://forum.spherecommunity.net/Thread-SPEEDMODE</guid>
			<description><![CDATA[// Gathered from Discord<br />
////////////////////   SPEEDMODE<br />
// For players. Allows setting the speed mode that a client can use (and affects the movement throttle accordingly). There are  4 different speed modes that affect the client:<br />
//  0  - Normal speed.<br />
//  1  - Mount speed on foot, normal speed when mounted.<br />
//  2  - Always walk on foot and when mounted.<br />
//  3+ - Always run on foot, always walk when mounted.<br />
//  <br />
////////////////////////////////////////////////////////////////////////////////<br />
/////////////////////////////////////////////////////////////////////////////////// Human<br />
[FUNCTION hum1]<br />
SRC.body c_man<br />
SRC.obody c_man<br />
// SRC.MODAR=0     // adds to armor<br />
// SRC.MODAR=-0  // removes from armor<br />
SRC.SPEEDMODE=1<br />
SRC.FIX<br />
SRC.effect 1,1,1,1<br />
SRC.effect 1,0,10,10<br />
SRC.effect 3,i_fx_sparkle_2,111,15<br />
RETURN 1<br />
<br />
[FUNCTION hum2]<br />
SRC.body c_woman<br />
SRC.obody c_woman<br />
// SRC.MODAR=0    // adds to armor<br />
// SRC.MODAR=-0  // removes from armor<br />
SRC.SPEEDMODE=1<br />
SRC.FIX<br />
SRC.effect 1,1,1,1<br />
SRC.effect 1,0,10,10<br />
SRC.effect 3,i_fx_sparkle_2,111,15<br />
RETURN 1]]></description>
			<content:encoded><![CDATA[// Gathered from Discord<br />
////////////////////   SPEEDMODE<br />
// For players. Allows setting the speed mode that a client can use (and affects the movement throttle accordingly). There are  4 different speed modes that affect the client:<br />
//  0  - Normal speed.<br />
//  1  - Mount speed on foot, normal speed when mounted.<br />
//  2  - Always walk on foot and when mounted.<br />
//  3+ - Always run on foot, always walk when mounted.<br />
//  <br />
////////////////////////////////////////////////////////////////////////////////<br />
/////////////////////////////////////////////////////////////////////////////////// Human<br />
[FUNCTION hum1]<br />
SRC.body c_man<br />
SRC.obody c_man<br />
// SRC.MODAR=0     // adds to armor<br />
// SRC.MODAR=-0  // removes from armor<br />
SRC.SPEEDMODE=1<br />
SRC.FIX<br />
SRC.effect 1,1,1,1<br />
SRC.effect 1,0,10,10<br />
SRC.effect 3,i_fx_sparkle_2,111,15<br />
RETURN 1<br />
<br />
[FUNCTION hum2]<br />
SRC.body c_woman<br />
SRC.obody c_woman<br />
// SRC.MODAR=0    // adds to armor<br />
// SRC.MODAR=-0  // removes from armor<br />
SRC.SPEEDMODE=1<br />
SRC.FIX<br />
SRC.effect 1,1,1,1<br />
SRC.effect 1,0,10,10<br />
SRC.effect 3,i_fx_sparkle_2,111,15<br />
RETURN 1]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[tag.override.movedelay]]></title>
			<link>https://forum.spherecommunity.net/Thread-tag-override-movedelay</link>
			<pubDate>Sat, 27 Aug 2022 23:54:33 +0200</pubDate>
			<guid isPermaLink="false">https://forum.spherecommunity.net/Thread-tag-override-movedelay</guid>
			<description><![CDATA[// Gathered from Discord<br />
// tag.override.movedelay (1=is too fast) (300=sprint) (1000=slow)<br />
// tag.override.movedelay needs ot be put at the bottom of @CREATE<br />
// PUT in @CREATE of everything you want to move faster than snail.<br />
// if its above other stats in @CREATE it will act weirdly and sometimes turn the CHAR into a gold coin.<br />
<br />
[CHARDEF c_ettinsprint]<br />
ID=c_ettin<br />
NAME=RUNFAST<br />
SOUND=367<br />
ICON=i_pet_ettin<br />
CAN=mt_walk|mt_usehands<br />
<br />
DAM=7,17<br />
ARMOR=38<br />
HEIGHT=32<br />
<br />
CATEGORY=111<br />
SUBSECTION=Giants<br />
DESCRIPTION=Ettin<br />
<br />
ON=@Create<br />
     NPC=brain_monster <br />
     <br />
     FAME=3000<br />
     KARMA=-3000<br />
     <br />
     STR={136, 165}<br />
     DEX={56, 75}<br />
     INT={31, 55}<br />
     MAXHITS={82, 99}<br />
     <br />
     RESPHYSICAL={35, 40}<br />
     RESFIRE={15, 25}<br />
     RESCOLD={40, 50}<br />
     RESPOISON={15, 25}<br />
     RESENERGY={15, 25}<br />
     <br />
     MAGICRESISTANCE={40.1, 55.0}<br />
     TACTICS={50.1, 70.0}<br />
     WRESTLING={50.1, 60.0}<br />
     tag.override.movedelay 300         // always at bottom of @CREATE]]></description>
			<content:encoded><![CDATA[// Gathered from Discord<br />
// tag.override.movedelay (1=is too fast) (300=sprint) (1000=slow)<br />
// tag.override.movedelay needs ot be put at the bottom of @CREATE<br />
// PUT in @CREATE of everything you want to move faster than snail.<br />
// if its above other stats in @CREATE it will act weirdly and sometimes turn the CHAR into a gold coin.<br />
<br />
[CHARDEF c_ettinsprint]<br />
ID=c_ettin<br />
NAME=RUNFAST<br />
SOUND=367<br />
ICON=i_pet_ettin<br />
CAN=mt_walk|mt_usehands<br />
<br />
DAM=7,17<br />
ARMOR=38<br />
HEIGHT=32<br />
<br />
CATEGORY=111<br />
SUBSECTION=Giants<br />
DESCRIPTION=Ettin<br />
<br />
ON=@Create<br />
     NPC=brain_monster <br />
     <br />
     FAME=3000<br />
     KARMA=-3000<br />
     <br />
     STR={136, 165}<br />
     DEX={56, 75}<br />
     INT={31, 55}<br />
     MAXHITS={82, 99}<br />
     <br />
     RESPHYSICAL={35, 40}<br />
     RESFIRE={15, 25}<br />
     RESCOLD={40, 50}<br />
     RESPOISON={15, 25}<br />
     RESENERGY={15, 25}<br />
     <br />
     MAGICRESISTANCE={40.1, 55.0}<br />
     TACTICS={50.1, 70.0}<br />
     WRESTLING={50.1, 60.0}<br />
     tag.override.movedelay 300         // always at bottom of @CREATE]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Crit Hit]]></title>
			<link>https://forum.spherecommunity.net/Thread-Crit-Hit</link>
			<pubDate>Sat, 27 Aug 2022 23:48:32 +0200</pubDate>
			<guid isPermaLink="false">https://forum.spherecommunity.net/Thread-Crit-Hit</guid>
			<description><![CDATA[// Gathered from Discord<br />
// lightning punch<br />
// EFFECT type, item_id, speed, loop, explode, color, rendermode<br />
<br />
[events e_hit_lightning]<br />
on=@hit<br />
src.Effect=1,03709,6,15,1<br />
src.sound=1309     // lightning strike<br />
if rand(100) &lt;= 2  // 2% chance<br />
    src.damage 50 &lt;def.dam_god&gt; &lt;uid&gt;  // true damage<br />
    src.effect 1,03709,6,15,1<br />
    src.sound=756     // electricity<br />
    SAYU Por Ort Grav<br />
endif]]></description>
			<content:encoded><![CDATA[// Gathered from Discord<br />
// lightning punch<br />
// EFFECT type, item_id, speed, loop, explode, color, rendermode<br />
<br />
[events e_hit_lightning]<br />
on=@hit<br />
src.Effect=1,03709,6,15,1<br />
src.sound=1309     // lightning strike<br />
if rand(100) &lt;= 2  // 2% chance<br />
    src.damage 50 &lt;def.dam_god&gt; &lt;uid&gt;  // true damage<br />
    src.effect 1,03709,6,15,1<br />
    src.sound=756     // electricity<br />
    SAYU Por Ort Grav<br />
endif]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[SERV.LOG debugging help]]></title>
			<link>https://forum.spherecommunity.net/Thread-SERV-LOG-debugging-help</link>
			<pubDate>Sat, 27 Aug 2022 23:43:35 +0200</pubDate>
			<guid isPermaLink="false">https://forum.spherecommunity.net/Thread-SERV-LOG-debugging-help</guid>
			<description><![CDATA[// Gathered from Discord<br />
// Add these events to your Sphere.ini Events /////////<br />
// EventsPlayer=e_combat_stuff<br />
<br />
[EVENTS e_combat_stuff]<br />
ON=@Hit<br />
    SERV.LOG &lt;NAME&gt; HAVE JUST HIT &lt;SRC.NAME&gt;<br />
    IF (&lt;WEAPON&gt;)<br />
        SERV.LOG A WEAPON WAS USED: &lt;WEAPON.NAME&gt;<br />
        SERV.LOG &lt;WEAPON.NAME&gt;'S DAMAGE IS &lt;WEAPON.DAM.LO&gt; - &lt;WEAPON.DAM.HI&gt;<br />
    ELSE<br />
        SERV.LOG NO WEAPON WAS USED.<br />
        SERV.LOG &lt;NAME&gt;'S DAMAGE IS &lt;DAM&gt;<br />
    ENDIF<br />
    <br />
    SERV.LOG DAMAGE STARTED AS &lt;ARGN1&gt;<br />
    <br />
    SERV.LOG THE SKILL USED IN THIS ATTACK IS &lt;ACTION&gt;<br />
    IF (&lt;ACTION&gt; == WRESTLING) || (&lt;ACTION&gt; == MACEFIGHTING)<br />
        ARGN1 = &lt;EVAL &lt;ARGN1&gt; + (&lt;STR&gt;/8)&gt; //APPLY YOUR FORMULA HERE<br />
    <br />
    ELIF (&lt;ACTION&gt; == ARCHERY) || (&lt;ACTION&gt; == FENCING)<br />
        ARGN1 = &lt;EVAL &lt;ARGN1&gt; + (&lt;DEX&gt;/8)&gt;<br />
    <br />
    ELIF (&lt;ACTION&gt; == SWORDSMANSHIP)<br />
        ARGN1 = &lt;EVAL &lt;ARGN1&gt; + (&lt;DEX&gt;/16) + (&lt;STR&gt;/16)&gt;<br />
    <br />
    ENDIF<br />
    <br />
    SERV.LOG DAMAGE AFTER STATS BONUS ACCORDING TO THE SKILL IS &lt;ARGN1&gt;<br />
    <br />
    IF (&lt;SRC.ISPLAYER&gt;) //PLAYER HITS ANOTHER PLAYER<br />
        SERV.LOG THE ARMOR OF THE DEFENDANT IS &lt;SRC.ARMOR&gt;<br />
        LOCAL.DAMAGE_REDUCTION = &lt;EVAL &lt;SRC.ARMOR&gt;/20&gt; //APPLY YOUR FORMULA HERE<br />
        <br />
    ELSE //PLAYER HITS A NPC<br />
        SERV.LOG THE ARMOR OF THE DEFENDANT IS &lt;SRC.AC&gt;<br />
        LOCAL.DAMAGE_REDUCTION = &lt;EVAL &lt;SRC.AC&gt;/20&gt; //APPLY YOUR FORMULA HERE<br />
    <br />
    ENDIF<br />
    ARGN1 -= &lt;LOCAL.DAMAGE_REDUCTION&gt;<br />
    SERV.LOG AFTER DAMAGE REDUCTION OF &lt;LOCAL.DAMAGE_REDUCTION&gt;, DAMAGE IS &lt;ARGN1&gt;]]></description>
			<content:encoded><![CDATA[// Gathered from Discord<br />
// Add these events to your Sphere.ini Events /////////<br />
// EventsPlayer=e_combat_stuff<br />
<br />
[EVENTS e_combat_stuff]<br />
ON=@Hit<br />
    SERV.LOG &lt;NAME&gt; HAVE JUST HIT &lt;SRC.NAME&gt;<br />
    IF (&lt;WEAPON&gt;)<br />
        SERV.LOG A WEAPON WAS USED: &lt;WEAPON.NAME&gt;<br />
        SERV.LOG &lt;WEAPON.NAME&gt;'S DAMAGE IS &lt;WEAPON.DAM.LO&gt; - &lt;WEAPON.DAM.HI&gt;<br />
    ELSE<br />
        SERV.LOG NO WEAPON WAS USED.<br />
        SERV.LOG &lt;NAME&gt;'S DAMAGE IS &lt;DAM&gt;<br />
    ENDIF<br />
    <br />
    SERV.LOG DAMAGE STARTED AS &lt;ARGN1&gt;<br />
    <br />
    SERV.LOG THE SKILL USED IN THIS ATTACK IS &lt;ACTION&gt;<br />
    IF (&lt;ACTION&gt; == WRESTLING) || (&lt;ACTION&gt; == MACEFIGHTING)<br />
        ARGN1 = &lt;EVAL &lt;ARGN1&gt; + (&lt;STR&gt;/8)&gt; //APPLY YOUR FORMULA HERE<br />
    <br />
    ELIF (&lt;ACTION&gt; == ARCHERY) || (&lt;ACTION&gt; == FENCING)<br />
        ARGN1 = &lt;EVAL &lt;ARGN1&gt; + (&lt;DEX&gt;/8)&gt;<br />
    <br />
    ELIF (&lt;ACTION&gt; == SWORDSMANSHIP)<br />
        ARGN1 = &lt;EVAL &lt;ARGN1&gt; + (&lt;DEX&gt;/16) + (&lt;STR&gt;/16)&gt;<br />
    <br />
    ENDIF<br />
    <br />
    SERV.LOG DAMAGE AFTER STATS BONUS ACCORDING TO THE SKILL IS &lt;ARGN1&gt;<br />
    <br />
    IF (&lt;SRC.ISPLAYER&gt;) //PLAYER HITS ANOTHER PLAYER<br />
        SERV.LOG THE ARMOR OF THE DEFENDANT IS &lt;SRC.ARMOR&gt;<br />
        LOCAL.DAMAGE_REDUCTION = &lt;EVAL &lt;SRC.ARMOR&gt;/20&gt; //APPLY YOUR FORMULA HERE<br />
        <br />
    ELSE //PLAYER HITS A NPC<br />
        SERV.LOG THE ARMOR OF THE DEFENDANT IS &lt;SRC.AC&gt;<br />
        LOCAL.DAMAGE_REDUCTION = &lt;EVAL &lt;SRC.AC&gt;/20&gt; //APPLY YOUR FORMULA HERE<br />
    <br />
    ENDIF<br />
    ARGN1 -= &lt;LOCAL.DAMAGE_REDUCTION&gt;<br />
    SERV.LOG AFTER DAMAGE REDUCTION OF &lt;LOCAL.DAMAGE_REDUCTION&gt;, DAMAGE IS &lt;ARGN1&gt;]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Full spellbook]]></title>
			<link>https://forum.spherecommunity.net/Thread-Full-spellbook</link>
			<pubDate>Sat, 27 Aug 2022 23:38:12 +0200</pubDate>
			<guid isPermaLink="false">https://forum.spherecommunity.net/Thread-Full-spellbook</guid>
			<description><![CDATA[// Spellbook from Discord.<br />
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////<br />
// full spellbook:<br />
// .add i_spellbook<br />
// .xmore1=0ffffffff  // spells for first 4 spell circles<br />
// .xmore2=0ffffffff  // spells for the last 4 spell circles<br />
<br />
[FUNCTION fullspellbook]<br />
serv.newitem i_spellbook<br />
NEW.MORE1=0ffffffff<br />
NEW.MORE2=0ffffffff<br />
NEW.attr=attr_magic<br />
NEW.attr=attr_newbie<br />
NEW.BOUNCE<br />
// NEW.attr=attr_magic|attr_newbie<br />
<br />
[itemdef i_fullspellbook]<br />
id=i_spellbook<br />
name=Full Spellbook<br />
type=t_spellbook<br />
value=0<br />
CATEGORY=111<br />
SUBSECTION=Book<br />
DESCRIPTION=Full Spellbook<br />
<br />
on=@create<br />
name=Spellbook<br />
attr=attr_magic|attr_newbie<br />
more1=0ffffffff<br />
more2=0ffffffff<br />
<br />
<br />
//////<br />
also<br />
NEW.attr=attr_magic|attr_newbie<br />
NEW.addspell s_lightning]]></description>
			<content:encoded><![CDATA[// Spellbook from Discord.<br />
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////<br />
// full spellbook:<br />
// .add i_spellbook<br />
// .xmore1=0ffffffff  // spells for first 4 spell circles<br />
// .xmore2=0ffffffff  // spells for the last 4 spell circles<br />
<br />
[FUNCTION fullspellbook]<br />
serv.newitem i_spellbook<br />
NEW.MORE1=0ffffffff<br />
NEW.MORE2=0ffffffff<br />
NEW.attr=attr_magic<br />
NEW.attr=attr_newbie<br />
NEW.BOUNCE<br />
// NEW.attr=attr_magic|attr_newbie<br />
<br />
[itemdef i_fullspellbook]<br />
id=i_spellbook<br />
name=Full Spellbook<br />
type=t_spellbook<br />
value=0<br />
CATEGORY=111<br />
SUBSECTION=Book<br />
DESCRIPTION=Full Spellbook<br />
<br />
on=@create<br />
name=Spellbook<br />
attr=attr_magic|attr_newbie<br />
more1=0ffffffff<br />
more2=0ffffffff<br />
<br />
<br />
//////<br />
also<br />
NEW.attr=attr_magic|attr_newbie<br />
NEW.addspell s_lightning]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Durability]]></title>
			<link>https://forum.spherecommunity.net/Thread-Durability</link>
			<pubDate>Sat, 27 Aug 2022 23:20:43 +0200</pubDate>
			<guid isPermaLink="false">https://forum.spherecommunity.net/Thread-Durability</guid>
			<description><![CDATA[All the methods from discord on Durability removing.<br />
<br />
//////////////////////////////////////////////////////////////<br />
// DURABILITY DISABLE //////////////////////////////////<br />
// Add these events to your Sphere.ini Events /////////<br />
// Events related to all npc<br />
// EventsPet=e_DURABILITY_FIX_NPC<br />
//<br />
// Events related to all players<br />
// EventsPlayer=e_DURABILITY_FIX_PLAYER<br />
<br />
<br />
[EVENTS e_DURABILITY_FIX_NPC]<br />
ON=@Hit<br />
local.ItemDamageChance = 0<br />
ON=@GetHit<br />
local.ItemDamageChance = 0<br />
ON=@HITPARRY<br />
LOCAL.ITEMPARRYDAMAGECHANCE= 0  // 0 % chance for shield to take damage when parry<br />
<br />
[EVENTS e_DURABILITY_FIX_PLAYER]<br />
ON=@HIT<br />
local.ItemDamageChance= 0  // 0 % chance to take damage when hitting<br />
ON=@GETHIT<br />
local.ItemDamageChance= 0  // 0 % chance to take damage when hit<br />
ON=@HITPARRY<br />
LOCAL.ITEMPARRYDAMAGECHANCE= 0  // 0 % chance for shield to take damage when parry<br />
<br />
// DIDNT WORK //<br />
//ON=@Damage <br />
//Shield is considered an armor<br />
//if ((&lt;isweapon&gt;) || ( &lt;isarmor&gt;) )<br />
//   argn1 -=  (( &lt;argn1&gt; * 100) / 100 ) //Reduce damage by 100% // only change the first 100 on the left<br />
//endif<br />
//<br />
//ON=@ItemDamage // the character damaged something<br />
//  IF (&lt;ACT.TYPE&gt; == T_SHIELD)  //that something is a shield<br />
//    RETURN 1  //prevent the damage<br />
//  ENDIF]]></description>
			<content:encoded><![CDATA[All the methods from discord on Durability removing.<br />
<br />
//////////////////////////////////////////////////////////////<br />
// DURABILITY DISABLE //////////////////////////////////<br />
// Add these events to your Sphere.ini Events /////////<br />
// Events related to all npc<br />
// EventsPet=e_DURABILITY_FIX_NPC<br />
//<br />
// Events related to all players<br />
// EventsPlayer=e_DURABILITY_FIX_PLAYER<br />
<br />
<br />
[EVENTS e_DURABILITY_FIX_NPC]<br />
ON=@Hit<br />
local.ItemDamageChance = 0<br />
ON=@GetHit<br />
local.ItemDamageChance = 0<br />
ON=@HITPARRY<br />
LOCAL.ITEMPARRYDAMAGECHANCE= 0  // 0 % chance for shield to take damage when parry<br />
<br />
[EVENTS e_DURABILITY_FIX_PLAYER]<br />
ON=@HIT<br />
local.ItemDamageChance= 0  // 0 % chance to take damage when hitting<br />
ON=@GETHIT<br />
local.ItemDamageChance= 0  // 0 % chance to take damage when hit<br />
ON=@HITPARRY<br />
LOCAL.ITEMPARRYDAMAGECHANCE= 0  // 0 % chance for shield to take damage when parry<br />
<br />
// DIDNT WORK //<br />
//ON=@Damage <br />
//Shield is considered an armor<br />
//if ((&lt;isweapon&gt;) || ( &lt;isarmor&gt;) )<br />
//   argn1 -=  (( &lt;argn1&gt; * 100) / 100 ) //Reduce damage by 100% // only change the first 100 on the left<br />
//endif<br />
//<br />
//ON=@ItemDamage // the character damaged something<br />
//  IF (&lt;ACT.TYPE&gt; == T_SHIELD)  //that something is a shield<br />
//    RETURN 1  //prevent the damage<br />
//  ENDIF]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Spellbars for all magery]]></title>
			<link>https://forum.spherecommunity.net/Thread-Spellbars-for-all-magery</link>
			<pubDate>Fri, 14 Jan 2022 11:23:02 +0100</pubDate>
			<guid isPermaLink="false">https://forum.spherecommunity.net/Thread-Spellbars-for-all-magery</guid>
			<description><![CDATA[Spellbars for Basic Magery, Bards, Bushido, Mysticism, Necromancy, Ninjitsu and Spellweaving. According to the original script by the author Alaric (cz), he modified and expanded Golfin (eranova.cz).<br />
<br />
Version sphere: <span style="font-weight: bold;">SphereSvrX</span> <br />
<br />
The original script can be found here: <a href="https://forum.spherecommunity.net/Thread-Spellbar" target="_blank">https://forum.spherecommunity.net/Thread-Spellbar</a><br />
<span style="font-weight: bold;">Download for all magery here:</span> <a href="https://forum.spherecommunity.net/sshare.php?srt=1&amp;uid=62446" target="_blank">https://forum.spherecommunity.net/sshare...&uid=62446</a>]]></description>
			<content:encoded><![CDATA[Spellbars for Basic Magery, Bards, Bushido, Mysticism, Necromancy, Ninjitsu and Spellweaving. According to the original script by the author Alaric (cz), he modified and expanded Golfin (eranova.cz).<br />
<br />
Version sphere: <span style="font-weight: bold;">SphereSvrX</span> <br />
<br />
The original script can be found here: <a href="https://forum.spherecommunity.net/Thread-Spellbar" target="_blank">https://forum.spherecommunity.net/Thread-Spellbar</a><br />
<span style="font-weight: bold;">Download for all magery here:</span> <a href="https://forum.spherecommunity.net/sshare.php?srt=1&amp;uid=62446" target="_blank">https://forum.spherecommunity.net/sshare...&uid=62446</a>]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[New World Generator on the X script Pack]]></title>
			<link>https://forum.spherecommunity.net/Thread-New-World-Generator-on-the-X-script-Pack</link>
			<pubDate>Tue, 07 Sep 2021 18:29:35 +0200</pubDate>
			<guid isPermaLink="false">https://forum.spherecommunity.net/Thread-New-World-Generator-on-the-X-script-Pack</guid>
			<description><![CDATA[The moment all new admin was waiting is come! on the <a href="https://github.com/Sphereserver/Scripts-X" target="_blank">X script pack</a>, you can now generate a complete world in 30 sec.<br />
<br />
After starting a fresh shard and using the standard map, you simply have to add these 2 items:<br />
i_world_decorator and i_world_spawner.<br />
<br />

<br /><img src="images/attachtypes/image.png" border="0" alt=".jpg" />&nbsp;&nbsp;<a href="attachment.php?aid=488" target="_blank">World Generator.jpg</a> (Size: 185.47 KB / Downloads: 59)
<br />
<br />
You will be able to generate <br />
- decoration<br />
- door<br />
- Sign<br />
- NPC<br />
- Fill bookcase with random story book<br />
- Dungeon treasure chest<br />
<br />
Thx to Soulless for his share.<br />
<br />
Each day X script pack is better. The goal is to provide an easy set up pack for new admin. Setting up a shard should be easy and fast.]]></description>
			<content:encoded><![CDATA[The moment all new admin was waiting is come! on the <a href="https://github.com/Sphereserver/Scripts-X" target="_blank">X script pack</a>, you can now generate a complete world in 30 sec.<br />
<br />
After starting a fresh shard and using the standard map, you simply have to add these 2 items:<br />
i_world_decorator and i_world_spawner.<br />
<br />

<br /><img src="images/attachtypes/image.png" border="0" alt=".jpg" />&nbsp;&nbsp;<a href="attachment.php?aid=488" target="_blank">World Generator.jpg</a> (Size: 185.47 KB / Downloads: 59)
<br />
<br />
You will be able to generate <br />
- decoration<br />
- door<br />
- Sign<br />
- NPC<br />
- Fill bookcase with random story book<br />
- Dungeon treasure chest<br />
<br />
Thx to Soulless for his share.<br />
<br />
Each day X script pack is better. The goal is to provide an easy set up pack for new admin. Setting up a shard should be easy and fast.]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Multilanguage Admin]]></title>
			<link>https://forum.spherecommunity.net/Thread-Multilanguage-Admin</link>
			<pubDate>Fri, 02 Oct 2020 18:41:52 +0200</pubDate>
			<guid isPermaLink="false">https://forum.spherecommunity.net/Thread-Multilanguage-Admin</guid>
			<description><![CDATA[I have gathered from different versions of sphere and forum several useful features into the admin console. First, I have to say, it's not my job. I just put together the finished scripts and edited them. I used what has already been written.<br />
More about this source site: <a href="http://eranova.cz/sphere/multilanguage-admin" target="_blank">Multilanguage Admin</a>]]></description>
			<content:encoded><![CDATA[I have gathered from different versions of sphere and forum several useful features into the admin console. First, I have to say, it's not my job. I just put together the finished scripts and edited them. I used what has already been written.<br />
More about this source site: <a href="http://eranova.cz/sphere/multilanguage-admin" target="_blank">Multilanguage Admin</a>]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[In-Game Dialog Creator]]></title>
			<link>https://forum.spherecommunity.net/Thread-In-Game-Dialog-Creator</link>
			<pubDate>Tue, 07 Apr 2020 19:09:45 +0200</pubDate>
			<guid isPermaLink="false">https://forum.spherecommunity.net/Thread-In-Game-Dialog-Creator</guid>
			<description><![CDATA[In-Game Dialog Creator is for creating dialog with a preview in game. <span style="font-weight: bold;">i_stone_dialog</span> is the item that every tags saves on, and also the button on the right bottom corner let you to extract your dialog as a code.<br />
<br />
Every properties could have another properties if both connected, like croppedtext and htmlgump or textentry and textentrylimited. Also you can set radio/checkbox status.<br />
<br />
For the extracting as a code, you need to add 080 (OF_FileCommands) to the optionFlags in sphere.ini.<br />
<br />
<span style="font-weight: bold;">Note:</span> That code, scripted on X1 version and with the latest (UO Classics) ultima online version, so there could be some issues on older versions. (In the future, I'm thinking to add client/sphere support and more possible props to make everything easier)<br />
<br />
While you are creating a dialog, there is a no limit for anything, but everybutton has 1000 possible commands, so that means you can have only 999 times of any props same time in a dialog. (For example, 999 times button, 999 times htmlgump, etc...) so basically it's limitless. Also you can move items before or after from the another item, if you needed. Tools are totally different dialog so you can move tools dialog without touching your dialog preview. Also you can duplicate any item from the list to create similar item.<br />
<br />
Anyway no need to talk too much, I know there is a some programs that makes this easier, but I am not forcing you to use it, so please no messages about the programs.<br />
<br />
Here is some images that explain the system better;<br />
<div><div class="spoiler_header">Spoiler <a href="javascript:void(0);" onclick="javascript:if(parentNode.parentNode.getElementsByTagName('div')[1].style.display=='block'){parentNode.parentNode.getElementsByTagName('div')[1].style.display='none';this.innerHTML='(Click to View)';}else {parentNode.parentNode.getElementsByTagName('div')[1].style.display='block';this.innerHTML='(Click to Hide)';}">(Click to View)</a></div><div class="spoiler_body" style="display: none;">
<img src="https://www.resimag.com/p1/8d3d9cc141a.png" border="0" alt="[Image: 8d3d9cc141a.png]" /><br />
<img src="https://www.resimag.com/p1/9ba71ee39b1.png" border="0" alt="[Image: 9ba71ee39b1.png]" /><br />
<img src="https://www.resimag.com/p1/fefecd5ff18.png" border="0" alt="[Image: fefecd5ff18.png]" /></div></div>
Example output from the images;<br />
<div><div class="spoiler_header">Spoiler <a href="javascript:void(0);" onclick="javascript:if(parentNode.parentNode.getElementsByTagName('div')[1].style.display=='block'){parentNode.parentNode.getElementsByTagName('div')[1].style.display='none';this.innerHTML='(Click to View)';}else {parentNode.parentNode.getElementsByTagName('div')[1].style.display='block';this.innerHTML='(Click to Hide)';}">(Click to View)</a></div><div class="spoiler_body" style="display: none;"><div class="codeblock">
<div class="title">Code:<br />
</div><div class="body" dir="ltr"><code>VERSION=X1<br />
<br />
[DIALOG d_bonus]<br />
0, 0<br />
RESIZEPIC 0 0 9200 500 490 // d_bonus<br />
RESIZEPIC 10 10 3000 480 470 // background<br />
RESIZEPIC 15 15 3000 470 25 // title<br />
DHTMLGUMP 20 20 460 20 0 0 &lt;def.center&gt;Bonus // title_text<br />
RESIZEPIC 15 45 3000 235 430 // bonus<br />
RESIZEPIC 255 45 3000 230 150 // stats<br />
BUTTON 22 53 2510 55 1 0 1 // bonus_1<br />
DCROPPEDTEXT 40 53 200 20 0 WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW // bonus_1_text<br />
BUTTON 22 73 2510 55 1 0 2 // bonus_2<br />
DHTMLGUMP 40 73 200 20 0 0 Bonus 2 // bonus_2_text<br />
BUTTON 22 233 2510 55 1 0 10 // bonus_10<br />
DHTMLGUMP 40 233 200 20 0 0 Bonus 10 // bonus_10_text<br />
BUTTON 22 453 2510 55 1 0 21 // bonus_21<br />
DHTMLGUMP 40 453 200 20 0 0 Bonus 21 // bonus_21_text<br />
DHTMLGUMP 255 200 230 275 1 1 // description<br />
DTEXT 260 50 35 STR: &lt;SRC.STR&gt; // str<br />
DTEXT 260 70 67 DEX: &lt;SRC.DEX&gt; // dex<br />
GUMPPIC 215 80 1651 1152 // gumppic_18_copy<br />
GUMPPIC 215 110 1651 1153 // gumppic_18_copy<br />
GUMPPIC 215 140 1651 1152 // gumppic_18_copy_copy<br />
RADIO 260 100 2360 2361 0 1 // radio_22_sel_1<br />
RADIO 260 120 2360 2361 1 1 // radio_22_sel2<br />
RESIZEPIC 260 135 3000 220 25 // textentry_bg<br />
DTEXTENTRYLIMITED 265 140 210 20 0 24 25 // textentry_24<br />
<br />
[DIALOG d_bonus BUTTON]<br />
On=1 // bonus_1<br />
On=2 // bonus_2<br />
On=10 // bonus_10<br />
On=21 // bonus_21</code></div></div>
</div></div>
<span style="font-weight: bold;">The script is added as an attachment.</span><br />

<br /><img src="images/attachtypes/txt.png" border="0" alt=".scp" />&nbsp;&nbsp;<a href="attachment.php?aid=480" target="_blank">sphere_system_dialogs.scp</a> (Size: 34.87 KB / Downloads: 35)
]]></description>
			<content:encoded><![CDATA[In-Game Dialog Creator is for creating dialog with a preview in game. <span style="font-weight: bold;">i_stone_dialog</span> is the item that every tags saves on, and also the button on the right bottom corner let you to extract your dialog as a code.<br />
<br />
Every properties could have another properties if both connected, like croppedtext and htmlgump or textentry and textentrylimited. Also you can set radio/checkbox status.<br />
<br />
For the extracting as a code, you need to add 080 (OF_FileCommands) to the optionFlags in sphere.ini.<br />
<br />
<span style="font-weight: bold;">Note:</span> That code, scripted on X1 version and with the latest (UO Classics) ultima online version, so there could be some issues on older versions. (In the future, I'm thinking to add client/sphere support and more possible props to make everything easier)<br />
<br />
While you are creating a dialog, there is a no limit for anything, but everybutton has 1000 possible commands, so that means you can have only 999 times of any props same time in a dialog. (For example, 999 times button, 999 times htmlgump, etc...) so basically it's limitless. Also you can move items before or after from the another item, if you needed. Tools are totally different dialog so you can move tools dialog without touching your dialog preview. Also you can duplicate any item from the list to create similar item.<br />
<br />
Anyway no need to talk too much, I know there is a some programs that makes this easier, but I am not forcing you to use it, so please no messages about the programs.<br />
<br />
Here is some images that explain the system better;<br />
<div><div class="spoiler_header">Spoiler <a href="javascript:void(0);" onclick="javascript:if(parentNode.parentNode.getElementsByTagName('div')[1].style.display=='block'){parentNode.parentNode.getElementsByTagName('div')[1].style.display='none';this.innerHTML='(Click to View)';}else {parentNode.parentNode.getElementsByTagName('div')[1].style.display='block';this.innerHTML='(Click to Hide)';}">(Click to View)</a></div><div class="spoiler_body" style="display: none;">
<img src="https://www.resimag.com/p1/8d3d9cc141a.png" border="0" alt="[Image: 8d3d9cc141a.png]" /><br />
<img src="https://www.resimag.com/p1/9ba71ee39b1.png" border="0" alt="[Image: 9ba71ee39b1.png]" /><br />
<img src="https://www.resimag.com/p1/fefecd5ff18.png" border="0" alt="[Image: fefecd5ff18.png]" /></div></div>
Example output from the images;<br />
<div><div class="spoiler_header">Spoiler <a href="javascript:void(0);" onclick="javascript:if(parentNode.parentNode.getElementsByTagName('div')[1].style.display=='block'){parentNode.parentNode.getElementsByTagName('div')[1].style.display='none';this.innerHTML='(Click to View)';}else {parentNode.parentNode.getElementsByTagName('div')[1].style.display='block';this.innerHTML='(Click to Hide)';}">(Click to View)</a></div><div class="spoiler_body" style="display: none;"><div class="codeblock">
<div class="title">Code:<br />
</div><div class="body" dir="ltr"><code>VERSION=X1<br />
<br />
[DIALOG d_bonus]<br />
0, 0<br />
RESIZEPIC 0 0 9200 500 490 // d_bonus<br />
RESIZEPIC 10 10 3000 480 470 // background<br />
RESIZEPIC 15 15 3000 470 25 // title<br />
DHTMLGUMP 20 20 460 20 0 0 &lt;def.center&gt;Bonus // title_text<br />
RESIZEPIC 15 45 3000 235 430 // bonus<br />
RESIZEPIC 255 45 3000 230 150 // stats<br />
BUTTON 22 53 2510 55 1 0 1 // bonus_1<br />
DCROPPEDTEXT 40 53 200 20 0 WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW // bonus_1_text<br />
BUTTON 22 73 2510 55 1 0 2 // bonus_2<br />
DHTMLGUMP 40 73 200 20 0 0 Bonus 2 // bonus_2_text<br />
BUTTON 22 233 2510 55 1 0 10 // bonus_10<br />
DHTMLGUMP 40 233 200 20 0 0 Bonus 10 // bonus_10_text<br />
BUTTON 22 453 2510 55 1 0 21 // bonus_21<br />
DHTMLGUMP 40 453 200 20 0 0 Bonus 21 // bonus_21_text<br />
DHTMLGUMP 255 200 230 275 1 1 // description<br />
DTEXT 260 50 35 STR: &lt;SRC.STR&gt; // str<br />
DTEXT 260 70 67 DEX: &lt;SRC.DEX&gt; // dex<br />
GUMPPIC 215 80 1651 1152 // gumppic_18_copy<br />
GUMPPIC 215 110 1651 1153 // gumppic_18_copy<br />
GUMPPIC 215 140 1651 1152 // gumppic_18_copy_copy<br />
RADIO 260 100 2360 2361 0 1 // radio_22_sel_1<br />
RADIO 260 120 2360 2361 1 1 // radio_22_sel2<br />
RESIZEPIC 260 135 3000 220 25 // textentry_bg<br />
DTEXTENTRYLIMITED 265 140 210 20 0 24 25 // textentry_24<br />
<br />
[DIALOG d_bonus BUTTON]<br />
On=1 // bonus_1<br />
On=2 // bonus_2<br />
On=10 // bonus_10<br />
On=21 // bonus_21</code></div></div>
</div></div>
<span style="font-weight: bold;">The script is added as an attachment.</span><br />

<br /><img src="images/attachtypes/txt.png" border="0" alt=".scp" />&nbsp;&nbsp;<a href="attachment.php?aid=480" target="_blank">sphere_system_dialogs.scp</a> (Size: 34.87 KB / Downloads: 35)
]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Items generator  [Weaps & Armor]]]></title>
			<link>https://forum.spherecommunity.net/Thread-Items-generator-Weaps-Armor</link>
			<pubDate>Mon, 06 Apr 2020 22:48:08 +0200</pubDate>
			<guid isPermaLink="false">https://forum.spherecommunity.net/Thread-Items-generator-Weaps-Armor</guid>
			<description><![CDATA[This bunch of code generates weapons and armor according to the tables you set.<br />
<br />
Instructions are included in the readme file.<br />
Tables are in the tables folder.<br />
It is pretty easy to use.<br />
<br />
Enjoy!<br />
<a href="https://github.com/JulianUO/SphereX-ScriptsVault/tree/master/ItemGenerator" target="_blank">https://github.com/JulianUO/SphereX-Scri...mGenerator</a>]]></description>
			<content:encoded><![CDATA[This bunch of code generates weapons and armor according to the tables you set.<br />
<br />
Instructions are included in the readme file.<br />
Tables are in the tables folder.<br />
It is pretty easy to use.<br />
<br />
Enjoy!<br />
<a href="https://github.com/JulianUO/SphereX-ScriptsVault/tree/master/ItemGenerator" target="_blank">https://github.com/JulianUO/SphereX-Scri...mGenerator</a>]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Real Life Timer]]></title>
			<link>https://forum.spherecommunity.net/Thread-Real-Life-Timer</link>
			<pubDate>Fri, 03 Apr 2020 21:08:39 +0200</pubDate>
			<guid isPermaLink="false">https://forum.spherecommunity.net/Thread-Real-Life-Timer</guid>
			<description><![CDATA[Hi,<br />
I didn't find an exact title for this, but anyway, this is a timer that is synced with your real life clock, it fires once per hour and you can configure specific functions for each day at a specific hour. Pretty simple actually. The clock will start automatically when the server is launched, you don't have to do anything, if anything happens (it gets deleted or something), a check is made at every world save. And last, if it gets out of sync, at each @Timer it will get synced again for the next hour. Every event is logged.<br />
<br />
Special thanks for the guys (Soulless and Xun) in Discord who gave me the idea to use rTime functions.<br />
Which I didn't know it existed <img src="images/smilies/lol.gif" style="vertical-align: middle;" border="0" alt="Lol" title="Lol" /><br />
<br />
<span style="font-weight: bold;">NOTES: </span><br />
It will only work on o'clock timers. You can fire it at 16.00 but not at 16.15.<br />
Functions are fired on SERV, not on the object or anything else.<br />
Days start a 0 = Sunday, 1 = Monday and so on...<br />
Defname is provided with examples.<br />
<span style="font-weight: bold;">YOU NEED TO CONFIGURE YOUR TIME ZONE CORRECTLY!</span><br />
<br />
<br />
Example defname:<br />
<div class="codeblock">
<div class="title">Code:<br />
</div><div class="body" dir="ltr"><code>[DEFNAME dWorldClockFunctions]<br />
WorldClock_0_20&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"f_AutomatedPVP" // Will fire on sunday at 20hs<br />
WorldClock_5_16&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"f_AutomatedCTF" // Will fire on friday at 16hs</code></div></div>
<br />
Item for timer:<br />
<div class="codeblock">
<div class="title">Code:<br />
</div><div class="body" dir="ltr"><code>[ITEMDEF i_WorldClock]<br />
ID=i_gravestone_4<br />
TYPE=t_normal<br />
<br />
ON=@Create<br />
attr = attr_move_never|attr_decay<br />
<br />
ON=@Timer<br />
serv.log @WorldClock: Timer triggered at &lt;serv.rtime.format %T&gt;<br />
local.ToCall = _&lt;serv.rtime.format %w&gt;_&lt;serv.rtime.format %H&gt;<br />
if !&lt;isempty &lt;def.WorldClock&lt;local.ToCall&gt;&gt;&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;serv.&lt;def.WorldClock&lt;local.ToCall&gt;&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;serv.log @WorldClock: Called function &lt;def.WorldClock&lt;local.ToCall&gt;&gt;.<br />
endif<br />
local.WaitToNext = &lt;eval 60 - &lt;serv.rtime.format %M&gt;&gt;<br />
timer = &lt;eval (&lt;local.WaitToNext&gt; * 60) - &lt;serv.rtime.format %S&gt;&gt;<br />
serv.log @WorldClock: Next timer in &lt;eval &lt;timer&gt;/60&gt;:&lt;eval &lt;timer&gt;%60&gt;<br />
return 1</code></div></div>
<br />
<br />
Look for <span style="font-weight: bold;">f_onserver_save</span> function in your default script pack.<br />
Or add it if you don't have one. <br />
Add the following code:<br />
<div class="codeblock">
<div class="title">Code:<br />
</div><div class="body" dir="ltr"><code>if (&lt;uid.&lt;var0.WorldClock&gt;&gt; == 0)<br />
&nbsp;&nbsp;&nbsp;&nbsp;serv.log @WorldClock: TIMER WAS REMOVED! Created new timer.<br />
&nbsp;&nbsp;&nbsp;&nbsp;newitem i_WorldClock<br />
&nbsp;&nbsp;&nbsp;&nbsp;new.p = 11,11<br />
&nbsp;&nbsp;&nbsp;&nbsp;local.WaitToNext = &lt;eval 60 - &lt;serv.rtime.format %M&gt;&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;new.timer = &lt;eval (&lt;local.WaitToNext&gt; * 60) - &lt;serv.rtime.format %S&gt;&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;new.sector.flags = 01<br />
&nbsp;&nbsp;&nbsp;&nbsp;var.WorldClock = &lt;new.uid&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;serv.log @WorldClock: Synced at &lt;serv.rtime.format %T&gt; will trigger in &lt;eval &lt;new.timer&gt; / 60&gt;:&lt;eval &lt;new.timer&gt; % 60&gt; minutes.<br />
endif</code></div></div>
<br />
<br />
Look for <span style="font-weight: bold;">f_onserver_start</span> function. Same as before.<br />
Add the following code:<br />
<div class="codeblock">
<div class="title">Code:<br />
</div><div class="body" dir="ltr"><code>if ((&lt;var0.WorldClock&gt; == 0) || (&lt;uid.&lt;var0.WorldClock&gt;&gt; == 0))<br />
&nbsp;&nbsp;&nbsp;&nbsp;serv.log @WorldClock: Created new timer.<br />
&nbsp;&nbsp;&nbsp;&nbsp;newitem i_WorldClock<br />
&nbsp;&nbsp;&nbsp;&nbsp;new.p = 11,11<br />
&nbsp;&nbsp;&nbsp;&nbsp;local.WaitToNext = &lt;eval 60 - &lt;serv.rtime.format %M&gt;&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;new.timer = &lt;eval (&lt;local.WaitToNext&gt; * 60) - &lt;serv.rtime.format %S&gt;&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;new.sector.flags = 01<br />
&nbsp;&nbsp;&nbsp;&nbsp;var.WorldClock = &lt;new.uid&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;serv.log @WorldClock: Synced at &lt;serv.rtime.format %T&gt; will trigger in &lt;eval &lt;new.timer&gt; / 60&gt;:&lt;eval &lt;new.timer&gt; % 60&gt; minutes.<br />
else<br />
&nbsp;&nbsp;&nbsp;&nbsp;local.WaitToNext = &lt;eval 60 - &lt;serv.rtime.format %M&gt;&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;uid.&lt;var.WorldClock&gt;.timer = &lt;eval (&lt;local.WaitToNext&gt; * 60) - &lt;serv.rtime.format %S&gt;&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;serv.log @WorldClock: Synced at &lt;serv.rtime.format %T&gt; will trigger in &lt;eval &lt;uid.&lt;var.WorldClock&gt;.timer&gt; /60&gt;:&lt;eval &lt;uid.&lt;var.WorldClock&gt;.timer&gt; % 60&gt; minutes.<br />
endif</code></div></div>
]]></description>
			<content:encoded><![CDATA[Hi,<br />
I didn't find an exact title for this, but anyway, this is a timer that is synced with your real life clock, it fires once per hour and you can configure specific functions for each day at a specific hour. Pretty simple actually. The clock will start automatically when the server is launched, you don't have to do anything, if anything happens (it gets deleted or something), a check is made at every world save. And last, if it gets out of sync, at each @Timer it will get synced again for the next hour. Every event is logged.<br />
<br />
Special thanks for the guys (Soulless and Xun) in Discord who gave me the idea to use rTime functions.<br />
Which I didn't know it existed <img src="images/smilies/lol.gif" style="vertical-align: middle;" border="0" alt="Lol" title="Lol" /><br />
<br />
<span style="font-weight: bold;">NOTES: </span><br />
It will only work on o'clock timers. You can fire it at 16.00 but not at 16.15.<br />
Functions are fired on SERV, not on the object or anything else.<br />
Days start a 0 = Sunday, 1 = Monday and so on...<br />
Defname is provided with examples.<br />
<span style="font-weight: bold;">YOU NEED TO CONFIGURE YOUR TIME ZONE CORRECTLY!</span><br />
<br />
<br />
Example defname:<br />
<div class="codeblock">
<div class="title">Code:<br />
</div><div class="body" dir="ltr"><code>[DEFNAME dWorldClockFunctions]<br />
WorldClock_0_20&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"f_AutomatedPVP" // Will fire on sunday at 20hs<br />
WorldClock_5_16&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"f_AutomatedCTF" // Will fire on friday at 16hs</code></div></div>
<br />
Item for timer:<br />
<div class="codeblock">
<div class="title">Code:<br />
</div><div class="body" dir="ltr"><code>[ITEMDEF i_WorldClock]<br />
ID=i_gravestone_4<br />
TYPE=t_normal<br />
<br />
ON=@Create<br />
attr = attr_move_never|attr_decay<br />
<br />
ON=@Timer<br />
serv.log @WorldClock: Timer triggered at &lt;serv.rtime.format %T&gt;<br />
local.ToCall = _&lt;serv.rtime.format %w&gt;_&lt;serv.rtime.format %H&gt;<br />
if !&lt;isempty &lt;def.WorldClock&lt;local.ToCall&gt;&gt;&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;serv.&lt;def.WorldClock&lt;local.ToCall&gt;&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;serv.log @WorldClock: Called function &lt;def.WorldClock&lt;local.ToCall&gt;&gt;.<br />
endif<br />
local.WaitToNext = &lt;eval 60 - &lt;serv.rtime.format %M&gt;&gt;<br />
timer = &lt;eval (&lt;local.WaitToNext&gt; * 60) - &lt;serv.rtime.format %S&gt;&gt;<br />
serv.log @WorldClock: Next timer in &lt;eval &lt;timer&gt;/60&gt;:&lt;eval &lt;timer&gt;%60&gt;<br />
return 1</code></div></div>
<br />
<br />
Look for <span style="font-weight: bold;">f_onserver_save</span> function in your default script pack.<br />
Or add it if you don't have one. <br />
Add the following code:<br />
<div class="codeblock">
<div class="title">Code:<br />
</div><div class="body" dir="ltr"><code>if (&lt;uid.&lt;var0.WorldClock&gt;&gt; == 0)<br />
&nbsp;&nbsp;&nbsp;&nbsp;serv.log @WorldClock: TIMER WAS REMOVED! Created new timer.<br />
&nbsp;&nbsp;&nbsp;&nbsp;newitem i_WorldClock<br />
&nbsp;&nbsp;&nbsp;&nbsp;new.p = 11,11<br />
&nbsp;&nbsp;&nbsp;&nbsp;local.WaitToNext = &lt;eval 60 - &lt;serv.rtime.format %M&gt;&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;new.timer = &lt;eval (&lt;local.WaitToNext&gt; * 60) - &lt;serv.rtime.format %S&gt;&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;new.sector.flags = 01<br />
&nbsp;&nbsp;&nbsp;&nbsp;var.WorldClock = &lt;new.uid&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;serv.log @WorldClock: Synced at &lt;serv.rtime.format %T&gt; will trigger in &lt;eval &lt;new.timer&gt; / 60&gt;:&lt;eval &lt;new.timer&gt; % 60&gt; minutes.<br />
endif</code></div></div>
<br />
<br />
Look for <span style="font-weight: bold;">f_onserver_start</span> function. Same as before.<br />
Add the following code:<br />
<div class="codeblock">
<div class="title">Code:<br />
</div><div class="body" dir="ltr"><code>if ((&lt;var0.WorldClock&gt; == 0) || (&lt;uid.&lt;var0.WorldClock&gt;&gt; == 0))<br />
&nbsp;&nbsp;&nbsp;&nbsp;serv.log @WorldClock: Created new timer.<br />
&nbsp;&nbsp;&nbsp;&nbsp;newitem i_WorldClock<br />
&nbsp;&nbsp;&nbsp;&nbsp;new.p = 11,11<br />
&nbsp;&nbsp;&nbsp;&nbsp;local.WaitToNext = &lt;eval 60 - &lt;serv.rtime.format %M&gt;&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;new.timer = &lt;eval (&lt;local.WaitToNext&gt; * 60) - &lt;serv.rtime.format %S&gt;&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;new.sector.flags = 01<br />
&nbsp;&nbsp;&nbsp;&nbsp;var.WorldClock = &lt;new.uid&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;serv.log @WorldClock: Synced at &lt;serv.rtime.format %T&gt; will trigger in &lt;eval &lt;new.timer&gt; / 60&gt;:&lt;eval &lt;new.timer&gt; % 60&gt; minutes.<br />
else<br />
&nbsp;&nbsp;&nbsp;&nbsp;local.WaitToNext = &lt;eval 60 - &lt;serv.rtime.format %M&gt;&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;uid.&lt;var.WorldClock&gt;.timer = &lt;eval (&lt;local.WaitToNext&gt; * 60) - &lt;serv.rtime.format %S&gt;&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;serv.log @WorldClock: Synced at &lt;serv.rtime.format %T&gt; will trigger in &lt;eval &lt;uid.&lt;var.WorldClock&gt;.timer&gt; /60&gt;:&lt;eval &lt;uid.&lt;var.WorldClock&gt;.timer&gt; % 60&gt; minutes.<br />
endif</code></div></div>
]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Fastest Skill Training]]></title>
			<link>https://forum.spherecommunity.net/Thread-Fastest-Skill-Training</link>
			<pubDate>Mon, 19 Aug 2019 18:15:06 +0200</pubDate>
			<guid isPermaLink="false">https://forum.spherecommunity.net/Thread-Fastest-Skill-Training</guid>
			<description><![CDATA[Hello community.<br />
I apologize in advance that my English is not very, very good.<br />
I've been following this community for so long. I usually watch and read. Except for a few requests.<br />
People still seem to be struggling for something, and this community continues to breathe. This is very pleasing.<br />
Anyway, let's get to the new version. I wish success to everyone who contributed in the new version.<br />
<br />
I think these are the best values for the fast training of skills.<br />
You can modify the @sphere_skills.scp file.<br />
<br />
<span style="font-size: medium;"><span style="font-weight: bold;">Sample</span></span><br />
<div class="codeblock"><div class="title">PHP Code:<br />
</div><div class="body"><div dir="ltr"><code><span style="color: #007700">[</span><span style="color: #0000BB">SKILL&nbsp;40</span><span style="color: #007700">]<br /></span><span style="color: #0000BB">Defname&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">skill_swordsmanship<br />KEY&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">Swordsmanship<br />TITLE&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">Swordsman<br />FLAGS&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">skf_fight<br />STAT_ST&nbsp;R&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">200<br />STAT_DEX&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">200<br />STAT_INT&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">40<br />BONUS_ST&nbsp;R&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">200<br />BONUS_DEX&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">200<br />BONUS_INT&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">0<br />BONUS_STATS&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">200<br />ADV_RATE&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">0.1</span><span style="color: #007700">,</span><span style="color: #0000BB">3.0</span><span style="color: #007700">,</span><span style="color: #0000BB">4.0&nbsp;</span><span style="color: #007700">&lt;&lt;&lt;&nbsp;-----&nbsp;&lt;&lt;&nbsp;<br /></span></code></div></div></div>
]]></description>
			<content:encoded><![CDATA[Hello community.<br />
I apologize in advance that my English is not very, very good.<br />
I've been following this community for so long. I usually watch and read. Except for a few requests.<br />
People still seem to be struggling for something, and this community continues to breathe. This is very pleasing.<br />
Anyway, let's get to the new version. I wish success to everyone who contributed in the new version.<br />
<br />
I think these are the best values for the fast training of skills.<br />
You can modify the @sphere_skills.scp file.<br />
<br />
<span style="font-size: medium;"><span style="font-weight: bold;">Sample</span></span><br />
<div class="codeblock"><div class="title">PHP Code:<br />
</div><div class="body"><div dir="ltr"><code><span style="color: #007700">[</span><span style="color: #0000BB">SKILL&nbsp;40</span><span style="color: #007700">]<br /></span><span style="color: #0000BB">Defname&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">skill_swordsmanship<br />KEY&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">Swordsmanship<br />TITLE&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">Swordsman<br />FLAGS&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">skf_fight<br />STAT_ST&nbsp;R&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">200<br />STAT_DEX&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">200<br />STAT_INT&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">40<br />BONUS_ST&nbsp;R&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">200<br />BONUS_DEX&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">200<br />BONUS_INT&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">0<br />BONUS_STATS&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">200<br />ADV_RATE&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">0.1</span><span style="color: #007700">,</span><span style="color: #0000BB">3.0</span><span style="color: #007700">,</span><span style="color: #0000BB">4.0&nbsp;</span><span style="color: #007700">&lt;&lt;&lt;&nbsp;-----&nbsp;&lt;&lt;&nbsp;<br /></span></code></div></div></div>
]]></content:encoded>
		</item>
	</channel>
</rss>